diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..d5f19d89b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+package-lock.json
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..bf34da5a2
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "dist/vrma"]
+ path = dist/vrma
+ url = git@git.syui.ai:ai/vrma
diff --git a/README.md b/README.md
index ccdc4c76d..36297485e 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,28 @@
+# vrm
+
+## vrm & vrma
+
+```sh
+$ git submodule update --init --recursive
+```
+
+or
+
+- vrm : [download](https://hub.vroid.com/characters/675572020956181239/models/7175071267176594918)
+- vrma : [download](https://vroid.booth.pm/items/5512385)
+
+> ./dist/vrma
+
+```js
+load("/vrma/model.vrm");
+load("/vrma/VRMA_01.vrma");
+```
+
+## build
```sh
$ npm i
$ npm run dev
$ npm run build
```
+
diff --git a/dist/index.html b/dist/index.html
new file mode 100644
index 000000000..b574b49f4
--- /dev/null
+++ b/dist/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/dist/main.js b/dist/main.js
new file mode 100644
index 000000000..b77fdfd0e
--- /dev/null
+++ b/dist/main.js
@@ -0,0 +1,156 @@
+/*
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
+ * This devtool is neither made for production nor for readable output files.
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
+ * or disable the default devtool with "devtool: false".
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
+ */
+/******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./node_modules/@pixiv/three-vrm-animation/lib/three-vrm-animation.module.js":
+/*!***********************************************************************************!*\
+ !*** ./node_modules/@pixiv/three-vrm-animation/lib/three-vrm-animation.module.js ***!
+ \***********************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VRMAnimation: () => (/* binding */ VRMAnimation),\n/* harmony export */ VRMAnimationLoaderPlugin: () => (/* binding */ VRMAnimationLoaderPlugin),\n/* harmony export */ VRMLookAtQuaternionProxy: () => (/* binding */ VRMLookAtQuaternionProxy),\n/* harmony export */ createVRMAnimationClip: () => (/* binding */ createVRMAnimationClip),\n/* harmony export */ createVRMAnimationExpressionTracks: () => (/* binding */ createVRMAnimationExpressionTracks),\n/* harmony export */ createVRMAnimationHumanoidTracks: () => (/* binding */ createVRMAnimationHumanoidTracks),\n/* harmony export */ createVRMAnimationLookAtTrack: () => (/* binding */ createVRMAnimationLookAtTrack)\n/* harmony export */ });\n/* harmony import */ var three__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! three */ \"./node_modules/three/build/three.module.js\");\n/*!\n * @pixiv/three-vrm-animation v2.1.1\n * The implementation of VRM Animation\n *\n * Copyright (c) 2023-2024 pixiv Inc.\n * @pixiv/three-vrm-animation is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\n\n/*!\n * @pixiv/three-vrm-core v2.1.1\n * The implementation of core features of VRM, for @pixiv/three-vrm\n *\n * Copyright (c) 2020-2024 pixiv Inc.\n * @pixiv/three-vrm-core is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst VRMExpressionPresetName = {\n Aa: 'aa',\n Ih: 'ih',\n Ou: 'ou',\n Ee: 'ee',\n Oh: 'oh',\n Blink: 'blink',\n Happy: 'happy',\n Angry: 'angry',\n Sad: 'sad',\n Relaxed: 'relaxed',\n LookUp: 'lookUp',\n Surprised: 'surprised',\n LookDown: 'lookDown',\n LookLeft: 'lookLeft',\n LookRight: 'lookRight',\n BlinkLeft: 'blinkLeft',\n BlinkRight: 'blinkRight',\n Neutral: 'neutral',\n};\n\nnew three__WEBPACK_IMPORTED_MODULE_0__.Color();\n\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector2();\n\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * An object that maps from {@link VRMHumanBoneName} to its parent {@link VRMHumanBoneName}.\n *\n * Ref: https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_vrm-1.0/humanoid.md\n */\nconst VRMHumanBoneParentMap = {\n hips: null,\n spine: 'hips',\n chest: 'spine',\n upperChest: 'chest',\n neck: 'upperChest',\n head: 'neck',\n leftEye: 'head',\n rightEye: 'head',\n jaw: 'head',\n leftUpperLeg: 'hips',\n leftLowerLeg: 'leftUpperLeg',\n leftFoot: 'leftLowerLeg',\n leftToes: 'leftFoot',\n rightUpperLeg: 'hips',\n rightLowerLeg: 'rightUpperLeg',\n rightFoot: 'rightLowerLeg',\n rightToes: 'rightFoot',\n leftShoulder: 'upperChest',\n leftUpperArm: 'leftShoulder',\n leftLowerArm: 'leftUpperArm',\n leftHand: 'leftLowerArm',\n rightShoulder: 'upperChest',\n rightUpperArm: 'rightShoulder',\n rightLowerArm: 'rightUpperArm',\n rightHand: 'rightLowerArm',\n leftThumbMetacarpal: 'leftHand',\n leftThumbProximal: 'leftThumbMetacarpal',\n leftThumbDistal: 'leftThumbProximal',\n leftIndexProximal: 'leftHand',\n leftIndexIntermediate: 'leftIndexProximal',\n leftIndexDistal: 'leftIndexIntermediate',\n leftMiddleProximal: 'leftHand',\n leftMiddleIntermediate: 'leftMiddleProximal',\n leftMiddleDistal: 'leftMiddleIntermediate',\n leftRingProximal: 'leftHand',\n leftRingIntermediate: 'leftRingProximal',\n leftRingDistal: 'leftRingIntermediate',\n leftLittleProximal: 'leftHand',\n leftLittleIntermediate: 'leftLittleProximal',\n leftLittleDistal: 'leftLittleIntermediate',\n rightThumbMetacarpal: 'rightHand',\n rightThumbProximal: 'rightThumbMetacarpal',\n rightThumbDistal: 'rightThumbProximal',\n rightIndexProximal: 'rightHand',\n rightIndexIntermediate: 'rightIndexProximal',\n rightIndexDistal: 'rightIndexIntermediate',\n rightMiddleProximal: 'rightHand',\n rightMiddleIntermediate: 'rightMiddleProximal',\n rightMiddleDistal: 'rightMiddleIntermediate',\n rightRingProximal: 'rightHand',\n rightRingIntermediate: 'rightRingProximal',\n rightRingDistal: 'rightRingIntermediate',\n rightLittleProximal: 'rightHand',\n rightLittleIntermediate: 'rightLittleProximal',\n rightLittleDistal: 'rightLittleIntermediate',\n};\n\n/**\n * A compat function for `Quaternion.invert()` / `Quaternion.inverse()`.\n * `Quaternion.invert()` is introduced in r123 and `Quaternion.inverse()` emits a warning.\n * We are going to use this compat for a while.\n * @param target A target quaternion\n */\nfunction quatInvertCompat(target) {\n if (target.invert) {\n target.invert();\n }\n else {\n target.inverse();\n }\n return target;\n}\n\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst SQRT_2_OVER_2 = Math.sqrt(2.0) / 2.0;\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion(0, 0, -SQRT_2_OVER_2, SQRT_2_OVER_2);\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 1.0, 0.0);\n\nconst _position = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _scale = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n/**\n * A replacement of `Object3D.getWorldQuaternion`.\n * Extract the world quaternion of an object from its world space matrix, without calling `Object3D.updateWorldMatrix`.\n * Use this when you're sure that the world matrix is up-to-date.\n *\n * @param object The object\n * @param out A target quaternion\n */\nfunction getWorldQuaternionLite(object, out) {\n object.matrixWorld.decompose(_position, out, _scale);\n return out;\n}\n\n/**\n * Calculate azimuth / altitude angles from a vector.\n *\n * This returns a difference of angles from (1, 0, 0).\n * Azimuth represents an angle around Y axis.\n * Altitude represents an angle around Z axis.\n * It is rotated in intrinsic Y-Z order.\n *\n * @param vector The vector\n * @returns A tuple contains two angles, `[ azimuth, altitude ]`\n */\nfunction calcAzimuthAltitude(vector) {\n return [Math.atan2(-vector.z, vector.x), Math.atan2(vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z))];\n}\n\n/**\n * Make sure the angle is within -PI to PI.\n *\n * @example\n * ```js\n * sanitizeAngle(1.5 * Math.PI) // -0.5 * PI\n * ```\n *\n * @param angle An input angle\n */\nfunction sanitizeAngle(angle) {\n const roundTurn = Math.round(angle / 2.0 / Math.PI);\n return angle - 2.0 * Math.PI * roundTurn;\n}\n\nconst VEC3_POSITIVE_Z$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 1.0);\nconst _v3A$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3C = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatC$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatD = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _eulerA$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Euler();\n/**\n * A class controls eye gaze movements of a VRM.\n */\nclass VRMLookAt {\n /**\n * Its current angle around Y axis, in degree.\n */\n get yaw() {\n return this._yaw;\n }\n /**\n * Its current angle around Y axis, in degree.\n */\n set yaw(value) {\n this._yaw = value;\n this._needsUpdate = true;\n }\n /**\n * Its current angle around X axis, in degree.\n */\n get pitch() {\n return this._pitch;\n }\n /**\n * Its current angle around X axis, in degree.\n */\n set pitch(value) {\n this._pitch = value;\n this._needsUpdate = true;\n }\n /**\n * @deprecated Use {@link getEuler} instead.\n */\n get euler() {\n console.warn('VRMLookAt: euler is deprecated. use getEuler() instead.');\n return this.getEuler(new three__WEBPACK_IMPORTED_MODULE_0__.Euler());\n }\n /**\n * Create a new {@link VRMLookAt}.\n *\n * @param humanoid A {@link VRMHumanoid}\n * @param applier A {@link VRMLookAtApplier}\n */\n constructor(humanoid, applier) {\n /**\n * The origin of LookAt. Position offset from the head bone.\n */\n this.offsetFromHeadBone = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n /**\n * If this is true, the LookAt will be updated automatically by calling {@link update}, towarding the direction to the {@link target}.\n * `true` by default.\n *\n * See also: {@link target}\n */\n this.autoUpdate = true;\n /**\n * The front direction of the face.\n * Intended to be used for VRM 0.0 compat (VRM 0.0 models are facing Z- instead of Z+).\n * You usually don't want to touch this.\n */\n this.faceFront = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 1.0);\n this.humanoid = humanoid;\n this.applier = applier;\n this._yaw = 0.0;\n this._pitch = 0.0;\n this._needsUpdate = true;\n this._restHeadWorldQuaternion = this.getLookAtWorldQuaternion(new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion());\n }\n /**\n * Get its yaw-pitch angles as an `Euler`.\n * Does NOT consider {@link faceFront}; it returns `Euler(0, 0, 0; \"YXZ\")` by default regardless of the faceFront value.\n *\n * @param target The target euler\n */\n getEuler(target) {\n return target.set(three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this._pitch, three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this._yaw, 0.0, 'YXZ');\n }\n /**\n * Copy the given {@link VRMLookAt} into this one.\n * {@link humanoid} must be same as the source one.\n * {@link applier} will reference the same instance as the source one.\n * @param source The {@link VRMLookAt} you want to copy\n * @returns this\n */\n copy(source) {\n if (this.humanoid !== source.humanoid) {\n throw new Error('VRMLookAt: humanoid must be same in order to copy');\n }\n this.offsetFromHeadBone.copy(source.offsetFromHeadBone);\n this.applier = source.applier;\n this.autoUpdate = source.autoUpdate;\n this.target = source.target;\n this.faceFront.copy(source.faceFront);\n return this;\n }\n /**\n * Returns a clone of this {@link VRMLookAt}.\n * Note that {@link humanoid} and {@link applier} will reference the same instance as this one.\n * @returns Copied {@link VRMLookAt}\n */\n clone() {\n return new VRMLookAt(this.humanoid, this.applier).copy(this);\n }\n /**\n * Reset the lookAt direction (yaw and pitch) to the initial direction.\n */\n reset() {\n this._yaw = 0.0;\n this._pitch = 0.0;\n this._needsUpdate = true;\n }\n /**\n * Get its lookAt position in world coordinate.\n *\n * @param target A target `THREE.Vector3`\n */\n getLookAtWorldPosition(target) {\n const head = this.humanoid.getRawBoneNode('head');\n return target.copy(this.offsetFromHeadBone).applyMatrix4(head.matrixWorld);\n }\n /**\n * Get its lookAt rotation in world coordinate.\n * Does NOT consider {@link faceFront}.\n *\n * @param target A target `THREE.Quaternion`\n */\n getLookAtWorldQuaternion(target) {\n const head = this.humanoid.getRawBoneNode('head');\n return getWorldQuaternionLite(head, target);\n }\n /**\n * Get a quaternion that rotates the +Z unit vector of the humanoid Head to the {@link faceFront} direction.\n *\n * @param target A target `THREE.Quaternion`\n */\n getFaceFrontQuaternion(target) {\n if (this.faceFront.distanceToSquared(VEC3_POSITIVE_Z$1) < 0.01) {\n return target.copy(this._restHeadWorldQuaternion).invert();\n }\n const [faceFrontAzimuth, faceFrontAltitude] = calcAzimuthAltitude(this.faceFront);\n _eulerA$1.set(0.0, 0.5 * Math.PI + faceFrontAzimuth, faceFrontAltitude, 'YZX');\n return target.setFromEuler(_eulerA$1).premultiply(_quatD.copy(this._restHeadWorldQuaternion).invert());\n }\n /**\n * Get its LookAt direction in world coordinate.\n *\n * @param target A target `THREE.Vector3`\n */\n getLookAtWorldDirection(target) {\n this.getLookAtWorldQuaternion(_quatB$1);\n this.getFaceFrontQuaternion(_quatC$1);\n return target\n .copy(VEC3_POSITIVE_Z$1)\n .applyQuaternion(_quatB$1)\n .applyQuaternion(_quatC$1)\n .applyEuler(this.getEuler(_eulerA$1));\n }\n /**\n * Set its lookAt target position.\n *\n * Note that its result will be instantly overwritten if {@link VRMLookAtHead.autoUpdate} is enabled.\n *\n * If you want to track an object continuously, you might want to use {@link target} instead.\n *\n * @param position A target position, in world space\n */\n lookAt(position) {\n // Look at direction in local coordinate\n const headRotDiffInv = _quatA$1\n .copy(this._restHeadWorldQuaternion)\n .multiply(quatInvertCompat(this.getLookAtWorldQuaternion(_quatB$1)));\n const headPos = this.getLookAtWorldPosition(_v3B);\n const lookAtDir = _v3C.copy(position).sub(headPos).applyQuaternion(headRotDiffInv).normalize();\n // calculate angles\n const [azimuthFrom, altitudeFrom] = calcAzimuthAltitude(this.faceFront);\n const [azimuthTo, altitudeTo] = calcAzimuthAltitude(lookAtDir);\n const yaw = sanitizeAngle(azimuthTo - azimuthFrom);\n const pitch = sanitizeAngle(altitudeFrom - altitudeTo); // spinning (1, 0, 0) CCW around Z axis makes the vector look up, while spinning (0, 0, 1) CCW around X axis makes the vector look down\n // apply angles\n this._yaw = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * yaw;\n this._pitch = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * pitch;\n this._needsUpdate = true;\n }\n /**\n * Update the VRMLookAtHead.\n * If {@link autoUpdate} is enabled, this will make it look at the {@link target}.\n *\n * @param delta deltaTime, it isn't used though. You can use the parameter if you want to use this in your own extended {@link VRMLookAt}.\n */\n update(delta) {\n if (this.target != null && this.autoUpdate) {\n this.lookAt(this.target.getWorldPosition(_v3A$1));\n }\n if (this._needsUpdate) {\n this._needsUpdate = false;\n this.applier.applyYawPitch(this._yaw, this._pitch);\n }\n }\n}\nVRMLookAt.EULER_ORDER = 'YXZ'; // yaw-pitch-roll\n\nnew three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 1.0);\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nnew three__WEBPACK_IMPORTED_MODULE_0__.Euler(0.0, 0.0, 0.0, 'YXZ');\n\nconst RAD2DEG = 180 / Math.PI;\nconst _eulerA = /*@__PURE__*/ new three__WEBPACK_IMPORTED_MODULE_0__.Euler();\nclass VRMLookAtQuaternionProxy extends three__WEBPACK_IMPORTED_MODULE_0__.Object3D {\n constructor(lookAt) {\n super();\n this.vrmLookAt = lookAt;\n this.type = 'VRMLookAtQuaternionProxy';\n // See: https://github.com/mrdoob/three.js/blob/r158/src/core/Object3D.js#L65\n const prevRotationOnChangeCallback = this.rotation._onChangeCallback;\n this.rotation._onChange(() => {\n prevRotationOnChangeCallback();\n this._applyToLookAt();\n });\n const prevQuaternionOnChangeCallback = this.quaternion._onChangeCallback;\n this.quaternion._onChange(() => {\n prevQuaternionOnChangeCallback();\n this._applyToLookAt();\n });\n }\n _applyToLookAt() {\n _eulerA.setFromQuaternion(this.quaternion, VRMLookAt.EULER_ORDER);\n this.vrmLookAt.yaw = RAD2DEG * _eulerA.y;\n this.vrmLookAt.pitch = RAD2DEG * _eulerA.x;\n }\n}\n\nfunction createVRMAnimationHumanoidTracks(vrmAnimation, humanoid, metaVersion) {\n var _a, _b;\n const translation = new Map();\n const rotation = new Map();\n for (const [name, origTrack] of vrmAnimation.humanoidTracks.rotation.entries()) {\n const nodeName = (_a = humanoid.getNormalizedBoneNode(name)) === null || _a === void 0 ? void 0 : _a.name;\n if (nodeName != null) {\n const track = new three__WEBPACK_IMPORTED_MODULE_0__.QuaternionKeyframeTrack(`${nodeName}.quaternion`, origTrack.times, origTrack.values.map((v, i) => (metaVersion === '0' && i % 2 === 0 ? -v : v)));\n rotation.set(name, track);\n }\n }\n for (const [name, origTrack] of vrmAnimation.humanoidTracks.translation.entries()) {\n const nodeName = (_b = humanoid.getNormalizedBoneNode(name)) === null || _b === void 0 ? void 0 : _b.name;\n if (nodeName != null) {\n const animationY = vrmAnimation.restHipsPosition.y;\n const humanoidY = humanoid.normalizedRestPose.hips.position[1];\n const scale = humanoidY / animationY;\n const track = origTrack.clone();\n track.values = track.values.map((v, i) => (metaVersion === '0' && i % 3 !== 1 ? -v : v) * scale);\n track.name = `${nodeName}.position`;\n translation.set(name, track);\n }\n }\n return { translation, rotation };\n}\nfunction createVRMAnimationExpressionTracks(vrmAnimation, expressionManager) {\n const preset = new Map();\n const custom = new Map();\n for (const [name, origTrack] of vrmAnimation.expressionTracks.preset.entries()) {\n const trackName = expressionManager.getExpressionTrackName(name);\n if (trackName != null) {\n const track = origTrack.clone();\n track.name = trackName;\n preset.set(name, track);\n }\n }\n for (const [name, origTrack] of vrmAnimation.expressionTracks.custom.entries()) {\n const trackName = expressionManager.getExpressionTrackName(name);\n if (trackName != null) {\n const track = origTrack.clone();\n track.name = trackName;\n custom.set(name, track);\n }\n }\n return { preset, custom };\n}\nfunction createVRMAnimationLookAtTrack(vrmAnimation, trackName) {\n if (vrmAnimation.lookAtTrack == null) {\n return null;\n }\n const track = vrmAnimation.lookAtTrack.clone();\n track.name = trackName;\n return track;\n}\n/**\n * Create an AnimationClip out of the given VRMAnimation and the VRM.\n *\n * @param vrmAnimation A {@link VRMAnimation}.\n * @param vrm A {@link VRMCore}.\n * @returns An AnimationClip\n */\nfunction createVRMAnimationClip(vrmAnimation, vrm) {\n const tracks = [];\n const humanoidTracks = createVRMAnimationHumanoidTracks(vrmAnimation, vrm.humanoid, vrm.meta.metaVersion);\n tracks.push(...humanoidTracks.translation.values());\n tracks.push(...humanoidTracks.rotation.values());\n if (vrm.expressionManager != null) {\n const expressionTracks = createVRMAnimationExpressionTracks(vrmAnimation, vrm.expressionManager);\n tracks.push(...expressionTracks.preset.values());\n tracks.push(...expressionTracks.custom.values());\n }\n if (vrm.lookAt != null) {\n // search VRMLookAtQuaternionProxy\n let proxy = vrm.scene.children.find((obj) => obj instanceof VRMLookAtQuaternionProxy);\n if (proxy == null) {\n // if not found, create a new one\n console.warn('createVRMAnimationClip: VRMLookAtQuaternionProxy is not found. Creating a new one automatically. To suppress this warning, create a VRMLookAtQuaternionProxy manually');\n proxy = new VRMLookAtQuaternionProxy(vrm.lookAt);\n proxy.name = 'VRMLookAtQuaternionProxy';\n vrm.scene.add(proxy);\n }\n else if (proxy.name == null) {\n // if found but name is not set, set the name automatically\n console.warn('createVRMAnimationClip: VRMLookAtQuaternionProxy is found but its name is not set. Setting the name automatically. To suppress this warning, set the name manually');\n proxy.name = 'VRMLookAtQuaternionProxy';\n }\n // create a track\n const track = createVRMAnimationLookAtTrack(vrmAnimation, `${proxy.name}.quaternion`);\n if (track != null) {\n tracks.push(track);\n }\n }\n return new three__WEBPACK_IMPORTED_MODULE_0__.AnimationClip('Clip', vrmAnimation.duration, tracks);\n}\n\n/**\n * Represents a single VRM Animation.\n * You probably want to create an AnimationClip using {@link createVRMAnimationClip}.\n */\nclass VRMAnimation {\n constructor() {\n this.duration = 0.0;\n this.restHipsPosition = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this.humanoidTracks = {\n translation: new Map(),\n rotation: new Map(),\n };\n this.expressionTracks = {\n preset: new Map(),\n custom: new Map(),\n };\n this.lookAtTrack = null;\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\n/**\n * ```js\n * arrayChunk( [ 1, 2, 3, 4, 5, 6 ], 2 )\n * // will be\n * [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]\n * ```\n */\nfunction arrayChunk(array, every) {\n const N = array.length;\n const ret = [];\n let current = [];\n let remaining = 0;\n for (let i = 0; i < N; i++) {\n const el = array[i];\n if (remaining <= 0) {\n remaining = every;\n current = [];\n ret.push(current);\n }\n current.push(el);\n remaining--;\n }\n return ret;\n}\n\nconst MAT4_IDENTITY = /*@__PURE__*/ new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4();\nconst _v3A = /*@__PURE__*/ new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA = /*@__PURE__*/ new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB = /*@__PURE__*/ new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatC = /*@__PURE__*/ new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS = /*@__PURE__*/ new Set(['1.0', '1.0-draft']);\nconst vrmExpressionPresetNameSet = /*@__PURE__*/ new Set(Object.values(VRMExpressionPresetName));\n/**\n * A plugin of GLTFLoader that imports {@link VRMAnimation}s from a `VRMC_vrm_animation` extension and gltf animations.\n */\nclass VRMAnimationLoaderPlugin {\n constructor(parser) {\n this.parser = parser;\n }\n get name() {\n return 'VRMC_vrm_animation';\n }\n afterRoot(gltf) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n const defGltf = gltf.parser.json;\n const defExtensionsUsed = defGltf.extensionsUsed;\n if (defExtensionsUsed == null || defExtensionsUsed.indexOf(this.name) == -1) {\n return;\n }\n const defExtension = (_a = defGltf.extensions) === null || _a === void 0 ? void 0 : _a[this.name];\n if (defExtension == null) {\n return;\n }\n const specVersion = defExtension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS.has(specVersion)) {\n console.warn(`VRMAnimationLoaderPlugin: Unknown VRMC_vrm_animation spec version: ${specVersion}`);\n return;\n }\n if (specVersion === '1.0-draft') {\n console.warn('VRMAnimationLoaderPlugin: Using a draft spec version: 1.0-draft. Some behaviors may be different. Consider updating the animation file.');\n }\n const nodeMap = this._createNodeMap(defExtension);\n const worldMatrixMap = yield this._createBoneWorldMatrixMap(gltf, defExtension);\n const hipsNode = (_c = (_b = defExtension.humanoid) === null || _b === void 0 ? void 0 : _b.humanBones['hips']) === null || _c === void 0 ? void 0 : _c.node;\n const hips = hipsNode != null ? (yield gltf.parser.getDependency('node', hipsNode)) : null;\n const restHipsPosition = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n hips === null || hips === void 0 ? void 0 : hips.getWorldPosition(restHipsPosition);\n const clips = gltf.animations;\n const animations = clips.map((clip, iAnimation) => {\n const defAnimation = defGltf.animations[iAnimation];\n const animation = this._parseAnimation(clip, defAnimation, nodeMap, worldMatrixMap);\n animation.restHipsPosition = restHipsPosition;\n return animation;\n });\n gltf.userData.vrmAnimations = animations;\n });\n }\n _createNodeMap(defExtension) {\n var _a, _b, _c, _d, _e;\n const humanoidIndexToName = new Map();\n const expressionsIndexToName = new Map();\n // humanoid\n const humanBones = (_a = defExtension.humanoid) === null || _a === void 0 ? void 0 : _a.humanBones;\n if (humanBones) {\n Object.entries(humanBones).forEach(([name, bone]) => {\n const node = bone === null || bone === void 0 ? void 0 : bone.node;\n if (node != null) {\n humanoidIndexToName.set(node, name);\n }\n });\n }\n // expressions\n const preset = (_b = defExtension.expressions) === null || _b === void 0 ? void 0 : _b.preset;\n if (preset) {\n Object.entries(preset).forEach(([name, expression]) => {\n const node = expression === null || expression === void 0 ? void 0 : expression.node;\n if (node != null) {\n expressionsIndexToName.set(node, name);\n }\n });\n }\n const custom = (_c = defExtension.expressions) === null || _c === void 0 ? void 0 : _c.custom;\n if (custom) {\n Object.entries(custom).forEach(([name, expression]) => {\n const { node } = expression;\n expressionsIndexToName.set(node, name);\n });\n }\n // lookAt\n const lookAtIndex = (_e = (_d = defExtension.lookAt) === null || _d === void 0 ? void 0 : _d.node) !== null && _e !== void 0 ? _e : null;\n return { humanoidIndexToName, expressionsIndexToName, lookAtIndex };\n }\n _createBoneWorldMatrixMap(gltf, defExtension) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n // update the entire hierarchy first\n gltf.scene.updateWorldMatrix(false, true);\n const threeNodes = (yield gltf.parser.getDependencies('node'));\n const worldMatrixMap = new Map();\n if (defExtension.humanoid == null) {\n return worldMatrixMap;\n }\n for (const [boneName, humanBone] of Object.entries(defExtension.humanoid.humanBones)) {\n const node = humanBone === null || humanBone === void 0 ? void 0 : humanBone.node;\n if (node != null) {\n const threeNode = threeNodes[node];\n worldMatrixMap.set(boneName, threeNode.matrixWorld);\n if (boneName === 'hips') {\n worldMatrixMap.set('hipsParent', (_b = (_a = threeNode.parent) === null || _a === void 0 ? void 0 : _a.matrixWorld) !== null && _b !== void 0 ? _b : MAT4_IDENTITY);\n }\n }\n }\n return worldMatrixMap;\n });\n }\n _parseAnimation(animationClip, defAnimation, nodeMap, worldMatrixMap) {\n const tracks = animationClip.tracks;\n const defChannels = defAnimation.channels;\n const result = new VRMAnimation();\n result.duration = animationClip.duration;\n defChannels.forEach((channel, iChannel) => {\n const { node, path } = channel.target;\n const origTrack = tracks[iChannel];\n if (node == null) {\n return;\n }\n // humanoid\n const boneName = nodeMap.humanoidIndexToName.get(node);\n if (boneName != null) {\n let parentBoneName = VRMHumanBoneParentMap[boneName];\n while (parentBoneName != null && worldMatrixMap.get(parentBoneName) == null) {\n parentBoneName = VRMHumanBoneParentMap[parentBoneName];\n }\n parentBoneName !== null && parentBoneName !== void 0 ? parentBoneName : (parentBoneName = 'hipsParent');\n if (path === 'translation') {\n if (boneName !== 'hips') {\n console.warn(`The loading animation contains a translation track for ${boneName}, which is not permitted in the VRMC_vrm_animation spec. ignoring the track`);\n }\n else {\n const hipsParentWorldMatrix = worldMatrixMap.get('hipsParent');\n const trackValues = arrayChunk(origTrack.values, 3).flatMap((v) => _v3A.fromArray(v).applyMatrix4(hipsParentWorldMatrix).toArray());\n const track = origTrack.clone();\n track.values = new Float32Array(trackValues);\n result.humanoidTracks.translation.set(boneName, track);\n }\n }\n else if (path === 'rotation') {\n // a = p^-1 * a' * p * c\n // a' = p * p^-1 * a' * p * c * c^-1 * p^-1\n // = p * a * c^-1 * p^-1\n const worldMatrix = worldMatrixMap.get(boneName);\n const parentWorldMatrix = worldMatrixMap.get(parentBoneName);\n worldMatrix.decompose(_v3A, _quatA, _v3A);\n _quatA.invert();\n parentWorldMatrix.decompose(_v3A, _quatB, _v3A);\n const trackValues = arrayChunk(origTrack.values, 4).flatMap((q) => _quatC.fromArray(q).premultiply(_quatB).multiply(_quatA).toArray());\n const track = origTrack.clone();\n track.values = new Float32Array(trackValues);\n result.humanoidTracks.rotation.set(boneName, track);\n }\n else {\n throw new Error(`Invalid path \"${path}\"`);\n }\n return;\n }\n // expressions\n const expressionName = nodeMap.expressionsIndexToName.get(node);\n if (expressionName != null) {\n if (path === 'translation') {\n const times = origTrack.times;\n const values = new Float32Array(origTrack.values.length / 3);\n for (let i = 0; i < values.length; i++) {\n values[i] = origTrack.values[3 * i];\n }\n const newTrack = new three__WEBPACK_IMPORTED_MODULE_0__.NumberKeyframeTrack(`${expressionName}.weight`, times, values);\n if (vrmExpressionPresetNameSet.has(expressionName)) {\n result.expressionTracks.preset.set(expressionName, newTrack);\n }\n else {\n result.expressionTracks.custom.set(expressionName, newTrack);\n }\n }\n else {\n throw new Error(`Invalid path \"${path}\"`);\n }\n return;\n }\n // lookAt\n if (node === nodeMap.lookAtIndex) {\n if (path === 'rotation') {\n result.lookAtTrack = origTrack;\n }\n else {\n throw new Error(`Invalid path \"${path}\"`);\n }\n }\n });\n return result;\n }\n}\n\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdnJtLWFuaW1hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3RocmVlLXZybS1jb3JlL2xpYi90aHJlZS12cm0tY29yZS5tb2R1bGUuanMiLCIuLi9zcmMvVlJNTG9va0F0UXVhdGVybmlvblByb3h5LnRzIiwiLi4vc3JjL2NyZWF0ZVZSTUFuaW1hdGlvbkNsaXAudHMiLCIuLi9zcmMvVlJNQW5pbWF0aW9uLnRzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIi4uL3NyYy91dGlscy9hcnJheUNodW5rLnRzIiwiLi4vc3JjL1ZSTUFuaW1hdGlvbkxvYWRlclBsdWdpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBwaXhpdi90aHJlZS12cm0tY29yZSB2Mi4xLjFcbiAqIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjb3JlIGZlYXR1cmVzIG9mIFZSTSwgZm9yIEBwaXhpdi90aHJlZS12cm1cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyNCBwaXhpdiBJbmMuXG4gKiBAcGl4aXYvdGhyZWUtdnJtLWNvcmUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgTUlUIExpY2Vuc2VcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waXhpdi90aHJlZS12cm0vYmxvYi9yZWxlYXNlL0xJQ0VOU0VcbiAqL1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG4vLyBhbmltYXRpb25NaXhlciDjga7nm6Poppblr77osaHjga/jgIFTY2VuZSDjga7kuK3jgavlhaXjgaPjgabjgYTjgovlv4XopoHjgYzjgYLjgovjgIJcbi8vIOOBneOBruOBn+OCgeOAgeihqOekuuOCquODluOCuOOCp+OCr+ODiOOBp+OBr+OBquOBhOOBkeOCjOOBqeOAgU9iamVjdDNEIOOCkue2meaJv+OBl+OBpiBTY2VuZSDjgavmipXlhaXjgafjgY3jgovjgojjgYbjgavjgZnjgovjgIJcbmNsYXNzIFZSTUV4cHJlc3Npb24gZXh0ZW5kcyBUSFJFRS5PYmplY3QzRCB7XG4gICAgLyoqXG4gICAgICogQSB2YWx1ZSByZXByZXNlbnRzIGhvdyBtdWNoIGl0IHNob3VsZCBvdmVycmlkZSBibGluayBleHByZXNzaW9ucy5cbiAgICAgKiBgMC4wYCA9PSBubyBvdmVycmlkZSBhdCBhbGwsIGAxLjBgID09IGNvbXBsZXRlbHkgYmxvY2sgdGhlIGV4cHJlc3Npb25zLlxuICAgICAqL1xuICAgIGdldCBvdmVycmlkZUJsaW5rQW1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5vdmVycmlkZUJsaW5rID09PSAnYmxvY2snKSB7XG4gICAgICAgICAgICByZXR1cm4gMC4wIDwgdGhpcy53ZWlnaHQgPyAxLjAgOiAwLjA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5vdmVycmlkZUJsaW5rID09PSAnYmxlbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy53ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMC4wO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgdmFsdWUgcmVwcmVzZW50cyBob3cgbXVjaCBpdCBzaG91bGQgb3ZlcnJpZGUgbG9va0F0IGV4cHJlc3Npb25zLlxuICAgICAqIGAwLjBgID09IG5vIG92ZXJyaWRlIGF0IGFsbCwgYDEuMGAgPT0gY29tcGxldGVseSBibG9jayB0aGUgZXhwcmVzc2lvbnMuXG4gICAgICovXG4gICAgZ2V0IG92ZXJyaWRlTG9va0F0QW1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5vdmVycmlkZUxvb2tBdCA9PT0gJ2Jsb2NrJykge1xuICAgICAgICAgICAgcmV0dXJuIDAuMCA8IHRoaXMud2VpZ2h0ID8gMS4wIDogMC4wO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMub3ZlcnJpZGVMb29rQXQgPT09ICdibGVuZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwLjA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQSB2YWx1ZSByZXByZXNlbnRzIGhvdyBtdWNoIGl0IHNob3VsZCBvdmVycmlkZSBtb3V0aCBleHByZXNzaW9ucy5cbiAgICAgKiBgMC4wYCA9PSBubyBvdmVycmlkZSBhdCBhbGwsIGAxLjBgID09IGNvbXBsZXRlbHkgYmxvY2sgdGhlIGV4cHJlc3Npb25zLlxuICAgICAqL1xuICAgIGdldCBvdmVycmlkZU1vdXRoQW1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5vdmVycmlkZU1vdXRoID09PSAnYmxvY2snKSB7XG4gICAgICAgICAgICByZXR1cm4gMC4wIDwgdGhpcy53ZWlnaHQgPyAxLjAgOiAwLjA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5vdmVycmlkZU1vdXRoID09PSAnYmxlbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy53ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMC4wO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGV4cHJlc3Npb25OYW1lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY3VycmVudCB3ZWlnaHQgb2YgdGhlIGV4cHJlc3Npb24uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLndlaWdodCA9IDAuMDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEludGVycHJldCB2YWx1ZXMgZ3JlYXRlciB0aGFuIDAuNSBhcyAxLjAsIG9ydGhlcndpc2UgMC4wLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pc0JpbmFyeSA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogU3BlY2lmeSBob3cgdGhlIGV4cHJlc3Npb24gb3ZlcnJpZGVzIGJsaW5rIGV4cHJlc3Npb25zLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vdmVycmlkZUJsaW5rID0gJ25vbmUnO1xuICAgICAgICAvKipcbiAgICAgICAgICogU3BlY2lmeSBob3cgdGhlIGV4cHJlc3Npb24gb3ZlcnJpZGVzIGxvb2tBdCBleHByZXNzaW9ucy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3ZlcnJpZGVMb29rQXQgPSAnbm9uZSc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZ5IGhvdyB0aGUgZXhwcmVzc2lvbiBvdmVycmlkZXMgbW91dGggZXhwcmVzc2lvbnMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm92ZXJyaWRlTW91dGggPSAnbm9uZSc7XG4gICAgICAgIHRoaXMuX2JpbmRzID0gW107XG4gICAgICAgIHRoaXMubmFtZSA9IGBWUk1FeHByZXNzaW9uXyR7ZXhwcmVzc2lvbk5hbWV9YDtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uTmFtZSA9IGV4cHJlc3Npb25OYW1lO1xuICAgICAgICAvLyB0cmF2ZXJzZSDmmYLjga7mlZHmuIjmiYvmrrXjgajjgZfjgaYgT2JqZWN0M0Qg44Gn44Gv44Gq44GE44GT44Go44KS5piO56S644GX44Gm44GK44GPXG4gICAgICAgIHRoaXMudHlwZSA9ICdWUk1FeHByZXNzaW9uJztcbiAgICAgICAgLy8g6KGo56S655uu55qE44Gu44Kq44OW44K444Kn44Kv44OI44Gn44Gv44Gq44GE44Gu44Gn44CB6LKg6I236Lu95rib44Gu44Gf44KB44GrIHZpc2libGUg44KSIGZhbHNlIOOBq+OBl+OBpuOBiuOBj+OAglxuICAgICAgICAvLyDjgZPjgozjgavjgojjgorjgIHjgZPjga7jgqTjg7Pjgrnjgr/jg7Pjgrnjgavlr77jgZnjgovmr47jg5Xjg6zjg7zjg6Djga4gbWF0cml4IOiHquWLleioiOeul+OCkuecgeeVpeOBp+OBjeOCi+OAglxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gICAgYWRkQmluZChiaW5kKSB7XG4gICAgICAgIHRoaXMuX2JpbmRzLnB1c2goYmluZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFwcGx5IHdlaWdodCB0byBldmVyeSBhc3NpZ25lZCBibGVuZCBzaGFwZXMuXG4gICAgICogU2hvdWxkIGJlIGNhbGxlZCBldmVyeSBmcmFtZS5cbiAgICAgKi9cbiAgICBhcHBseVdlaWdodChvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgbGV0IGFjdHVhbFdlaWdodCA9IHRoaXMuaXNCaW5hcnkgPyAodGhpcy53ZWlnaHQgPD0gMC41ID8gMC4wIDogMS4wKSA6IHRoaXMud2VpZ2h0O1xuICAgICAgICBhY3R1YWxXZWlnaHQgKj0gKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm11bHRpcGxpZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDEuMDtcbiAgICAgICAgdGhpcy5fYmluZHMuZm9yRWFjaCgoYmluZCkgPT4gYmluZC5hcHBseVdlaWdodChhY3R1YWxXZWlnaHQpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXIgcHJldmlvdXNseSBhc3NpZ25lZCBibGVuZCBzaGFwZXMuXG4gICAgICovXG4gICAgY2xlYXJBcHBsaWVkV2VpZ2h0KCkge1xuICAgICAgICB0aGlzLl9iaW5kcy5mb3JFYWNoKChiaW5kKSA9PiBiaW5kLmNsZWFyQXBwbGllZFdlaWdodCgpKTtcbiAgICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG5cclxuZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxudHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbn07XG5cbmZ1bmN0aW9uIGV4dHJhY3RQcmltaXRpdmVzSW50ZXJuYWwoZ2x0Ziwgbm9kZUluZGV4LCBub2RlKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBqc29uID0gZ2x0Zi5wYXJzZXIuanNvbjtcbiAgICAvKipcbiAgICAgKiBMZXQncyBsaXN0IHVwIGV2ZXJ5IHBvc3NpYmxlIHBhdHRlcm5zIHRoYXQgcGFyc2VkIGdsdGYgbm9kZXMgd2l0aCBhIG1lc2ggY2FuIGhhdmUsLCxcbiAgICAgKlxuICAgICAqIFwiKlwiIGluZGljYXRlcyB0aGF0IHRob3NlIG1lc2hlcyBzaG91bGQgYmUgbGlzdGVkIHVwIHVzaW5nIHRoaXMgZnVuY3Rpb25cbiAgICAgKlxuICAgICAqICMjIyBBIG5vZGUgd2l0aCBhIChtZXNoLCBhIHNpZ25sZSBwcmltaXRpdmUpXG4gICAgICpcbiAgICAgKiAtIGBUSFJFRS5NZXNoYDogVGhlIG9ubHkgcHJpbWl0aXZlIG9mIHRoZSBtZXNoICpcbiAgICAgKlxuICAgICAqICMjIyBBIG5vZGUgd2l0aCBhIChtZXNoLCBtdWx0aXBsZSBwcmltaXRpdmVzKVxuICAgICAqXG4gICAgICogLSBgVEhSRUUuR3JvdXBgOiBUaGUgcm9vdCBvZiB0aGUgbWVzaFxuICAgICAqICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoICpcbiAgICAgKiAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAoMikgKlxuICAgICAqXG4gICAgICogIyMjIEEgbm9kZSB3aXRoIGEgKG1lc2gsIG11bHRpcGxlIHByaW1pdGl2ZXMpIEFORCAoYSBjaGlsZCB3aXRoIGEgbWVzaCwgYSBzaW5nbGUgcHJpbWl0aXZlKVxuICAgICAqXG4gICAgICogLSBgVEhSRUUuR3JvdXBgOiBUaGUgcm9vdCBvZiB0aGUgbWVzaFxuICAgICAqICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoICpcbiAgICAgKiAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAoMikgKlxuICAgICAqICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIGEgTUVTSCBPRiBUSEUgQ0hJTERcbiAgICAgKlxuICAgICAqICMjIyBBIG5vZGUgd2l0aCBhIChtZXNoLCBtdWx0aXBsZSBwcmltaXRpdmVzKSBBTkQgKGEgY2hpbGQgd2l0aCBhIG1lc2gsIG11bHRpcGxlIHByaW1pdGl2ZXMpXG4gICAgICpcbiAgICAgKiAtIGBUSFJFRS5Hcm91cGA6IFRoZSByb290IG9mIHRoZSBtZXNoXG4gICAgICogICAtIGBUSFJFRS5NZXNoYDogQSBwcmltaXRpdmUgb2YgdGhlIG1lc2ggKlxuICAgICAqICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoICgyKSAqXG4gICAgICogICAtIGBUSFJFRS5Hcm91cGA6IFRoZSByb290IG9mIGEgTUVTSCBPRiBUSEUgQ0hJTERcbiAgICAgKiAgICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoIG9mIHRoZSBjaGlsZFxuICAgICAqICAgICAtIGBUSFJFRS5NZXNoYDogQSBwcmltaXRpdmUgb2YgdGhlIG1lc2ggb2YgdGhlIGNoaWxkICgyKVxuICAgICAqXG4gICAgICogIyMjIEEgbm9kZSB3aXRoIGEgKG1lc2gsIG11bHRpcGxlIHByaW1pdGl2ZXMpIEJVVCB0aGUgbm9kZSBpcyBhIGJvbmVcbiAgICAgKlxuICAgICAqIC0gYFRIUkVFLkJvbmVgOiBUaGUgcm9vdCBvZiB0aGUgbm9kZSwgYXMgYSBib25lXG4gICAgICogICAtIGBUSFJFRS5Hcm91cGA6IFRoZSByb290IG9mIHRoZSBtZXNoXG4gICAgICogICAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAqXG4gICAgICogICAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAoMikgKlxuICAgICAqXG4gICAgICogIyMjIEEgbm9kZSB3aXRoIGEgKG1lc2gsIG11bHRpcGxlIHByaW1pdGl2ZXMpIEFORCAoYSBjaGlsZCB3aXRoIGEgbWVzaCwgbXVsdGlwbGUgcHJpbWl0aXZlcykgQlVUIHRoZSBub2RlIGlzIGEgYm9uZVxuICAgICAqXG4gICAgICogLSBgVEhSRUUuQm9uZWA6IFRoZSByb290IG9mIHRoZSBub2RlLCBhcyBhIGJvbmVcbiAgICAgKiAgIC0gYFRIUkVFLkdyb3VwYDogVGhlIHJvb3Qgb2YgdGhlIG1lc2hcbiAgICAgKiAgICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoICpcbiAgICAgKiAgICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoICgyKSAqXG4gICAgICogICAtIGBUSFJFRS5Hcm91cGA6IFRoZSByb290IG9mIGEgTUVTSCBPRiBUSEUgQ0hJTERcbiAgICAgKiAgICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoIG9mIHRoZSBjaGlsZFxuICAgICAqICAgICAtIGBUSFJFRS5NZXNoYDogQSBwcmltaXRpdmUgb2YgdGhlIG1lc2ggb2YgdGhlIGNoaWxkICgyKVxuICAgICAqXG4gICAgICogLi4uSSB3aWxsIHRha2UgYSBzdHJhdGVneSB0aGF0IHRyYXZlcnNlcyB0aGUgcm9vdCBvZiB0aGUgbm9kZSBhbmQgdGFrZSBmaXJzdCAocHJpbWl0aXZlQ291bnQpIG1lc2hlcy5cbiAgICAgKi9cbiAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgbm9kZSBoYXMgYSBtZXNoXG4gICAgY29uc3Qgc2NoZW1hTm9kZSA9IChfYSA9IGpzb24ubm9kZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVtub2RlSW5kZXhdO1xuICAgIGlmIChzY2hlbWFOb2RlID09IG51bGwpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBleHRyYWN0UHJpbWl0aXZlc0ludGVybmFsOiBBdHRlbXB0IHRvIHVzZSBub2Rlc1ske25vZGVJbmRleH1dIG9mIGdsVEYgYnV0IHRoZSBub2RlIGRvZXNuJ3QgZXhpc3RgKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG1lc2hJbmRleCA9IHNjaGVtYU5vZGUubWVzaDtcbiAgICBpZiAobWVzaEluZGV4ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIEhvdyBtYW55IHByaW1pdGl2ZXMgdGhlIG1lc2ggaGFzP1xuICAgIGNvbnN0IHNjaGVtYU1lc2ggPSAoX2IgPSBqc29uLm1lc2hlcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iW21lc2hJbmRleF07XG4gICAgaWYgKHNjaGVtYU1lc2ggPT0gbnVsbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYGV4dHJhY3RQcmltaXRpdmVzSW50ZXJuYWw6IEF0dGVtcHQgdG8gdXNlIG1lc2hlc1ske21lc2hJbmRleH1dIG9mIGdsVEYgYnV0IHRoZSBtZXNoIGRvZXNuJ3QgZXhpc3RgKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHByaW1pdGl2ZUNvdW50ID0gc2NoZW1hTWVzaC5wcmltaXRpdmVzLmxlbmd0aDtcbiAgICAvLyBUcmF2ZXJzZSB0aGUgbm9kZSBhbmQgdGFrZSBmaXJzdCAocHJpbWl0aXZlQ291bnQpIG1lc2hlc1xuICAgIGNvbnN0IHByaW1pdGl2ZXMgPSBbXTtcbiAgICBub2RlLnRyYXZlcnNlKChvYmplY3QpID0+IHtcbiAgICAgICAgaWYgKHByaW1pdGl2ZXMubGVuZ3RoIDwgcHJpbWl0aXZlQ291bnQpIHtcbiAgICAgICAgICAgIGlmIChvYmplY3QuaXNNZXNoKSB7XG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlcy5wdXNoKG9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJpbWl0aXZlcztcbn1cbi8qKlxuICogRXh0cmFjdCBwcmltaXRpdmVzICggYFRIUkVFLk1lc2hbXWAgKSBvZiBhIG5vZGUgZnJvbSBhIGxvYWRlZCBHTFRGLlxuICogVGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGRpc3Rpbmd1aXNoIHByaW1pdGl2ZXMgYW5kIGNoaWxkcmVuIGZyb20gYSBub2RlIHRoYXQgaGFzIGJvdGggbWVzaGVzIGFuZCBjaGlsZHJlbi5cbiAqXG4gKiBJdCB1dGlsaXplcyB0aGUgYmVoYXZpb3IgdGhhdCBHTFRGTG9hZGVyIGFkZHMgbWVzaCBwcmltaXRpdmVzIHRvIHRoZSBub2RlIG9iamVjdCAoIGBUSFJFRS5Hcm91cGAgKSBmaXJzdCB0aGVuIGFkZHMgaXRzIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSBnbHRmIEEgR0xURiBvYmplY3QgdGFrZW4gZnJvbSBHTFRGTG9hZGVyXG4gKiBAcGFyYW0gbm9kZUluZGV4IFRoZSBpbmRleCBvZiB0aGUgbm9kZVxuICovXG5mdW5jdGlvbiBnbHRmRXh0cmFjdFByaW1pdGl2ZXNGcm9tTm9kZShnbHRmLCBub2RlSW5kZXgpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlID0geWllbGQgZ2x0Zi5wYXJzZXIuZ2V0RGVwZW5kZW5jeSgnbm9kZScsIG5vZGVJbmRleCk7XG4gICAgICAgIHJldHVybiBleHRyYWN0UHJpbWl0aXZlc0ludGVybmFsKGdsdGYsIG5vZGVJbmRleCwgbm9kZSk7XG4gICAgfSk7XG59XG4vKipcbiAqIEV4dHJhY3QgcHJpbWl0aXZlcyAoIGBUSFJFRS5NZXNoW11gICkgb2Ygbm9kZXMgZnJvbSBhIGxvYWRlZCBHTFRGLlxuICogU2VlIHtAbGluayBnbHRmRXh0cmFjdFByaW1pdGl2ZXNGcm9tTm9kZX0gZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBJdCByZXR1cm5zIGEgbWFwIGZyb20gbm9kZSBpbmRleCB0byBleHRyYWN0aW9uIHJlc3VsdC5cbiAqIElmIGEgbm9kZSBkb2VzIG5vdCBoYXZlIGEgbWVzaCwgdGhlIGVudHJ5IGZvciB0aGUgbm9kZSB3aWxsIG5vdCBiZSBwdXQgaW4gdGhlIHJldHVybmluZyBtYXAuXG4gKlxuICogQHBhcmFtIGdsdGYgQSBHTFRGIG9iamVjdCB0YWtlbiBmcm9tIEdMVEZMb2FkZXJcbiAqL1xuZnVuY3Rpb24gZ2x0ZkV4dHJhY3RQcmltaXRpdmVzRnJvbU5vZGVzKGdsdGYpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlcyA9IHlpZWxkIGdsdGYucGFyc2VyLmdldERlcGVuZGVuY2llcygnbm9kZScpO1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIG5vZGVzLmZvckVhY2goKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBleHRyYWN0UHJpbWl0aXZlc0ludGVybmFsKGdsdGYsIGluZGV4LCBub2RlKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG1hcC5zZXQoaW5kZXgsIHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWFwO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIG1hdGVyaWFsIGRlZmluaXRpb24gaW5kZXggb2YgZ2xURiBmcm9tIGFzc29jaWF0ZWQgbWF0ZXJpYWwuXG4gKiBJdCdzIGJhc2ljYWxseSBhIGNvbWF0IGNvZGUgYmV0d2VlbiBUaHJlZS5qcyByMTMzIG9yIGFib3ZlIGFuZCBwcmV2aW91cyB2ZXJzaW9ucy5cbiAqIEBwYXJhbSBwYXJzZXIgR0xURlBhcnNlclxuICogQHBhcmFtIG1hdGVyaWFsIEEgbWF0ZXJpYWwgb2YgZ2x0ZlxuICogQHJldHVybnMgTWF0ZXJpYWwgZGVmaW5pdGlvbiBpbmRleCBvZiBnbFRGXG4gKi9cbmZ1bmN0aW9uIGdsdGZHZXRBc3NvY2lhdGVkTWF0ZXJpYWxJbmRleChwYXJzZXIsIG1hdGVyaWFsKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB0aHJlZVJldmlzaW9uID0gcGFyc2VJbnQoVEhSRUUuUkVWSVNJT04sIDEwKTtcbiAgICBsZXQgaW5kZXggPSBudWxsO1xuICAgIGlmICh0aHJlZVJldmlzaW9uID49IDEzMykge1xuICAgICAgICBpbmRleCA9IChfYiA9IChfYSA9IHBhcnNlci5hc3NvY2lhdGlvbnMuZ2V0KG1hdGVyaWFsKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1hdGVyaWFscykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbnVsbDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGFzc29jaWF0aW9ucyA9IHBhcnNlci5hc3NvY2lhdGlvbnM7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IGFzc29jaWF0aW9ucy5nZXQobWF0ZXJpYWwpO1xuICAgICAgICBpZiAoKHJlZmVyZW5jZSA9PT0gbnVsbCB8fCByZWZlcmVuY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlZmVyZW5jZS50eXBlKSA9PT0gJ21hdGVyaWFscycpIHtcbiAgICAgICAgICAgIGluZGV4ID0gcmVmZXJlbmNlLmluZGV4O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpbmRleDtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5jb25zdCBWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSA9IHtcbiAgICBBYTogJ2FhJyxcbiAgICBJaDogJ2loJyxcbiAgICBPdTogJ291JyxcbiAgICBFZTogJ2VlJyxcbiAgICBPaDogJ29oJyxcbiAgICBCbGluazogJ2JsaW5rJyxcbiAgICBIYXBweTogJ2hhcHB5JyxcbiAgICBBbmdyeTogJ2FuZ3J5JyxcbiAgICBTYWQ6ICdzYWQnLFxuICAgIFJlbGF4ZWQ6ICdyZWxheGVkJyxcbiAgICBMb29rVXA6ICdsb29rVXAnLFxuICAgIFN1cnByaXNlZDogJ3N1cnByaXNlZCcsXG4gICAgTG9va0Rvd246ICdsb29rRG93bicsXG4gICAgTG9va0xlZnQ6ICdsb29rTGVmdCcsXG4gICAgTG9va1JpZ2h0OiAnbG9va1JpZ2h0JyxcbiAgICBCbGlua0xlZnQ6ICdibGlua0xlZnQnLFxuICAgIEJsaW5rUmlnaHQ6ICdibGlua1JpZ2h0JyxcbiAgICBOZXV0cmFsOiAnbmV1dHJhbCcsXG59O1xuXG4vKipcbiAqIENsYW1wIHRoZSBpbnB1dCB2YWx1ZSB3aXRoaW4gWzAuMCAtIDEuMF0uXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBpbnB1dCB2YWx1ZVxuICovXG5mdW5jdGlvbiBzYXR1cmF0ZSh2YWx1ZSkge1xuICAgIHJldHVybiBNYXRoLm1heChNYXRoLm1pbih2YWx1ZSwgMS4wKSwgMC4wKTtcbn1cblxuY2xhc3MgVlJNRXhwcmVzc2lvbk1hbmFnZXIge1xuICAgIGdldCBleHByZXNzaW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cHJlc3Npb25zLmNvbmNhdCgpO1xuICAgIH1cbiAgICBnZXQgZXhwcmVzc2lvbk1hcCgpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2V4cHJlc3Npb25NYXApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIG1hcCBmcm9tIG5hbWUgdG8gZXhwcmVzc2lvbiwgYnV0IGV4Y2x1ZGluZyBjdXN0b20gZXhwcmVzc2lvbnMuXG4gICAgICovXG4gICAgZ2V0IHByZXNldEV4cHJlc3Npb25NYXAoKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBjb25zdCBwcmVzZXROYW1lU2V0ID0gbmV3IFNldChPYmplY3QudmFsdWVzKFZSTUV4cHJlc3Npb25QcmVzZXROYW1lKSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX2V4cHJlc3Npb25NYXApLmZvckVhY2goKFtuYW1lLCBleHByZXNzaW9uXSkgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXNldE5hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W25hbWVdID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgbWFwIGZyb20gbmFtZSB0byBleHByZXNzaW9uLCBidXQgZXhjbHVkaW5nIHByZXNldCBleHByZXNzaW9ucy5cbiAgICAgKi9cbiAgICBnZXQgY3VzdG9tRXhwcmVzc2lvbk1hcCgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgIGNvbnN0IHByZXNldE5hbWVTZXQgPSBuZXcgU2V0KE9iamVjdC52YWx1ZXMoVlJNRXhwcmVzc2lvblByZXNldE5hbWUpKTtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5fZXhwcmVzc2lvbk1hcCkuZm9yRWFjaCgoW25hbWUsIGV4cHJlc3Npb25dKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXByZXNldE5hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W25hbWVdID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgVlJNRXhwcmVzc2lvbk1hbmFnZXJ9LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXQgb2YgbmFtZSBvciBwcmVzZXQgbmFtZSBvZiBleHByZXNzaW9ucyB0aGF0IHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB7QGxpbmsgVlJNRXhwcmVzc2lvbi5vdmVycmlkZUJsaW5rfS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYmxpbmtFeHByZXNzaW9uTmFtZXMgPSBbJ2JsaW5rJywgJ2JsaW5rTGVmdCcsICdibGlua1JpZ2h0J107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHNldCBvZiBuYW1lIG9yIHByZXNldCBuYW1lIG9mIGV4cHJlc3Npb25zIHRoYXQgd2lsbCBiZSBvdmVycmlkZGVuIGJ5IHtAbGluayBWUk1FeHByZXNzaW9uLm92ZXJyaWRlTG9va0F0fS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubG9va0F0RXhwcmVzc2lvbk5hbWVzID0gWydsb29rTGVmdCcsICdsb29rUmlnaHQnLCAnbG9va1VwJywgJ2xvb2tEb3duJ107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHNldCBvZiBuYW1lIG9yIHByZXNldCBuYW1lIG9mIGV4cHJlc3Npb25zIHRoYXQgd2lsbCBiZSBvdmVycmlkZGVuIGJ5IHtAbGluayBWUk1FeHByZXNzaW9uLm92ZXJyaWRlTW91dGh9LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tb3V0aEV4cHJlc3Npb25OYW1lcyA9IFsnYWEnLCAnZWUnLCAnaWgnLCAnb2gnLCAnb3UnXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgc2V0IG9mIHtAbGluayBWUk1FeHByZXNzaW9ufS5cbiAgICAgICAgICogV2hlbiB5b3Ugd2FudCB0byByZWdpc3RlciBleHByZXNzaW9ucywgdXNlIHtAbGluayByZWdpc3RlckV4cHJlc3Npb259XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9leHByZXNzaW9ucyA9IFtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBtYXAgZnJvbSBuYW1lIHRvIGV4cHJlc3Npb24uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9leHByZXNzaW9uTWFwID0ge307XG4gICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29weSB0aGUgZ2l2ZW4ge0BsaW5rIFZSTUV4cHJlc3Npb25NYW5hZ2VyfSBpbnRvIHRoaXMgb25lLlxuICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn0geW91IHdhbnQgdG8gY29weVxuICAgICAqIEByZXR1cm5zIHRoaXNcbiAgICAgKi9cbiAgICBjb3B5KHNvdXJjZSkge1xuICAgICAgICAvLyBmaXJzdCB1bnJlZ2lzdGVyIGFsbCB0aGUgZXhwcmVzc2lvbiBpdCBoYXNcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbnMgPSB0aGlzLl9leHByZXNzaW9ucy5jb25jYXQoKTtcbiAgICAgICAgZXhwcmVzc2lvbnMuZm9yRWFjaCgoZXhwcmVzc2lvbikgPT4ge1xuICAgICAgICAgICAgdGhpcy51bnJlZ2lzdGVyRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRoZW4gcmVnaXN0ZXIgYWxsIHRoZSBleHByZXNzaW9uIG9mIHRoZSBzb3VyY2VcbiAgICAgICAgc291cmNlLl9leHByZXNzaW9ucy5mb3JFYWNoKChleHByZXNzaW9uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvcHkgcmVtYWluaW5nIG1lbWJlcnNcbiAgICAgICAgdGhpcy5ibGlua0V4cHJlc3Npb25OYW1lcyA9IHNvdXJjZS5ibGlua0V4cHJlc3Npb25OYW1lcy5jb25jYXQoKTtcbiAgICAgICAgdGhpcy5sb29rQXRFeHByZXNzaW9uTmFtZXMgPSBzb3VyY2UubG9va0F0RXhwcmVzc2lvbk5hbWVzLmNvbmNhdCgpO1xuICAgICAgICB0aGlzLm1vdXRoRXhwcmVzc2lvbk5hbWVzID0gc291cmNlLm1vdXRoRXhwcmVzc2lvbk5hbWVzLmNvbmNhdCgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNsb25lIG9mIHRoaXMge0BsaW5rIFZSTUV4cHJlc3Npb25NYW5hZ2VyfS5cbiAgICAgKiBAcmV0dXJucyBDb3BpZWQge0BsaW5rIFZSTUV4cHJlc3Npb25NYW5hZ2VyfVxuICAgICAqL1xuICAgIGNsb25lKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZSTUV4cHJlc3Npb25NYW5hZ2VyKCkuY29weSh0aGlzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgcmVnaXN0ZXJlZCBleHByZXNzaW9uLlxuICAgICAqIElmIGl0IGNhbm5vdCBmaW5kIGFuIGV4cHJlc3Npb24sIGl0IHdpbGwgcmV0dXJuIGBudWxsYCBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgTmFtZSBvciBwcmVzZXQgbmFtZSBvZiB0aGUgZXhwcmVzc2lvblxuICAgICAqL1xuICAgIGdldEV4cHJlc3Npb24obmFtZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoX2EgPSB0aGlzLl9leHByZXNzaW9uTWFwW25hbWVdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhbiBleHByZXNzaW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV4cHJlc3Npb24ge0BsaW5rIFZSTUV4cHJlc3Npb259IHRoYXQgZGVzY3JpYmVzIHRoZSBleHByZXNzaW9uXG4gICAgICovXG4gICAgcmVnaXN0ZXJFeHByZXNzaW9uKGV4cHJlc3Npb24pIHtcbiAgICAgICAgdGhpcy5fZXhwcmVzc2lvbnMucHVzaChleHByZXNzaW9uKTtcbiAgICAgICAgdGhpcy5fZXhwcmVzc2lvbk1hcFtleHByZXNzaW9uLmV4cHJlc3Npb25OYW1lXSA9IGV4cHJlc3Npb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgYW4gZXhwcmVzc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHlvdSB3YW50IHRvIHVucmVnaXN0ZXJcbiAgICAgKi9cbiAgICB1bnJlZ2lzdGVyRXhwcmVzc2lvbihleHByZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fZXhwcmVzc2lvbnMuaW5kZXhPZihleHByZXNzaW9uKTtcbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdWUk1FeHByZXNzaW9uTWFuYWdlcjogVGhlIHNwZWNpZmllZCBleHByZXNzaW9ucyBpcyBub3QgcmVnaXN0ZXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4cHJlc3Npb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9leHByZXNzaW9uTWFwW2V4cHJlc3Npb24uZXhwcmVzc2lvbk5hbWVdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGN1cnJlbnQgd2VpZ2h0IG9mIHRoZSBzcGVjaWZpZWQgZXhwcmVzc2lvbi5cbiAgICAgKiBJZiBpdCBkb2Vzbid0IGhhdmUgYW4gZXhwcmVzc2lvbiBvZiBnaXZlbiBuYW1lLCBpdCB3aWxsIHJldHVybiBgbnVsbGAgaW5zdGVhZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGV4cHJlc3Npb25cbiAgICAgKi9cbiAgICBnZXRWYWx1ZShuYW1lKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXMuZ2V0RXhwcmVzc2lvbihuYW1lKTtcbiAgICAgICAgcmV0dXJuIChfYSA9IGV4cHJlc3Npb24gPT09IG51bGwgfHwgZXhwcmVzc2lvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwcmVzc2lvbi53ZWlnaHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCBhIHdlaWdodCB0byB0aGUgc3BlY2lmaWVkIGV4cHJlc3Npb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBleHByZXNzaW9uXG4gICAgICogQHBhcmFtIHdlaWdodCBXZWlnaHRcbiAgICAgKi9cbiAgICBzZXRWYWx1ZShuYW1lLCB3ZWlnaHQpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXMuZ2V0RXhwcmVzc2lvbihuYW1lKTtcbiAgICAgICAgaWYgKGV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIGV4cHJlc3Npb24ud2VpZ2h0ID0gc2F0dXJhdGUod2VpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgYSB0cmFjayBuYW1lIG9mIHNwZWNpZmllZCBleHByZXNzaW9uLlxuICAgICAqIFRoaXMgdHJhY2sgbmFtZSBpcyBuZWVkZWQgdG8gbWFuaXB1bGF0ZSBpdHMgZXhwcmVzc2lvbiB2aWEga2V5ZnJhbWUgYW5pbWF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlIE1hbmlwdWxhdGUgYW4gZXhwcmVzc2lvbiB1c2luZyBrZXlmcmFtZSBhbmltYXRpb25cbiAgICAgKiBgYGBqc1xuICAgICAqIGNvbnN0IHRyYWNrTmFtZSA9IHZybS5leHByZXNzaW9uTWFuYWdlci5nZXRFeHByZXNzaW9uVHJhY2tOYW1lKCAnYmxpbmsnICk7XG4gICAgICogY29uc3QgdHJhY2sgPSBuZXcgVEhSRUUuTnVtYmVyS2V5ZnJhbWVUcmFjayhcbiAgICAgKiAgIG5hbWUsXG4gICAgICogICBbIDAuMCwgMC41LCAxLjAgXSwgLy8gdGltZXNcbiAgICAgKiAgIFsgMC4wLCAxLjAsIDAuMCBdIC8vIHZhbHVlc1xuICAgICAqICk7XG4gICAgICpcbiAgICAgKiBjb25zdCBjbGlwID0gbmV3IFRIUkVFLkFuaW1hdGlvbkNsaXAoXG4gICAgICogICAnYmxpbmsnLCAvLyBuYW1lXG4gICAgICogICAxLjAsIC8vIGR1cmF0aW9uXG4gICAgICogICBbIHRyYWNrIF0gLy8gdHJhY2tzXG4gICAgICogKTtcbiAgICAgKlxuICAgICAqIGNvbnN0IG1peGVyID0gbmV3IFRIUkVFLkFuaW1hdGlvbk1peGVyKCB2cm0uc2NlbmUgKTtcbiAgICAgKiBjb25zdCBhY3Rpb24gPSBtaXhlci5jbGlwQWN0aW9uKCBjbGlwICk7XG4gICAgICogYWN0aW9uLnBsYXkoKTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGV4cHJlc3Npb25cbiAgICAgKi9cbiAgICBnZXRFeHByZXNzaW9uVHJhY2tOYW1lKG5hbWUpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXMuZ2V0RXhwcmVzc2lvbihuYW1lKTtcbiAgICAgICAgcmV0dXJuIGV4cHJlc3Npb24gPyBgJHtleHByZXNzaW9uLm5hbWV9LndlaWdodGAgOiBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgZXZlcnkgZXhwcmVzc2lvbnMuXG4gICAgICovXG4gICAgdXBkYXRlKCkge1xuICAgICAgICAvLyBzZWUgaG93IG11Y2ggd2Ugc2hvdWxkIG92ZXJyaWRlIGNlcnRhaW4gZXhwcmVzc2lvbnNcbiAgICAgICAgY29uc3Qgd2VpZ2h0TXVsdGlwbGllcnMgPSB0aGlzLl9jYWxjdWxhdGVXZWlnaHRNdWx0aXBsaWVycygpO1xuICAgICAgICAvLyByZXNldCBleHByZXNzaW9uIGJpbmRzIGZpcnN0XG4gICAgICAgIHRoaXMuX2V4cHJlc3Npb25zLmZvckVhY2goKGV4cHJlc3Npb24pID0+IHtcbiAgICAgICAgICAgIGV4cHJlc3Npb24uY2xlYXJBcHBsaWVkV2VpZ2h0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyB0aGVuIGFwcGx5IGJpbmRzXG4gICAgICAgIHRoaXMuX2V4cHJlc3Npb25zLmZvckVhY2goKGV4cHJlc3Npb24pID0+IHtcbiAgICAgICAgICAgIGxldCBtdWx0aXBsaWVyID0gMS4wO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGV4cHJlc3Npb24uZXhwcmVzc2lvbk5hbWU7XG4gICAgICAgICAgICBpZiAodGhpcy5ibGlua0V4cHJlc3Npb25OYW1lcy5pbmRleE9mKG5hbWUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIG11bHRpcGxpZXIgKj0gd2VpZ2h0TXVsdGlwbGllcnMuYmxpbms7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5sb29rQXRFeHByZXNzaW9uTmFtZXMuaW5kZXhPZihuYW1lKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBtdWx0aXBsaWVyICo9IHdlaWdodE11bHRpcGxpZXJzLmxvb2tBdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1vdXRoRXhwcmVzc2lvbk5hbWVzLmluZGV4T2YobmFtZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGllciAqPSB3ZWlnaHRNdWx0aXBsaWVycy5tb3V0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4cHJlc3Npb24uYXBwbHlXZWlnaHQoeyBtdWx0aXBsaWVyIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHN1bSBvZiBvdmVycmlkZSBhbW91bnRzIHRvIHNlZSBob3cgbXVjaCB3ZSBzaG91bGQgbXVsdGlwbHkgd2VpZ2h0cyBvZiBjZXJ0YWluIGV4cHJlc3Npb25zLlxuICAgICAqL1xuICAgIF9jYWxjdWxhdGVXZWlnaHRNdWx0aXBsaWVycygpIHtcbiAgICAgICAgbGV0IGJsaW5rID0gMS4wO1xuICAgICAgICBsZXQgbG9va0F0ID0gMS4wO1xuICAgICAgICBsZXQgbW91dGggPSAxLjA7XG4gICAgICAgIHRoaXMuX2V4cHJlc3Npb25zLmZvckVhY2goKGV4cHJlc3Npb24pID0+IHtcbiAgICAgICAgICAgIGJsaW5rIC09IGV4cHJlc3Npb24ub3ZlcnJpZGVCbGlua0Ftb3VudDtcbiAgICAgICAgICAgIGxvb2tBdCAtPSBleHByZXNzaW9uLm92ZXJyaWRlTG9va0F0QW1vdW50O1xuICAgICAgICAgICAgbW91dGggLT0gZXhwcmVzc2lvbi5vdmVycmlkZU1vdXRoQW1vdW50O1xuICAgICAgICB9KTtcbiAgICAgICAgYmxpbmsgPSBNYXRoLm1heCgwLjAsIGJsaW5rKTtcbiAgICAgICAgbG9va0F0ID0gTWF0aC5tYXgoMC4wLCBsb29rQXQpO1xuICAgICAgICBtb3V0aCA9IE1hdGgubWF4KDAuMCwgbW91dGgpO1xuICAgICAgICByZXR1cm4geyBibGluaywgbG9va0F0LCBtb3V0aCB9O1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5jb25zdCBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvclR5cGUgPSB7XG4gICAgQ29sb3I6ICdjb2xvcicsXG4gICAgRW1pc3Npb25Db2xvcjogJ2VtaXNzaW9uQ29sb3InLFxuICAgIFNoYWRlQ29sb3I6ICdzaGFkZUNvbG9yJyxcbiAgICBNYXRjYXBDb2xvcjogJ21hdGNhcENvbG9yJyxcbiAgICBSaW1Db2xvcjogJ3JpbUNvbG9yJyxcbiAgICBPdXRsaW5lQ29sb3I6ICdvdXRsaW5lQ29sb3InLFxufTtcbmNvbnN0IHYwRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JNYXAgPSB7XG4gICAgX0NvbG9yOiBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvclR5cGUuQ29sb3IsXG4gICAgX0VtaXNzaW9uQ29sb3I6IFZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yVHlwZS5FbWlzc2lvbkNvbG9yLFxuICAgIF9TaGFkZUNvbG9yOiBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvclR5cGUuU2hhZGVDb2xvcixcbiAgICBfUmltQ29sb3I6IFZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yVHlwZS5SaW1Db2xvcixcbiAgICBfT3V0bGluZUNvbG9yOiBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvclR5cGUuT3V0bGluZUNvbG9yLFxufTtcblxuY29uc3QgX2NvbG9yID0gbmV3IFRIUkVFLkNvbG9yKCk7XG4vKipcbiAqIEEgYmluZCBvZiBleHByZXNzaW9uIGluZmx1ZW5jZXMgdG8gYSBtYXRlcmlhbCBjb2xvci5cbiAqL1xuY2xhc3MgVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JCaW5kIHtcbiAgICBjb25zdHJ1Y3Rvcih7IG1hdGVyaWFsLCB0eXBlLCB0YXJnZXRWYWx1ZSwgdGFyZ2V0QWxwaGEsIH0pIHtcbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgICAgICB0aGlzLnRhcmdldFZhbHVlID0gdGFyZ2V0VmFsdWU7XG4gICAgICAgIHRoaXMudGFyZ2V0QWxwaGEgPSB0YXJnZXRBbHBoYSAhPT0gbnVsbCAmJiB0YXJnZXRBbHBoYSAhPT0gdm9pZCAwID8gdGFyZ2V0QWxwaGEgOiAxLjA7XG4gICAgICAgIC8vIGluaXQgYmluZCBzdGF0ZVxuICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMuX2luaXRDb2xvckJpbmRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBhbHBoYSA9IHRoaXMuX2luaXRBbHBoYUJpbmRTdGF0ZSgpO1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IHsgY29sb3IsIGFscGhhIH07XG4gICAgfVxuICAgIGFwcGx5V2VpZ2h0KHdlaWdodCkge1xuICAgICAgICBjb25zdCB7IGNvbG9yLCBhbHBoYSB9ID0gdGhpcy5fc3RhdGU7XG4gICAgICAgIGlmIChjb2xvciAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB7IHByb3BlcnR5TmFtZSwgZGVsdGFWYWx1ZSB9ID0gY29sb3I7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLm1hdGVyaWFsW3Byb3BlcnR5TmFtZV07XG4gICAgICAgICAgICBpZiAodGFyZ2V0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRhcmdldC5hZGQoX2NvbG9yLmNvcHkoZGVsdGFWYWx1ZSkubXVsdGlwbHlTY2FsYXIod2VpZ2h0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFscGhhICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydHlOYW1lLCBkZWx0YVZhbHVlIH0gPSBhbHBoYTtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMubWF0ZXJpYWxbcHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXRlcmlhbFtwcm9wZXJ0eU5hbWVdICs9IGRlbHRhVmFsdWUgKiB3ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xlYXJBcHBsaWVkV2VpZ2h0KCkge1xuICAgICAgICBjb25zdCB7IGNvbG9yLCBhbHBoYSB9ID0gdGhpcy5fc3RhdGU7XG4gICAgICAgIGlmIChjb2xvciAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB7IHByb3BlcnR5TmFtZSwgaW5pdGlhbFZhbHVlIH0gPSBjb2xvcjtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMubWF0ZXJpYWxbcHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmNvcHkoaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxwaGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgeyBwcm9wZXJ0eU5hbWUsIGluaXRpYWxWYWx1ZSB9ID0gYWxwaGE7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLm1hdGVyaWFsW3Byb3BlcnR5TmFtZV07XG4gICAgICAgICAgICBpZiAodGFyZ2V0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWF0ZXJpYWxbcHJvcGVydHlOYW1lXSA9IGluaXRpYWxWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBfaW5pdENvbG9yQmluZFN0YXRlKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgY29uc3QgeyBtYXRlcmlhbCwgdHlwZSwgdGFyZ2V0VmFsdWUgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZU1hcCA9IHRoaXMuX2dldFByb3BlcnR5TmFtZU1hcCgpO1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAoX2IgPSAoX2EgPSBwcm9wZXJ0eU5hbWVNYXAgPT09IG51bGwgfHwgcHJvcGVydHlOYW1lTWFwID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wZXJ0eU5hbWVNYXBbdHlwZV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVswXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbnVsbDtcbiAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFRyaWVkIHRvIGFkZCBhIG1hdGVyaWFsIGNvbG9yIGJpbmQgdG8gdGhlIG1hdGVyaWFsICR7KF9jID0gbWF0ZXJpYWwubmFtZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJyhubyBuYW1lKSd9LCB0aGUgdHlwZSAke3R5cGV9IGJ1dCB0aGUgbWF0ZXJpYWwgb3IgdGhlIHR5cGUgaXMgbm90IHN1cHBvcnRlZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IG1hdGVyaWFsW3Byb3BlcnR5TmFtZV07XG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRhcmdldC5jbG9uZSgpO1xuICAgICAgICAvLyDosqDjga7lgKTjgpLkv53mjIHjgZnjgovjgZ/jgoHjgatDb2xvci5zdWLjgpLkvb/jgo/jgZrjgavlt67liIbjgpLoqIjnrpfjgZnjgotcbiAgICAgICAgY29uc3QgZGVsdGFWYWx1ZSA9IG5ldyBUSFJFRS5Db2xvcih0YXJnZXRWYWx1ZS5yIC0gaW5pdGlhbFZhbHVlLnIsIHRhcmdldFZhbHVlLmcgLSBpbml0aWFsVmFsdWUuZywgdGFyZ2V0VmFsdWUuYiAtIGluaXRpYWxWYWx1ZS5iKTtcbiAgICAgICAgcmV0dXJuIHsgcHJvcGVydHlOYW1lLCBpbml0aWFsVmFsdWUsIGRlbHRhVmFsdWUgfTtcbiAgICB9XG4gICAgX2luaXRBbHBoYUJpbmRTdGF0ZSgpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IHsgbWF0ZXJpYWwsIHR5cGUsIHRhcmdldEFscGhhIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWVNYXAgPSB0aGlzLl9nZXRQcm9wZXJ0eU5hbWVNYXAoKTtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gKF9iID0gKF9hID0gcHJvcGVydHlOYW1lTWFwID09PSBudWxsIHx8IHByb3BlcnR5TmFtZU1hcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcGVydHlOYW1lTWFwW3R5cGVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMV0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7XG4gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gbnVsbCAmJiB0YXJnZXRBbHBoYSAhPT0gMS4wKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFRyaWVkIHRvIGFkZCBhIG1hdGVyaWFsIGFscGhhIGJpbmQgdG8gdGhlIG1hdGVyaWFsICR7KF9jID0gbWF0ZXJpYWwubmFtZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJyhubyBuYW1lKSd9LCB0aGUgdHlwZSAke3R5cGV9IGJ1dCB0aGUgbWF0ZXJpYWwgb3IgdGhlIHR5cGUgZG9lcyBub3Qgc3VwcG9ydCBhbHBoYS5gKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gbWF0ZXJpYWxbcHJvcGVydHlOYW1lXTtcbiAgICAgICAgY29uc3QgZGVsdGFWYWx1ZSA9IHRhcmdldEFscGhhIC0gaW5pdGlhbFZhbHVlO1xuICAgICAgICByZXR1cm4geyBwcm9wZXJ0eU5hbWUsIGluaXRpYWxWYWx1ZSwgZGVsdGFWYWx1ZSB9O1xuICAgIH1cbiAgICBfZ2V0UHJvcGVydHlOYW1lTWFwKCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gKChfYiA9IChfYSA9IE9iamVjdC5lbnRyaWVzKFZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yQmluZC5fcHJvcGVydHlOYW1lTWFwTWFwKS5maW5kKChbZGlzdGluZ3Vpc2hlcl0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hdGVyaWFsW2Rpc3Rpbmd1aXNoZXJdID09PSB0cnVlO1xuICAgICAgICB9KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsKTtcbiAgICB9XG59XG4vKipcbiAqIE1hcHBpbmcgb2YgcHJvcGVydHkgbmFtZXMgZnJvbSBWUk1DL21hdGVyaWFsQ29sb3JCaW5kcy50eXBlIHRvIHRocmVlLmpzL01hdGVyaWFsLlxuICogVGhlIGZpcnN0IGVsZW1lbnQgc3RhbmRzIGZvciBjb2xvciBjaGFubmVscywgdGhlIHNlY29uZCBlbGVtZW50IHN0YW5kcyBmb3IgdGhlIGFscGhhIGNoYW5uZWwuXG4gKiBUaGUgc2Vjb25kIGVsZW1lbnQgY2FuIGJlIG51bGwgaWYgdGhlIHRhcmdldCBwcm9wZXJ0eSBkb2Vzbid0IGV4aXN0LlxuICovXG4vLyBUT0RPOiBXZSBtaWdodCB3YW50IHRvIHVzZSB0aGUgYHNhdGlzZmllc2Agb3BlcmF0b3Igb25jZSB3ZSBidW1wIFRTIHRvIDQuOSBvciBoaWdoZXJcbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3BpeGl2L3RocmVlLXZybS9wdWxsLzEzMjMjZGlzY3Vzc2lvbl9yMTM3NDAyMDAzNVxuVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JCaW5kLl9wcm9wZXJ0eU5hbWVNYXBNYXAgPSB7XG4gICAgaXNNZXNoU3RhbmRhcmRNYXRlcmlhbDoge1xuICAgICAgICBjb2xvcjogWydjb2xvcicsICdvcGFjaXR5J10sXG4gICAgICAgIGVtaXNzaW9uQ29sb3I6IFsnZW1pc3NpdmUnLCBudWxsXSxcbiAgICB9LFxuICAgIGlzTWVzaEJhc2ljTWF0ZXJpYWw6IHtcbiAgICAgICAgY29sb3I6IFsnY29sb3InLCAnb3BhY2l0eSddLFxuICAgIH0sXG4gICAgaXNNVG9vbk1hdGVyaWFsOiB7XG4gICAgICAgIGNvbG9yOiBbJ2NvbG9yJywgJ29wYWNpdHknXSxcbiAgICAgICAgZW1pc3Npb25Db2xvcjogWydlbWlzc2l2ZScsIG51bGxdLFxuICAgICAgICBvdXRsaW5lQ29sb3I6IFsnb3V0bGluZUNvbG9yRmFjdG9yJywgbnVsbF0sXG4gICAgICAgIG1hdGNhcENvbG9yOiBbJ21hdGNhcEZhY3RvcicsIG51bGxdLFxuICAgICAgICByaW1Db2xvcjogWydwYXJhbWV0cmljUmltQ29sb3JGYWN0b3InLCBudWxsXSxcbiAgICAgICAgc2hhZGVDb2xvcjogWydzaGFkZUNvbG9yRmFjdG9yJywgbnVsbF0sXG4gICAgfSxcbn07XG5cbi8qKlxuICogQSBiaW5kIG9mIHtAbGluayBWUk1FeHByZXNzaW9ufSBpbmZsdWVuY2VzIHRvIG1vcnBoIHRhcmdldHMuXG4gKi9cbmNsYXNzIFZSTUV4cHJlc3Npb25Nb3JwaFRhcmdldEJpbmQge1xuICAgIGNvbnN0cnVjdG9yKHsgcHJpbWl0aXZlcywgaW5kZXgsIHdlaWdodCwgfSkge1xuICAgICAgICB0aGlzLnByaW1pdGl2ZXMgPSBwcmltaXRpdmVzO1xuICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMud2VpZ2h0ID0gd2VpZ2h0O1xuICAgIH1cbiAgICBhcHBseVdlaWdodCh3ZWlnaHQpIHtcbiAgICAgICAgdGhpcy5wcmltaXRpdmVzLmZvckVhY2goKG1lc2gpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGlmICgoKF9hID0gbWVzaC5tb3JwaFRhcmdldEluZmx1ZW5jZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVt0aGlzLmluZGV4XSkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG1lc2gubW9ycGhUYXJnZXRJbmZsdWVuY2VzW3RoaXMuaW5kZXhdICs9IHRoaXMud2VpZ2h0ICogd2VpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2xlYXJBcHBsaWVkV2VpZ2h0KCkge1xuICAgICAgICB0aGlzLnByaW1pdGl2ZXMuZm9yRWFjaCgobWVzaCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgaWYgKCgoX2EgPSBtZXNoLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3RoaXMuaW5kZXhdKSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbWVzaC5tb3JwaFRhcmdldEluZmx1ZW5jZXNbdGhpcy5pbmRleF0gPSAwLjA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuY29uc3QgX3YyID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcbi8qKlxuICogQSBiaW5kIG9mIGV4cHJlc3Npb24gaW5mbHVlbmNlcyB0byB0ZXh0dXJlIHRyYW5zZm9ybXMuXG4gKi9cbmNsYXNzIFZSTUV4cHJlc3Npb25UZXh0dXJlVHJhbnNmb3JtQmluZCB7XG4gICAgY29uc3RydWN0b3IoeyBtYXRlcmlhbCwgc2NhbGUsIG9mZnNldCwgfSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICB0aGlzLm1hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgICAgIHRoaXMuc2NhbGUgPSBzY2FsZTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZXMgPSAoX2EgPSBPYmplY3QuZW50cmllcyhWUk1FeHByZXNzaW9uVGV4dHVyZVRyYW5zZm9ybUJpbmQuX3Byb3BlcnR5TmFtZXNNYXApLmZpbmQoKFtkaXN0aW5ndWlzaGVyXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGVyaWFsW2Rpc3Rpbmd1aXNoZXJdID09PSB0cnVlO1xuICAgICAgICB9KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdO1xuICAgICAgICBpZiAocHJvcGVydHlOYW1lcyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFRyaWVkIHRvIGFkZCBhIHRleHR1cmUgdHJhbnNmb3JtIGJpbmQgdG8gdGhlIG1hdGVyaWFsICR7KF9iID0gbWF0ZXJpYWwubmFtZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJyhubyBuYW1lKSd9IGJ1dCB0aGUgbWF0ZXJpYWwgaXMgbm90IHN1cHBvcnRlZC5gKTtcbiAgICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBbXTtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuZm9yRWFjaCgocHJvcGVydHlOYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHR1cmUgPSAoX2EgPSBtYXRlcmlhbFtwcm9wZXJ0eU5hbWVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1hdGVyaWFsW3Byb3BlcnR5TmFtZV0gPSB0ZXh0dXJlOyAvLyBiZWNhdXNlIHRoZSB0ZXh0dXJlIGlzIGNsb25lZFxuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxPZmZzZXQgPSB0ZXh0dXJlLm9mZnNldC5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxTY2FsZSA9IHRleHR1cmUucmVwZWF0LmNsb25lKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVsdGFPZmZzZXQgPSBvZmZzZXQuY2xvbmUoKS5zdWIoaW5pdGlhbE9mZnNldCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVsdGFTY2FsZSA9IHNjYWxlLmNsb25lKCkuc3ViKGluaXRpYWxTY2FsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvcGVydGllcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBkZWx0YU9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFNjYWxlLFxuICAgICAgICAgICAgICAgICAgICBkZWx0YVNjYWxlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXBwbHlXZWlnaHQod2VpZ2h0KSB7XG4gICAgICAgIHRoaXMuX3Byb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMubWF0ZXJpYWxbcHJvcGVydHkubmFtZV07XG4gICAgICAgICAgICBpZiAodGFyZ2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IC8vIFRPRE86IHdlIHNob3VsZCBraWNrIHRoaXMgYXQgYGFkZE1hdGVyaWFsVmFsdWVgXG4gICAgICAgICAgICB0YXJnZXQub2Zmc2V0LmFkZChfdjIuY29weShwcm9wZXJ0eS5kZWx0YU9mZnNldCkubXVsdGlwbHlTY2FsYXIod2VpZ2h0KSk7XG4gICAgICAgICAgICB0YXJnZXQucmVwZWF0LmFkZChfdjIuY29weShwcm9wZXJ0eS5kZWx0YVNjYWxlKS5tdWx0aXBseVNjYWxhcih3ZWlnaHQpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNsZWFyQXBwbGllZFdlaWdodCgpIHtcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5tYXRlcmlhbFtwcm9wZXJ0eS5uYW1lXTtcbiAgICAgICAgICAgIGlmICh0YXJnZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gLy8gVE9ETzogd2Ugc2hvdWxkIGtpY2sgdGhpcyBhdCBgYWRkTWF0ZXJpYWxWYWx1ZWBcbiAgICAgICAgICAgIHRhcmdldC5vZmZzZXQuY29weShwcm9wZXJ0eS5pbml0aWFsT2Zmc2V0KTtcbiAgICAgICAgICAgIHRhcmdldC5yZXBlYXQuY29weShwcm9wZXJ0eS5pbml0aWFsU2NhbGUpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5WUk1FeHByZXNzaW9uVGV4dHVyZVRyYW5zZm9ybUJpbmQuX3Byb3BlcnR5TmFtZXNNYXAgPSB7XG4gICAgaXNNZXNoU3RhbmRhcmRNYXRlcmlhbDogW1xuICAgICAgICAnbWFwJyxcbiAgICAgICAgJ2VtaXNzaXZlTWFwJyxcbiAgICAgICAgJ2J1bXBNYXAnLFxuICAgICAgICAnbm9ybWFsTWFwJyxcbiAgICAgICAgJ2Rpc3BsYWNlbWVudE1hcCcsXG4gICAgICAgICdyb3VnaG5lc3NNYXAnLFxuICAgICAgICAnbWV0YWxuZXNzTWFwJyxcbiAgICAgICAgJ2FscGhhTWFwJyxcbiAgICBdLFxuICAgIGlzTWVzaEJhc2ljTWF0ZXJpYWw6IFsnbWFwJywgJ3NwZWN1bGFyTWFwJywgJ2FscGhhTWFwJ10sXG4gICAgaXNNVG9vbk1hdGVyaWFsOiBbXG4gICAgICAgICdtYXAnLFxuICAgICAgICAnbm9ybWFsTWFwJyxcbiAgICAgICAgJ2VtaXNzaXZlTWFwJyxcbiAgICAgICAgJ3NoYWRlTXVsdGlwbHlUZXh0dXJlJyxcbiAgICAgICAgJ3JpbU11bHRpcGx5VGV4dHVyZScsXG4gICAgICAgICdvdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmUnLFxuICAgICAgICAndXZBbmltYXRpb25NYXNrVGV4dHVyZScsXG4gICAgXSxcbn07XG5cbi8qKlxuICogUG9zc2libGUgc3BlYyB2ZXJzaW9ucyBpdCByZWNvZ25pemVzLlxuICovXG5jb25zdCBQT1NTSUJMRV9TUEVDX1ZFUlNJT05TJDQgPSBuZXcgU2V0KFsnMS4wJywgJzEuMC1iZXRhJ10pO1xuLyoqXG4gKiBBIHBsdWdpbiBvZiBHTFRGTG9hZGVyIHRoYXQgaW1wb3J0cyBhIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn0gZnJvbSBhIFZSTSBleHRlbnNpb24gb2YgYSBHTFRGLlxuICovXG5jbGFzcyBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHVzZSB0aGUgZXh0ZW5zaW9uIG5hbWUgaW5zdGVhZCBidXQgd2UgaGF2ZSBtdWx0aXBsZSBwbHVnaW5zIGZvciBhbiBleHRlbnNpb24uLi5cbiAgICAgICAgcmV0dXJuICdWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luJztcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFyc2VyKSB7XG4gICAgICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgIH1cbiAgICBhZnRlclJvb3QoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgZ2x0Zi51c2VyRGF0YS52cm1FeHByZXNzaW9uTWFuYWdlciA9IHlpZWxkIHRoaXMuX2ltcG9ydChnbHRmKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEltcG9ydCBhIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn0gZnJvbSBhIFZSTS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBnbHRmIEEgcGFyc2VkIHJlc3VsdCBvZiBHTFRGIHRha2VuIGZyb20gR0xURkxvYWRlclxuICAgICAqL1xuICAgIF9pbXBvcnQoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdjFSZXN1bHQgPSB5aWVsZCB0aGlzLl92MUltcG9ydChnbHRmKTtcbiAgICAgICAgICAgIGlmICh2MVJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2MVJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHYwUmVzdWx0ID0geWllbGQgdGhpcy5fdjBJbXBvcnQoZ2x0Zik7XG4gICAgICAgICAgICBpZiAodjBSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjBSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MUltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gdGhpcy5wYXJzZXIuanNvbjtcbiAgICAgICAgICAgIC8vIGVhcmx5IGFib3J0IGlmIGl0IGRvZXNuJ3QgdXNlIHZybVxuICAgICAgICAgICAgY29uc3QgaXNWUk1Vc2VkID0gKChfYSA9IGpzb24uZXh0ZW5zaW9uc1VzZWQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbmRleE9mKCdWUk1DX3ZybScpKSAhPT0gLTE7XG4gICAgICAgICAgICBpZiAoIWlzVlJNVXNlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gKF9iID0ganNvbi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2JbJ1ZSTUNfdnJtJ107XG4gICAgICAgICAgICBpZiAoIWV4dGVuc2lvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3BlY1ZlcnNpb24gPSBleHRlbnNpb24uc3BlY1ZlcnNpb247XG4gICAgICAgICAgICBpZiAoIVBPU1NJQkxFX1NQRUNfVkVSU0lPTlMkNC5oYXMoc3BlY1ZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luOiBVbmtub3duIFZSTUNfdnJtIHNwZWNWZXJzaW9uIFwiJHtzcGVjVmVyc2lvbn1cImApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hRXhwcmVzc2lvbnMgPSBleHRlbnNpb24uZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICBpZiAoIXNjaGVtYUV4cHJlc3Npb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBsaXN0IGV4cHJlc3Npb25zXG4gICAgICAgICAgICBjb25zdCBwcmVzZXROYW1lU2V0ID0gbmV3IFNldChPYmplY3QudmFsdWVzKFZSTUV4cHJlc3Npb25QcmVzZXROYW1lKSk7XG4gICAgICAgICAgICBjb25zdCBuYW1lU2NoZW1hRXhwcmVzc2lvbk1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIGlmIChzY2hlbWFFeHByZXNzaW9ucy5wcmVzZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHNjaGVtYUV4cHJlc3Npb25zLnByZXNldCkuZm9yRWFjaCgoW25hbWUsIHNjaGVtYUV4cHJlc3Npb25dKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY2hlbWFFeHByZXNzaW9uID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSAvLyB0eXBlc2NyaXB0XG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJlc2V0TmFtZVNldC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbjogVW5rbm93biBwcmVzZXQgbmFtZSBcIiR7bmFtZX1cIiBkZXRlY3RlZC4gSWdub3JpbmcgdGhlIGV4cHJlc3Npb25gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lU2NoZW1hRXhwcmVzc2lvbk1hcC5zZXQobmFtZSwgc2NoZW1hRXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2NoZW1hRXhwcmVzc2lvbnMuY3VzdG9tICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhzY2hlbWFFeHByZXNzaW9ucy5jdXN0b20pLmZvckVhY2goKFtuYW1lLCBzY2hlbWFFeHByZXNzaW9uXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJlc2V0TmFtZVNldC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbjogQ3VzdG9tIGV4cHJlc3Npb24gY2Fubm90IGhhdmUgcHJlc2V0IG5hbWUgXCIke25hbWV9XCIuIElnbm9yaW5nIHRoZSBleHByZXNzaW9uYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmFtZVNjaGVtYUV4cHJlc3Npb25NYXAuc2V0KG5hbWUsIHNjaGVtYUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcHJlcGFyZSBtYW5hZ2VyXG4gICAgICAgICAgICBjb25zdCBtYW5hZ2VyID0gbmV3IFZSTUV4cHJlc3Npb25NYW5hZ2VyKCk7XG4gICAgICAgICAgICAvLyBsb2FkIGV4cHJlc3Npb25zXG4gICAgICAgICAgICB5aWVsZCBQcm9taXNlLmFsbChBcnJheS5mcm9tKG5hbWVTY2hlbWFFeHByZXNzaW9uTWFwLmVudHJpZXMoKSkubWFwKChbbmFtZSwgc2NoZW1hRXhwcmVzc2lvbl0pID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2o7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IG5ldyBWUk1FeHByZXNzaW9uKG5hbWUpO1xuICAgICAgICAgICAgICAgIGdsdGYuc2NlbmUuYWRkKGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24uaXNCaW5hcnkgPSAoX2MgPSBzY2hlbWFFeHByZXNzaW9uLmlzQmluYXJ5KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uLm92ZXJyaWRlQmxpbmsgPSAoX2QgPSBzY2hlbWFFeHByZXNzaW9uLm92ZXJyaWRlQmxpbmspICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6ICdub25lJztcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uLm92ZXJyaWRlTG9va0F0ID0gKF9lID0gc2NoZW1hRXhwcmVzc2lvbi5vdmVycmlkZUxvb2tBdCkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogJ25vbmUnO1xuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24ub3ZlcnJpZGVNb3V0aCA9IChfZiA9IHNjaGVtYUV4cHJlc3Npb24ub3ZlcnJpZGVNb3V0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogJ25vbmUnO1xuICAgICAgICAgICAgICAgIChfZyA9IHNjaGVtYUV4cHJlc3Npb24ubW9ycGhUYXJnZXRCaW5kcykgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLmZvckVhY2goKGJpbmQpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9rO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmluZC5ub2RlID09PSB1bmRlZmluZWQgfHwgYmluZC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWl0aXZlcyA9ICh5aWVsZCBnbHRmRXh0cmFjdFByaW1pdGl2ZXNGcm9tTm9kZShnbHRmLCBiaW5kLm5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ycGhUYXJnZXRJbmRleCA9IGJpbmQuaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBtZXNoIGhhcyB0aGUgdGFyZ2V0IG1vcnBoIHRhcmdldFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZXMuZXZlcnkoKHByaW1pdGl2ZSkgPT4gQXJyYXkuaXNBcnJheShwcmltaXRpdmUubW9ycGhUYXJnZXRJbmZsdWVuY2VzKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgbW9ycGhUYXJnZXRJbmRleCA8IHByaW1pdGl2ZS5tb3JwaFRhcmdldEluZmx1ZW5jZXMubGVuZ3RoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luOiAke3NjaGVtYUV4cHJlc3Npb24ubmFtZX0gYXR0ZW1wdHMgdG8gaW5kZXggbW9ycGggIyR7bW9ycGhUYXJnZXRJbmRleH0gYnV0IG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uLmFkZEJpbmQobmV3IFZSTUV4cHJlc3Npb25Nb3JwaFRhcmdldEJpbmQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWl0aXZlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBtb3JwaFRhcmdldEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAoX2sgPSBiaW5kLndlaWdodCkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogMS4wLFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWFFeHByZXNzaW9uLm1hdGVyaWFsQ29sb3JCaW5kcyB8fCBzY2hlbWFFeHByZXNzaW9uLnRleHR1cmVUcmFuc2Zvcm1CaW5kcykge1xuICAgICAgICAgICAgICAgICAgICAvLyBsaXN0IHVwIGV2ZXJ5IG1hdGVyaWFsIGluIGBnbHRmLnNjZW5lYFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBnbHRmTWF0ZXJpYWxzID0gW107XG4gICAgICAgICAgICAgICAgICAgIGdsdGYuc2NlbmUudHJhdmVyc2UoKG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBvYmplY3QubWF0ZXJpYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHRmTWF0ZXJpYWxzLnB1c2gobWF0ZXJpYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgKF9oID0gc2NoZW1hRXhwcmVzc2lvbi5tYXRlcmlhbENvbG9yQmluZHMpID09PSBudWxsIHx8IF9oID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfaC5mb3JFYWNoKChiaW5kKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRlcmlhbHMgPSBnbHRmTWF0ZXJpYWxzLmZpbHRlcigobWF0ZXJpYWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRlcmlhbEluZGV4ID0gZ2x0ZkdldEFzc29jaWF0ZWRNYXRlcmlhbEluZGV4KHRoaXMucGFyc2VyLCBtYXRlcmlhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJpbmQubWF0ZXJpYWwgPT09IG1hdGVyaWFsSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFscy5mb3JFYWNoKChtYXRlcmlhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb24uYWRkQmluZChuZXcgVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JCaW5kKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGJpbmQudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmFsdWU6IG5ldyBUSFJFRS5Db2xvcigpLmZyb21BcnJheShiaW5kLnRhcmdldFZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QWxwaGE6IGJpbmQudGFyZ2V0VmFsdWVbM10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgKF9qID0gc2NoZW1hRXhwcmVzc2lvbi50ZXh0dXJlVHJhbnNmb3JtQmluZHMpID09PSBudWxsIHx8IF9qID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfai5mb3JFYWNoKChiaW5kKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRlcmlhbHMgPSBnbHRmTWF0ZXJpYWxzLmZpbHRlcigobWF0ZXJpYWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRlcmlhbEluZGV4ID0gZ2x0ZkdldEFzc29jaWF0ZWRNYXRlcmlhbEluZGV4KHRoaXMucGFyc2VyLCBtYXRlcmlhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJpbmQubWF0ZXJpYWwgPT09IG1hdGVyaWFsSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFscy5mb3JFYWNoKChtYXRlcmlhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5hZGRCaW5kKG5ldyBWUk1FeHByZXNzaW9uVGV4dHVyZVRyYW5zZm9ybUJpbmQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBuZXcgVEhSRUUuVmVjdG9yMigpLmZyb21BcnJheSgoX2EgPSBiaW5kLm9mZnNldCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogWzAuMCwgMC4wXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlOiBuZXcgVEhSRUUuVmVjdG9yMigpLmZyb21BcnJheSgoX2IgPSBiaW5kLnNjYWxlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBbMS4wLCAxLjBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0pKSk7XG4gICAgICAgICAgICByZXR1cm4gbWFuYWdlcjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MEltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgdnJtXG4gICAgICAgICAgICBjb25zdCB2cm1FeHQgPSAoX2EgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5WUk07XG4gICAgICAgICAgICBpZiAoIXZybUV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hQmxlbmRTaGFwZSA9IHZybUV4dC5ibGVuZFNoYXBlTWFzdGVyO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFCbGVuZFNoYXBlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtYW5hZ2VyID0gbmV3IFZSTUV4cHJlc3Npb25NYW5hZ2VyKCk7XG4gICAgICAgICAgICBjb25zdCBzY2hlbWFCbGVuZFNoYXBlR3JvdXBzID0gc2NoZW1hQmxlbmRTaGFwZS5ibGVuZFNoYXBlR3JvdXBzO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFCbGVuZFNoYXBlR3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBibGVuZFNoYXBlTmFtZVNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIHlpZWxkIFByb21pc2UuYWxsKHNjaGVtYUJsZW5kU2hhcGVHcm91cHMubWFwKChzY2hlbWFHcm91cCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYjtcbiAgICAgICAgICAgICAgICBjb25zdCB2MFByZXNldE5hbWUgPSBzY2hlbWFHcm91cC5wcmVzZXROYW1lO1xuICAgICAgICAgICAgICAgIGNvbnN0IHYxUHJlc2V0TmFtZSA9ICh2MFByZXNldE5hbWUgIT0gbnVsbCAmJiBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luLnYwdjFQcmVzZXROYW1lTWFwW3YwUHJlc2V0TmFtZV0pIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IHYxUHJlc2V0TmFtZSAhPT0gbnVsbCAmJiB2MVByZXNldE5hbWUgIT09IHZvaWQgMCA/IHYxUHJlc2V0TmFtZSA6IHNjaGVtYUdyb3VwLm5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUV4cHJlc3Npb25Mb2FkZXJQbHVnaW46IE9uZSBvZiBjdXN0b20gZXhwcmVzc2lvbnMgaGFzIG5vIG5hbWUuIElnbm9yaW5nIHRoZSBleHByZXNzaW9uJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZHVwbGljYXRpb24gY2hlY2tcbiAgICAgICAgICAgICAgICBpZiAoYmxlbmRTaGFwZU5hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbjogQW4gZXhwcmVzc2lvbiBwcmVzZXQgJHt2MFByZXNldE5hbWV9IGhhcyBkdXBsaWNhdGVkIGVudHJpZXMuIElnbm9yaW5nIHRoZSBleHByZXNzaW9uYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYmxlbmRTaGFwZU5hbWVTZXQuYWRkKG5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBuZXcgVlJNRXhwcmVzc2lvbihuYW1lKTtcbiAgICAgICAgICAgICAgICBnbHRmLnNjZW5lLmFkZChleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uLmlzQmluYXJ5ID0gKF9iID0gc2NoZW1hR3JvdXAuaXNCaW5hcnkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIHYwIGRvZXNuJ3QgaGF2ZSBpZ25vcmUgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIC8vIEJpbmQgbW9ycGhUYXJnZXRcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hR3JvdXAuYmluZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NoZW1hR3JvdXAuYmluZHMuZm9yRWFjaCgoYmluZCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9jO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJpbmQubWVzaCA9PT0gdW5kZWZpbmVkIHx8IGJpbmQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVzVXNpbmdNZXNoID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAoX2MgPSBqc29uLm5vZGVzKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZm9yRWFjaCgobm9kZSwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLm1lc2ggPT09IGJpbmQubWVzaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rlc1VzaW5nTWVzaC5wdXNoKGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ycGhUYXJnZXRJbmRleCA9IGJpbmQuaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCBQcm9taXNlLmFsbChub2Rlc1VzaW5nTWVzaC5tYXAoKG5vZGVJbmRleCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmltaXRpdmVzID0gKHlpZWxkIGdsdGZFeHRyYWN0UHJpbWl0aXZlc0Zyb21Ob2RlKGdsdGYsIG5vZGVJbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBtZXNoIGhhcyB0aGUgdGFyZ2V0IG1vcnBoIHRhcmdldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJpbWl0aXZlcy5ldmVyeSgocHJpbWl0aXZlKSA9PiBBcnJheS5pc0FycmF5KHByaW1pdGl2ZS5tb3JwaFRhcmdldEluZmx1ZW5jZXMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcnBoVGFyZ2V0SW5kZXggPCBwcmltaXRpdmUubW9ycGhUYXJnZXRJbmZsdWVuY2VzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luOiAke3NjaGVtYUdyb3VwLm5hbWV9IGF0dGVtcHRzIHRvIGluZGV4ICR7bW9ycGhUYXJnZXRJbmRleH10aCBtb3JwaCBidXQgbm90IGZvdW5kLmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb24uYWRkQmluZChuZXcgVlJNRXhwcmVzc2lvbk1vcnBoVGFyZ2V0QmluZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1pdGl2ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBtb3JwaFRhcmdldEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDAuMDEgKiAoKF9kID0gYmluZC53ZWlnaHQpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDEwMCksIC8vIG5hcnJvd2luZyB0aGUgcmFuZ2UgZnJvbSBbIDAuMCAtIDEwMC4wIF0gdG8gWyAwLjAgLSAxLjAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQmluZCBNYXRlcmlhbENvbG9yIGFuZCBUZXh0dXJlVHJhbnNmb3JtXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxWYWx1ZXMgPSBzY2hlbWFHcm91cC5tYXRlcmlhbFZhbHVlcztcbiAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWxWYWx1ZXMgJiYgbWF0ZXJpYWxWYWx1ZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsVmFsdWVzLmZvckVhY2goKG1hdGVyaWFsVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRlcmlhbFZhbHVlLm1hdGVyaWFsTmFtZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxWYWx1ZS5wcm9wZXJ0eU5hbWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsVmFsdWUudGFyZ2V0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICog44Ki44OQ44K/44O844Gu44Kq44OW44K444Kn44Kv44OI44Gr6Kit5a6a44GV44KM44Gm44GE44KL44Oe44OG44Oq44Ki44Or44Gu5YaF44GL44KJXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXRlcmlhbFZhbHVl44Gn5oyH5a6a44GV44KM44Gm44GE44KL44Oe44OG44Oq44Ki44Or44KS6ZuG44KB44KL44CCXG4gICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICog54m55a6a44Gr44Gv5ZCN5YmN44KS5L2/55So44GZ44KL44CCXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiDjgqLjgqbjg4jjg6njgqTjg7Pmj4/nlLvnlKjjga7jg57jg4bjg6rjgqLjg6vjgoLlkIzmmYLjgavpm4bjgoHjgovjgIJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICBnbHRmLnNjZW5lLnRyYXZlcnNlKChvYmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqZWN0Lm1hdGVyaWFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gb2JqZWN0Lm1hdGVyaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShtYXRlcmlhbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFscy5wdXNoKC4uLm1hdGVyaWFsLmZpbHRlcigobXRsKSA9PiAobXRsLm5hbWUgPT09IG1hdGVyaWFsVmFsdWUubWF0ZXJpYWxOYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRsLm5hbWUgPT09IG1hdGVyaWFsVmFsdWUubWF0ZXJpYWxOYW1lICsgJyAoT3V0bGluZSknKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFscy5pbmRleE9mKG10bCkgPT09IC0xKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobWF0ZXJpYWwubmFtZSA9PT0gbWF0ZXJpYWxWYWx1ZS5tYXRlcmlhbE5hbWUgJiYgbWF0ZXJpYWxzLmluZGV4T2YobWF0ZXJpYWwpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzLnB1c2gobWF0ZXJpYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRlcmlhbFByb3BlcnR5TmFtZSA9IG1hdGVyaWFsVmFsdWUucHJvcGVydHlOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzLmZvckVhY2goKG1hdGVyaWFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGV4dHVyZVRyYW5zZm9ybUJpbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWxQcm9wZXJ0eU5hbWUgPT09ICdfTWFpblRleF9TVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSBuZXcgVEhSRUUuVmVjdG9yMihtYXRlcmlhbFZhbHVlLnRhcmdldFZhbHVlWzBdLCBtYXRlcmlhbFZhbHVlLnRhcmdldFZhbHVlWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjIobWF0ZXJpYWxWYWx1ZS50YXJnZXRWYWx1ZVsyXSwgbWF0ZXJpYWxWYWx1ZS50YXJnZXRWYWx1ZVszXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldC55ID0gMS4wIC0gb2Zmc2V0LnkgLSBzY2FsZS55O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uLmFkZEJpbmQobmV3IFZSTUV4cHJlc3Npb25UZXh0dXJlVHJhbnNmb3JtQmluZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWF0ZXJpYWxDb2xvckJpbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRlcmlhbENvbG9yVHlwZSA9IHYwRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JNYXBbbWF0ZXJpYWxQcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRlcmlhbENvbG9yVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uLmFkZEJpbmQobmV3IFZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yQmluZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IG1hdGVyaWFsQ29sb3JUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmFsdWU6IG5ldyBUSFJFRS5Db2xvcigpLmZyb21BcnJheShtYXRlcmlhbFZhbHVlLnRhcmdldFZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEFscGhhOiBtYXRlcmlhbFZhbHVlLnRhcmdldFZhbHVlWzNdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKG1hdGVyaWFsUHJvcGVydHlOYW1lICsgJyBpcyBub3Qgc3VwcG9ydGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1hbmFnZXIucmVnaXN0ZXJFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgICAgIHJldHVybiBtYW5hZ2VyO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5WUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luLnYwdjFQcmVzZXROYW1lTWFwID0ge1xuICAgIGE6ICdhYScsXG4gICAgZTogJ2VlJyxcbiAgICBpOiAnaWgnLFxuICAgIG86ICdvaCcsXG4gICAgdTogJ291JyxcbiAgICBibGluazogJ2JsaW5rJyxcbiAgICBqb3k6ICdoYXBweScsXG4gICAgYW5ncnk6ICdhbmdyeScsXG4gICAgc29ycm93OiAnc2FkJyxcbiAgICBmdW46ICdyZWxheGVkJyxcbiAgICBsb29rdXA6ICdsb29rVXAnLFxuICAgIGxvb2tkb3duOiAnbG9va0Rvd24nLFxuICAgIGxvb2tsZWZ0OiAnbG9va0xlZnQnLFxuICAgIGxvb2tyaWdodDogJ2xvb2tSaWdodCcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIGJsaW5rX2w6ICdibGlua0xlZnQnLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICBibGlua19yOiAnYmxpbmtSaWdodCcsXG4gICAgbmV1dHJhbDogJ25ldXRyYWwnLFxufTtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5jb25zdCBWUk1FeHByZXNzaW9uT3ZlcnJpZGVUeXBlID0ge1xuICAgIE5vbmU6ICdub25lJyxcbiAgICBCbG9jazogJ2Jsb2NrJyxcbiAgICBCbGVuZDogJ2JsZW5kJyxcbn07XG5cbmNsYXNzIFZSTUZpcnN0UGVyc29uIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgVlJNRmlyc3RQZXJzb24gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGh1bWFub2lkIEEge0BsaW5rIFZSTUh1bWFub2lkfVxuICAgICAqIEBwYXJhbSBtZXNoQW5ub3RhdGlvbnMgQSByZW5kZXJlciBzZXR0aW5ncy4gU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBbW1JlbmRlcmVyRmlyc3RQZXJzb25GbGFnc11dIGZvciBtb3JlIGluZm9cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihodW1hbm9pZCwgbWVzaEFubm90YXRpb25zKSB7XG4gICAgICAgIHRoaXMuX2ZpcnN0UGVyc29uT25seUxheWVyID0gVlJNRmlyc3RQZXJzb24uREVGQVVMVF9GSVJTVFBFUlNPTl9PTkxZX0xBWUVSO1xuICAgICAgICB0aGlzLl90aGlyZFBlcnNvbk9ubHlMYXllciA9IFZSTUZpcnN0UGVyc29uLkRFRkFVTFRfVEhJUkRQRVJTT05fT05MWV9MQVlFUjtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRMYXllcnMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5odW1hbm9pZCA9IGh1bWFub2lkO1xuICAgICAgICB0aGlzLm1lc2hBbm5vdGF0aW9ucyA9IG1lc2hBbm5vdGF0aW9ucztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29weSB0aGUgZ2l2ZW4ge0BsaW5rIFZSTUZpcnN0UGVyc29ufSBpbnRvIHRoaXMgb25lLlxuICAgICAqIHtAbGluayBodW1hbm9pZH0gbXVzdCBiZSBzYW1lIGFzIHRoZSBzb3VyY2Ugb25lLlxuICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIHtAbGluayBWUk1GaXJzdFBlcnNvbn0geW91IHdhbnQgdG8gY29weVxuICAgICAqIEByZXR1cm5zIHRoaXNcbiAgICAgKi9cbiAgICBjb3B5KHNvdXJjZSkge1xuICAgICAgICBpZiAodGhpcy5odW1hbm9pZCAhPT0gc291cmNlLmh1bWFub2lkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZSTUZpcnN0UGVyc29uOiBodW1hbm9pZCBtdXN0IGJlIHNhbWUgaW4gb3JkZXIgdG8gY29weScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVzaEFubm90YXRpb25zID0gc291cmNlLm1lc2hBbm5vdGF0aW9ucy5tYXAoKGFubm90YXRpb24pID0+ICh7XG4gICAgICAgICAgICBtZXNoZXM6IGFubm90YXRpb24ubWVzaGVzLmNvbmNhdCgpLFxuICAgICAgICAgICAgdHlwZTogYW5ub3RhdGlvbi50eXBlLFxuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgY2xvbmUgb2YgdGhpcyB7QGxpbmsgVlJNRmlyc3RQZXJzb259LlxuICAgICAqIEByZXR1cm5zIENvcGllZCB7QGxpbmsgVlJNRmlyc3RQZXJzb259XG4gICAgICovXG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVlJNRmlyc3RQZXJzb24odGhpcy5odW1hbm9pZCwgdGhpcy5tZXNoQW5ub3RhdGlvbnMpLmNvcHkodGhpcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgY2FtZXJhIGxheWVyIHJlcHJlc2VudHMgYEZpcnN0UGVyc29uT25seWAgbGF5ZXIuXG4gICAgICogTm90ZSB0aGF0ICoqeW91IG11c3QgY2FsbCB7QGxpbmsgc2V0dXB9IGZpcnN0IGJlZm9yZSB5b3UgdXNlIHRoZSBsYXllciBmZWF0dXJlKiogb3IgaXQgZG9lcyBub3Qgd29yayBwcm9wZXJseS5cbiAgICAgKlxuICAgICAqIFRoZSB2YWx1ZSBpcyB7QGxpbmsgREVGQVVMVF9GSVJTVFBFUlNPTl9PTkxZX0xBWUVSfSBieSBkZWZhdWx0IGJ1dCB5b3UgY2FuIGNoYW5nZSB0aGUgbGF5ZXIgYnkgc3BlY2lmeWluZyB2aWEge0BsaW5rIHNldHVwfSBpZiB5b3UgcHJlZmVyLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3ZybS5kZXYvZW4vdW5pdnJtL2FwaS91bml2cm1fdXNlX2ZpcnN0cGVyc29uL1xuICAgICAqIEBzZWUgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNhcGkvZW4vY29yZS9MYXllcnNcbiAgICAgKi9cbiAgICBnZXQgZmlyc3RQZXJzb25Pbmx5TGF5ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maXJzdFBlcnNvbk9ubHlMYXllcjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBjYW1lcmEgbGF5ZXIgcmVwcmVzZW50cyBgVGhpcmRQZXJzb25Pbmx5YCBsYXllci5cbiAgICAgKiBOb3RlIHRoYXQgKip5b3UgbXVzdCBjYWxsIHtAbGluayBzZXR1cH0gZmlyc3QgYmVmb3JlIHlvdSB1c2UgdGhlIGxheWVyIGZlYXR1cmUqKiBvciBpdCBkb2VzIG5vdCB3b3JrIHByb3Blcmx5LlxuICAgICAqXG4gICAgICogVGhlIHZhbHVlIGlzIHtAbGluayBERUZBVUxUX1RISVJEUEVSU09OX09OTFlfTEFZRVJ9IGJ5IGRlZmF1bHQgYnV0IHlvdSBjYW4gY2hhbmdlIHRoZSBsYXllciBieSBzcGVjaWZ5aW5nIHZpYSB7QGxpbmsgc2V0dXB9IGlmIHlvdSBwcmVmZXIuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vdnJtLmRldi9lbi91bml2cm0vYXBpL3VuaXZybV91c2VfZmlyc3RwZXJzb24vXG4gICAgICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2FwaS9lbi9jb3JlL0xheWVyc1xuICAgICAqL1xuICAgIGdldCB0aGlyZFBlcnNvbk9ubHlMYXllcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbiB0aGlzIG1ldGhvZCwgaXQgYXNzaWducyBsYXllcnMgZm9yIGV2ZXJ5IG1lc2hlcyBiYXNlZCBvbiBtZXNoIGFubm90YXRpb25zLlxuICAgICAqIFlvdSBtdXN0IGNhbGwgdGhpcyBtZXRob2QgZmlyc3QgYmVmb3JlIHlvdSB1c2UgdGhlIGxheWVyIGZlYXR1cmUuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGFuIGVxdWl2YWxlbnQgb2YgW1ZSTUZpcnN0UGVyc29uLlNldHVwXShodHRwczovL2dpdGh1Yi5jb20vdnJtLWMvVW5pVlJNL2Jsb2IvNzNhNWJkOGZjZGRhYTJhN2E4NzM1MDk5YTk3ZTYzYzlkYjNlNWVhMC9Bc3NldHMvVlJNL1J1bnRpbWUvRmlyc3RQZXJzb24vVlJNRmlyc3RQZXJzb24uY3MjTDI5NS1MMjk5KSBvZiB0aGUgVW5pVlJNLlxuICAgICAqXG4gICAgICogVGhlIGBjYW1lcmFMYXllcmAgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBsYXllciB3aWxsIGJlIGFzc2lnbmVkIGZvciBgRmlyc3RQZXJzb25Pbmx5YCAvIGBUaGlyZFBlcnNvbk9ubHlgLlxuICAgICAqIEluIFVuaVZSTSwgd2Ugc3BlY2lmaWVkIHRob3NlIGJ5IG5hbWluZyBlYWNoIGRlc2lyZWQgbGF5ZXIgYXMgYEZJUlNUUEVSU09OX09OTFlfTEFZRVJgIC8gYFRISVJEUEVSU09OX09OTFlfTEFZRVJgXG4gICAgICogYnV0IHdlIGFyZSBnb2luZyB0byBzcGVjaWZ5IHRoZXNlIGxheWVycyBhdCBoZXJlIHNpbmNlIHdlIGFyZSB1bmFibGUgdG8gbmFtZSBsYXllcnMgaW4gVGhyZWUuanMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FtZXJhTGF5ZXIgU3BlY2lmeSB3aGljaCBsYXllciB3aWxsIGJlIGZvciBgRmlyc3RQZXJzb25Pbmx5YCAvIGBUaGlyZFBlcnNvbk9ubHlgLlxuICAgICAqL1xuICAgIHNldHVwKHsgZmlyc3RQZXJzb25Pbmx5TGF5ZXIgPSBWUk1GaXJzdFBlcnNvbi5ERUZBVUxUX0ZJUlNUUEVSU09OX09OTFlfTEFZRVIsIHRoaXJkUGVyc29uT25seUxheWVyID0gVlJNRmlyc3RQZXJzb24uREVGQVVMVF9USElSRFBFUlNPTl9PTkxZX0xBWUVSLCB9ID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkTGF5ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlyc3RQZXJzb25Pbmx5TGF5ZXIgPSBmaXJzdFBlcnNvbk9ubHlMYXllcjtcbiAgICAgICAgdGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIgPSB0aGlyZFBlcnNvbk9ubHlMYXllcjtcbiAgICAgICAgdGhpcy5tZXNoQW5ub3RhdGlvbnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5tZXNoZXMuZm9yRWFjaCgobWVzaCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdmaXJzdFBlcnNvbk9ubHknKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lc2gubGF5ZXJzLnNldCh0aGlzLl9maXJzdFBlcnNvbk9ubHlMYXllcik7XG4gICAgICAgICAgICAgICAgICAgIG1lc2gudHJhdmVyc2UoKGNoaWxkKSA9PiBjaGlsZC5sYXllcnMuc2V0KHRoaXMuX2ZpcnN0UGVyc29uT25seUxheWVyKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ3RoaXJkUGVyc29uT25seScpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzaC5sYXllcnMuc2V0KHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzaC50cmF2ZXJzZSgoY2hpbGQpID0+IGNoaWxkLmxheWVycy5zZXQodGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbS50eXBlID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlSGVhZGxlc3NNb2RlbChtZXNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkTGF5ZXJzID0gdHJ1ZTtcbiAgICB9XG4gICAgX2V4Y2x1ZGVUcmlhbmdsZXModHJpYW5nbGVzLCBid3MsIHNraW5JbmRleCwgZXhjbHVkZSkge1xuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICBpZiAoYndzICE9IG51bGwgJiYgYndzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJpYW5nbGVzLmxlbmd0aDsgaSArPSAzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IHRyaWFuZ2xlc1tpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gdHJpYW5nbGVzW2kgKyAxXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjID0gdHJpYW5nbGVzW2kgKyAyXTtcbiAgICAgICAgICAgICAgICBjb25zdCBidzAgPSBid3NbYV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2tpbjAgPSBza2luSW5kZXhbYV07XG4gICAgICAgICAgICAgICAgaWYgKGJ3MFswXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMFswXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlmIChidzBbMV0gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjBbMV0pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoYncwWzJdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4wWzJdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKGJ3MFszXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMFszXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ3MSA9IGJ3c1tiXTtcbiAgICAgICAgICAgICAgICBjb25zdCBza2luMSA9IHNraW5JbmRleFtiXTtcbiAgICAgICAgICAgICAgICBpZiAoYncxWzBdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4xWzBdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKGJ3MVsxXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMVsxXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlmIChidzFbMl0gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjFbMl0pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoYncxWzNdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4xWzNdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY29uc3QgYncyID0gYndzW2NdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNraW4yID0gc2tpbkluZGV4W2NdO1xuICAgICAgICAgICAgICAgIGlmIChidzJbMF0gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjJbMF0pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoYncyWzFdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4yWzFdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKGJ3MlsyXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMlsyXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlmIChidzJbM10gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjJbM10pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB0cmlhbmdsZXNbY291bnQrK10gPSBhO1xuICAgICAgICAgICAgICAgIHRyaWFuZ2xlc1tjb3VudCsrXSA9IGI7XG4gICAgICAgICAgICAgICAgdHJpYW5nbGVzW2NvdW50KytdID0gYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgfVxuICAgIF9jcmVhdGVFcmFzZWRNZXNoKHNyYywgZXJhc2luZ0JvbmVzSW5kZXgpIHtcbiAgICAgICAgY29uc3QgZHN0ID0gbmV3IFRIUkVFLlNraW5uZWRNZXNoKHNyYy5nZW9tZXRyeS5jbG9uZSgpLCBzcmMubWF0ZXJpYWwpO1xuICAgICAgICBkc3QubmFtZSA9IGAke3NyYy5uYW1lfShlcmFzZSlgO1xuICAgICAgICBkc3QuZnJ1c3R1bUN1bGxlZCA9IHNyYy5mcnVzdHVtQ3VsbGVkO1xuICAgICAgICBkc3QubGF5ZXJzLnNldCh0aGlzLl9maXJzdFBlcnNvbk9ubHlMYXllcik7XG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gZHN0Lmdlb21ldHJ5O1xuICAgICAgICBjb25zdCBza2luSW5kZXhBdHRyID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdza2luSW5kZXgnKTtcbiAgICAgICAgY29uc3Qgc2tpbkluZGV4QXR0ckFycmF5ID0gc2tpbkluZGV4QXR0ciBpbnN0YW5jZW9mIFRIUkVFLkdMQnVmZmVyQXR0cmlidXRlID8gW10gOiBza2luSW5kZXhBdHRyLmFycmF5O1xuICAgICAgICBjb25zdCBza2luSW5kZXggPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBza2luSW5kZXhBdHRyQXJyYXkubGVuZ3RoOyBpICs9IDQpIHtcbiAgICAgICAgICAgIHNraW5JbmRleC5wdXNoKFtcbiAgICAgICAgICAgICAgICBza2luSW5kZXhBdHRyQXJyYXlbaV0sXG4gICAgICAgICAgICAgICAgc2tpbkluZGV4QXR0ckFycmF5W2kgKyAxXSxcbiAgICAgICAgICAgICAgICBza2luSW5kZXhBdHRyQXJyYXlbaSArIDJdLFxuICAgICAgICAgICAgICAgIHNraW5JbmRleEF0dHJBcnJheVtpICsgM10sXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBza2luV2VpZ2h0QXR0ciA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnc2tpbldlaWdodCcpO1xuICAgICAgICBjb25zdCBza2luV2VpZ2h0QXR0ckFycmF5ID0gc2tpbldlaWdodEF0dHIgaW5zdGFuY2VvZiBUSFJFRS5HTEJ1ZmZlckF0dHJpYnV0ZSA/IFtdIDogc2tpbldlaWdodEF0dHIuYXJyYXk7XG4gICAgICAgIGNvbnN0IHNraW5XZWlnaHQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBza2luV2VpZ2h0QXR0ckFycmF5Lmxlbmd0aDsgaSArPSA0KSB7XG4gICAgICAgICAgICBza2luV2VpZ2h0LnB1c2goW1xuICAgICAgICAgICAgICAgIHNraW5XZWlnaHRBdHRyQXJyYXlbaV0sXG4gICAgICAgICAgICAgICAgc2tpbldlaWdodEF0dHJBcnJheVtpICsgMV0sXG4gICAgICAgICAgICAgICAgc2tpbldlaWdodEF0dHJBcnJheVtpICsgMl0sXG4gICAgICAgICAgICAgICAgc2tpbldlaWdodEF0dHJBcnJheVtpICsgM10sXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IGdlb21ldHJ5LmdldEluZGV4KCk7XG4gICAgICAgIGlmICghaW5kZXgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBnZW9tZXRyeSBkb2Vzbid0IGhhdmUgYW4gaW5kZXggYnVmZmVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9sZFRyaWFuZ2xlcyA9IEFycmF5LmZyb20oaW5kZXguYXJyYXkpO1xuICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMuX2V4Y2x1ZGVUcmlhbmdsZXMob2xkVHJpYW5nbGVzLCBza2luV2VpZ2h0LCBza2luSW5kZXgsIGVyYXNpbmdCb25lc0luZGV4KTtcbiAgICAgICAgY29uc3QgbmV3VHJpYW5nbGUgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBuZXdUcmlhbmdsZVtpXSA9IG9sZFRyaWFuZ2xlc1tpXTtcbiAgICAgICAgfVxuICAgICAgICBnZW9tZXRyeS5zZXRJbmRleChuZXdUcmlhbmdsZSk7XG4gICAgICAgIC8vIG10b29uIG1hdGVyaWFsIGluY2x1ZGVzIG9uQmVmb3JlUmVuZGVyLiB0aGlzIGlzIHVuc3VwcG9ydGVkIGF0IFNraW5uZWRNZXNoI2Nsb25lXG4gICAgICAgIGlmIChzcmMub25CZWZvcmVSZW5kZXIpIHtcbiAgICAgICAgICAgIGRzdC5vbkJlZm9yZVJlbmRlciA9IHNyYy5vbkJlZm9yZVJlbmRlcjtcbiAgICAgICAgfVxuICAgICAgICBkc3QuYmluZChuZXcgVEhSRUUuU2tlbGV0b24oc3JjLnNrZWxldG9uLmJvbmVzLCBzcmMuc2tlbGV0b24uYm9uZUludmVyc2VzKSwgbmV3IFRIUkVFLk1hdHJpeDQoKSk7XG4gICAgICAgIHJldHVybiBkc3Q7XG4gICAgfVxuICAgIF9jcmVhdGVIZWFkbGVzc01vZGVsRm9yU2tpbm5lZE1lc2gocGFyZW50LCBtZXNoKSB7XG4gICAgICAgIGNvbnN0IGVyYXNlQm9uZUluZGV4ZXMgPSBbXTtcbiAgICAgICAgbWVzaC5za2VsZXRvbi5ib25lcy5mb3JFYWNoKChib25lLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzRXJhc2VUYXJnZXQoYm9uZSkpXG4gICAgICAgICAgICAgICAgZXJhc2VCb25lSW5kZXhlcy5wdXNoKGluZGV4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFVubGlrZSBVbmlWUk0gd2UgZG9uJ3QgY29weSBtZXNoIGlmIG5vIGludmlzaWJsZSBib25lIHdhcyBmb3VuZFxuICAgICAgICBpZiAoIWVyYXNlQm9uZUluZGV4ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBtZXNoLmxheWVycy5lbmFibGUodGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIpO1xuICAgICAgICAgICAgbWVzaC5sYXllcnMuZW5hYmxlKHRoaXMuX2ZpcnN0UGVyc29uT25seUxheWVyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBtZXNoLmxheWVycy5zZXQodGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIpO1xuICAgICAgICBjb25zdCBuZXdNZXNoID0gdGhpcy5fY3JlYXRlRXJhc2VkTWVzaChtZXNoLCBlcmFzZUJvbmVJbmRleGVzKTtcbiAgICAgICAgcGFyZW50LmFkZChuZXdNZXNoKTtcbiAgICB9XG4gICAgX2NyZWF0ZUhlYWRsZXNzTW9kZWwobm9kZSkge1xuICAgICAgICBpZiAobm9kZS50eXBlID09PSAnR3JvdXAnKSB7XG4gICAgICAgICAgICBub2RlLmxheWVycy5zZXQodGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzRXJhc2VUYXJnZXQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICBub2RlLnRyYXZlcnNlKChjaGlsZCkgPT4gY2hpbGQubGF5ZXJzLnNldCh0aGlzLl90aGlyZFBlcnNvbk9ubHlMYXllcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gbmV3IFRIUkVFLkdyb3VwKCk7XG4gICAgICAgICAgICAgICAgcGFyZW50Lm5hbWUgPSBgX2hlYWRsZXNzXyR7bm9kZS5uYW1lfWA7XG4gICAgICAgICAgICAgICAgcGFyZW50LmxheWVycy5zZXQodGhpcy5fZmlyc3RQZXJzb25Pbmx5TGF5ZXIpO1xuICAgICAgICAgICAgICAgIG5vZGUucGFyZW50LmFkZChwYXJlbnQpO1xuICAgICAgICAgICAgICAgIG5vZGUuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoY2hpbGQpID0+IGNoaWxkLnR5cGUgPT09ICdTa2lubmVkTWVzaCcpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBza2lubmVkTWVzaCA9IGNoaWxkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVIZWFkbGVzc01vZGVsRm9yU2tpbm5lZE1lc2gocGFyZW50LCBza2lubmVkTWVzaCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobm9kZS50eXBlID09PSAnU2tpbm5lZE1lc2gnKSB7XG4gICAgICAgICAgICBjb25zdCBza2lubmVkTWVzaCA9IG5vZGU7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVIZWFkbGVzc01vZGVsRm9yU2tpbm5lZE1lc2gobm9kZS5wYXJlbnQsIHNraW5uZWRNZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0VyYXNlVGFyZ2V0KG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5sYXllcnMuc2V0KHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyKTtcbiAgICAgICAgICAgICAgICBub2RlLnRyYXZlcnNlKChjaGlsZCkgPT4gY2hpbGQubGF5ZXJzLnNldCh0aGlzLl90aGlyZFBlcnNvbk9ubHlMYXllcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIF9pc0VyYXNlVGFyZ2V0KGJvbmUpIHtcbiAgICAgICAgaWYgKGJvbmUgPT09IHRoaXMuaHVtYW5vaWQuZ2V0UmF3Qm9uZU5vZGUoJ2hlYWQnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWJvbmUucGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNFcmFzZVRhcmdldChib25lLnBhcmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vKipcbiAqIEEgZGVmYXVsdCBjYW1lcmEgbGF5ZXIgZm9yIGBGaXJzdFBlcnNvbk9ubHlgIGxheWVyLlxuICpcbiAqIEBzZWUgW1tnZXRGaXJzdFBlcnNvbk9ubHlMYXllcl1dXG4gKi9cblZSTUZpcnN0UGVyc29uLkRFRkFVTFRfRklSU1RQRVJTT05fT05MWV9MQVlFUiA9IDk7XG4vKipcbiAqIEEgZGVmYXVsdCBjYW1lcmEgbGF5ZXIgZm9yIGBUaGlyZFBlcnNvbk9ubHlgIGxheWVyLlxuICpcbiAqIEBzZWUgW1tnZXRUaGlyZFBlcnNvbk9ubHlMYXllcl1dXG4gKi9cblZSTUZpcnN0UGVyc29uLkRFRkFVTFRfVEhJUkRQRVJTT05fT05MWV9MQVlFUiA9IDEwO1xuXG4vKipcbiAqIFBvc3NpYmxlIHNwZWMgdmVyc2lvbnMgaXQgcmVjb2duaXplcy5cbiAqL1xuY29uc3QgUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyQzID0gbmV3IFNldChbJzEuMCcsICcxLjAtYmV0YSddKTtcbi8qKlxuICogQSBwbHVnaW4gb2YgR0xURkxvYWRlciB0aGF0IGltcG9ydHMgYSB7QGxpbmsgVlJNRmlyc3RQZXJzb259IGZyb20gYSBWUk0gZXh0ZW5zaW9uIG9mIGEgR0xURi5cbiAqL1xuY2xhc3MgVlJNRmlyc3RQZXJzb25Mb2FkZXJQbHVnaW4ge1xuICAgIGdldCBuYW1lKCkge1xuICAgICAgICAvLyBXZSBzaG91bGQgdXNlIHRoZSBleHRlbnNpb24gbmFtZSBpbnN0ZWFkIGJ1dCB3ZSBoYXZlIG11bHRpcGxlIHBsdWdpbnMgZm9yIGFuIGV4dGVuc2lvbi4uLlxuICAgICAgICByZXR1cm4gJ1ZSTUZpcnN0UGVyc29uTG9hZGVyUGx1Z2luJztcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFyc2VyKSB7XG4gICAgICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgIH1cbiAgICBhZnRlclJvb3QoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdnJtSHVtYW5vaWQgPSBnbHRmLnVzZXJEYXRhLnZybUh1bWFub2lkO1xuICAgICAgICAgICAgLy8gZXhwbGljaXRseSBkaXN0aW5ndWlzaCBudWxsIGFuZCB1bmRlZmluZWRcbiAgICAgICAgICAgIC8vIHNpbmNlIHZybUh1bWFub2lkIG1pZ2h0IGJlIG51bGwgYXMgYSByZXN1bHRcbiAgICAgICAgICAgIGlmICh2cm1IdW1hbm9pZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZybUh1bWFub2lkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZSTUZpcnN0UGVyc29uTG9hZGVyUGx1Z2luOiB2cm1IdW1hbm9pZCBpcyB1bmRlZmluZWQuIFZSTUh1bWFub2lkTG9hZGVyUGx1Z2luIGhhdmUgdG8gYmUgdXNlZCBmaXJzdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2x0Zi51c2VyRGF0YS52cm1GaXJzdFBlcnNvbiA9IHlpZWxkIHRoaXMuX2ltcG9ydChnbHRmLCB2cm1IdW1hbm9pZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbXBvcnQgYSB7QGxpbmsgVlJNRmlyc3RQZXJzb259IGZyb20gYSBWUk0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZ2x0ZiBBIHBhcnNlZCByZXN1bHQgb2YgR0xURiB0YWtlbiBmcm9tIEdMVEZMb2FkZXJcbiAgICAgKiBAcGFyYW0gaHVtYW5vaWQgQSB7QGxpbmsgVlJNSHVtYW5vaWR9IGluc3RhbmNlIHRoYXQgcmVwcmVzZW50cyB0aGUgVlJNXG4gICAgICovXG4gICAgX2ltcG9ydChnbHRmLCBodW1hbm9pZCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKGh1bWFub2lkID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHYxUmVzdWx0ID0geWllbGQgdGhpcy5fdjFJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQpO1xuICAgICAgICAgICAgaWYgKHYxUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYxUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdjBSZXN1bHQgPSB5aWVsZCB0aGlzLl92MEltcG9ydChnbHRmLCBodW1hbm9pZCk7XG4gICAgICAgICAgICBpZiAodjBSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjBSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MUltcG9ydChnbHRmLCBodW1hbm9pZCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMucGFyc2VyLmpzb247XG4gICAgICAgICAgICAvLyBlYXJseSBhYm9ydCBpZiBpdCBkb2Vzbid0IHVzZSB2cm1cbiAgICAgICAgICAgIGNvbnN0IGlzVlJNVXNlZCA9ICgoX2EgPSBqc29uLmV4dGVuc2lvbnNVc2VkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5kZXhPZignVlJNQ192cm0nKSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKCFpc1ZSTVVzZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IChfYiA9IGpzb24uZXh0ZW5zaW9ucykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWydWUk1DX3ZybSddO1xuICAgICAgICAgICAgaWYgKCFleHRlbnNpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNwZWNWZXJzaW9uID0gZXh0ZW5zaW9uLnNwZWNWZXJzaW9uO1xuICAgICAgICAgICAgaWYgKCFQT1NTSUJMRV9TUEVDX1ZFUlNJT05TJDMuaGFzKHNwZWNWZXJzaW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNRmlyc3RQZXJzb25Mb2FkZXJQbHVnaW46IFVua25vd24gVlJNQ192cm0gc3BlY1ZlcnNpb24gXCIke3NwZWNWZXJzaW9ufVwiYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzY2hlbWFGaXJzdFBlcnNvbiA9IGV4dGVuc2lvbi5maXJzdFBlcnNvbjtcbiAgICAgICAgICAgIGlmICghc2NoZW1hRmlyc3RQZXJzb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1lc2hBbm5vdGF0aW9ucyA9IFtdO1xuICAgICAgICAgICAgY29uc3Qgbm9kZVByaW1pdGl2ZXNNYXAgPSB5aWVsZCBnbHRmRXh0cmFjdFByaW1pdGl2ZXNGcm9tTm9kZXMoZ2x0Zik7XG4gICAgICAgICAgICBBcnJheS5mcm9tKG5vZGVQcmltaXRpdmVzTWFwLmVudHJpZXMoKSkuZm9yRWFjaCgoW25vZGVJbmRleCwgcHJpbWl0aXZlc10pID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgYW5ub3RhdGlvbiA9IHNjaGVtYUZpcnN0UGVyc29uLm1lc2hBbm5vdGF0aW9uc1xuICAgICAgICAgICAgICAgICAgICA/IHNjaGVtYUZpcnN0UGVyc29uLm1lc2hBbm5vdGF0aW9ucy5maW5kKChhKSA9PiBhLm5vZGUgPT09IG5vZGVJbmRleClcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgbWVzaEFubm90YXRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBtZXNoZXM6IHByaW1pdGl2ZXMsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IChfYSA9IGFubm90YXRpb24gPT09IG51bGwgfHwgYW5ub3RhdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYW5ub3RhdGlvbi50eXBlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnYm90aCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVlJNRmlyc3RQZXJzb24oaHVtYW5vaWQsIG1lc2hBbm5vdGF0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjBJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMucGFyc2VyLmpzb247XG4gICAgICAgICAgICBjb25zdCB2cm1FeHQgPSAoX2EgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5WUk07XG4gICAgICAgICAgICBpZiAoIXZybUV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hRmlyc3RQZXJzb24gPSB2cm1FeHQuZmlyc3RQZXJzb247XG4gICAgICAgICAgICBpZiAoIXNjaGVtYUZpcnN0UGVyc29uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtZXNoQW5ub3RhdGlvbnMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVQcmltaXRpdmVzTWFwID0geWllbGQgZ2x0ZkV4dHJhY3RQcmltaXRpdmVzRnJvbU5vZGVzKGdsdGYpO1xuICAgICAgICAgICAgQXJyYXkuZnJvbShub2RlUHJpbWl0aXZlc01hcC5lbnRyaWVzKCkpLmZvckVhY2goKFtub2RlSW5kZXgsIHByaW1pdGl2ZXNdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NoZW1hTm9kZSA9IGpzb24ubm9kZXNbbm9kZUluZGV4XTtcbiAgICAgICAgICAgICAgICBjb25zdCBmbGFnID0gc2NoZW1hRmlyc3RQZXJzb24ubWVzaEFubm90YXRpb25zXG4gICAgICAgICAgICAgICAgICAgID8gc2NoZW1hRmlyc3RQZXJzb24ubWVzaEFubm90YXRpb25zLmZpbmQoKGEpID0+IGEubWVzaCA9PT0gc2NoZW1hTm9kZS5tZXNoKVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBtZXNoQW5ub3RhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIG1lc2hlczogcHJpbWl0aXZlcyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdGhpcy5fY29udmVydFYwRmxhZ1RvVjFUeXBlKGZsYWcgPT09IG51bGwgfHwgZmxhZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmxhZy5maXJzdFBlcnNvbkZsYWcpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFZSTUZpcnN0UGVyc29uKGh1bWFub2lkLCBtZXNoQW5ub3RhdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2NvbnZlcnRWMEZsYWdUb1YxVHlwZShmbGFnKSB7XG4gICAgICAgIGlmIChmbGFnID09PSAnRmlyc3RQZXJzb25Pbmx5Jykge1xuICAgICAgICAgICAgcmV0dXJuICdmaXJzdFBlcnNvbk9ubHknO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGZsYWcgPT09ICdUaGlyZFBlcnNvbk9ubHknKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3RoaXJkUGVyc29uT25seSc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZmxhZyA9PT0gJ0F1dG8nKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2F1dG8nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdib3RoJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5jb25zdCBWUk1GaXJzdFBlcnNvbk1lc2hBbm5vdGF0aW9uVHlwZSA9IHtcbiAgICBBdXRvOiAnYXV0bycsXG4gICAgQm90aDogJ2JvdGgnLFxuICAgIFRoaXJkUGVyc29uT25seTogJ3RoaXJkUGVyc29uT25seScsXG4gICAgRmlyc3RQZXJzb25Pbmx5OiAnZmlyc3RQZXJzb25Pbmx5Jyxcbn07XG5cbmNvbnN0IF92M0EkNCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfdjNCJDIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3F1YXRBJDUgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY2xhc3MgVlJNSHVtYW5vaWRIZWxwZXIgZXh0ZW5kcyBUSFJFRS5Hcm91cCB7XG4gICAgY29uc3RydWN0b3IoaHVtYW5vaWQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52cm1IdW1hbm9pZCA9IGh1bWFub2lkO1xuICAgICAgICB0aGlzLl9ib25lQXhlc01hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhodW1hbm9pZC5odW1hbkJvbmVzKS5mb3JFYWNoKChib25lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXIgPSBuZXcgVEhSRUUuQXhlc0hlbHBlcigxLjApO1xuICAgICAgICAgICAgaGVscGVyLm1hdHJpeEF1dG9VcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGhlbHBlci5tYXRlcmlhbC5kZXB0aFRlc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIGhlbHBlci5tYXRlcmlhbC5kZXB0aFdyaXRlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmFkZChoZWxwZXIpO1xuICAgICAgICAgICAgdGhpcy5fYm9uZUF4ZXNNYXAuc2V0KGJvbmUsIGhlbHBlcik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkaXNwb3NlKCkge1xuICAgICAgICBBcnJheS5mcm9tKHRoaXMuX2JvbmVBeGVzTWFwLnZhbHVlcygpKS5mb3JFYWNoKChheGVzKSA9PiB7XG4gICAgICAgICAgICBheGVzLmdlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIGF4ZXMubWF0ZXJpYWwuZGlzcG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgdXBkYXRlTWF0cml4V29ybGQoZm9yY2UpIHtcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLl9ib25lQXhlc01hcC5lbnRyaWVzKCkpLmZvckVhY2goKFtib25lLCBheGVzXSkgPT4ge1xuICAgICAgICAgICAgYm9uZS5ub2RlLnVwZGF0ZVdvcmxkTWF0cml4KHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgIGJvbmUubm9kZS5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoX3YzQSQ0LCBfcXVhdEEkNSwgX3YzQiQyKTtcbiAgICAgICAgICAgIGNvbnN0IHNjYWxlID0gX3YzQSQ0LnNldCgwLjEsIDAuMSwgMC4xKS5kaXZpZGUoX3YzQiQyKTtcbiAgICAgICAgICAgIGF4ZXMubWF0cml4LmNvcHkoYm9uZS5ub2RlLm1hdHJpeFdvcmxkKS5zY2FsZShzY2FsZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBzdXBlci51cGRhdGVNYXRyaXhXb3JsZChmb3JjZSk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbi8qKlxuICogVGhlIGxpc3Qgb2Yge0BsaW5rIFZSTUh1bWFuQm9uZU5hbWV9LiBEZXBlbmRlbmN5IGF3YXJlLlxuICovXG5jb25zdCBWUk1IdW1hbkJvbmVMaXN0ID0gW1xuICAgICdoaXBzJyxcbiAgICAnc3BpbmUnLFxuICAgICdjaGVzdCcsXG4gICAgJ3VwcGVyQ2hlc3QnLFxuICAgICduZWNrJyxcbiAgICAnaGVhZCcsXG4gICAgJ2xlZnRFeWUnLFxuICAgICdyaWdodEV5ZScsXG4gICAgJ2phdycsXG4gICAgJ2xlZnRVcHBlckxlZycsXG4gICAgJ2xlZnRMb3dlckxlZycsXG4gICAgJ2xlZnRGb290JyxcbiAgICAnbGVmdFRvZXMnLFxuICAgICdyaWdodFVwcGVyTGVnJyxcbiAgICAncmlnaHRMb3dlckxlZycsXG4gICAgJ3JpZ2h0Rm9vdCcsXG4gICAgJ3JpZ2h0VG9lcycsXG4gICAgJ2xlZnRTaG91bGRlcicsXG4gICAgJ2xlZnRVcHBlckFybScsXG4gICAgJ2xlZnRMb3dlckFybScsXG4gICAgJ2xlZnRIYW5kJyxcbiAgICAncmlnaHRTaG91bGRlcicsXG4gICAgJ3JpZ2h0VXBwZXJBcm0nLFxuICAgICdyaWdodExvd2VyQXJtJyxcbiAgICAncmlnaHRIYW5kJyxcbiAgICAnbGVmdFRodW1iTWV0YWNhcnBhbCcsXG4gICAgJ2xlZnRUaHVtYlByb3hpbWFsJyxcbiAgICAnbGVmdFRodW1iRGlzdGFsJyxcbiAgICAnbGVmdEluZGV4UHJveGltYWwnLFxuICAgICdsZWZ0SW5kZXhJbnRlcm1lZGlhdGUnLFxuICAgICdsZWZ0SW5kZXhEaXN0YWwnLFxuICAgICdsZWZ0TWlkZGxlUHJveGltYWwnLFxuICAgICdsZWZ0TWlkZGxlSW50ZXJtZWRpYXRlJyxcbiAgICAnbGVmdE1pZGRsZURpc3RhbCcsXG4gICAgJ2xlZnRSaW5nUHJveGltYWwnLFxuICAgICdsZWZ0UmluZ0ludGVybWVkaWF0ZScsXG4gICAgJ2xlZnRSaW5nRGlzdGFsJyxcbiAgICAnbGVmdExpdHRsZVByb3hpbWFsJyxcbiAgICAnbGVmdExpdHRsZUludGVybWVkaWF0ZScsXG4gICAgJ2xlZnRMaXR0bGVEaXN0YWwnLFxuICAgICdyaWdodFRodW1iTWV0YWNhcnBhbCcsXG4gICAgJ3JpZ2h0VGh1bWJQcm94aW1hbCcsXG4gICAgJ3JpZ2h0VGh1bWJEaXN0YWwnLFxuICAgICdyaWdodEluZGV4UHJveGltYWwnLFxuICAgICdyaWdodEluZGV4SW50ZXJtZWRpYXRlJyxcbiAgICAncmlnaHRJbmRleERpc3RhbCcsXG4gICAgJ3JpZ2h0TWlkZGxlUHJveGltYWwnLFxuICAgICdyaWdodE1pZGRsZUludGVybWVkaWF0ZScsXG4gICAgJ3JpZ2h0TWlkZGxlRGlzdGFsJyxcbiAgICAncmlnaHRSaW5nUHJveGltYWwnLFxuICAgICdyaWdodFJpbmdJbnRlcm1lZGlhdGUnLFxuICAgICdyaWdodFJpbmdEaXN0YWwnLFxuICAgICdyaWdodExpdHRsZVByb3hpbWFsJyxcbiAgICAncmlnaHRMaXR0bGVJbnRlcm1lZGlhdGUnLFxuICAgICdyaWdodExpdHRsZURpc3RhbCcsXG5dO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbi8qKlxuICogVGhlIG5hbWVzIG9mIHtAbGluayBWUk1IdW1hbm9pZH0gYm9uZSBuYW1lcy5cbiAqXG4gKiBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS92cm0tYy92cm0tc3BlY2lmaWNhdGlvbi9ibG9iL21hc3Rlci9zcGVjaWZpY2F0aW9uL1ZSTUNfdnJtLTEuMC9odW1hbm9pZC5tZFxuICovXG5jb25zdCBWUk1IdW1hbkJvbmVOYW1lID0ge1xuICAgIEhpcHM6ICdoaXBzJyxcbiAgICBTcGluZTogJ3NwaW5lJyxcbiAgICBDaGVzdDogJ2NoZXN0JyxcbiAgICBVcHBlckNoZXN0OiAndXBwZXJDaGVzdCcsXG4gICAgTmVjazogJ25lY2snLFxuICAgIEhlYWQ6ICdoZWFkJyxcbiAgICBMZWZ0RXllOiAnbGVmdEV5ZScsXG4gICAgUmlnaHRFeWU6ICdyaWdodEV5ZScsXG4gICAgSmF3OiAnamF3JyxcbiAgICBMZWZ0VXBwZXJMZWc6ICdsZWZ0VXBwZXJMZWcnLFxuICAgIExlZnRMb3dlckxlZzogJ2xlZnRMb3dlckxlZycsXG4gICAgTGVmdEZvb3Q6ICdsZWZ0Rm9vdCcsXG4gICAgTGVmdFRvZXM6ICdsZWZ0VG9lcycsXG4gICAgUmlnaHRVcHBlckxlZzogJ3JpZ2h0VXBwZXJMZWcnLFxuICAgIFJpZ2h0TG93ZXJMZWc6ICdyaWdodExvd2VyTGVnJyxcbiAgICBSaWdodEZvb3Q6ICdyaWdodEZvb3QnLFxuICAgIFJpZ2h0VG9lczogJ3JpZ2h0VG9lcycsXG4gICAgTGVmdFNob3VsZGVyOiAnbGVmdFNob3VsZGVyJyxcbiAgICBMZWZ0VXBwZXJBcm06ICdsZWZ0VXBwZXJBcm0nLFxuICAgIExlZnRMb3dlckFybTogJ2xlZnRMb3dlckFybScsXG4gICAgTGVmdEhhbmQ6ICdsZWZ0SGFuZCcsXG4gICAgUmlnaHRTaG91bGRlcjogJ3JpZ2h0U2hvdWxkZXInLFxuICAgIFJpZ2h0VXBwZXJBcm06ICdyaWdodFVwcGVyQXJtJyxcbiAgICBSaWdodExvd2VyQXJtOiAncmlnaHRMb3dlckFybScsXG4gICAgUmlnaHRIYW5kOiAncmlnaHRIYW5kJyxcbiAgICBMZWZ0VGh1bWJNZXRhY2FycGFsOiAnbGVmdFRodW1iTWV0YWNhcnBhbCcsXG4gICAgTGVmdFRodW1iUHJveGltYWw6ICdsZWZ0VGh1bWJQcm94aW1hbCcsXG4gICAgTGVmdFRodW1iRGlzdGFsOiAnbGVmdFRodW1iRGlzdGFsJyxcbiAgICBMZWZ0SW5kZXhQcm94aW1hbDogJ2xlZnRJbmRleFByb3hpbWFsJyxcbiAgICBMZWZ0SW5kZXhJbnRlcm1lZGlhdGU6ICdsZWZ0SW5kZXhJbnRlcm1lZGlhdGUnLFxuICAgIExlZnRJbmRleERpc3RhbDogJ2xlZnRJbmRleERpc3RhbCcsXG4gICAgTGVmdE1pZGRsZVByb3hpbWFsOiAnbGVmdE1pZGRsZVByb3hpbWFsJyxcbiAgICBMZWZ0TWlkZGxlSW50ZXJtZWRpYXRlOiAnbGVmdE1pZGRsZUludGVybWVkaWF0ZScsXG4gICAgTGVmdE1pZGRsZURpc3RhbDogJ2xlZnRNaWRkbGVEaXN0YWwnLFxuICAgIExlZnRSaW5nUHJveGltYWw6ICdsZWZ0UmluZ1Byb3hpbWFsJyxcbiAgICBMZWZ0UmluZ0ludGVybWVkaWF0ZTogJ2xlZnRSaW5nSW50ZXJtZWRpYXRlJyxcbiAgICBMZWZ0UmluZ0Rpc3RhbDogJ2xlZnRSaW5nRGlzdGFsJyxcbiAgICBMZWZ0TGl0dGxlUHJveGltYWw6ICdsZWZ0TGl0dGxlUHJveGltYWwnLFxuICAgIExlZnRMaXR0bGVJbnRlcm1lZGlhdGU6ICdsZWZ0TGl0dGxlSW50ZXJtZWRpYXRlJyxcbiAgICBMZWZ0TGl0dGxlRGlzdGFsOiAnbGVmdExpdHRsZURpc3RhbCcsXG4gICAgUmlnaHRUaHVtYk1ldGFjYXJwYWw6ICdyaWdodFRodW1iTWV0YWNhcnBhbCcsXG4gICAgUmlnaHRUaHVtYlByb3hpbWFsOiAncmlnaHRUaHVtYlByb3hpbWFsJyxcbiAgICBSaWdodFRodW1iRGlzdGFsOiAncmlnaHRUaHVtYkRpc3RhbCcsXG4gICAgUmlnaHRJbmRleFByb3hpbWFsOiAncmlnaHRJbmRleFByb3hpbWFsJyxcbiAgICBSaWdodEluZGV4SW50ZXJtZWRpYXRlOiAncmlnaHRJbmRleEludGVybWVkaWF0ZScsXG4gICAgUmlnaHRJbmRleERpc3RhbDogJ3JpZ2h0SW5kZXhEaXN0YWwnLFxuICAgIFJpZ2h0TWlkZGxlUHJveGltYWw6ICdyaWdodE1pZGRsZVByb3hpbWFsJyxcbiAgICBSaWdodE1pZGRsZUludGVybWVkaWF0ZTogJ3JpZ2h0TWlkZGxlSW50ZXJtZWRpYXRlJyxcbiAgICBSaWdodE1pZGRsZURpc3RhbDogJ3JpZ2h0TWlkZGxlRGlzdGFsJyxcbiAgICBSaWdodFJpbmdQcm94aW1hbDogJ3JpZ2h0UmluZ1Byb3hpbWFsJyxcbiAgICBSaWdodFJpbmdJbnRlcm1lZGlhdGU6ICdyaWdodFJpbmdJbnRlcm1lZGlhdGUnLFxuICAgIFJpZ2h0UmluZ0Rpc3RhbDogJ3JpZ2h0UmluZ0Rpc3RhbCcsXG4gICAgUmlnaHRMaXR0bGVQcm94aW1hbDogJ3JpZ2h0TGl0dGxlUHJveGltYWwnLFxuICAgIFJpZ2h0TGl0dGxlSW50ZXJtZWRpYXRlOiAncmlnaHRMaXR0bGVJbnRlcm1lZGlhdGUnLFxuICAgIFJpZ2h0TGl0dGxlRGlzdGFsOiAncmlnaHRMaXR0bGVEaXN0YWwnLFxufTtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IG1hcHMgZnJvbSB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0gdG8gaXRzIHBhcmVudCB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0uXG4gKlxuICogUmVmOiBodHRwczovL2dpdGh1Yi5jb20vdnJtLWMvdnJtLXNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvc3BlY2lmaWNhdGlvbi9WUk1DX3ZybS0xLjAvaHVtYW5vaWQubWRcbiAqL1xuY29uc3QgVlJNSHVtYW5Cb25lUGFyZW50TWFwID0ge1xuICAgIGhpcHM6IG51bGwsXG4gICAgc3BpbmU6ICdoaXBzJyxcbiAgICBjaGVzdDogJ3NwaW5lJyxcbiAgICB1cHBlckNoZXN0OiAnY2hlc3QnLFxuICAgIG5lY2s6ICd1cHBlckNoZXN0JyxcbiAgICBoZWFkOiAnbmVjaycsXG4gICAgbGVmdEV5ZTogJ2hlYWQnLFxuICAgIHJpZ2h0RXllOiAnaGVhZCcsXG4gICAgamF3OiAnaGVhZCcsXG4gICAgbGVmdFVwcGVyTGVnOiAnaGlwcycsXG4gICAgbGVmdExvd2VyTGVnOiAnbGVmdFVwcGVyTGVnJyxcbiAgICBsZWZ0Rm9vdDogJ2xlZnRMb3dlckxlZycsXG4gICAgbGVmdFRvZXM6ICdsZWZ0Rm9vdCcsXG4gICAgcmlnaHRVcHBlckxlZzogJ2hpcHMnLFxuICAgIHJpZ2h0TG93ZXJMZWc6ICdyaWdodFVwcGVyTGVnJyxcbiAgICByaWdodEZvb3Q6ICdyaWdodExvd2VyTGVnJyxcbiAgICByaWdodFRvZXM6ICdyaWdodEZvb3QnLFxuICAgIGxlZnRTaG91bGRlcjogJ3VwcGVyQ2hlc3QnLFxuICAgIGxlZnRVcHBlckFybTogJ2xlZnRTaG91bGRlcicsXG4gICAgbGVmdExvd2VyQXJtOiAnbGVmdFVwcGVyQXJtJyxcbiAgICBsZWZ0SGFuZDogJ2xlZnRMb3dlckFybScsXG4gICAgcmlnaHRTaG91bGRlcjogJ3VwcGVyQ2hlc3QnLFxuICAgIHJpZ2h0VXBwZXJBcm06ICdyaWdodFNob3VsZGVyJyxcbiAgICByaWdodExvd2VyQXJtOiAncmlnaHRVcHBlckFybScsXG4gICAgcmlnaHRIYW5kOiAncmlnaHRMb3dlckFybScsXG4gICAgbGVmdFRodW1iTWV0YWNhcnBhbDogJ2xlZnRIYW5kJyxcbiAgICBsZWZ0VGh1bWJQcm94aW1hbDogJ2xlZnRUaHVtYk1ldGFjYXJwYWwnLFxuICAgIGxlZnRUaHVtYkRpc3RhbDogJ2xlZnRUaHVtYlByb3hpbWFsJyxcbiAgICBsZWZ0SW5kZXhQcm94aW1hbDogJ2xlZnRIYW5kJyxcbiAgICBsZWZ0SW5kZXhJbnRlcm1lZGlhdGU6ICdsZWZ0SW5kZXhQcm94aW1hbCcsXG4gICAgbGVmdEluZGV4RGlzdGFsOiAnbGVmdEluZGV4SW50ZXJtZWRpYXRlJyxcbiAgICBsZWZ0TWlkZGxlUHJveGltYWw6ICdsZWZ0SGFuZCcsXG4gICAgbGVmdE1pZGRsZUludGVybWVkaWF0ZTogJ2xlZnRNaWRkbGVQcm94aW1hbCcsXG4gICAgbGVmdE1pZGRsZURpc3RhbDogJ2xlZnRNaWRkbGVJbnRlcm1lZGlhdGUnLFxuICAgIGxlZnRSaW5nUHJveGltYWw6ICdsZWZ0SGFuZCcsXG4gICAgbGVmdFJpbmdJbnRlcm1lZGlhdGU6ICdsZWZ0UmluZ1Byb3hpbWFsJyxcbiAgICBsZWZ0UmluZ0Rpc3RhbDogJ2xlZnRSaW5nSW50ZXJtZWRpYXRlJyxcbiAgICBsZWZ0TGl0dGxlUHJveGltYWw6ICdsZWZ0SGFuZCcsXG4gICAgbGVmdExpdHRsZUludGVybWVkaWF0ZTogJ2xlZnRMaXR0bGVQcm94aW1hbCcsXG4gICAgbGVmdExpdHRsZURpc3RhbDogJ2xlZnRMaXR0bGVJbnRlcm1lZGlhdGUnLFxuICAgIHJpZ2h0VGh1bWJNZXRhY2FycGFsOiAncmlnaHRIYW5kJyxcbiAgICByaWdodFRodW1iUHJveGltYWw6ICdyaWdodFRodW1iTWV0YWNhcnBhbCcsXG4gICAgcmlnaHRUaHVtYkRpc3RhbDogJ3JpZ2h0VGh1bWJQcm94aW1hbCcsXG4gICAgcmlnaHRJbmRleFByb3hpbWFsOiAncmlnaHRIYW5kJyxcbiAgICByaWdodEluZGV4SW50ZXJtZWRpYXRlOiAncmlnaHRJbmRleFByb3hpbWFsJyxcbiAgICByaWdodEluZGV4RGlzdGFsOiAncmlnaHRJbmRleEludGVybWVkaWF0ZScsXG4gICAgcmlnaHRNaWRkbGVQcm94aW1hbDogJ3JpZ2h0SGFuZCcsXG4gICAgcmlnaHRNaWRkbGVJbnRlcm1lZGlhdGU6ICdyaWdodE1pZGRsZVByb3hpbWFsJyxcbiAgICByaWdodE1pZGRsZURpc3RhbDogJ3JpZ2h0TWlkZGxlSW50ZXJtZWRpYXRlJyxcbiAgICByaWdodFJpbmdQcm94aW1hbDogJ3JpZ2h0SGFuZCcsXG4gICAgcmlnaHRSaW5nSW50ZXJtZWRpYXRlOiAncmlnaHRSaW5nUHJveGltYWwnLFxuICAgIHJpZ2h0UmluZ0Rpc3RhbDogJ3JpZ2h0UmluZ0ludGVybWVkaWF0ZScsXG4gICAgcmlnaHRMaXR0bGVQcm94aW1hbDogJ3JpZ2h0SGFuZCcsXG4gICAgcmlnaHRMaXR0bGVJbnRlcm1lZGlhdGU6ICdyaWdodExpdHRsZVByb3hpbWFsJyxcbiAgICByaWdodExpdHRsZURpc3RhbDogJ3JpZ2h0TGl0dGxlSW50ZXJtZWRpYXRlJyxcbn07XG5cbi8qKlxuICogQSBjb21wYXQgZnVuY3Rpb24gZm9yIGBRdWF0ZXJuaW9uLmludmVydCgpYCAvIGBRdWF0ZXJuaW9uLmludmVyc2UoKWAuXG4gKiBgUXVhdGVybmlvbi5pbnZlcnQoKWAgaXMgaW50cm9kdWNlZCBpbiByMTIzIGFuZCBgUXVhdGVybmlvbi5pbnZlcnNlKClgIGVtaXRzIGEgd2FybmluZy5cbiAqIFdlIGFyZSBnb2luZyB0byB1c2UgdGhpcyBjb21wYXQgZm9yIGEgd2hpbGUuXG4gKiBAcGFyYW0gdGFyZ2V0IEEgdGFyZ2V0IHF1YXRlcm5pb25cbiAqL1xuZnVuY3Rpb24gcXVhdEludmVydENvbXBhdCh0YXJnZXQpIHtcbiAgICBpZiAodGFyZ2V0LmludmVydCkge1xuICAgICAgICB0YXJnZXQuaW52ZXJ0KCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0YXJnZXQuaW52ZXJzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG5jb25zdCBfdjNBJDMgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3F1YXRBJDQgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuLyoqXG4gKiBBIGNsYXNzIHJlcHJlc2VudHMgdGhlIFJpZyBvZiBhIFZSTS5cbiAqL1xuY2xhc3MgVlJNUmlnIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIFZSTUh1bWFub2lkfS5cbiAgICAgKiBAcGFyYW0gaHVtYW5Cb25lcyBBIHtAbGluayBWUk1IdW1hbkJvbmVzfSBjb250YWlucyBhbGwgdGhlIGJvbmVzIG9mIHRoZSBuZXcgaHVtYW5vaWRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihodW1hbkJvbmVzKSB7XG4gICAgICAgIHRoaXMuaHVtYW5Cb25lcyA9IGh1bWFuQm9uZXM7XG4gICAgICAgIHRoaXMucmVzdFBvc2UgPSB0aGlzLmdldEFic29sdXRlUG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgYWJzb2x1dGUgcG9zZSBvZiB0aGlzIGh1bWFub2lkIGFzIGEge0BsaW5rIFZSTVBvc2V9LlxuICAgICAqIE5vdGUgdGhhdCB0aGUgb3V0cHV0IHJlc3VsdCB3aWxsIGNvbnRhaW4gaW5pdGlhbCBzdGF0ZSBvZiB0aGUgVlJNIGFuZCBub3QgY29tcGF0aWJsZSBiZXR3ZWVuIGRpZmZlcmVudCBtb2RlbHMuXG4gICAgICogWW91IG1pZ2h0IHdhbnQgdG8gdXNlIHtAbGluayBnZXRQb3NlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGdldEFic29sdXRlUG9zZSgpIHtcbiAgICAgICAgY29uc3QgcG9zZSA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmh1bWFuQm9uZXMpLmZvckVhY2goKHZybUJvbmVOYW1lU3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2cm1Cb25lTmFtZSA9IHZybUJvbmVOYW1lU3RyaW5nO1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Qm9uZU5vZGUodnJtQm9uZU5hbWUpO1xuICAgICAgICAgICAgLy8gSWdub3JlIHdoZW4gdGhlcmUgYXJlIG5vIGJvbmUgb24gdGhlIFZSTUh1bWFub2lkXG4gICAgICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIC8gcm90YXRpb24gZnJvbSB0aGUgbm9kZVxuICAgICAgICAgICAgX3YzQSQzLmNvcHkobm9kZS5wb3NpdGlvbik7XG4gICAgICAgICAgICBfcXVhdEEkNC5jb3B5KG5vZGUucXVhdGVybmlvbik7XG4gICAgICAgICAgICAvLyBDb252ZXJ0IHRvIHJhdyBhcnJheXNcbiAgICAgICAgICAgIHBvc2VbdnJtQm9uZU5hbWVdID0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBfdjNBJDMudG9BcnJheSgpLFxuICAgICAgICAgICAgICAgIHJvdGF0aW9uOiBfcXVhdEEkNC50b0FycmF5KCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBvc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgY3VycmVudCBwb3NlIG9mIHRoaXMgaHVtYW5vaWQgYXMgYSB7QGxpbmsgVlJNUG9zZX0uXG4gICAgICpcbiAgICAgKiBFYWNoIHRyYW5zZm9ybSBpcyBhIGxvY2FsIHRyYW5zZm9ybSByZWxhdGl2ZSBmcm9tIHJlc3QgcG9zZSAoVC1wb3NlKS5cbiAgICAgKi9cbiAgICBnZXRQb3NlKCkge1xuICAgICAgICBjb25zdCBwb3NlID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaHVtYW5Cb25lcykuZm9yRWFjaCgoYm9uZU5hbWVTdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJvbmVOYW1lID0gYm9uZU5hbWVTdHJpbmc7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5nZXRCb25lTm9kZShib25lTmFtZSk7XG4gICAgICAgICAgICAvLyBJZ25vcmUgd2hlbiB0aGVyZSBhcmUgbm8gYm9uZSBvbiB0aGUgVlJNSHVtYW5vaWRcbiAgICAgICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRha2UgYSBkaWZmIGZyb20gcmVzdFBvc2VcbiAgICAgICAgICAgIF92M0EkMy5zZXQoMCwgMCwgMCk7XG4gICAgICAgICAgICBfcXVhdEEkNC5pZGVudGl0eSgpO1xuICAgICAgICAgICAgY29uc3QgcmVzdFN0YXRlID0gdGhpcy5yZXN0UG9zZVtib25lTmFtZV07XG4gICAgICAgICAgICBpZiAocmVzdFN0YXRlID09PSBudWxsIHx8IHJlc3RTdGF0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzdFN0YXRlLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgX3YzQSQzLmZyb21BcnJheShyZXN0U3RhdGUucG9zaXRpb24pLm5lZ2F0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3RTdGF0ZSA9PT0gbnVsbCB8fCByZXN0U3RhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3RTdGF0ZS5yb3RhdGlvbikge1xuICAgICAgICAgICAgICAgIHF1YXRJbnZlcnRDb21wYXQoX3F1YXRBJDQuZnJvbUFycmF5KHJlc3RTdGF0ZS5yb3RhdGlvbikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiAvIHJvdGF0aW9uIGZyb20gdGhlIG5vZGVcbiAgICAgICAgICAgIF92M0EkMy5hZGQobm9kZS5wb3NpdGlvbik7XG4gICAgICAgICAgICBfcXVhdEEkNC5wcmVtdWx0aXBseShub2RlLnF1YXRlcm5pb24pO1xuICAgICAgICAgICAgLy8gQ29udmVydCB0byByYXcgYXJyYXlzXG4gICAgICAgICAgICBwb3NlW2JvbmVOYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogX3YzQSQzLnRvQXJyYXkoKSxcbiAgICAgICAgICAgICAgICByb3RhdGlvbjogX3F1YXRBJDQudG9BcnJheSgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwb3NlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBMZXQgdGhlIGh1bWFub2lkIGRvIGEgc3BlY2lmaWVkIHBvc2UuXG4gICAgICpcbiAgICAgKiBFYWNoIHRyYW5zZm9ybSBoYXZlIHRvIGJlIGEgbG9jYWwgdHJhbnNmb3JtIHJlbGF0aXZlIGZyb20gcmVzdCBwb3NlIChULXBvc2UpLlxuICAgICAqIFlvdSBjYW4gcGFzcyB3aGF0IHlvdSBnb3QgZnJvbSB7QGxpbmsgZ2V0UG9zZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcG9zZU9iamVjdCBBIFtbVlJNUG9zZV1dIHRoYXQgcmVwcmVzZW50cyBhIHNpbmdsZSBwb3NlXG4gICAgICovXG4gICAgc2V0UG9zZShwb3NlT2JqZWN0KSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHBvc2VPYmplY3QpLmZvckVhY2goKFtib25lTmFtZVN0cmluZywgc3RhdGVdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBib25lTmFtZSA9IGJvbmVOYW1lU3RyaW5nO1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Qm9uZU5vZGUoYm9uZU5hbWUpO1xuICAgICAgICAgICAgLy8gSWdub3JlIHdoZW4gdGhlcmUgYXJlIG5vIGJvbmUgdGhhdCBpcyBkZWZpbmVkIGluIHRoZSBwb3NlIG9uIHRoZSBWUk1IdW1hbm9pZFxuICAgICAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzdFN0YXRlID0gdGhpcy5yZXN0UG9zZVtib25lTmFtZV07XG4gICAgICAgICAgICBpZiAoIXJlc3RTdGF0ZSkge1xuICAgICAgICAgICAgICAgIC8vIEl0J3MgdmVyeSB1bmxpa2VseS4gUG9zc2libHkgYSBidWdcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgc3RhdGUgdG8gdGhlIGFjdHVhbCBib25lXG4gICAgICAgICAgICBpZiAoc3RhdGUgPT09IG51bGwgfHwgc3RhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0YXRlLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5wb3NpdGlvbi5mcm9tQXJyYXkoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN0U3RhdGUucG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5wb3NpdGlvbi5hZGQoX3YzQSQzLmZyb21BcnJheShyZXN0U3RhdGUucG9zaXRpb24pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RhdGUgPT09IG51bGwgfHwgc3RhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0YXRlLnJvdGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5xdWF0ZXJuaW9uLmZyb21BcnJheShzdGF0ZS5yb3RhdGlvbik7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3RTdGF0ZS5yb3RhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnF1YXRlcm5pb24ubXVsdGlwbHkoX3F1YXRBJDQuZnJvbUFycmF5KHJlc3RTdGF0ZS5yb3RhdGlvbikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlc2V0IHRoZSBodW1hbm9pZCB0byBpdHMgcmVzdCBwb3NlLlxuICAgICAqL1xuICAgIHJlc2V0UG9zZSgpIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5yZXN0UG9zZSkuZm9yRWFjaCgoW2JvbmVOYW1lLCByZXN0XSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Qm9uZU5vZGUoYm9uZU5hbWUpO1xuICAgICAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3QgPT09IG51bGwgfHwgcmVzdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzdC5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIG5vZGUucG9zaXRpb24uZnJvbUFycmF5KHJlc3QucG9zaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3QgPT09IG51bGwgfHwgcmVzdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzdC5yb3RhdGlvbikge1xuICAgICAgICAgICAgICAgIG5vZGUucXVhdGVybmlvbi5mcm9tQXJyYXkocmVzdC5yb3RhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBib25lIGJvdW5kIHRvIGEgc3BlY2lmaWVkIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfSwgYXMgYSB7QGxpbmsgVlJNSHVtYW5Cb25lfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGJvbmUgeW91IHdhbnRcbiAgICAgKi9cbiAgICBnZXRCb25lKG5hbWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gdGhpcy5odW1hbkJvbmVzW25hbWVdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIGJvbmUgYm91bmQgdG8gYSBzcGVjaWZpZWQge0BsaW5rIFZSTUh1bWFuQm9uZU5hbWV9LCBhcyBhIGBUSFJFRS5PYmplY3QzRGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBib25lIHlvdSB3YW50XG4gICAgICovXG4gICAgZ2V0Qm9uZU5vZGUobmFtZSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy5odW1hbkJvbmVzW25hbWVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbnVsbDtcbiAgICB9XG59XG5cbmNvbnN0IF92M0EkMiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfcXVhdEEkMyA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfYm9uZVdvcmxkUG9zID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbi8qKlxuICogQSBjbGFzcyByZXByZXNlbnRzIHRoZSBub3JtYWxpemVkIFJpZyBvZiBhIFZSTS5cbiAqL1xuY2xhc3MgVlJNSHVtYW5vaWRSaWcgZXh0ZW5kcyBWUk1SaWcge1xuICAgIHN0YXRpYyBfc2V0dXBUcmFuc2Zvcm1zKG1vZGVsUmlnKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBuZXcgVEhSRUUuT2JqZWN0M0QoKTtcbiAgICAgICAgcm9vdC5uYW1lID0gJ1ZSTUh1bWFub2lkUmlnJztcbiAgICAgICAgLy8gc3RvcmUgYm9uZVdvcmxkUG9zaXRpb25zLCBib25lV29ybGRSb3RhdGlvbnMsIGFuZCBwYXJlbnRXb3JsZFJvdGF0aW9uc1xuICAgICAgICBjb25zdCBib25lV29ybGRQb3NpdGlvbnMgPSB7fTtcbiAgICAgICAgY29uc3QgYm9uZVJvdGF0aW9ucyA9IHt9O1xuICAgICAgICBjb25zdCBwYXJlbnRXb3JsZFJvdGF0aW9ucyA9IHt9O1xuICAgICAgICBWUk1IdW1hbkJvbmVMaXN0LmZvckVhY2goKGJvbmVOYW1lKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBib25lTm9kZSA9IG1vZGVsUmlnLmdldEJvbmVOb2RlKGJvbmVOYW1lKTtcbiAgICAgICAgICAgIGlmIChib25lTm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvbmVXb3JsZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBib25lV29ybGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgICAgICAgICAgICAgYm9uZU5vZGUudXBkYXRlV29ybGRNYXRyaXgodHJ1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGJvbmVOb2RlLm1hdHJpeFdvcmxkLmRlY29tcG9zZShib25lV29ybGRQb3NpdGlvbiwgYm9uZVdvcmxkUm90YXRpb24sIF92M0EkMik7XG4gICAgICAgICAgICAgICAgYm9uZVdvcmxkUG9zaXRpb25zW2JvbmVOYW1lXSA9IGJvbmVXb3JsZFBvc2l0aW9uO1xuICAgICAgICAgICAgICAgIGJvbmVSb3RhdGlvbnNbYm9uZU5hbWVdID0gYm9uZU5vZGUucXVhdGVybmlvbi5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFdvcmxkUm90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuICAgICAgICAgICAgICAgIChfYSA9IGJvbmVOb2RlLnBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1hdHJpeFdvcmxkLmRlY29tcG9zZShfdjNBJDIsIHBhcmVudFdvcmxkUm90YXRpb24sIF92M0EkMik7XG4gICAgICAgICAgICAgICAgcGFyZW50V29ybGRSb3RhdGlvbnNbYm9uZU5hbWVdID0gcGFyZW50V29ybGRSb3RhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGJ1aWxkIHJpZyBoaWVyYXJjaHkgKyBzdG9yZSBwYXJlbnRXb3JsZFJvdGF0aW9uc1xuICAgICAgICBjb25zdCByaWdCb25lcyA9IHt9O1xuICAgICAgICBWUk1IdW1hbkJvbmVMaXN0LmZvckVhY2goKGJvbmVOYW1lKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBib25lTm9kZSA9IG1vZGVsUmlnLmdldEJvbmVOb2RlKGJvbmVOYW1lKTtcbiAgICAgICAgICAgIGlmIChib25lTm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvbmVXb3JsZFBvc2l0aW9uID0gYm9uZVdvcmxkUG9zaXRpb25zW2JvbmVOYW1lXTtcbiAgICAgICAgICAgICAgICAvLyBzZWUgdGhlIG5lYXJlc3QgcGFyZW50IHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRCb25lTmFtZSA9IGJvbmVOYW1lO1xuICAgICAgICAgICAgICAgIGxldCBwYXJlbnRCb25lV29ybGRQb3NpdGlvbjtcbiAgICAgICAgICAgICAgICB3aGlsZSAocGFyZW50Qm9uZVdvcmxkUG9zaXRpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50Qm9uZU5hbWUgPSBWUk1IdW1hbkJvbmVQYXJlbnRNYXBbY3VycmVudEJvbmVOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRCb25lTmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRCb25lV29ybGRQb3NpdGlvbiA9IGJvbmVXb3JsZFBvc2l0aW9uc1tjdXJyZW50Qm9uZU5hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBhZGQgdG8gaGllcmFyY2h5XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnQm9uZU5vZGUgPSBuZXcgVEhSRUUuT2JqZWN0M0QoKTtcbiAgICAgICAgICAgICAgICByaWdCb25lTm9kZS5uYW1lID0gJ05vcm1hbGl6ZWRfJyArIGJvbmVOb2RlLm5hbWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmlnQm9uZU5vZGUgPSAoY3VycmVudEJvbmVOYW1lID8gKF9hID0gcmlnQm9uZXNbY3VycmVudEJvbmVOYW1lXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGUgOiByb290KTtcbiAgICAgICAgICAgICAgICBwYXJlbnRSaWdCb25lTm9kZS5hZGQocmlnQm9uZU5vZGUpO1xuICAgICAgICAgICAgICAgIHJpZ0JvbmVOb2RlLnBvc2l0aW9uLmNvcHkoYm9uZVdvcmxkUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRCb25lV29ybGRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICByaWdCb25lTm9kZS5wb3NpdGlvbi5zdWIocGFyZW50Qm9uZVdvcmxkUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByaWdCb25lc1tib25lTmFtZV0gPSB7IG5vZGU6IHJpZ0JvbmVOb2RlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmlnQm9uZXM6IHJpZ0JvbmVzLFxuICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgIHBhcmVudFdvcmxkUm90YXRpb25zLFxuICAgICAgICAgICAgYm9uZVJvdGF0aW9ucyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoaHVtYW5vaWQpIHtcbiAgICAgICAgY29uc3QgeyByaWdCb25lcywgcm9vdCwgcGFyZW50V29ybGRSb3RhdGlvbnMsIGJvbmVSb3RhdGlvbnMgfSA9IFZSTUh1bWFub2lkUmlnLl9zZXR1cFRyYW5zZm9ybXMoaHVtYW5vaWQpO1xuICAgICAgICBzdXBlcihyaWdCb25lcyk7XG4gICAgICAgIHRoaXMub3JpZ2luYWwgPSBodW1hbm9pZDtcbiAgICAgICAgdGhpcy5yb290ID0gcm9vdDtcbiAgICAgICAgdGhpcy5fcGFyZW50V29ybGRSb3RhdGlvbnMgPSBwYXJlbnRXb3JsZFJvdGF0aW9ucztcbiAgICAgICAgdGhpcy5fYm9uZVJvdGF0aW9ucyA9IGJvbmVSb3RhdGlvbnM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGlzIGh1bWFub2lkIHJpZy5cbiAgICAgKi9cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIFZSTUh1bWFuQm9uZUxpc3QuZm9yRWFjaCgoYm9uZU5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJvbmVOb2RlID0gdGhpcy5vcmlnaW5hbC5nZXRCb25lTm9kZShib25lTmFtZSk7XG4gICAgICAgICAgICBpZiAoYm9uZU5vZGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ0JvbmVOb2RlID0gdGhpcy5nZXRCb25lTm9kZShib25lTmFtZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50V29ybGRSb3RhdGlvbiA9IHRoaXMuX3BhcmVudFdvcmxkUm90YXRpb25zW2JvbmVOYW1lXTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnZQYXJlbnRXb3JsZFJvdGF0aW9uID0gX3F1YXRBJDMuY29weShwYXJlbnRXb3JsZFJvdGF0aW9uKS5pbnZlcnQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBib25lUm90YXRpb24gPSB0aGlzLl9ib25lUm90YXRpb25zW2JvbmVOYW1lXTtcbiAgICAgICAgICAgICAgICBib25lTm9kZS5xdWF0ZXJuaW9uXG4gICAgICAgICAgICAgICAgICAgIC5jb3B5KHJpZ0JvbmVOb2RlLnF1YXRlcm5pb24pXG4gICAgICAgICAgICAgICAgICAgIC5tdWx0aXBseShwYXJlbnRXb3JsZFJvdGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAucHJlbXVsdGlwbHkoaW52UGFyZW50V29ybGRSb3RhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgLm11bHRpcGx5KGJvbmVSb3RhdGlvbik7XG4gICAgICAgICAgICAgICAgLy8gTW92ZSB0aGUgbWFzcyBjZW50ZXIgb2YgdGhlIFZSTVxuICAgICAgICAgICAgICAgIGlmIChib25lTmFtZSA9PT0gJ2hpcHMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvbmVXb3JsZFBvc2l0aW9uID0gcmlnQm9uZU5vZGUuZ2V0V29ybGRQb3NpdGlvbihfYm9uZVdvcmxkUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgYm9uZU5vZGUucGFyZW50LnVwZGF0ZVdvcmxkTWF0cml4KHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50V29ybGRNYXRyaXggPSBib25lTm9kZS5wYXJlbnQubWF0cml4V29ybGQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsUG9zaXRpb24gPSBib25lV29ybGRQb3NpdGlvbi5hcHBseU1hdHJpeDQocGFyZW50V29ybGRNYXRyaXguaW52ZXJ0KCkpO1xuICAgICAgICAgICAgICAgICAgICBib25lTm9kZS5wb3NpdGlvbi5jb3B5KGxvY2FsUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vKipcbiAqIEEgY2xhc3MgcmVwcmVzZW50cyBhIGh1bWFub2lkIG9mIGEgVlJNLlxuICovXG5jbGFzcyBWUk1IdW1hbm9pZCB7XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZC4gVXNlIGVpdGhlciB7QGxpbmsgcmF3UmVzdFBvc2V9IG9yIHtAbGluayBub3JtYWxpemVkUmVzdFBvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0IHJlc3RQb3NlKCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUh1bWFub2lkOiByZXN0UG9zZSBpcyBkZXByZWNhdGVkLiBVc2UgZWl0aGVyIHJhd1Jlc3RQb3NlIG9yIG5vcm1hbGl6ZWRSZXN0UG9zZSBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdSZXN0UG9zZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSB7QGxpbmsgVlJNUG9zZX0gb2YgaXRzIHJhdyBodW1hbiBib25lcyB0aGF0IGlzIGl0cyBkZWZhdWx0IHN0YXRlLlxuICAgICAqIE5vdGUgdGhhdCBpdCdzIG5vdCBjb21wYXRpYmxlIHdpdGgge0BsaW5rIHNldFJhd1Bvc2V9IGFuZCB7QGxpbmsgZ2V0UmF3UG9zZX0sIHNpbmNlIGl0IGNvbnRhaW5zIG5vbi1yZWxhdGl2ZSB2YWx1ZXMgb2YgZWFjaCBsb2NhbCB0cmFuc2Zvcm1zLlxuICAgICAqL1xuICAgIGdldCByYXdSZXN0UG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jhd0h1bWFuQm9uZXMucmVzdFBvc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEge0BsaW5rIFZSTVBvc2V9IG9mIGl0cyBub3JtYWxpemVkIGh1bWFuIGJvbmVzIHRoYXQgaXMgaXRzIGRlZmF1bHQgc3RhdGUuXG4gICAgICogTm90ZSB0aGF0IGl0J3Mgbm90IGNvbXBhdGlibGUgd2l0aCB7QGxpbmsgc2V0Tm9ybWFsaXplZFBvc2V9IGFuZCB7QGxpbmsgZ2V0Tm9ybWFsaXplZFBvc2V9LCBzaW5jZSBpdCBjb250YWlucyBub24tcmVsYXRpdmUgdmFsdWVzIG9mIGVhY2ggbG9jYWwgdHJhbnNmb3Jtcy5cbiAgICAgKi9cbiAgICBnZXQgbm9ybWFsaXplZFJlc3RQb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMucmVzdFBvc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgbWFwIGZyb20ge0BsaW5rIFZSTUh1bWFuQm9uZU5hbWV9IHRvIHJhdyB7QGxpbmsgVlJNSHVtYW5Cb25lfXMuXG4gICAgICovXG4gICAgZ2V0IGh1bWFuQm9uZXMoKSB7XG4gICAgICAgIC8vIGFuIGFsaWFzIG9mIGByYXdIdW1hbkJvbmVzYFxuICAgICAgICByZXR1cm4gdGhpcy5fcmF3SHVtYW5Cb25lcy5odW1hbkJvbmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIG1hcCBmcm9tIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfSB0byByYXcge0BsaW5rIFZSTUh1bWFuQm9uZX1zLlxuICAgICAqL1xuICAgIGdldCByYXdIdW1hbkJvbmVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF3SHVtYW5Cb25lcy5odW1hbkJvbmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIG1hcCBmcm9tIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfSB0byBub3JtYWxpemVkIHtAbGluayBWUk1IdW1hbkJvbmV9cy5cbiAgICAgKi9cbiAgICBnZXQgbm9ybWFsaXplZEh1bWFuQm9uZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub3JtYWxpemVkSHVtYW5Cb25lcy5odW1hbkJvbmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgcm9vdCBvZiBub3JtYWxpemVkIHtAbGluayBWUk1IdW1hbkJvbmV9cy5cbiAgICAgKi9cbiAgICBnZXQgbm9ybWFsaXplZEh1bWFuQm9uZXNSb290KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMucm9vdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IHtAbGluayBWUk1IdW1hbm9pZH0uXG4gICAgICogQHBhcmFtIGh1bWFuQm9uZXMgQSB7QGxpbmsgVlJNSHVtYW5Cb25lc30gY29udGFpbnMgYWxsIHRoZSBib25lcyBvZiB0aGUgbmV3IGh1bWFub2lkXG4gICAgICogQHBhcmFtIGF1dG9VcGRhdGVIdW1hbkJvbmVzIFdoZXRoZXIgaXQgY29waWVzIHBvc2UgZnJvbSBub3JtYWxpemVkSHVtYW5Cb25lcyB0byByYXdIdW1hbkJvbmVzIG9uIHtAbGluayB1cGRhdGV9LiBgdHJ1ZWAgYnkgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihodW1hbkJvbmVzLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgdGhpcy5hdXRvVXBkYXRlSHVtYW5Cb25lcyA9IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5hdXRvVXBkYXRlSHVtYW5Cb25lcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5fcmF3SHVtYW5Cb25lcyA9IG5ldyBWUk1SaWcoaHVtYW5Cb25lcyk7XG4gICAgICAgIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzID0gbmV3IFZSTUh1bWFub2lkUmlnKHRoaXMuX3Jhd0h1bWFuQm9uZXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb3B5IHRoZSBnaXZlbiB7QGxpbmsgVlJNSHVtYW5vaWR9IGludG8gdGhpcyBvbmUuXG4gICAgICogQHBhcmFtIHNvdXJjZSBUaGUge0BsaW5rIFZSTUh1bWFub2lkfSB5b3Ugd2FudCB0byBjb3B5XG4gICAgICogQHJldHVybnMgdGhpc1xuICAgICAqL1xuICAgIGNvcHkoc291cmNlKSB7XG4gICAgICAgIHRoaXMuYXV0b1VwZGF0ZUh1bWFuQm9uZXMgPSBzb3VyY2UuYXV0b1VwZGF0ZUh1bWFuQm9uZXM7XG4gICAgICAgIHRoaXMuX3Jhd0h1bWFuQm9uZXMgPSBuZXcgVlJNUmlnKHNvdXJjZS5odW1hbkJvbmVzKTtcbiAgICAgICAgdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMgPSBuZXcgVlJNSHVtYW5vaWRSaWcodGhpcy5fcmF3SHVtYW5Cb25lcyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgY2xvbmUgb2YgdGhpcyB7QGxpbmsgVlJNSHVtYW5vaWR9LlxuICAgICAqIEByZXR1cm5zIENvcGllZCB7QGxpbmsgVlJNSHVtYW5vaWR9XG4gICAgICovXG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVlJNSHVtYW5vaWQodGhpcy5odW1hbkJvbmVzLCB7IGF1dG9VcGRhdGVIdW1hbkJvbmVzOiB0aGlzLmF1dG9VcGRhdGVIdW1hbkJvbmVzIH0pLmNvcHkodGhpcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQuIFVzZSBlaXRoZXIge0BsaW5rIGdldFJhd0Fic29sdXRlUG9zZX0gb3Ige0BsaW5rIGdldE5vcm1hbGl6ZWRBYnNvbHV0ZVBvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0QWJzb2x1dGVQb3NlKCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUh1bWFub2lkOiBnZXRBYnNvbHV0ZVBvc2UoKSBpcyBkZXByZWNhdGVkLiBVc2UgZWl0aGVyIGdldFJhd0Fic29sdXRlUG9zZSgpIG9yIGdldE5vcm1hbGl6ZWRBYnNvbHV0ZVBvc2UoKSBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSYXdBYnNvbHV0ZVBvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBjdXJyZW50IGFic29sdXRlIHBvc2Ugb2YgdGhpcyByYXcgaHVtYW4gYm9uZXMgYXMgYSB7QGxpbmsgVlJNUG9zZX0uXG4gICAgICogTm90ZSB0aGF0IHRoZSBvdXRwdXQgcmVzdWx0IHdpbGwgY29udGFpbiBpbml0aWFsIHN0YXRlIG9mIHRoZSBWUk0gYW5kIG5vdCBjb21wYXRpYmxlIGJldHdlZW4gZGlmZmVyZW50IG1vZGVscy5cbiAgICAgKiBZb3UgbWlnaHQgd2FudCB0byB1c2Uge0BsaW5rIGdldFJhd1Bvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0UmF3QWJzb2x1dGVQb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF3SHVtYW5Cb25lcy5nZXRBYnNvbHV0ZVBvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBjdXJyZW50IGFic29sdXRlIHBvc2Ugb2YgdGhpcyBub3JtYWxpemVkIGh1bWFuIGJvbmVzIGFzIGEge0BsaW5rIFZSTVBvc2V9LlxuICAgICAqIE5vdGUgdGhhdCB0aGUgb3V0cHV0IHJlc3VsdCB3aWxsIGNvbnRhaW4gaW5pdGlhbCBzdGF0ZSBvZiB0aGUgVlJNIGFuZCBub3QgY29tcGF0aWJsZSBiZXR3ZWVuIGRpZmZlcmVudCBtb2RlbHMuXG4gICAgICogWW91IG1pZ2h0IHdhbnQgdG8gdXNlIHtAbGluayBnZXROb3JtYWxpemVkUG9zZX0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBnZXROb3JtYWxpemVkQWJzb2x1dGVQb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMuZ2V0QWJzb2x1dGVQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQuIFVzZSBlaXRoZXIge0BsaW5rIGdldFJhd1Bvc2V9IG9yIHtAbGluayBnZXROb3JtYWxpemVkUG9zZX0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBnZXRQb3NlKCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUh1bWFub2lkOiBnZXRQb3NlKCkgaXMgZGVwcmVjYXRlZC4gVXNlIGVpdGhlciBnZXRSYXdQb3NlKCkgb3IgZ2V0Tm9ybWFsaXplZFBvc2UoKSBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSYXdQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgY3VycmVudCBwb3NlIG9mIHJhdyBodW1hbiBib25lcyBhcyBhIHtAbGluayBWUk1Qb3NlfS5cbiAgICAgKlxuICAgICAqIEVhY2ggdHJhbnNmb3JtIGlzIGEgbG9jYWwgdHJhbnNmb3JtIHJlbGF0aXZlIGZyb20gcmVzdCBwb3NlIChULXBvc2UpLlxuICAgICAqL1xuICAgIGdldFJhd1Bvc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYXdIdW1hbkJvbmVzLmdldFBvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBjdXJyZW50IHBvc2Ugb2Ygbm9ybWFsaXplZCBodW1hbiBib25lcyBhcyBhIHtAbGluayBWUk1Qb3NlfS5cbiAgICAgKlxuICAgICAqIEVhY2ggdHJhbnNmb3JtIGlzIGEgbG9jYWwgdHJhbnNmb3JtIHJlbGF0aXZlIGZyb20gcmVzdCBwb3NlIChULXBvc2UpLlxuICAgICAqL1xuICAgIGdldE5vcm1hbGl6ZWRQb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMuZ2V0UG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBEZXByZWNhdGVkLiBVc2UgZWl0aGVyIHtAbGluayBzZXRSYXdQb3NlfSBvciB7QGxpbmsgc2V0Tm9ybWFsaXplZFBvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgc2V0UG9zZShwb3NlT2JqZWN0KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignVlJNSHVtYW5vaWQ6IHNldFBvc2UoKSBpcyBkZXByZWNhdGVkLiBVc2UgZWl0aGVyIHNldFJhd1Bvc2UoKSBvciBzZXROb3JtYWxpemVkUG9zZSgpIGluc3RlYWQuJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnNldFJhd1Bvc2UocG9zZU9iamVjdCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIExldCB0aGUgcmF3IGh1bWFuIGJvbmVzIGRvIGEgc3BlY2lmaWVkIHBvc2UuXG4gICAgICpcbiAgICAgKiBFYWNoIHRyYW5zZm9ybSBoYXZlIHRvIGJlIGEgbG9jYWwgdHJhbnNmb3JtIHJlbGF0aXZlIGZyb20gcmVzdCBwb3NlIChULXBvc2UpLlxuICAgICAqIFlvdSBjYW4gcGFzcyB3aGF0IHlvdSBnb3QgZnJvbSB7QGxpbmsgZ2V0UmF3UG9zZX0uXG4gICAgICpcbiAgICAgKiBJZiB5b3UgYXJlIHVzaW5nIHtAbGluayBhdXRvVXBkYXRlSHVtYW5Cb25lc30sIHlvdSBtaWdodCB3YW50IHRvIHVzZSB7QGxpbmsgc2V0Tm9ybWFsaXplZFBvc2V9IGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcG9zZU9iamVjdCBBIHtAbGluayBWUk1Qb3NlfSB0aGF0IHJlcHJlc2VudHMgYSBzaW5nbGUgcG9zZVxuICAgICAqL1xuICAgIHNldFJhd1Bvc2UocG9zZU9iamVjdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF3SHVtYW5Cb25lcy5zZXRQb3NlKHBvc2VPYmplY3QpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBMZXQgdGhlIG5vcm1hbGl6ZWQgaHVtYW4gYm9uZXMgZG8gYSBzcGVjaWZpZWQgcG9zZS5cbiAgICAgKlxuICAgICAqIEVhY2ggdHJhbnNmb3JtIGhhdmUgdG8gYmUgYSBsb2NhbCB0cmFuc2Zvcm0gcmVsYXRpdmUgZnJvbSByZXN0IHBvc2UgKFQtcG9zZSkuXG4gICAgICogWW91IGNhbiBwYXNzIHdoYXQgeW91IGdvdCBmcm9tIHtAbGluayBnZXROb3JtYWxpemVkUG9zZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcG9zZU9iamVjdCBBIHtAbGluayBWUk1Qb3NlfSB0aGF0IHJlcHJlc2VudHMgYSBzaW5nbGUgcG9zZVxuICAgICAqL1xuICAgIHNldE5vcm1hbGl6ZWRQb3NlKHBvc2VPYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLnNldFBvc2UocG9zZU9iamVjdCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQuIFVzZSBlaXRoZXIge0BsaW5rIHJlc2V0UmF3UG9zZX0gb3Ige0BsaW5rIHJlc2V0Tm9ybWFsaXplZFBvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgcmVzZXRQb3NlKCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUh1bWFub2lkOiByZXNldFBvc2UoKSBpcyBkZXByZWNhdGVkLiBVc2UgZWl0aGVyIHJlc2V0UmF3UG9zZSgpIG9yIHJlc2V0Tm9ybWFsaXplZFBvc2UoKSBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNldFJhd1Bvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVzZXQgdGhlIHJhdyBodW1hbm9pZCB0byBpdHMgcmVzdCBwb3NlLlxuICAgICAqXG4gICAgICogSWYgeW91IGFyZSB1c2luZyB7QGxpbmsgYXV0b1VwZGF0ZUh1bWFuQm9uZXN9LCB5b3UgbWlnaHQgd2FudCB0byB1c2Uge0BsaW5rIHJlc2V0Tm9ybWFsaXplZFBvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgcmVzZXRSYXdQb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF3SHVtYW5Cb25lcy5yZXNldFBvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVzZXQgdGhlIG5vcm1hbGl6ZWQgaHVtYW5vaWQgdG8gaXRzIHJlc3QgcG9zZS5cbiAgICAgKi9cbiAgICByZXNldE5vcm1hbGl6ZWRQb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMucmVzZXRQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQuIFVzZSBlaXRoZXIge0BsaW5rIGdldFJhd0JvbmV9IG9yIHtAbGluayBnZXROb3JtYWxpemVkQm9uZX0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBnZXRCb25lKG5hbWUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1IdW1hbm9pZDogZ2V0Qm9uZSgpIGlzIGRlcHJlY2F0ZWQuIFVzZSBlaXRoZXIgZ2V0UmF3Qm9uZSgpIG9yIGdldE5vcm1hbGl6ZWRCb25lKCkgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmF3Qm9uZShuYW1lKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgcmF3IHtAbGluayBWUk1IdW1hbkJvbmV9IGJvdW5kIHRvIGEgc3BlY2lmaWVkIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGJvbmUgeW91IHdhbnRcbiAgICAgKi9cbiAgICBnZXRSYXdCb25lKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jhd0h1bWFuQm9uZXMuZ2V0Qm9uZShuYW1lKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgbm9ybWFsaXplZCB7QGxpbmsgVlJNSHVtYW5Cb25lfSBib3VuZCB0byBhIHNwZWNpZmllZCB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBib25lIHlvdSB3YW50XG4gICAgICovXG4gICAgZ2V0Tm9ybWFsaXplZEJvbmUobmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMuZ2V0Qm9uZShuYW1lKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZC4gVXNlIGVpdGhlciB7QGxpbmsgZ2V0UmF3Qm9uZU5vZGV9IG9yIHtAbGluayBnZXROb3JtYWxpemVkQm9uZU5vZGV9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0Qm9uZU5vZGUobmFtZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUh1bWFub2lkOiBnZXRCb25lTm9kZSgpIGlzIGRlcHJlY2F0ZWQuIFVzZSBlaXRoZXIgZ2V0UmF3Qm9uZU5vZGUoKSBvciBnZXROb3JtYWxpemVkQm9uZU5vZGUoKSBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSYXdCb25lTm9kZShuYW1lKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgcmF3IGJvbmUgYXMgYSBgVEhSRUUuT2JqZWN0M0RgIGJvdW5kIHRvIGEgc3BlY2lmaWVkIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGJvbmUgeW91IHdhbnRcbiAgICAgKi9cbiAgICBnZXRSYXdCb25lTm9kZShuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYXdIdW1hbkJvbmVzLmdldEJvbmVOb2RlKG5hbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBub3JtYWxpemVkIGJvbmUgYXMgYSBgVEhSRUUuT2JqZWN0M0RgIGJvdW5kIHRvIGEgc3BlY2lmaWVkIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGJvbmUgeW91IHdhbnRcbiAgICAgKi9cbiAgICBnZXROb3JtYWxpemVkQm9uZU5vZGUobmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMuZ2V0Qm9uZU5vZGUobmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgaHVtYW5vaWQgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogSWYge0BsaW5rIGF1dG9VcGRhdGVIdW1hbkJvbmVzfSBpcyBgdHJ1ZWAsIGl0IHRyYW5zZmVycyB0aGUgcG9zZSBvZiBub3JtYWxpemVkIGh1bWFuIGJvbmVzIHRvIHJhdyBodW1hbiBib25lcy5cbiAgICAgKi9cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGVIdW1hbkJvbmVzKSB7XG4gICAgICAgICAgICB0aGlzLl9ub3JtYWxpemVkSHVtYW5Cb25lcy51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5jb25zdCBWUk1SZXF1aXJlZEh1bWFuQm9uZU5hbWUgPSB7XG4gICAgSGlwczogJ2hpcHMnLFxuICAgIFNwaW5lOiAnc3BpbmUnLFxuICAgIEhlYWQ6ICdoZWFkJyxcbiAgICBMZWZ0VXBwZXJMZWc6ICdsZWZ0VXBwZXJMZWcnLFxuICAgIExlZnRMb3dlckxlZzogJ2xlZnRMb3dlckxlZycsXG4gICAgTGVmdEZvb3Q6ICdsZWZ0Rm9vdCcsXG4gICAgUmlnaHRVcHBlckxlZzogJ3JpZ2h0VXBwZXJMZWcnLFxuICAgIFJpZ2h0TG93ZXJMZWc6ICdyaWdodExvd2VyTGVnJyxcbiAgICBSaWdodEZvb3Q6ICdyaWdodEZvb3QnLFxuICAgIExlZnRVcHBlckFybTogJ2xlZnRVcHBlckFybScsXG4gICAgTGVmdExvd2VyQXJtOiAnbGVmdExvd2VyQXJtJyxcbiAgICBMZWZ0SGFuZDogJ2xlZnRIYW5kJyxcbiAgICBSaWdodFVwcGVyQXJtOiAncmlnaHRVcHBlckFybScsXG4gICAgUmlnaHRMb3dlckFybTogJ3JpZ2h0TG93ZXJBcm0nLFxuICAgIFJpZ2h0SGFuZDogJ3JpZ2h0SGFuZCcsXG59O1xuXG4vKipcbiAqIFBvc3NpYmxlIHNwZWMgdmVyc2lvbnMgaXQgcmVjb2duaXplcy5cbiAqL1xuY29uc3QgUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyQyID0gbmV3IFNldChbJzEuMCcsICcxLjAtYmV0YSddKTtcbi8qKlxuICogQSBtYXAgZnJvbSBvbGQgdGh1bWIgYm9uZSBuYW1lcyB0byBuZXcgdGh1bWIgYm9uZSBuYW1lc1xuICovXG5jb25zdCB0aHVtYkJvbmVOYW1lTWFwID0ge1xuICAgIGxlZnRUaHVtYlByb3hpbWFsOiAnbGVmdFRodW1iTWV0YWNhcnBhbCcsXG4gICAgbGVmdFRodW1iSW50ZXJtZWRpYXRlOiAnbGVmdFRodW1iUHJveGltYWwnLFxuICAgIHJpZ2h0VGh1bWJQcm94aW1hbDogJ3JpZ2h0VGh1bWJNZXRhY2FycGFsJyxcbiAgICByaWdodFRodW1iSW50ZXJtZWRpYXRlOiAncmlnaHRUaHVtYlByb3hpbWFsJyxcbn07XG4vKipcbiAqIEEgcGx1Z2luIG9mIEdMVEZMb2FkZXIgdGhhdCBpbXBvcnRzIGEge0BsaW5rIFZSTUh1bWFub2lkfSBmcm9tIGEgVlJNIGV4dGVuc2lvbiBvZiBhIEdMVEYuXG4gKi9cbmNsYXNzIFZSTUh1bWFub2lkTG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHVzZSB0aGUgZXh0ZW5zaW9uIG5hbWUgaW5zdGVhZCBidXQgd2UgaGF2ZSBtdWx0aXBsZSBwbHVnaW5zIGZvciBhbiBleHRlbnNpb24uLi5cbiAgICAgICAgcmV0dXJuICdWUk1IdW1hbm9pZExvYWRlclBsdWdpbic7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcnNlciwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICAgICAgdGhpcy5oZWxwZXJSb290ID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlbHBlclJvb3Q7XG4gICAgICAgIHRoaXMuYXV0b1VwZGF0ZUh1bWFuQm9uZXMgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuYXV0b1VwZGF0ZUh1bWFuQm9uZXM7XG4gICAgfVxuICAgIGFmdGVyUm9vdChnbHRmKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBnbHRmLnVzZXJEYXRhLnZybUh1bWFub2lkID0geWllbGQgdGhpcy5faW1wb3J0KGdsdGYpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW1wb3J0IGEge0BsaW5rIFZSTUh1bWFub2lkfSBmcm9tIGEgVlJNLlxuICAgICAqXG4gICAgICogQHBhcmFtIGdsdGYgQSBwYXJzZWQgcmVzdWx0IG9mIEdMVEYgdGFrZW4gZnJvbSBHTFRGTG9hZGVyXG4gICAgICovXG4gICAgX2ltcG9ydChnbHRmKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCB2MVJlc3VsdCA9IHlpZWxkIHRoaXMuX3YxSW1wb3J0KGdsdGYpO1xuICAgICAgICAgICAgaWYgKHYxUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYxUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdjBSZXN1bHQgPSB5aWVsZCB0aGlzLl92MEltcG9ydChnbHRmKTtcbiAgICAgICAgICAgIGlmICh2MFJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2MFJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3YxSW1wb3J0KGdsdGYpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgdnJtXG4gICAgICAgICAgICBjb25zdCBpc1ZSTVVzZWQgPSAoKF9hID0ganNvbi5leHRlbnNpb25zVXNlZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmluZGV4T2YoJ1ZSTUNfdnJtJykpICE9PSAtMTtcbiAgICAgICAgICAgIGlmICghaXNWUk1Vc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSAoX2IgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYlsnVlJNQ192cm0nXTtcbiAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzcGVjVmVyc2lvbiA9IGV4dGVuc2lvbi5zcGVjVmVyc2lvbjtcbiAgICAgICAgICAgIGlmICghUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyQyLmhhcyhzcGVjVmVyc2lvbikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTUh1bWFub2lkTG9hZGVyUGx1Z2luOiBVbmtub3duIFZSTUNfdnJtIHNwZWNWZXJzaW9uIFwiJHtzcGVjVmVyc2lvbn1cImApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hSHVtYW5vaWQgPSBleHRlbnNpb24uaHVtYW5vaWQ7XG4gICAgICAgICAgICBpZiAoIXNjaGVtYUh1bWFub2lkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGNvbXBhdDogMS4wLWJldGEgdGh1bWIgYm9uZSBuYW1lc1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIGB0cnVlYCBpZiBgbGVmdFRodW1iSW50ZXJtZWRpYXRlYCBvciBgcmlnaHRUaHVtYkludGVybWVkaWF0ZWAgZXhpc3RzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGV4aXN0c1ByZXZpb3VzVGh1bWJOYW1lID0gc2NoZW1hSHVtYW5vaWQuaHVtYW5Cb25lcy5sZWZ0VGh1bWJJbnRlcm1lZGlhdGUgIT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIHNjaGVtYUh1bWFub2lkLmh1bWFuQm9uZXMucmlnaHRUaHVtYkludGVybWVkaWF0ZSAhPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgaHVtYW5Cb25lcyA9IHt9O1xuICAgICAgICAgICAgaWYgKHNjaGVtYUh1bWFub2lkLmh1bWFuQm9uZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHlpZWxkIFByb21pc2UuYWxsKE9iamVjdC5lbnRyaWVzKHNjaGVtYUh1bWFub2lkLmh1bWFuQm9uZXMpLm1hcCgoW2JvbmVOYW1lU3RyaW5nLCBzY2hlbWFIdW1hbkJvbmVdKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBib25lTmFtZSA9IGJvbmVOYW1lU3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHNjaGVtYUh1bWFuQm9uZS5ub2RlO1xuICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXQ6IDEuMC1iZXRhIHByZXZpb3VzIHRodW1iIGJvbmUgbmFtZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4aXN0c1ByZXZpb3VzVGh1bWJOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aHVtYkJvbmVOYW1lID0gdGh1bWJCb25lTmFtZU1hcFtib25lTmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGh1bWJCb25lTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9uZU5hbWUgPSB0aHVtYkJvbmVOYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB5aWVsZCB0aGlzLnBhcnNlci5nZXREZXBlbmRlbmN5KCdub2RlJywgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc3BlY2lmaWVkIG5vZGUgZG9lcyBub3QgZXhpc3QsIGVtaXQgYSB3YXJuaW5nXG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgQSBnbFRGIG5vZGUgYm91bmQgdG8gdGhlIGh1bWFub2lkIGJvbmUgJHtib25lTmFtZX0gKGluZGV4ID0gJHtpbmRleH0pIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRvIHRoZSBgaHVtYW5Cb25lc2BcbiAgICAgICAgICAgICAgICAgICAgaHVtYW5Cb25lc1tib25lTmFtZV0gPSB7IG5vZGUgfTtcbiAgICAgICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaHVtYW5vaWQgPSBuZXcgVlJNSHVtYW5vaWQodGhpcy5fZW5zdXJlUmVxdWlyZWRCb25lc0V4aXN0KGh1bWFuQm9uZXMpLCB7XG4gICAgICAgICAgICAgICAgYXV0b1VwZGF0ZUh1bWFuQm9uZXM6IHRoaXMuYXV0b1VwZGF0ZUh1bWFuQm9uZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGdsdGYuc2NlbmUuYWRkKGh1bWFub2lkLm5vcm1hbGl6ZWRIdW1hbkJvbmVzUm9vdCk7XG4gICAgICAgICAgICBpZiAodGhpcy5oZWxwZXJSb290KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IFZSTUh1bWFub2lkSGVscGVyKGh1bWFub2lkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHBlclJvb3QuYWRkKGhlbHBlcik7XG4gICAgICAgICAgICAgICAgaGVscGVyLnJlbmRlck9yZGVyID0gdGhpcy5oZWxwZXJSb290LnJlbmRlck9yZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGh1bWFub2lkO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3YwSW1wb3J0KGdsdGYpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMucGFyc2VyLmpzb247XG4gICAgICAgICAgICBjb25zdCB2cm1FeHQgPSAoX2EgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5WUk07XG4gICAgICAgICAgICBpZiAoIXZybUV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hSHVtYW5vaWQgPSB2cm1FeHQuaHVtYW5vaWQ7XG4gICAgICAgICAgICBpZiAoIXNjaGVtYUh1bWFub2lkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBodW1hbkJvbmVzID0ge307XG4gICAgICAgICAgICBpZiAoc2NoZW1hSHVtYW5vaWQuaHVtYW5Cb25lcyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgUHJvbWlzZS5hbGwoc2NoZW1hSHVtYW5vaWQuaHVtYW5Cb25lcy5tYXAoKGJvbmUpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9uZU5hbWUgPSBib25lLmJvbmU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYm9uZS5ub2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYm9uZU5hbWUgPT0gbnVsbCB8fCBpbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHlpZWxkIHRoaXMucGFyc2VyLmdldERlcGVuZGVuY3koJ25vZGUnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBzcGVjaWZpZWQgbm9kZSBkb2VzIG5vdCBleGlzdCwgZW1pdCBhIHdhcm5pbmdcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBBIGdsVEYgbm9kZSBib3VuZCB0byB0aGUgaHVtYW5vaWQgYm9uZSAke2JvbmVOYW1lfSAoaW5kZXggPSAke2luZGV4fSkgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBtYXAgdG8gbmV3IGJvbmUgbmFtZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aHVtYkJvbmVOYW1lID0gdGh1bWJCb25lTmFtZU1hcFtib25lTmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0JvbmVOYW1lID0gKHRodW1iQm9uZU5hbWUgIT09IG51bGwgJiYgdGh1bWJCb25lTmFtZSAhPT0gdm9pZCAwID8gdGh1bWJCb25lTmFtZSA6IGJvbmVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdjAgVlJNcyBtaWdodCBoYXZlIGEgbXVsdGlwbGUgbm9kZXMgYXR0YWNoZWQgdG8gYSBzaW5nbGUgYm9uZS4uLlxuICAgICAgICAgICAgICAgICAgICAvLyBzbyBpZiB0aGVyZSBhbHJlYWR5IGlzIGFuIGVudHJ5IGluIHRoZSBgaHVtYW5Cb25lc2AsIHNob3cgYSB3YXJuaW5nIGFuZCBpZ25vcmUgaXRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh1bWFuQm9uZXNbbmV3Qm9uZU5hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgTXVsdGlwbGUgYm9uZSBlbnRyaWVzIGZvciAke25ld0JvbmVOYW1lfSBkZXRlY3RlZCAoaW5kZXggPSAke2luZGV4fSksIGlnbm9yaW5nIGR1cGxpY2F0ZWQgZW50cmllcy5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdG8gdGhlIGBodW1hbkJvbmVzYFxuICAgICAgICAgICAgICAgICAgICBodW1hbkJvbmVzW25ld0JvbmVOYW1lXSA9IHsgbm9kZSB9O1xuICAgICAgICAgICAgICAgIH0pKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBodW1hbm9pZCA9IG5ldyBWUk1IdW1hbm9pZCh0aGlzLl9lbnN1cmVSZXF1aXJlZEJvbmVzRXhpc3QoaHVtYW5Cb25lcyksIHtcbiAgICAgICAgICAgICAgICBhdXRvVXBkYXRlSHVtYW5Cb25lczogdGhpcy5hdXRvVXBkYXRlSHVtYW5Cb25lcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZ2x0Zi5zY2VuZS5hZGQoaHVtYW5vaWQubm9ybWFsaXplZEh1bWFuQm9uZXNSb290KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhlbHBlclJvb3QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWxwZXIgPSBuZXcgVlJNSHVtYW5vaWRIZWxwZXIoaHVtYW5vaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGVscGVyUm9vdC5hZGQoaGVscGVyKTtcbiAgICAgICAgICAgICAgICBoZWxwZXIucmVuZGVyT3JkZXIgPSB0aGlzLmhlbHBlclJvb3QucmVuZGVyT3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaHVtYW5vaWQ7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbnN1cmUgcmVxdWlyZWQgYm9uZXMgZXhpc3QgaW4gZ2l2ZW4gaHVtYW4gYm9uZXMuXG4gICAgICogQHBhcmFtIGh1bWFuQm9uZXMgSHVtYW4gYm9uZXNcbiAgICAgKiBAcmV0dXJucyBIdW1hbiBib25lcywgbm8gbG9uZ2VyIHBhcnRpYWwhXG4gICAgICovXG4gICAgX2Vuc3VyZVJlcXVpcmVkQm9uZXNFeGlzdChodW1hbkJvbmVzKSB7XG4gICAgICAgIC8vIGVuc3VyZSByZXF1aXJlZCBib25lcyBleGlzdFxuICAgICAgICBjb25zdCBtaXNzaW5nUmVxdWlyZWRCb25lcyA9IE9iamVjdC52YWx1ZXMoVlJNUmVxdWlyZWRIdW1hbkJvbmVOYW1lKS5maWx0ZXIoKHJlcXVpcmVkQm9uZU5hbWUpID0+IGh1bWFuQm9uZXNbcmVxdWlyZWRCb25lTmFtZV0gPT0gbnVsbCk7XG4gICAgICAgIC8vIHRocm93IGFuIGVycm9yIGlmIHRoZXJlIGFyZSBtaXNzaW5nIGJvbmVzXG4gICAgICAgIGlmIChtaXNzaW5nUmVxdWlyZWRCb25lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZSTUh1bWFub2lkTG9hZGVyUGx1Z2luOiBUaGVzZSBodW1hbm9pZCBib25lcyBhcmUgcmVxdWlyZWQgYnV0IG5vdCBleGlzdDogJHttaXNzaW5nUmVxdWlyZWRCb25lcy5qb2luKCcsICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBodW1hbkJvbmVzO1xuICAgIH1cbn1cblxuY2xhc3MgRmFuQnVmZmVyR2VvbWV0cnkgZXh0ZW5kcyBUSFJFRS5CdWZmZXJHZW9tZXRyeSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUaGV0YSA9IDA7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSYWRpdXMgPSAwO1xuICAgICAgICB0aGlzLnRoZXRhID0gMC4wO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IDAuMDtcbiAgICAgICAgdGhpcy5fY3VycmVudFRoZXRhID0gMC4wO1xuICAgICAgICB0aGlzLl9jdXJyZW50UmFkaXVzID0gMC4wO1xuICAgICAgICB0aGlzLl9hdHRyUG9zID0gbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KDY1ICogMyksIDMpO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCB0aGlzLl9hdHRyUG9zKTtcbiAgICAgICAgdGhpcy5fYXR0ckluZGV4ID0gbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgVWludDE2QXJyYXkoMyAqIDYzKSwgMSk7XG4gICAgICAgIHRoaXMuc2V0SW5kZXgodGhpcy5fYXR0ckluZGV4KTtcbiAgICAgICAgdGhpcy5fYnVpbGRJbmRleCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGxldCBzaG91bGRVcGRhdGVHZW9tZXRyeSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudFRoZXRhICE9PSB0aGlzLnRoZXRhKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50VGhldGEgPSB0aGlzLnRoZXRhO1xuICAgICAgICAgICAgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50UmFkaXVzICE9PSB0aGlzLnJhZGl1cykge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudFJhZGl1cyA9IHRoaXMucmFkaXVzO1xuICAgICAgICAgICAgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRVcGRhdGVHZW9tZXRyeSkge1xuICAgICAgICAgICAgdGhpcy5fYnVpbGRQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9idWlsZFBvc2l0aW9uKCkge1xuICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWigwLCAwLjAsIDAuMCwgMC4wKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0ID0gKGkgLyA2My4wKSAqIHRoaXMuX2N1cnJlbnRUaGV0YTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKGkgKyAxLCB0aGlzLl9jdXJyZW50UmFkaXVzICogTWF0aC5zaW4odCksIDAuMCwgdGhpcy5fY3VycmVudFJhZGl1cyAqIE1hdGguY29zKHQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hdHRyUG9zLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgX2J1aWxkSW5kZXgoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjM7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZWihpICogMywgMCwgaSArIDEsIGkgKyAyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hdHRySW5kZXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbn1cblxuY2xhc3MgTGluZUFuZFNwaGVyZUJ1ZmZlckdlb21ldHJ5IGV4dGVuZHMgVEhSRUUuQnVmZmVyR2VvbWV0cnkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IDAuMDtcbiAgICAgICAgdGhpcy5fY3VycmVudFJhZGl1cyA9IDAuMDtcbiAgICAgICAgdGhpcy50YWlsID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgdGhpcy5fY3VycmVudFRhaWwgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgICAgICB0aGlzLl9hdHRyUG9zID0gbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KDI5NCksIDMpO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCB0aGlzLl9hdHRyUG9zKTtcbiAgICAgICAgdGhpcy5fYXR0ckluZGV4ID0gbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgVWludDE2QXJyYXkoMTk0KSwgMSk7XG4gICAgICAgIHRoaXMuc2V0SW5kZXgodGhpcy5fYXR0ckluZGV4KTtcbiAgICAgICAgdGhpcy5fYnVpbGRJbmRleCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGxldCBzaG91bGRVcGRhdGVHZW9tZXRyeSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudFJhZGl1cyAhPT0gdGhpcy5yYWRpdXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRSYWRpdXMgPSB0aGlzLnJhZGl1cztcbiAgICAgICAgICAgIHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2N1cnJlbnRUYWlsLmVxdWFscyh0aGlzLnRhaWwpKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50VGFpbC5jb3B5KHRoaXMudGFpbCk7XG4gICAgICAgICAgICBzaG91bGRVcGRhdGVHZW9tZXRyeSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNob3VsZFVwZGF0ZUdlb21ldHJ5KSB7XG4gICAgICAgICAgICB0aGlzLl9idWlsZFBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2J1aWxkUG9zaXRpb24oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdCA9IChpIC8gMTYuMCkgKiBNYXRoLlBJO1xuICAgICAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooaSwgTWF0aC5jb3ModCksIE1hdGguc2luKHQpLCAwLjApO1xuICAgICAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooMzIgKyBpLCAwLjAsIE1hdGguY29zKHQpLCBNYXRoLnNpbih0KSk7XG4gICAgICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWig2NCArIGksIE1hdGguc2luKHQpLCAwLjAsIE1hdGguY29zKHQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjYWxlKHRoaXMuX2N1cnJlbnRSYWRpdXMsIHRoaXMuX2N1cnJlbnRSYWRpdXMsIHRoaXMuX2N1cnJlbnRSYWRpdXMpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZSh0aGlzLl9jdXJyZW50VGFpbC54LCB0aGlzLl9jdXJyZW50VGFpbC55LCB0aGlzLl9jdXJyZW50VGFpbC56KTtcbiAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooOTYsIDAsIDAsIDApO1xuICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWig5NywgdGhpcy5fY3VycmVudFRhaWwueCwgdGhpcy5fY3VycmVudFRhaWwueSwgdGhpcy5fY3VycmVudFRhaWwueik7XG4gICAgICAgIHRoaXMuX2F0dHJQb3MubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgICBfYnVpbGRJbmRleCgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpMSA9IChpICsgMSkgJSAzMjtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJJbmRleC5zZXRYWShpICogMiwgaSwgaTEpO1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKDY0ICsgaSAqIDIsIDMyICsgaSwgMzIgKyBpMSk7XG4gICAgICAgICAgICB0aGlzLl9hdHRySW5kZXguc2V0WFkoMTI4ICsgaSAqIDIsIDY0ICsgaSwgNjQgKyBpMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKDE5MiwgOTYsIDk3KTtcbiAgICAgICAgdGhpcy5fYXR0ckluZGV4Lm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG59XG5cbmNvbnN0IF9xdWF0QSQyID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbmNvbnN0IF9xdWF0QiQyID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbmNvbnN0IF92M0EkMSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfdjNCJDEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgU1FSVF8yX09WRVJfMiA9IE1hdGguc3FydCgyLjApIC8gMi4wO1xuY29uc3QgUVVBVF9YWV9DVzkwID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oMCwgMCwgLVNRUlRfMl9PVkVSXzIsIFNRUlRfMl9PVkVSXzIpO1xuY29uc3QgVkVDM19QT1NJVElWRV9ZID0gbmV3IFRIUkVFLlZlY3RvcjMoMC4wLCAxLjAsIDAuMCk7XG5jbGFzcyBWUk1Mb29rQXRIZWxwZXIgZXh0ZW5kcyBUSFJFRS5Hcm91cCB7XG4gICAgY29uc3RydWN0b3IobG9va0F0KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWF0cml4QXV0b1VwZGF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZybUxvb2tBdCA9IGxvb2tBdDtcbiAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgRmFuQnVmZmVyR2VvbWV0cnkoKTtcbiAgICAgICAgICAgIGdlb21ldHJ5LnJhZGl1cyA9IDAuNTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogMHgwMGZmMDAsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41LFxuICAgICAgICAgICAgICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXG4gICAgICAgICAgICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXB0aFdyaXRlOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fbWVzaFBpdGNoID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksIG1hdGVyaWFsKTtcbiAgICAgICAgICAgIHRoaXMuYWRkKHRoaXMuX21lc2hQaXRjaCk7XG4gICAgICAgIH1cbiAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgRmFuQnVmZmVyR2VvbWV0cnkoKTtcbiAgICAgICAgICAgIGdlb21ldHJ5LnJhZGl1cyA9IDAuNTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogMHhmZjAwMDAsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41LFxuICAgICAgICAgICAgICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXG4gICAgICAgICAgICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXB0aFdyaXRlOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fbWVzaFlhdyA9IG5ldyBUSFJFRS5NZXNoKGdlb21ldHJ5LCBtYXRlcmlhbCk7XG4gICAgICAgICAgICB0aGlzLmFkZCh0aGlzLl9tZXNoWWF3KTtcbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBMaW5lQW5kU3BoZXJlQnVmZmVyR2VvbWV0cnkoKTtcbiAgICAgICAgICAgIGdlb21ldHJ5LnJhZGl1cyA9IDAuMTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogMHhmZmZmZmYsXG4gICAgICAgICAgICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZXB0aFdyaXRlOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fbGluZVRhcmdldCA9IG5ldyBUSFJFRS5MaW5lU2VnbWVudHMoZ2VvbWV0cnksIG1hdGVyaWFsKTtcbiAgICAgICAgICAgIHRoaXMuX2xpbmVUYXJnZXQuZnJ1c3R1bUN1bGxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5hZGQodGhpcy5fbGluZVRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGlzcG9zZSgpIHtcbiAgICAgICAgdGhpcy5fbWVzaFlhdy5nZW9tZXRyeS5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMuX21lc2hZYXcubWF0ZXJpYWwuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLl9tZXNoUGl0Y2guZ2VvbWV0cnkuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLl9tZXNoUGl0Y2gubWF0ZXJpYWwuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLl9saW5lVGFyZ2V0Lmdlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5fbGluZVRhcmdldC5tYXRlcmlhbC5kaXNwb3NlKCk7XG4gICAgfVxuICAgIHVwZGF0ZU1hdHJpeFdvcmxkKGZvcmNlKSB7XG4gICAgICAgIC8vIHVwZGF0ZSBnZW9tZXRyaWVzXG4gICAgICAgIGNvbnN0IHlhdyA9IFRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy52cm1Mb29rQXQueWF3O1xuICAgICAgICB0aGlzLl9tZXNoWWF3Lmdlb21ldHJ5LnRoZXRhID0geWF3O1xuICAgICAgICB0aGlzLl9tZXNoWWF3Lmdlb21ldHJ5LnVwZGF0ZSgpO1xuICAgICAgICBjb25zdCBwaXRjaCA9IFRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy52cm1Mb29rQXQucGl0Y2g7XG4gICAgICAgIHRoaXMuX21lc2hQaXRjaC5nZW9tZXRyeS50aGV0YSA9IHBpdGNoO1xuICAgICAgICB0aGlzLl9tZXNoUGl0Y2guZ2VvbWV0cnkudXBkYXRlKCk7XG4gICAgICAgIC8vIGdldCB3b3JsZCBwb3NpdGlvbiBhbmQgcXVhdGVybmlvblxuICAgICAgICB0aGlzLnZybUxvb2tBdC5nZXRMb29rQXRXb3JsZFBvc2l0aW9uKF92M0EkMSk7XG4gICAgICAgIHRoaXMudnJtTG9va0F0LmdldExvb2tBdFdvcmxkUXVhdGVybmlvbihfcXVhdEEkMik7XG4gICAgICAgIC8vIGNhbGN1bGF0ZSByb3RhdGlvbiB1c2luZyBmYWNlRnJvbnRcbiAgICAgICAgX3F1YXRBJDIubXVsdGlwbHkodGhpcy52cm1Mb29rQXQuZ2V0RmFjZUZyb250UXVhdGVybmlvbihfcXVhdEIkMikpO1xuICAgICAgICAvLyBzZXQgdHJhbnNmb3JtIHRvIG1lc2hlc1xuICAgICAgICB0aGlzLl9tZXNoWWF3LnBvc2l0aW9uLmNvcHkoX3YzQSQxKTtcbiAgICAgICAgdGhpcy5fbWVzaFlhdy5xdWF0ZXJuaW9uLmNvcHkoX3F1YXRBJDIpO1xuICAgICAgICB0aGlzLl9tZXNoUGl0Y2gucG9zaXRpb24uY29weShfdjNBJDEpO1xuICAgICAgICB0aGlzLl9tZXNoUGl0Y2gucXVhdGVybmlvbi5jb3B5KF9xdWF0QSQyKTtcbiAgICAgICAgdGhpcy5fbWVzaFBpdGNoLnF1YXRlcm5pb24ubXVsdGlwbHkoX3F1YXRCJDIuc2V0RnJvbUF4aXNBbmdsZShWRUMzX1BPU0lUSVZFX1ksIHlhdykpO1xuICAgICAgICB0aGlzLl9tZXNoUGl0Y2gucXVhdGVybmlvbi5tdWx0aXBseShRVUFUX1hZX0NXOTApO1xuICAgICAgICAvLyB1cGRhdGUgdGFyZ2V0IGxpbmUgYW5kIHNwaGVyZVxuICAgICAgICBjb25zdCB7IHRhcmdldCwgYXV0b1VwZGF0ZSB9ID0gdGhpcy52cm1Mb29rQXQ7XG4gICAgICAgIGlmICh0YXJnZXQgIT0gbnVsbCAmJiBhdXRvVXBkYXRlKSB7XG4gICAgICAgICAgICB0YXJnZXQuZ2V0V29ybGRQb3NpdGlvbihfdjNCJDEpLnN1YihfdjNBJDEpO1xuICAgICAgICAgICAgdGhpcy5fbGluZVRhcmdldC5nZW9tZXRyeS50YWlsLmNvcHkoX3YzQiQxKTtcbiAgICAgICAgICAgIHRoaXMuX2xpbmVUYXJnZXQuZ2VvbWV0cnkudXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLl9saW5lVGFyZ2V0LnBvc2l0aW9uLmNvcHkoX3YzQSQxKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhcHBseSB0cmFuc2Zvcm0gdG8gbWVzaGVzXG4gICAgICAgIHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKGZvcmNlKTtcbiAgICB9XG59XG5cbmNvbnN0IF9wb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfc2NhbGUgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuLyoqXG4gKiBBIHJlcGxhY2VtZW50IG9mIGBPYmplY3QzRC5nZXRXb3JsZFF1YXRlcm5pb25gLlxuICogRXh0cmFjdCB0aGUgd29ybGQgcXVhdGVybmlvbiBvZiBhbiBvYmplY3QgZnJvbSBpdHMgd29ybGQgc3BhY2UgbWF0cml4LCB3aXRob3V0IGNhbGxpbmcgYE9iamVjdDNELnVwZGF0ZVdvcmxkTWF0cml4YC5cbiAqIFVzZSB0aGlzIHdoZW4geW91J3JlIHN1cmUgdGhhdCB0aGUgd29ybGQgbWF0cml4IGlzIHVwLXRvLWRhdGUuXG4gKlxuICogQHBhcmFtIG9iamVjdCBUaGUgb2JqZWN0XG4gKiBAcGFyYW0gb3V0IEEgdGFyZ2V0IHF1YXRlcm5pb25cbiAqL1xuZnVuY3Rpb24gZ2V0V29ybGRRdWF0ZXJuaW9uTGl0ZShvYmplY3QsIG91dCkge1xuICAgIG9iamVjdC5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoX3Bvc2l0aW9uLCBvdXQsIF9zY2FsZSk7XG4gICAgcmV0dXJuIG91dDtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgYXppbXV0aCAvIGFsdGl0dWRlIGFuZ2xlcyBmcm9tIGEgdmVjdG9yLlxuICpcbiAqIFRoaXMgcmV0dXJucyBhIGRpZmZlcmVuY2Ugb2YgYW5nbGVzIGZyb20gKDEsIDAsIDApLlxuICogQXppbXV0aCByZXByZXNlbnRzIGFuIGFuZ2xlIGFyb3VuZCBZIGF4aXMuXG4gKiBBbHRpdHVkZSByZXByZXNlbnRzIGFuIGFuZ2xlIGFyb3VuZCBaIGF4aXMuXG4gKiBJdCBpcyByb3RhdGVkIGluIGludHJpbnNpYyBZLVogb3JkZXIuXG4gKlxuICogQHBhcmFtIHZlY3RvciBUaGUgdmVjdG9yXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5zIHR3byBhbmdsZXMsIGBbIGF6aW11dGgsIGFsdGl0dWRlIF1gXG4gKi9cbmZ1bmN0aW9uIGNhbGNBemltdXRoQWx0aXR1ZGUodmVjdG9yKSB7XG4gICAgcmV0dXJuIFtNYXRoLmF0YW4yKC12ZWN0b3IueiwgdmVjdG9yLngpLCBNYXRoLmF0YW4yKHZlY3Rvci55LCBNYXRoLnNxcnQodmVjdG9yLnggKiB2ZWN0b3IueCArIHZlY3Rvci56ICogdmVjdG9yLnopKV07XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIHRoZSBhbmdsZSBpcyB3aXRoaW4gLVBJIHRvIFBJLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBqc1xuICogc2FuaXRpemVBbmdsZSgxLjUgKiBNYXRoLlBJKSAvLyAtMC41ICogUElcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBhbmdsZSBBbiBpbnB1dCBhbmdsZVxuICovXG5mdW5jdGlvbiBzYW5pdGl6ZUFuZ2xlKGFuZ2xlKSB7XG4gICAgY29uc3Qgcm91bmRUdXJuID0gTWF0aC5yb3VuZChhbmdsZSAvIDIuMCAvIE1hdGguUEkpO1xuICAgIHJldHVybiBhbmdsZSAtIDIuMCAqIE1hdGguUEkgKiByb3VuZFR1cm47XG59XG5cbmNvbnN0IFZFQzNfUE9TSVRJVkVfWiQxID0gbmV3IFRIUkVFLlZlY3RvcjMoMC4wLCAwLjAsIDEuMCk7XG5jb25zdCBfdjNBID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF92M0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3YzQyA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfcXVhdEEkMSA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfcXVhdEIkMSA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfcXVhdEMgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX3F1YXREID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbmNvbnN0IF9ldWxlckEkMSA9IG5ldyBUSFJFRS5FdWxlcigpO1xuLyoqXG4gKiBBIGNsYXNzIGNvbnRyb2xzIGV5ZSBnYXplIG1vdmVtZW50cyBvZiBhIFZSTS5cbiAqL1xuY2xhc3MgVlJNTG9va0F0IHtcbiAgICAvKipcbiAgICAgKiBJdHMgY3VycmVudCBhbmdsZSBhcm91bmQgWSBheGlzLCBpbiBkZWdyZWUuXG4gICAgICovXG4gICAgZ2V0IHlhdygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3lhdztcbiAgICB9XG4gICAgLyoqXG4gICAgICogSXRzIGN1cnJlbnQgYW5nbGUgYXJvdW5kIFkgYXhpcywgaW4gZGVncmVlLlxuICAgICAqL1xuICAgIHNldCB5YXcodmFsdWUpIHtcbiAgICAgICAgdGhpcy5feWF3ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX25lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSXRzIGN1cnJlbnQgYW5nbGUgYXJvdW5kIFggYXhpcywgaW4gZGVncmVlLlxuICAgICAqL1xuICAgIGdldCBwaXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BpdGNoO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJdHMgY3VycmVudCBhbmdsZSBhcm91bmQgWCBheGlzLCBpbiBkZWdyZWUuXG4gICAgICovXG4gICAgc2V0IHBpdGNoKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3BpdGNoID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX25lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBnZXRFdWxlcn0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBnZXQgZXVsZXIoKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignVlJNTG9va0F0OiBldWxlciBpcyBkZXByZWNhdGVkLiB1c2UgZ2V0RXVsZXIoKSBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRFdWxlcihuZXcgVEhSRUUuRXVsZXIoKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgVlJNTG9va0F0fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBodW1hbm9pZCBBIHtAbGluayBWUk1IdW1hbm9pZH1cbiAgICAgKiBAcGFyYW0gYXBwbGllciBBIHtAbGluayBWUk1Mb29rQXRBcHBsaWVyfVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGh1bWFub2lkLCBhcHBsaWVyKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgb3JpZ2luIG9mIExvb2tBdC4gUG9zaXRpb24gb2Zmc2V0IGZyb20gdGhlIGhlYWQgYm9uZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub2Zmc2V0RnJvbUhlYWRCb25lID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoaXMgaXMgdHJ1ZSwgdGhlIExvb2tBdCB3aWxsIGJlIHVwZGF0ZWQgYXV0b21hdGljYWxseSBieSBjYWxsaW5nIHtAbGluayB1cGRhdGV9LCB0b3dhcmRpbmcgdGhlIGRpcmVjdGlvbiB0byB0aGUge0BsaW5rIHRhcmdldH0uXG4gICAgICAgICAqIGB0cnVlYCBieSBkZWZhdWx0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBTZWUgYWxzbzoge0BsaW5rIHRhcmdldH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYXV0b1VwZGF0ZSA9IHRydWU7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZnJvbnQgZGlyZWN0aW9uIG9mIHRoZSBmYWNlLlxuICAgICAgICAgKiBJbnRlbmRlZCB0byBiZSB1c2VkIGZvciBWUk0gMC4wIGNvbXBhdCAoVlJNIDAuMCBtb2RlbHMgYXJlIGZhY2luZyBaLSBpbnN0ZWFkIG9mIForKS5cbiAgICAgICAgICogWW91IHVzdWFsbHkgZG9uJ3Qgd2FudCB0byB0b3VjaCB0aGlzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mYWNlRnJvbnQgPSBuZXcgVEhSRUUuVmVjdG9yMygwLjAsIDAuMCwgMS4wKTtcbiAgICAgICAgdGhpcy5odW1hbm9pZCA9IGh1bWFub2lkO1xuICAgICAgICB0aGlzLmFwcGxpZXIgPSBhcHBsaWVyO1xuICAgICAgICB0aGlzLl95YXcgPSAwLjA7XG4gICAgICAgIHRoaXMuX3BpdGNoID0gMC4wO1xuICAgICAgICB0aGlzLl9uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Jlc3RIZWFkV29ybGRRdWF0ZXJuaW9uID0gdGhpcy5nZXRMb29rQXRXb3JsZFF1YXRlcm5pb24obmV3IFRIUkVFLlF1YXRlcm5pb24oKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCBpdHMgeWF3LXBpdGNoIGFuZ2xlcyBhcyBhbiBgRXVsZXJgLlxuICAgICAqIERvZXMgTk9UIGNvbnNpZGVyIHtAbGluayBmYWNlRnJvbnR9OyBpdCByZXR1cm5zIGBFdWxlcigwLCAwLCAwOyBcIllYWlwiKWAgYnkgZGVmYXVsdCByZWdhcmRsZXNzIG9mIHRoZSBmYWNlRnJvbnQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgZXVsZXJcbiAgICAgKi9cbiAgICBnZXRFdWxlcih0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldC5zZXQoVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLl9waXRjaCwgVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLl95YXcsIDAuMCwgJ1lYWicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb3B5IHRoZSBnaXZlbiB7QGxpbmsgVlJNTG9va0F0fSBpbnRvIHRoaXMgb25lLlxuICAgICAqIHtAbGluayBodW1hbm9pZH0gbXVzdCBiZSBzYW1lIGFzIHRoZSBzb3VyY2Ugb25lLlxuICAgICAqIHtAbGluayBhcHBsaWVyfSB3aWxsIHJlZmVyZW5jZSB0aGUgc2FtZSBpbnN0YW5jZSBhcyB0aGUgc291cmNlIG9uZS5cbiAgICAgKiBAcGFyYW0gc291cmNlIFRoZSB7QGxpbmsgVlJNTG9va0F0fSB5b3Ugd2FudCB0byBjb3B5XG4gICAgICogQHJldHVybnMgdGhpc1xuICAgICAqL1xuICAgIGNvcHkoc291cmNlKSB7XG4gICAgICAgIGlmICh0aGlzLmh1bWFub2lkICE9PSBzb3VyY2UuaHVtYW5vaWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVlJNTG9va0F0OiBodW1hbm9pZCBtdXN0IGJlIHNhbWUgaW4gb3JkZXIgdG8gY29weScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2Zmc2V0RnJvbUhlYWRCb25lLmNvcHkoc291cmNlLm9mZnNldEZyb21IZWFkQm9uZSk7XG4gICAgICAgIHRoaXMuYXBwbGllciA9IHNvdXJjZS5hcHBsaWVyO1xuICAgICAgICB0aGlzLmF1dG9VcGRhdGUgPSBzb3VyY2UuYXV0b1VwZGF0ZTtcbiAgICAgICAgdGhpcy50YXJnZXQgPSBzb3VyY2UudGFyZ2V0O1xuICAgICAgICB0aGlzLmZhY2VGcm9udC5jb3B5KHNvdXJjZS5mYWNlRnJvbnQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNsb25lIG9mIHRoaXMge0BsaW5rIFZSTUxvb2tBdH0uXG4gICAgICogTm90ZSB0aGF0IHtAbGluayBodW1hbm9pZH0gYW5kIHtAbGluayBhcHBsaWVyfSB3aWxsIHJlZmVyZW5jZSB0aGUgc2FtZSBpbnN0YW5jZSBhcyB0aGlzIG9uZS5cbiAgICAgKiBAcmV0dXJucyBDb3BpZWQge0BsaW5rIFZSTUxvb2tBdH1cbiAgICAgKi9cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWUk1Mb29rQXQodGhpcy5odW1hbm9pZCwgdGhpcy5hcHBsaWVyKS5jb3B5KHRoaXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNldCB0aGUgbG9va0F0IGRpcmVjdGlvbiAoeWF3IGFuZCBwaXRjaCkgdG8gdGhlIGluaXRpYWwgZGlyZWN0aW9uLlxuICAgICAqL1xuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLl95YXcgPSAwLjA7XG4gICAgICAgIHRoaXMuX3BpdGNoID0gMC4wO1xuICAgICAgICB0aGlzLl9uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCBpdHMgbG9va0F0IHBvc2l0aW9uIGluIHdvcmxkIGNvb3JkaW5hdGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFyZ2V0IEEgdGFyZ2V0IGBUSFJFRS5WZWN0b3IzYFxuICAgICAqL1xuICAgIGdldExvb2tBdFdvcmxkUG9zaXRpb24odGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IGhlYWQgPSB0aGlzLmh1bWFub2lkLmdldFJhd0JvbmVOb2RlKCdoZWFkJyk7XG4gICAgICAgIHJldHVybiB0YXJnZXQuY29weSh0aGlzLm9mZnNldEZyb21IZWFkQm9uZSkuYXBwbHlNYXRyaXg0KGhlYWQubWF0cml4V29ybGQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgaXRzIGxvb2tBdCByb3RhdGlvbiBpbiB3b3JsZCBjb29yZGluYXRlLlxuICAgICAqIERvZXMgTk9UIGNvbnNpZGVyIHtAbGluayBmYWNlRnJvbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhcmdldCBBIHRhcmdldCBgVEhSRUUuUXVhdGVybmlvbmBcbiAgICAgKi9cbiAgICBnZXRMb29rQXRXb3JsZFF1YXRlcm5pb24odGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IGhlYWQgPSB0aGlzLmh1bWFub2lkLmdldFJhd0JvbmVOb2RlKCdoZWFkJyk7XG4gICAgICAgIHJldHVybiBnZXRXb3JsZFF1YXRlcm5pb25MaXRlKGhlYWQsIHRhcmdldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCBhIHF1YXRlcm5pb24gdGhhdCByb3RhdGVzIHRoZSArWiB1bml0IHZlY3RvciBvZiB0aGUgaHVtYW5vaWQgSGVhZCB0byB0aGUge0BsaW5rIGZhY2VGcm9udH0gZGlyZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhcmdldCBBIHRhcmdldCBgVEhSRUUuUXVhdGVybmlvbmBcbiAgICAgKi9cbiAgICBnZXRGYWNlRnJvbnRRdWF0ZXJuaW9uKHRhcmdldCkge1xuICAgICAgICBpZiAodGhpcy5mYWNlRnJvbnQuZGlzdGFuY2VUb1NxdWFyZWQoVkVDM19QT1NJVElWRV9aJDEpIDwgMC4wMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5jb3B5KHRoaXMuX3Jlc3RIZWFkV29ybGRRdWF0ZXJuaW9uKS5pbnZlcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbZmFjZUZyb250QXppbXV0aCwgZmFjZUZyb250QWx0aXR1ZGVdID0gY2FsY0F6aW11dGhBbHRpdHVkZSh0aGlzLmZhY2VGcm9udCk7XG4gICAgICAgIF9ldWxlckEkMS5zZXQoMC4wLCAwLjUgKiBNYXRoLlBJICsgZmFjZUZyb250QXppbXV0aCwgZmFjZUZyb250QWx0aXR1ZGUsICdZWlgnKTtcbiAgICAgICAgcmV0dXJuIHRhcmdldC5zZXRGcm9tRXVsZXIoX2V1bGVyQSQxKS5wcmVtdWx0aXBseShfcXVhdEQuY29weSh0aGlzLl9yZXN0SGVhZFdvcmxkUXVhdGVybmlvbikuaW52ZXJ0KCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgaXRzIExvb2tBdCBkaXJlY3Rpb24gaW4gd29ybGQgY29vcmRpbmF0ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQgQSB0YXJnZXQgYFRIUkVFLlZlY3RvcjNgXG4gICAgICovXG4gICAgZ2V0TG9va0F0V29ybGREaXJlY3Rpb24odGFyZ2V0KSB7XG4gICAgICAgIHRoaXMuZ2V0TG9va0F0V29ybGRRdWF0ZXJuaW9uKF9xdWF0QiQxKTtcbiAgICAgICAgdGhpcy5nZXRGYWNlRnJvbnRRdWF0ZXJuaW9uKF9xdWF0Qyk7XG4gICAgICAgIHJldHVybiB0YXJnZXRcbiAgICAgICAgICAgIC5jb3B5KFZFQzNfUE9TSVRJVkVfWiQxKVxuICAgICAgICAgICAgLmFwcGx5UXVhdGVybmlvbihfcXVhdEIkMSlcbiAgICAgICAgICAgIC5hcHBseVF1YXRlcm5pb24oX3F1YXRDKVxuICAgICAgICAgICAgLmFwcGx5RXVsZXIodGhpcy5nZXRFdWxlcihfZXVsZXJBJDEpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IGl0cyBsb29rQXQgdGFyZ2V0IHBvc2l0aW9uLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IGl0cyByZXN1bHQgd2lsbCBiZSBpbnN0YW50bHkgb3ZlcndyaXR0ZW4gaWYge0BsaW5rIFZSTUxvb2tBdEhlYWQuYXV0b1VwZGF0ZX0gaXMgZW5hYmxlZC5cbiAgICAgKlxuICAgICAqIElmIHlvdSB3YW50IHRvIHRyYWNrIGFuIG9iamVjdCBjb250aW51b3VzbHksIHlvdSBtaWdodCB3YW50IHRvIHVzZSB7QGxpbmsgdGFyZ2V0fSBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIEEgdGFyZ2V0IHBvc2l0aW9uLCBpbiB3b3JsZCBzcGFjZVxuICAgICAqL1xuICAgIGxvb2tBdChwb3NpdGlvbikge1xuICAgICAgICAvLyBMb29rIGF0IGRpcmVjdGlvbiBpbiBsb2NhbCBjb29yZGluYXRlXG4gICAgICAgIGNvbnN0IGhlYWRSb3REaWZmSW52ID0gX3F1YXRBJDFcbiAgICAgICAgICAgIC5jb3B5KHRoaXMuX3Jlc3RIZWFkV29ybGRRdWF0ZXJuaW9uKVxuICAgICAgICAgICAgLm11bHRpcGx5KHF1YXRJbnZlcnRDb21wYXQodGhpcy5nZXRMb29rQXRXb3JsZFF1YXRlcm5pb24oX3F1YXRCJDEpKSk7XG4gICAgICAgIGNvbnN0IGhlYWRQb3MgPSB0aGlzLmdldExvb2tBdFdvcmxkUG9zaXRpb24oX3YzQik7XG4gICAgICAgIGNvbnN0IGxvb2tBdERpciA9IF92M0MuY29weShwb3NpdGlvbikuc3ViKGhlYWRQb3MpLmFwcGx5UXVhdGVybmlvbihoZWFkUm90RGlmZkludikubm9ybWFsaXplKCk7XG4gICAgICAgIC8vIGNhbGN1bGF0ZSBhbmdsZXNcbiAgICAgICAgY29uc3QgW2F6aW11dGhGcm9tLCBhbHRpdHVkZUZyb21dID0gY2FsY0F6aW11dGhBbHRpdHVkZSh0aGlzLmZhY2VGcm9udCk7XG4gICAgICAgIGNvbnN0IFthemltdXRoVG8sIGFsdGl0dWRlVG9dID0gY2FsY0F6aW11dGhBbHRpdHVkZShsb29rQXREaXIpO1xuICAgICAgICBjb25zdCB5YXcgPSBzYW5pdGl6ZUFuZ2xlKGF6aW11dGhUbyAtIGF6aW11dGhGcm9tKTtcbiAgICAgICAgY29uc3QgcGl0Y2ggPSBzYW5pdGl6ZUFuZ2xlKGFsdGl0dWRlRnJvbSAtIGFsdGl0dWRlVG8pOyAvLyBzcGlubmluZyAoMSwgMCwgMCkgQ0NXIGFyb3VuZCBaIGF4aXMgbWFrZXMgdGhlIHZlY3RvciBsb29rIHVwLCB3aGlsZSBzcGlubmluZyAoMCwgMCwgMSkgQ0NXIGFyb3VuZCBYIGF4aXMgbWFrZXMgdGhlIHZlY3RvciBsb29rIGRvd25cbiAgICAgICAgLy8gYXBwbHkgYW5nbGVzXG4gICAgICAgIHRoaXMuX3lhdyA9IFRIUkVFLk1hdGhVdGlscy5SQUQyREVHICogeWF3O1xuICAgICAgICB0aGlzLl9waXRjaCA9IFRIUkVFLk1hdGhVdGlscy5SQUQyREVHICogcGl0Y2g7XG4gICAgICAgIHRoaXMuX25lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBWUk1Mb29rQXRIZWFkLlxuICAgICAqIElmIHtAbGluayBhdXRvVXBkYXRlfSBpcyBlbmFibGVkLCB0aGlzIHdpbGwgbWFrZSBpdCBsb29rIGF0IHRoZSB7QGxpbmsgdGFyZ2V0fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZWx0YSBkZWx0YVRpbWUsIGl0IGlzbid0IHVzZWQgdGhvdWdoLiBZb3UgY2FuIHVzZSB0aGUgcGFyYW1ldGVyIGlmIHlvdSB3YW50IHRvIHVzZSB0aGlzIGluIHlvdXIgb3duIGV4dGVuZGVkIHtAbGluayBWUk1Mb29rQXR9LlxuICAgICAqL1xuICAgIHVwZGF0ZShkZWx0YSkge1xuICAgICAgICBpZiAodGhpcy50YXJnZXQgIT0gbnVsbCAmJiB0aGlzLmF1dG9VcGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMubG9va0F0KHRoaXMudGFyZ2V0LmdldFdvcmxkUG9zaXRpb24oX3YzQSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9uZWVkc1VwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fbmVlZHNVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYXBwbGllci5hcHBseVlhd1BpdGNoKHRoaXMuX3lhdywgdGhpcy5fcGl0Y2gpO1xuICAgICAgICB9XG4gICAgfVxufVxuVlJNTG9va0F0LkVVTEVSX09SREVSID0gJ1lYWic7IC8vIHlhdy1waXRjaC1yb2xsXG5cbmNvbnN0IFZFQzNfUE9TSVRJVkVfWiA9IG5ldyBUSFJFRS5WZWN0b3IzKDAuMCwgMC4wLCAxLjApO1xuY29uc3QgX3F1YXRBID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbmNvbnN0IF9xdWF0QiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfZXVsZXJBID0gbmV3IFRIUkVFLkV1bGVyKDAuMCwgMC4wLCAwLjAsICdZWFonKTtcbi8qKlxuICogQSBjbGFzcyB0aGF0IGFwcGxpZXMgZXllIGdhemUgZGlyZWN0aW9ucyB0byBhIFZSTS5cbiAqIEl0IHdpbGwgYmUgdXNlZCBieSB7QGxpbmsgVlJNTG9va0F0fS5cbiAqL1xuY2xhc3MgVlJNTG9va0F0Qm9uZUFwcGxpZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgVlJNTG9va0F0Qm9uZUFwcGxpZXJ9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGh1bWFub2lkIEEge0BsaW5rIFZSTUh1bWFub2lkfVxuICAgICAqIEBwYXJhbSByYW5nZU1hcEhvcml6b250YWxJbm5lciBBIHtAbGluayBWUk1Mb29rQXRSYW5nZU1hcH0gdXNlZCBmb3IgaW5uZXIgdHJhbnN2ZXJzZSBkaXJlY3Rpb25cbiAgICAgKiBAcGFyYW0gcmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIgQSB7QGxpbmsgVlJNTG9va0F0UmFuZ2VNYXB9IHVzZWQgZm9yIG91dGVyIHRyYW5zdmVyc2UgZGlyZWN0aW9uXG4gICAgICogQHBhcmFtIHJhbmdlTWFwVmVydGljYWxEb3duIEEge0BsaW5rIFZSTUxvb2tBdFJhbmdlTWFwfSB1c2VkIGZvciBkb3duIGRpcmVjdGlvblxuICAgICAqIEBwYXJhbSByYW5nZU1hcFZlcnRpY2FsVXAgQSB7QGxpbmsgVlJNTG9va0F0UmFuZ2VNYXB9IHVzZWQgZm9yIHVwIGRpcmVjdGlvblxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGh1bWFub2lkLCByYW5nZU1hcEhvcml6b250YWxJbm5lciwgcmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIsIHJhbmdlTWFwVmVydGljYWxEb3duLCByYW5nZU1hcFZlcnRpY2FsVXApIHtcbiAgICAgICAgdGhpcy5odW1hbm9pZCA9IGh1bWFub2lkO1xuICAgICAgICB0aGlzLnJhbmdlTWFwSG9yaXpvbnRhbElubmVyID0gcmFuZ2VNYXBIb3Jpem9udGFsSW5uZXI7XG4gICAgICAgIHRoaXMucmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIgPSByYW5nZU1hcEhvcml6b250YWxPdXRlcjtcbiAgICAgICAgdGhpcy5yYW5nZU1hcFZlcnRpY2FsRG93biA9IHJhbmdlTWFwVmVydGljYWxEb3duO1xuICAgICAgICB0aGlzLnJhbmdlTWFwVmVydGljYWxVcCA9IHJhbmdlTWFwVmVydGljYWxVcDtcbiAgICAgICAgdGhpcy5mYWNlRnJvbnQgPSBuZXcgVEhSRUUuVmVjdG9yMygwLjAsIDAuMCwgMS4wKTtcbiAgICAgICAgLy8gc2V0IHJlc3QgcXVhdGVybmlvbnNcbiAgICAgICAgdGhpcy5fcmVzdFF1YXRMZWZ0RXllID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbiAgICAgICAgdGhpcy5fcmVzdFF1YXRSaWdodEV5ZSA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgICAgIHRoaXMuX3Jlc3RMZWZ0RXllUGFyZW50V29ybGRRdWF0ID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbiAgICAgICAgdGhpcy5fcmVzdFJpZ2h0RXllUGFyZW50V29ybGRRdWF0ID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbiAgICAgICAgY29uc3QgbGVmdEV5ZSA9IHRoaXMuaHVtYW5vaWQuZ2V0UmF3Qm9uZU5vZGUoJ2xlZnRFeWUnKTtcbiAgICAgICAgY29uc3QgcmlnaHRFeWUgPSB0aGlzLmh1bWFub2lkLmdldFJhd0JvbmVOb2RlKCdyaWdodEV5ZScpO1xuICAgICAgICBpZiAobGVmdEV5ZSkge1xuICAgICAgICAgICAgdGhpcy5fcmVzdFF1YXRMZWZ0RXllLmNvcHkobGVmdEV5ZS5xdWF0ZXJuaW9uKTtcbiAgICAgICAgICAgIGdldFdvcmxkUXVhdGVybmlvbkxpdGUobGVmdEV5ZS5wYXJlbnQsIHRoaXMuX3Jlc3RMZWZ0RXllUGFyZW50V29ybGRRdWF0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmlnaHRFeWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc3RRdWF0UmlnaHRFeWUuY29weShyaWdodEV5ZS5xdWF0ZXJuaW9uKTtcbiAgICAgICAgICAgIGdldFdvcmxkUXVhdGVybmlvbkxpdGUocmlnaHRFeWUucGFyZW50LCB0aGlzLl9yZXN0UmlnaHRFeWVQYXJlbnRXb3JsZFF1YXQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFwcGx5IHRoZSBpbnB1dCBhbmdsZSB0byBpdHMgYXNzb2NpYXRlZCBWUk0gbW9kZWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0geWF3IFJvdGF0aW9uIGFyb3VuZCBZIGF4aXMsIGluIGRlZ3JlZVxuICAgICAqIEBwYXJhbSBwaXRjaCBSb3RhdGlvbiBhcm91bmQgWCBheGlzLCBpbiBkZWdyZWVcbiAgICAgKi9cbiAgICBhcHBseVlhd1BpdGNoKHlhdywgcGl0Y2gpIHtcbiAgICAgICAgY29uc3QgbGVmdEV5ZSA9IHRoaXMuaHVtYW5vaWQuZ2V0UmF3Qm9uZU5vZGUoJ2xlZnRFeWUnKTtcbiAgICAgICAgY29uc3QgcmlnaHRFeWUgPSB0aGlzLmh1bWFub2lkLmdldFJhd0JvbmVOb2RlKCdyaWdodEV5ZScpO1xuICAgICAgICBjb25zdCBsZWZ0RXllTm9ybWFsaXplZCA9IHRoaXMuaHVtYW5vaWQuZ2V0Tm9ybWFsaXplZEJvbmVOb2RlKCdsZWZ0RXllJyk7XG4gICAgICAgIGNvbnN0IHJpZ2h0RXllTm9ybWFsaXplZCA9IHRoaXMuaHVtYW5vaWQuZ2V0Tm9ybWFsaXplZEJvbmVOb2RlKCdyaWdodEV5ZScpO1xuICAgICAgICAvLyBsZWZ0XG4gICAgICAgIGlmIChsZWZ0RXllKSB7XG4gICAgICAgICAgICBpZiAocGl0Y2ggPCAwLjApIHtcbiAgICAgICAgICAgICAgICBfZXVsZXJBLnggPSAtVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLnJhbmdlTWFwVmVydGljYWxEb3duLm1hcCgtcGl0Y2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2V1bGVyQS54ID0gVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLnJhbmdlTWFwVmVydGljYWxVcC5tYXAocGl0Y2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHlhdyA8IDAuMCkge1xuICAgICAgICAgICAgICAgIF9ldWxlckEueSA9IC1USFJFRS5NYXRoVXRpbHMuREVHMlJBRCAqIHRoaXMucmFuZ2VNYXBIb3Jpem9udGFsSW5uZXIubWFwKC15YXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2V1bGVyQS55ID0gVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLnJhbmdlTWFwSG9yaXpvbnRhbE91dGVyLm1hcCh5YXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3F1YXRBLnNldEZyb21FdWxlcihfZXVsZXJBKTtcbiAgICAgICAgICAgIHRoaXMuX2dldFdvcmxkRmFjZUZyb250UXVhdChfcXVhdEIpO1xuICAgICAgICAgICAgLy8gX3F1YXRCICogX3F1YXRBICogX3F1YXRCXi0xXG4gICAgICAgICAgICAvLyB3aGVyZSBfcXVhdEEgaXMgTG9va0F0IHJvdGF0aW9uXG4gICAgICAgICAgICAvLyBhbmQgX3F1YXRCIGlzIHdvcmxkRmFjZUZyb250UXVhdFxuICAgICAgICAgICAgbGVmdEV5ZU5vcm1hbGl6ZWQucXVhdGVybmlvbi5jb3B5KF9xdWF0QikubXVsdGlwbHkoX3F1YXRBKS5tdWx0aXBseShfcXVhdEIuaW52ZXJ0KCkpO1xuICAgICAgICAgICAgX3F1YXRBLmNvcHkodGhpcy5fcmVzdExlZnRFeWVQYXJlbnRXb3JsZFF1YXQpO1xuICAgICAgICAgICAgLy8gX3F1YXRBXi0xICogbGVmdEV5ZU5vcm1hbGl6ZWQucXVhdGVybmlvbiAqIF9xdWF0QSAqIHJlc3RRdWF0TGVmdEV5ZVxuICAgICAgICAgICAgLy8gd2hlcmUgX3F1YXRBIGlzIHJlc3RMZWZ0RXllUGFyZW50V29ybGRRdWF0XG4gICAgICAgICAgICBsZWZ0RXllLnF1YXRlcm5pb25cbiAgICAgICAgICAgICAgICAuY29weShsZWZ0RXllTm9ybWFsaXplZC5xdWF0ZXJuaW9uKVxuICAgICAgICAgICAgICAgIC5tdWx0aXBseShfcXVhdEEpXG4gICAgICAgICAgICAgICAgLnByZW11bHRpcGx5KF9xdWF0QS5pbnZlcnQoKSlcbiAgICAgICAgICAgICAgICAubXVsdGlwbHkodGhpcy5fcmVzdFF1YXRMZWZ0RXllKTtcbiAgICAgICAgfVxuICAgICAgICAvLyByaWdodFxuICAgICAgICBpZiAocmlnaHRFeWUpIHtcbiAgICAgICAgICAgIGlmIChwaXRjaCA8IDAuMCkge1xuICAgICAgICAgICAgICAgIF9ldWxlckEueCA9IC1USFJFRS5NYXRoVXRpbHMuREVHMlJBRCAqIHRoaXMucmFuZ2VNYXBWZXJ0aWNhbERvd24ubWFwKC1waXRjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfZXVsZXJBLnggPSBUSFJFRS5NYXRoVXRpbHMuREVHMlJBRCAqIHRoaXMucmFuZ2VNYXBWZXJ0aWNhbFVwLm1hcChwaXRjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoeWF3IDwgMC4wKSB7XG4gICAgICAgICAgICAgICAgX2V1bGVyQS55ID0gLVRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy5yYW5nZU1hcEhvcml6b250YWxPdXRlci5tYXAoLXlhdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfZXVsZXJBLnkgPSBUSFJFRS5NYXRoVXRpbHMuREVHMlJBRCAqIHRoaXMucmFuZ2VNYXBIb3Jpem9udGFsSW5uZXIubWFwKHlhdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfcXVhdEEuc2V0RnJvbUV1bGVyKF9ldWxlckEpO1xuICAgICAgICAgICAgdGhpcy5fZ2V0V29ybGRGYWNlRnJvbnRRdWF0KF9xdWF0Qik7XG4gICAgICAgICAgICAvLyBfcXVhdEIgKiBfcXVhdEEgKiBfcXVhdEJeLTFcbiAgICAgICAgICAgIC8vIHdoZXJlIF9xdWF0QSBpcyBMb29rQXQgcm90YXRpb25cbiAgICAgICAgICAgIC8vIGFuZCBfcXVhdEIgaXMgd29ybGRGYWNlRnJvbnRRdWF0XG4gICAgICAgICAgICByaWdodEV5ZU5vcm1hbGl6ZWQucXVhdGVybmlvbi5jb3B5KF9xdWF0QikubXVsdGlwbHkoX3F1YXRBKS5tdWx0aXBseShfcXVhdEIuaW52ZXJ0KCkpO1xuICAgICAgICAgICAgX3F1YXRBLmNvcHkodGhpcy5fcmVzdFJpZ2h0RXllUGFyZW50V29ybGRRdWF0KTtcbiAgICAgICAgICAgIC8vIF9xdWF0QV4tMSAqIHJpZ2h0RXllTm9ybWFsaXplZC5xdWF0ZXJuaW9uICogX3F1YXRBICogcmVzdFF1YXRSaWdodEV5ZVxuICAgICAgICAgICAgLy8gd2hlcmUgX3F1YXRBIGlzIHJlc3RSaWdodEV5ZVBhcmVudFdvcmxkUXVhdFxuICAgICAgICAgICAgcmlnaHRFeWUucXVhdGVybmlvblxuICAgICAgICAgICAgICAgIC5jb3B5KHJpZ2h0RXllTm9ybWFsaXplZC5xdWF0ZXJuaW9uKVxuICAgICAgICAgICAgICAgIC5tdWx0aXBseShfcXVhdEEpXG4gICAgICAgICAgICAgICAgLnByZW11bHRpcGx5KF9xdWF0QS5pbnZlcnQoKSlcbiAgICAgICAgICAgICAgICAubXVsdGlwbHkodGhpcy5fcmVzdFF1YXRSaWdodEV5ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBhcHBseVlhd1BpdGNofSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGxvb2tBdChldWxlcikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUxvb2tBdEJvbmVBcHBsaWVyOiBsb29rQXQoKSBpcyBkZXByZWNhdGVkLiB1c2UgYXBwbHkoKSBpbnN0ZWFkLicpO1xuICAgICAgICBjb25zdCB5YXcgPSBUSFJFRS5NYXRoVXRpbHMuUkFEMkRFRyAqIGV1bGVyLnk7XG4gICAgICAgIGNvbnN0IHBpdGNoID0gVEhSRUUuTWF0aFV0aWxzLlJBRDJERUcgKiBldWxlci54O1xuICAgICAgICB0aGlzLmFwcGx5WWF3UGl0Y2goeWF3LCBwaXRjaCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCBhIHF1YXRlcm5pb24gdGhhdCByb3RhdGVzIHRoZSB3b3JsZC1zcGFjZSArWiB1bml0IHZlY3RvciB0byB0aGUge0BsaW5rIGZhY2VGcm9udH0gZGlyZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhcmdldCBBIHRhcmdldCBgVEhSRUUuUXVhdGVybmlvbmBcbiAgICAgKi9cbiAgICBfZ2V0V29ybGRGYWNlRnJvbnRRdWF0KHRhcmdldCkge1xuICAgICAgICBpZiAodGhpcy5mYWNlRnJvbnQuZGlzdGFuY2VUb1NxdWFyZWQoVkVDM19QT1NJVElWRV9aKSA8IDAuMDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQuaWRlbnRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbZmFjZUZyb250QXppbXV0aCwgZmFjZUZyb250QWx0aXR1ZGVdID0gY2FsY0F6aW11dGhBbHRpdHVkZSh0aGlzLmZhY2VGcm9udCk7XG4gICAgICAgIF9ldWxlckEuc2V0KDAuMCwgMC41ICogTWF0aC5QSSArIGZhY2VGcm9udEF6aW11dGgsIGZhY2VGcm9udEFsdGl0dWRlLCAnWVpYJyk7XG4gICAgICAgIHJldHVybiB0YXJnZXQuc2V0RnJvbUV1bGVyKF9ldWxlckEpO1xuICAgIH1cbn1cbi8qKlxuICogUmVwcmVzZW50IGl0cyB0eXBlIG9mIGFwcGxpZXIuXG4gKi9cblZSTUxvb2tBdEJvbmVBcHBsaWVyLnR5cGUgPSAnYm9uZSc7XG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IGFwcGxpZXMgZXllIGdhemUgZGlyZWN0aW9ucyB0byBhIFZSTS5cbiAqIEl0IHdpbGwgYmUgdXNlZCBieSB7QGxpbmsgVlJNTG9va0F0fS5cbiAqL1xuY2xhc3MgVlJNTG9va0F0RXhwcmVzc2lvbkFwcGxpZXIge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgVlJNTG9va0F0RXhwcmVzc2lvbkFwcGxpZXJ9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGV4cHJlc3Npb25zIEEge0BsaW5rIFZSTUV4cHJlc3Npb25NYW5hZ2VyfVxuICAgICAqIEBwYXJhbSByYW5nZU1hcEhvcml6b250YWxJbm5lciBBIHtAbGluayBWUk1Mb29rQXRSYW5nZU1hcH0gdXNlZCBmb3IgaW5uZXIgdHJhbnN2ZXJzZSBkaXJlY3Rpb25cbiAgICAgKiBAcGFyYW0gcmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIgQSB7QGxpbmsgVlJNTG9va0F0UmFuZ2VNYXB9IHVzZWQgZm9yIG91dGVyIHRyYW5zdmVyc2UgZGlyZWN0aW9uXG4gICAgICogQHBhcmFtIHJhbmdlTWFwVmVydGljYWxEb3duIEEge0BsaW5rIFZSTUxvb2tBdFJhbmdlTWFwfSB1c2VkIGZvciBkb3duIGRpcmVjdGlvblxuICAgICAqIEBwYXJhbSByYW5nZU1hcFZlcnRpY2FsVXAgQSB7QGxpbmsgVlJNTG9va0F0UmFuZ2VNYXB9IHVzZWQgZm9yIHVwIGRpcmVjdGlvblxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGV4cHJlc3Npb25zLCByYW5nZU1hcEhvcml6b250YWxJbm5lciwgcmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIsIHJhbmdlTWFwVmVydGljYWxEb3duLCByYW5nZU1hcFZlcnRpY2FsVXApIHtcbiAgICAgICAgdGhpcy5leHByZXNzaW9ucyA9IGV4cHJlc3Npb25zO1xuICAgICAgICB0aGlzLnJhbmdlTWFwSG9yaXpvbnRhbElubmVyID0gcmFuZ2VNYXBIb3Jpem9udGFsSW5uZXI7XG4gICAgICAgIHRoaXMucmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIgPSByYW5nZU1hcEhvcml6b250YWxPdXRlcjtcbiAgICAgICAgdGhpcy5yYW5nZU1hcFZlcnRpY2FsRG93biA9IHJhbmdlTWFwVmVydGljYWxEb3duO1xuICAgICAgICB0aGlzLnJhbmdlTWFwVmVydGljYWxVcCA9IHJhbmdlTWFwVmVydGljYWxVcDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXBwbHkgdGhlIGlucHV0IGFuZ2xlIHRvIGl0cyBhc3NvY2lhdGVkIFZSTSBtb2RlbC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB5YXcgUm90YXRpb24gYXJvdW5kIFkgYXhpcywgaW4gZGVncmVlXG4gICAgICogQHBhcmFtIHBpdGNoIFJvdGF0aW9uIGFyb3VuZCBYIGF4aXMsIGluIGRlZ3JlZVxuICAgICAqL1xuICAgIGFwcGx5WWF3UGl0Y2goeWF3LCBwaXRjaCkge1xuICAgICAgICBpZiAocGl0Y2ggPCAwLjApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuc2V0VmFsdWUoJ2xvb2tEb3duJywgMC4wKTtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuc2V0VmFsdWUoJ2xvb2tVcCcsIHRoaXMucmFuZ2VNYXBWZXJ0aWNhbFVwLm1hcCgtcGl0Y2gpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuc2V0VmFsdWUoJ2xvb2tVcCcsIDAuMCk7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zLnNldFZhbHVlKCdsb29rRG93bicsIHRoaXMucmFuZ2VNYXBWZXJ0aWNhbERvd24ubWFwKHBpdGNoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHlhdyA8IDAuMCkge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9ucy5zZXRWYWx1ZSgnbG9va0xlZnQnLCAwLjApO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9ucy5zZXRWYWx1ZSgnbG9va1JpZ2h0JywgdGhpcy5yYW5nZU1hcEhvcml6b250YWxPdXRlci5tYXAoLXlhdykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9ucy5zZXRWYWx1ZSgnbG9va1JpZ2h0JywgMC4wKTtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuc2V0VmFsdWUoJ2xvb2tMZWZ0JywgdGhpcy5yYW5nZU1hcEhvcml6b250YWxPdXRlci5tYXAoeWF3KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBhcHBseVlhd1BpdGNofSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGxvb2tBdChldWxlcikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUxvb2tBdEJvbmVBcHBsaWVyOiBsb29rQXQoKSBpcyBkZXByZWNhdGVkLiB1c2UgYXBwbHkoKSBpbnN0ZWFkLicpO1xuICAgICAgICBjb25zdCB5YXcgPSBUSFJFRS5NYXRoVXRpbHMuUkFEMkRFRyAqIGV1bGVyLnk7XG4gICAgICAgIGNvbnN0IHBpdGNoID0gVEhSRUUuTWF0aFV0aWxzLlJBRDJERUcgKiBldWxlci54O1xuICAgICAgICB0aGlzLmFwcGx5WWF3UGl0Y2goeWF3LCBwaXRjaCk7XG4gICAgfVxufVxuLyoqXG4gKiBSZXByZXNlbnQgaXRzIHR5cGUgb2YgYXBwbGllci5cbiAqL1xuVlJNTG9va0F0RXhwcmVzc2lvbkFwcGxpZXIudHlwZSA9ICdleHByZXNzaW9uJztcblxuY2xhc3MgVlJNTG9va0F0UmFuZ2VNYXAge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgVlJNTG9va0F0UmFuZ2VNYXB9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlucHV0TWF4VmFsdWUgVGhlIHtAbGluayBpbnB1dE1heFZhbHVlfSBvZiB0aGUgbWFwXG4gICAgICogQHBhcmFtIG91dHB1dFNjYWxlIFRoZSB7QGxpbmsgb3V0cHV0U2NhbGV9IG9mIHRoZSBtYXBcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihpbnB1dE1heFZhbHVlLCBvdXRwdXRTY2FsZSkge1xuICAgICAgICB0aGlzLmlucHV0TWF4VmFsdWUgPSBpbnB1dE1heFZhbHVlO1xuICAgICAgICB0aGlzLm91dHB1dFNjYWxlID0gb3V0cHV0U2NhbGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEV2YWx1YXRlIGFuIGlucHV0IHZhbHVlIGFuZCBvdXRwdXQgYSBtYXBwZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHNyYyBUaGUgaW5wdXQgdmFsdWVcbiAgICAgKi9cbiAgICBtYXAoc3JjKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm91dHB1dFNjYWxlICogc2F0dXJhdGUoc3JjIC8gdGhpcy5pbnB1dE1heFZhbHVlKTtcbiAgICB9XG59XG5cbi8qKlxuICogUG9zc2libGUgc3BlYyB2ZXJzaW9ucyBpdCByZWNvZ25pemVzLlxuICovXG5jb25zdCBQT1NTSUJMRV9TUEVDX1ZFUlNJT05TJDEgPSBuZXcgU2V0KFsnMS4wJywgJzEuMC1iZXRhJ10pO1xuLyoqXG4gKiBUaGUgbWluaW11bSBwZXJtaXR0ZWQgdmFsdWUgZm9yIHtAbGluayBWMVZSTVNjaGVtYS5Mb29rQXRSYW5nZU1hcC5pbnB1dE1heFZhbHVlfS5cbiAqIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBzbWFsbGVyIHRoYW4gdGhpcywgdGhlIGxvYWRlciBzaG93cyBhIHdhcm5pbmcgYW5kIGNsYW1wcyB1cCB0aGUgdmFsdWUuXG4gKi9cbmNvbnN0IElOUFVUX01BWF9WQUxVRV9NSU5JTVVNID0gMC4wMTtcbi8qKlxuICogQSBwbHVnaW4gb2YgR0xURkxvYWRlciB0aGF0IGltcG9ydHMgYSB7QGxpbmsgVlJNTG9va0F0fSBmcm9tIGEgVlJNIGV4dGVuc2lvbiBvZiBhIEdMVEYuXG4gKi9cbmNsYXNzIFZSTUxvb2tBdExvYWRlclBsdWdpbiB7XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIC8vIFdlIHNob3VsZCB1c2UgdGhlIGV4dGVuc2lvbiBuYW1lIGluc3RlYWQgYnV0IHdlIGhhdmUgbXVsdGlwbGUgcGx1Z2lucyBmb3IgYW4gZXh0ZW5zaW9uLi4uXG4gICAgICAgIHJldHVybiAnVlJNTG9va0F0TG9hZGVyUGx1Z2luJztcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFyc2VyLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgICAgICB0aGlzLmhlbHBlclJvb3QgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVscGVyUm9vdDtcbiAgICB9XG4gICAgYWZ0ZXJSb290KGdsdGYpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHZybUh1bWFub2lkID0gZ2x0Zi51c2VyRGF0YS52cm1IdW1hbm9pZDtcbiAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgZGlzdGluZ3Vpc2ggbnVsbCBhbmQgdW5kZWZpbmVkXG4gICAgICAgICAgICAvLyBzaW5jZSB2cm1IdW1hbm9pZCBtaWdodCBiZSBudWxsIGFzIGEgcmVzdWx0XG4gICAgICAgICAgICBpZiAodnJtSHVtYW5vaWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2cm1IdW1hbm9pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWUk1Mb29rQXRMb2FkZXJQbHVnaW46IHZybUh1bWFub2lkIGlzIHVuZGVmaW5lZC4gVlJNSHVtYW5vaWRMb2FkZXJQbHVnaW4gaGF2ZSB0byBiZSB1c2VkIGZpcnN0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2cm1FeHByZXNzaW9uTWFuYWdlciA9IGdsdGYudXNlckRhdGEudnJtRXhwcmVzc2lvbk1hbmFnZXI7XG4gICAgICAgICAgICBpZiAodnJtRXhwcmVzc2lvbk1hbmFnZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2cm1FeHByZXNzaW9uTWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWUk1Mb29rQXRMb2FkZXJQbHVnaW46IHZybUV4cHJlc3Npb25NYW5hZ2VyIGlzIHVuZGVmaW5lZC4gVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbiBoYXZlIHRvIGJlIHVzZWQgZmlyc3QnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdsdGYudXNlckRhdGEudnJtTG9va0F0ID0geWllbGQgdGhpcy5faW1wb3J0KGdsdGYsIHZybUh1bWFub2lkLCB2cm1FeHByZXNzaW9uTWFuYWdlcik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbXBvcnQgYSB7QGxpbmsgVlJNTG9va0F0fSBmcm9tIGEgVlJNLlxuICAgICAqXG4gICAgICogQHBhcmFtIGdsdGYgQSBwYXJzZWQgcmVzdWx0IG9mIEdMVEYgdGFrZW4gZnJvbSBHTFRGTG9hZGVyXG4gICAgICogQHBhcmFtIGh1bWFub2lkIEEge0BsaW5rIFZSTUh1bWFub2lkfSBpbnN0YW5jZSB0aGF0IHJlcHJlc2VudHMgdGhlIFZSTVxuICAgICAqIEBwYXJhbSBleHByZXNzaW9ucyBBIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn0gaW5zdGFuY2UgdGhhdCByZXByZXNlbnRzIHRoZSBWUk1cbiAgICAgKi9cbiAgICBfaW1wb3J0KGdsdGYsIGh1bWFub2lkLCBleHByZXNzaW9ucykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKGh1bWFub2lkID09IG51bGwgfHwgZXhwcmVzc2lvbnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdjFSZXN1bHQgPSB5aWVsZCB0aGlzLl92MUltcG9ydChnbHRmLCBodW1hbm9pZCwgZXhwcmVzc2lvbnMpO1xuICAgICAgICAgICAgaWYgKHYxUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYxUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdjBSZXN1bHQgPSB5aWVsZCB0aGlzLl92MEltcG9ydChnbHRmLCBodW1hbm9pZCwgZXhwcmVzc2lvbnMpO1xuICAgICAgICAgICAgaWYgKHYwUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYwUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjFJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQsIGV4cHJlc3Npb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMucGFyc2VyLmpzb247XG4gICAgICAgICAgICAvLyBlYXJseSBhYm9ydCBpZiBpdCBkb2Vzbid0IHVzZSB2cm1cbiAgICAgICAgICAgIGNvbnN0IGlzVlJNVXNlZCA9ICgoX2EgPSBqc29uLmV4dGVuc2lvbnNVc2VkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5kZXhPZignVlJNQ192cm0nKSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKCFpc1ZSTVVzZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IChfYiA9IGpzb24uZXh0ZW5zaW9ucykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWydWUk1DX3ZybSddO1xuICAgICAgICAgICAgaWYgKCFleHRlbnNpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNwZWNWZXJzaW9uID0gZXh0ZW5zaW9uLnNwZWNWZXJzaW9uO1xuICAgICAgICAgICAgaWYgKCFQT1NTSUJMRV9TUEVDX1ZFUlNJT05TJDEuaGFzKHNwZWNWZXJzaW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNTG9va0F0TG9hZGVyUGx1Z2luOiBVbmtub3duIFZSTUNfdnJtIHNwZWNWZXJzaW9uIFwiJHtzcGVjVmVyc2lvbn1cImApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hTG9va0F0ID0gZXh0ZW5zaW9uLmxvb2tBdDtcbiAgICAgICAgICAgIGlmICghc2NoZW1hTG9va0F0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0T3V0cHV0U2NhbGUgPSBzY2hlbWFMb29rQXQudHlwZSA9PT0gJ2V4cHJlc3Npb24nID8gMS4wIDogMTAuMDtcbiAgICAgICAgICAgIGNvbnN0IG1hcEhJID0gdGhpcy5fdjFJbXBvcnRSYW5nZU1hcChzY2hlbWFMb29rQXQucmFuZ2VNYXBIb3Jpem9udGFsSW5uZXIsIGRlZmF1bHRPdXRwdXRTY2FsZSk7XG4gICAgICAgICAgICBjb25zdCBtYXBITyA9IHRoaXMuX3YxSW1wb3J0UmFuZ2VNYXAoc2NoZW1hTG9va0F0LnJhbmdlTWFwSG9yaXpvbnRhbE91dGVyLCBkZWZhdWx0T3V0cHV0U2NhbGUpO1xuICAgICAgICAgICAgY29uc3QgbWFwVkQgPSB0aGlzLl92MUltcG9ydFJhbmdlTWFwKHNjaGVtYUxvb2tBdC5yYW5nZU1hcFZlcnRpY2FsRG93biwgZGVmYXVsdE91dHB1dFNjYWxlKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcFZVID0gdGhpcy5fdjFJbXBvcnRSYW5nZU1hcChzY2hlbWFMb29rQXQucmFuZ2VNYXBWZXJ0aWNhbFVwLCBkZWZhdWx0T3V0cHV0U2NhbGUpO1xuICAgICAgICAgICAgbGV0IGFwcGxpZXI7XG4gICAgICAgICAgICBpZiAoc2NoZW1hTG9va0F0LnR5cGUgPT09ICdleHByZXNzaW9uJykge1xuICAgICAgICAgICAgICAgIGFwcGxpZXIgPSBuZXcgVlJNTG9va0F0RXhwcmVzc2lvbkFwcGxpZXIoZXhwcmVzc2lvbnMsIG1hcEhJLCBtYXBITywgbWFwVkQsIG1hcFZVKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFwcGxpZXIgPSBuZXcgVlJNTG9va0F0Qm9uZUFwcGxpZXIoaHVtYW5vaWQsIG1hcEhJLCBtYXBITywgbWFwVkQsIG1hcFZVKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxvb2tBdCA9IHRoaXMuX2ltcG9ydExvb2tBdChodW1hbm9pZCwgYXBwbGllcik7XG4gICAgICAgICAgICBsb29rQXQub2Zmc2V0RnJvbUhlYWRCb25lLmZyb21BcnJheSgoX2MgPSBzY2hlbWFMb29rQXQub2Zmc2V0RnJvbUhlYWRCb25lKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBbMC4wLCAwLjA2LCAwLjBdKTtcbiAgICAgICAgICAgIHJldHVybiBsb29rQXQ7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjFJbXBvcnRSYW5nZU1hcChzY2hlbWFSYW5nZU1hcCwgZGVmYXVsdE91dHB1dFNjYWxlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGxldCBpbnB1dE1heFZhbHVlID0gKF9hID0gc2NoZW1hUmFuZ2VNYXAgPT09IG51bGwgfHwgc2NoZW1hUmFuZ2VNYXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYVJhbmdlTWFwLmlucHV0TWF4VmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDkwLjA7XG4gICAgICAgIGNvbnN0IG91dHB1dFNjYWxlID0gKF9iID0gc2NoZW1hUmFuZ2VNYXAgPT09IG51bGwgfHwgc2NoZW1hUmFuZ2VNYXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYVJhbmdlTWFwLm91dHB1dFNjYWxlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBkZWZhdWx0T3V0cHV0U2NhbGU7XG4gICAgICAgIC8vIEl0IG1pZ2h0IGNhdXNlIE5hTiB3aGVuIGBpbnB1dE1heFZhbHVlYCBpcyB0b28gc21hbGxcbiAgICAgICAgLy8gd2hpY2ggbWFrZXMgdGhlIG1lc2ggb2YgdGhlIGhlYWQgZGlzYXBwZWFyXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3BpeGl2L3RocmVlLXZybS9pc3N1ZXMvMTIwMVxuICAgICAgICBpZiAoaW5wdXRNYXhWYWx1ZSA8IElOUFVUX01BWF9WQUxVRV9NSU5JTVVNKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUxvb2tBdExvYWRlclBsdWdpbjogaW5wdXRNYXhWYWx1ZSBvZiBhIHJhbmdlIG1hcCBpcyB0b28gc21hbGwuIENvbnNpZGVyIHJldmlld2luZyB0aGUgcmFuZ2UgbWFwIScpO1xuICAgICAgICAgICAgaW5wdXRNYXhWYWx1ZSA9IElOUFVUX01BWF9WQUxVRV9NSU5JTVVNO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVlJNTG9va0F0UmFuZ2VNYXAoaW5wdXRNYXhWYWx1ZSwgb3V0cHV0U2NhbGUpO1xuICAgIH1cbiAgICBfdjBJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQsIGV4cHJlc3Npb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgdnJtXG4gICAgICAgICAgICBjb25zdCB2cm1FeHQgPSAoX2EgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5WUk07XG4gICAgICAgICAgICBpZiAoIXZybUV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hRmlyc3RQZXJzb24gPSB2cm1FeHQuZmlyc3RQZXJzb247XG4gICAgICAgICAgICBpZiAoIXNjaGVtYUZpcnN0UGVyc29uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0T3V0cHV0U2NhbGUgPSBzY2hlbWFGaXJzdFBlcnNvbi5sb29rQXRUeXBlTmFtZSA9PT0gJ0JsZW5kU2hhcGUnID8gMS4wIDogMTAuMDtcbiAgICAgICAgICAgIGNvbnN0IG1hcEhJID0gdGhpcy5fdjBJbXBvcnREZWdyZWVNYXAoc2NoZW1hRmlyc3RQZXJzb24ubG9va0F0SG9yaXpvbnRhbElubmVyLCBkZWZhdWx0T3V0cHV0U2NhbGUpO1xuICAgICAgICAgICAgY29uc3QgbWFwSE8gPSB0aGlzLl92MEltcG9ydERlZ3JlZU1hcChzY2hlbWFGaXJzdFBlcnNvbi5sb29rQXRIb3Jpem9udGFsT3V0ZXIsIGRlZmF1bHRPdXRwdXRTY2FsZSk7XG4gICAgICAgICAgICBjb25zdCBtYXBWRCA9IHRoaXMuX3YwSW1wb3J0RGVncmVlTWFwKHNjaGVtYUZpcnN0UGVyc29uLmxvb2tBdFZlcnRpY2FsRG93biwgZGVmYXVsdE91dHB1dFNjYWxlKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcFZVID0gdGhpcy5fdjBJbXBvcnREZWdyZWVNYXAoc2NoZW1hRmlyc3RQZXJzb24ubG9va0F0VmVydGljYWxVcCwgZGVmYXVsdE91dHB1dFNjYWxlKTtcbiAgICAgICAgICAgIGxldCBhcHBsaWVyO1xuICAgICAgICAgICAgaWYgKHNjaGVtYUZpcnN0UGVyc29uLmxvb2tBdFR5cGVOYW1lID09PSAnQmxlbmRTaGFwZScpIHtcbiAgICAgICAgICAgICAgICBhcHBsaWVyID0gbmV3IFZSTUxvb2tBdEV4cHJlc3Npb25BcHBsaWVyKGV4cHJlc3Npb25zLCBtYXBISSwgbWFwSE8sIG1hcFZELCBtYXBWVSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcHBsaWVyID0gbmV3IFZSTUxvb2tBdEJvbmVBcHBsaWVyKGh1bWFub2lkLCBtYXBISSwgbWFwSE8sIG1hcFZELCBtYXBWVSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsb29rQXQgPSB0aGlzLl9pbXBvcnRMb29rQXQoaHVtYW5vaWQsIGFwcGxpZXIpO1xuICAgICAgICAgICAgaWYgKHNjaGVtYUZpcnN0UGVyc29uLmZpcnN0UGVyc29uQm9uZU9mZnNldCkge1xuICAgICAgICAgICAgICAgIGxvb2tBdC5vZmZzZXRGcm9tSGVhZEJvbmUuc2V0KChfYiA9IHNjaGVtYUZpcnN0UGVyc29uLmZpcnN0UGVyc29uQm9uZU9mZnNldC54KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwLjAsIChfYyA9IHNjaGVtYUZpcnN0UGVyc29uLmZpcnN0UGVyc29uQm9uZU9mZnNldC55KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwLjA2LCAtKChfZCA9IHNjaGVtYUZpcnN0UGVyc29uLmZpcnN0UGVyc29uQm9uZU9mZnNldC56KSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwLjApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvb2tBdC5vZmZzZXRGcm9tSGVhZEJvbmUuc2V0KDAuMCwgMC4wNiwgMC4wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFZSTSAwLjAgYXJlIGZhY2luZyBaLSBpbnN0ZWFkIG9mIForXG4gICAgICAgICAgICBsb29rQXQuZmFjZUZyb250LnNldCgwLjAsIDAuMCwgLTEuMCk7XG4gICAgICAgICAgICBpZiAoYXBwbGllciBpbnN0YW5jZW9mIFZSTUxvb2tBdEJvbmVBcHBsaWVyKSB7XG4gICAgICAgICAgICAgICAgYXBwbGllci5mYWNlRnJvbnQuc2V0KDAuMCwgMC4wLCAtMS4wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBsb29rQXQ7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjBJbXBvcnREZWdyZWVNYXAoc2NoZW1hRGVncmVlTWFwLCBkZWZhdWx0T3V0cHV0U2NhbGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgY3VydmUgPSBzY2hlbWFEZWdyZWVNYXAgPT09IG51bGwgfHwgc2NoZW1hRGVncmVlTWFwID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2hlbWFEZWdyZWVNYXAuY3VydmU7XG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShjdXJ2ZSkgIT09ICdbMCwwLDAsMSwxLDEsMSwwXScpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ3VydmVzIG9mIExvb2tBdERlZ3JlZU1hcCBkZWZpbmVkIGluIFZSTSAwLjAgYXJlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgeFJhbmdlID0gKF9hID0gc2NoZW1hRGVncmVlTWFwID09PSBudWxsIHx8IHNjaGVtYURlZ3JlZU1hcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hRGVncmVlTWFwLnhSYW5nZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogOTAuMDtcbiAgICAgICAgY29uc3QgeVJhbmdlID0gKF9iID0gc2NoZW1hRGVncmVlTWFwID09PSBudWxsIHx8IHNjaGVtYURlZ3JlZU1hcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hRGVncmVlTWFwLnlSYW5nZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZGVmYXVsdE91dHB1dFNjYWxlO1xuICAgICAgICAvLyBJdCBtaWdodCBjYXVzZSBOYU4gd2hlbiBgeFJhbmdlYCBpcyB0b28gc21hbGxcbiAgICAgICAgLy8gd2hpY2ggbWFrZXMgdGhlIG1lc2ggb2YgdGhlIGhlYWQgZGlzYXBwZWFyXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3BpeGl2L3RocmVlLXZybS9pc3N1ZXMvMTIwMVxuICAgICAgICBpZiAoeFJhbmdlIDwgSU5QVVRfTUFYX1ZBTFVFX01JTklNVU0pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVlJNTG9va0F0TG9hZGVyUGx1Z2luOiB4UmFuZ2Ugb2YgYSBkZWdyZWUgbWFwIGlzIHRvbyBzbWFsbC4gQ29uc2lkZXIgcmV2aWV3aW5nIHRoZSBkZWdyZWUgbWFwIScpO1xuICAgICAgICAgICAgeFJhbmdlID0gSU5QVVRfTUFYX1ZBTFVFX01JTklNVU07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBWUk1Mb29rQXRSYW5nZU1hcCh4UmFuZ2UsIHlSYW5nZSk7XG4gICAgfVxuICAgIF9pbXBvcnRMb29rQXQoaHVtYW5vaWQsIGFwcGxpZXIpIHtcbiAgICAgICAgY29uc3QgbG9va0F0ID0gbmV3IFZSTUxvb2tBdChodW1hbm9pZCwgYXBwbGllcik7XG4gICAgICAgIGlmICh0aGlzLmhlbHBlclJvb3QpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlbHBlciA9IG5ldyBWUk1Mb29rQXRIZWxwZXIobG9va0F0KTtcbiAgICAgICAgICAgIHRoaXMuaGVscGVyUm9vdC5hZGQoaGVscGVyKTtcbiAgICAgICAgICAgIGhlbHBlci5yZW5kZXJPcmRlciA9IHRoaXMuaGVscGVyUm9vdC5yZW5kZXJPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9va0F0O1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0eXBlIG9mIGFwcGxpZXIuXG4gKi9cbmNvbnN0IFZSTUxvb2tBdFR5cGVOYW1lID0ge1xuICAgIEJvbmU6ICdib25lJyxcbiAgICBFeHByZXNzaW9uOiAnZXhwcmVzc2lvbicsXG59O1xuXG4vKipcbiAqIFlvaW5rZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2Jsb2IvbWFzdGVyL2V4YW1wbGVzL2pzbS9sb2FkZXJzL0dMVEZMb2FkZXIuanNcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVVSTCh1cmwsIHBhdGgpIHtcbiAgICAvLyBJbnZhbGlkIFVSTFxuICAgIGlmICh0eXBlb2YgdXJsICE9PSAnc3RyaW5nJyB8fCB1cmwgPT09ICcnKVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgLy8gSG9zdCBSZWxhdGl2ZSBVUkxcbiAgICBpZiAoL15odHRwcz86XFwvXFwvL2kudGVzdChwYXRoKSAmJiAvXlxcLy8udGVzdCh1cmwpKSB7XG4gICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoLyheaHR0cHM/OlxcL1xcL1teL10rKS4qL2ksICckMScpO1xuICAgIH1cbiAgICAvLyBBYnNvbHV0ZSBVUkwgaHR0cDovLyxodHRwczovLywvL1xuICAgIGlmICgvXihodHRwcz86KT9cXC9cXC8vaS50ZXN0KHVybCkpXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgLy8gRGF0YSBVUklcbiAgICBpZiAoL15kYXRhOi4qLC4qJC9pLnRlc3QodXJsKSlcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICAvLyBCbG9iIFVSTFxuICAgIGlmICgvXmJsb2I6LiokL2kudGVzdCh1cmwpKVxuICAgICAgICByZXR1cm4gdXJsO1xuICAgIC8vIFJlbGF0aXZlIFVSTFxuICAgIHJldHVybiBwYXRoICsgdXJsO1xufVxuXG4vKipcbiAqIFBvc3NpYmxlIHNwZWMgdmVyc2lvbnMgaXQgcmVjb2duaXplcy5cbiAqL1xuY29uc3QgUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyA9IG5ldyBTZXQoWycxLjAnLCAnMS4wLWJldGEnXSk7XG4vKipcbiAqIEEgcGx1Z2luIG9mIEdMVEZMb2FkZXIgdGhhdCBpbXBvcnRzIGEge0BsaW5rIFZSTTFNZXRhfSBmcm9tIGEgVlJNIGV4dGVuc2lvbiBvZiBhIEdMVEYuXG4gKi9cbmNsYXNzIFZSTU1ldGFMb2FkZXJQbHVnaW4ge1xuICAgIGdldCBuYW1lKCkge1xuICAgICAgICAvLyBXZSBzaG91bGQgdXNlIHRoZSBleHRlbnNpb24gbmFtZSBpbnN0ZWFkIGJ1dCB3ZSBoYXZlIG11bHRpcGxlIHBsdWdpbnMgZm9yIGFuIGV4dGVuc2lvbi4uLlxuICAgICAgICByZXR1cm4gJ1ZSTU1ldGFMb2FkZXJQbHVnaW4nO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihwYXJzZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgICAgICB0aGlzLm5lZWRUaHVtYm5haWxJbWFnZSA9IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5uZWVkVGh1bWJuYWlsSW1hZ2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRydWU7XG4gICAgICAgIHRoaXMuYWNjZXB0TGljZW5zZVVybHMgPSAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuYWNjZXB0TGljZW5zZVVybHMpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFsnaHR0cHM6Ly92cm0uZGV2L2xpY2Vuc2VzLzEuMC8nXTtcbiAgICAgICAgdGhpcy5hY2NlcHRWME1ldGEgPSAoX2MgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuYWNjZXB0VjBNZXRhKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB0cnVlO1xuICAgIH1cbiAgICBhZnRlclJvb3QoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgZ2x0Zi51c2VyRGF0YS52cm1NZXRhID0geWllbGQgdGhpcy5faW1wb3J0KGdsdGYpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2ltcG9ydChnbHRmKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCB2MVJlc3VsdCA9IHlpZWxkIHRoaXMuX3YxSW1wb3J0KGdsdGYpO1xuICAgICAgICAgICAgaWYgKHYxUmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjFSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2MFJlc3VsdCA9IHlpZWxkIHRoaXMuX3YwSW1wb3J0KGdsdGYpO1xuICAgICAgICAgICAgaWYgKHYwUmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjBSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MUltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMucGFyc2VyLmpzb247XG4gICAgICAgICAgICAvLyBlYXJseSBhYm9ydCBpZiBpdCBkb2Vzbid0IHVzZSB2cm1cbiAgICAgICAgICAgIGNvbnN0IGlzVlJNVXNlZCA9ICgoX2EgPSBqc29uLmV4dGVuc2lvbnNVc2VkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5kZXhPZignVlJNQ192cm0nKSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKCFpc1ZSTVVzZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IChfYiA9IGpzb24uZXh0ZW5zaW9ucykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWydWUk1DX3ZybSddO1xuICAgICAgICAgICAgaWYgKGV4dGVuc2lvbiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzcGVjVmVyc2lvbiA9IGV4dGVuc2lvbi5zcGVjVmVyc2lvbjtcbiAgICAgICAgICAgIGlmICghUE9TU0lCTEVfU1BFQ19WRVJTSU9OUy5oYXMoc3BlY1ZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1NZXRhTG9hZGVyUGx1Z2luOiBVbmtub3duIFZSTUNfdnJtIHNwZWNWZXJzaW9uIFwiJHtzcGVjVmVyc2lvbn1cImApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hTWV0YSA9IGV4dGVuc2lvbi5tZXRhO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFNZXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBpZiBhY2NlcHRWME1ldGEgaXMgZmFsc2VcbiAgICAgICAgICAgIGNvbnN0IGxpY2Vuc2VVcmwgPSBzY2hlbWFNZXRhLmxpY2Vuc2VVcmw7XG4gICAgICAgICAgICBjb25zdCBhY2NlcHRMaWNlbnNlVXJsc1NldCA9IG5ldyBTZXQodGhpcy5hY2NlcHRMaWNlbnNlVXJscyk7XG4gICAgICAgICAgICBpZiAoIWFjY2VwdExpY2Vuc2VVcmxzU2V0LmhhcyhsaWNlbnNlVXJsKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVlJNTWV0YUxvYWRlclBsdWdpbjogVGhlIGxpY2Vuc2UgdXJsIFwiJHtsaWNlbnNlVXJsfVwiIGlzIG5vdCBhY2NlcHRlZGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHRodW1ibmFpbEltYWdlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHRoaXMubmVlZFRodW1ibmFpbEltYWdlICYmIHNjaGVtYU1ldGEudGh1bWJuYWlsSW1hZ2UgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRodW1ibmFpbEltYWdlID0gKF9jID0gKHlpZWxkIHRoaXMuX2V4dHJhY3RHTFRGSW1hZ2Uoc2NoZW1hTWV0YS50aHVtYm5haWxJbWFnZSkpKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1ldGFWZXJzaW9uOiAnMScsXG4gICAgICAgICAgICAgICAgbmFtZTogc2NoZW1hTWV0YS5uYW1lLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IHNjaGVtYU1ldGEudmVyc2lvbixcbiAgICAgICAgICAgICAgICBhdXRob3JzOiBzY2hlbWFNZXRhLmF1dGhvcnMsXG4gICAgICAgICAgICAgICAgY29weXJpZ2h0SW5mb3JtYXRpb246IHNjaGVtYU1ldGEuY29weXJpZ2h0SW5mb3JtYXRpb24sXG4gICAgICAgICAgICAgICAgY29udGFjdEluZm9ybWF0aW9uOiBzY2hlbWFNZXRhLmNvbnRhY3RJbmZvcm1hdGlvbixcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBzY2hlbWFNZXRhLnJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgdGhpcmRQYXJ0eUxpY2Vuc2VzOiBzY2hlbWFNZXRhLnRoaXJkUGFydHlMaWNlbnNlcyxcbiAgICAgICAgICAgICAgICB0aHVtYm5haWxJbWFnZSxcbiAgICAgICAgICAgICAgICBsaWNlbnNlVXJsOiBzY2hlbWFNZXRhLmxpY2Vuc2VVcmwsXG4gICAgICAgICAgICAgICAgYXZhdGFyUGVybWlzc2lvbjogc2NoZW1hTWV0YS5hdmF0YXJQZXJtaXNzaW9uLFxuICAgICAgICAgICAgICAgIGFsbG93RXhjZXNzaXZlbHlWaW9sZW50VXNhZ2U6IHNjaGVtYU1ldGEuYWxsb3dFeGNlc3NpdmVseVZpb2xlbnRVc2FnZSxcbiAgICAgICAgICAgICAgICBhbGxvd0V4Y2Vzc2l2ZWx5U2V4dWFsVXNhZ2U6IHNjaGVtYU1ldGEuYWxsb3dFeGNlc3NpdmVseVNleHVhbFVzYWdlLFxuICAgICAgICAgICAgICAgIGNvbW1lcmNpYWxVc2FnZTogc2NoZW1hTWV0YS5jb21tZXJjaWFsVXNhZ2UsXG4gICAgICAgICAgICAgICAgYWxsb3dQb2xpdGljYWxPclJlbGlnaW91c1VzYWdlOiBzY2hlbWFNZXRhLmFsbG93UG9saXRpY2FsT3JSZWxpZ2lvdXNVc2FnZSxcbiAgICAgICAgICAgICAgICBhbGxvd0FudGlzb2NpYWxPckhhdGVVc2FnZTogc2NoZW1hTWV0YS5hbGxvd0FudGlzb2NpYWxPckhhdGVVc2FnZSxcbiAgICAgICAgICAgICAgICBjcmVkaXROb3RhdGlvbjogc2NoZW1hTWV0YS5jcmVkaXROb3RhdGlvbixcbiAgICAgICAgICAgICAgICBhbGxvd1JlZGlzdHJpYnV0aW9uOiBzY2hlbWFNZXRhLmFsbG93UmVkaXN0cmlidXRpb24sXG4gICAgICAgICAgICAgICAgbW9kaWZpY2F0aW9uOiBzY2hlbWFNZXRhLm1vZGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICBvdGhlckxpY2Vuc2VVcmw6IHNjaGVtYU1ldGEub3RoZXJMaWNlbnNlVXJsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MEltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgdnJtXG4gICAgICAgICAgICBjb25zdCB2cm1FeHQgPSAoX2EgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5WUk07XG4gICAgICAgICAgICBpZiAoIXZybUV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hTWV0YSA9IHZybUV4dC5tZXRhO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFNZXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBpZiBhY2NlcHRWME1ldGEgaXMgZmFsc2VcbiAgICAgICAgICAgIGlmICghdGhpcy5hY2NlcHRWME1ldGEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZSTU1ldGFMb2FkZXJQbHVnaW46IEF0dGVtcHRlZCB0byBsb2FkIFZSTTAuMCBtZXRhIGJ1dCBhY2NlcHRWME1ldGEgaXMgZmFsc2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGxvYWQgdGh1bWJuYWlsIHRleHR1cmVcbiAgICAgICAgICAgIGxldCB0ZXh0dXJlO1xuICAgICAgICAgICAgaWYgKHRoaXMubmVlZFRodW1ibmFpbEltYWdlICYmIHNjaGVtYU1ldGEudGV4dHVyZSAhPSBudWxsICYmIHNjaGVtYU1ldGEudGV4dHVyZSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0ZXh0dXJlID0geWllbGQgdGhpcy5wYXJzZXIuZ2V0RGVwZW5kZW5jeSgndGV4dHVyZScsIHNjaGVtYU1ldGEudGV4dHVyZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1ldGFWZXJzaW9uOiAnMCcsXG4gICAgICAgICAgICAgICAgYWxsb3dlZFVzZXJOYW1lOiBzY2hlbWFNZXRhLmFsbG93ZWRVc2VyTmFtZSxcbiAgICAgICAgICAgICAgICBhdXRob3I6IHNjaGVtYU1ldGEuYXV0aG9yLFxuICAgICAgICAgICAgICAgIGNvbW1lcmNpYWxVc3NhZ2VOYW1lOiBzY2hlbWFNZXRhLmNvbW1lcmNpYWxVc3NhZ2VOYW1lLFxuICAgICAgICAgICAgICAgIGNvbnRhY3RJbmZvcm1hdGlvbjogc2NoZW1hTWV0YS5jb250YWN0SW5mb3JtYXRpb24sXG4gICAgICAgICAgICAgICAgbGljZW5zZU5hbWU6IHNjaGVtYU1ldGEubGljZW5zZU5hbWUsXG4gICAgICAgICAgICAgICAgb3RoZXJMaWNlbnNlVXJsOiBzY2hlbWFNZXRhLm90aGVyTGljZW5zZVVybCxcbiAgICAgICAgICAgICAgICBvdGhlclBlcm1pc3Npb25Vcmw6IHNjaGVtYU1ldGEub3RoZXJQZXJtaXNzaW9uVXJsLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZTogc2NoZW1hTWV0YS5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgc2V4dWFsVXNzYWdlTmFtZTogc2NoZW1hTWV0YS5zZXh1YWxVc3NhZ2VOYW1lLFxuICAgICAgICAgICAgICAgIHRleHR1cmU6IHRleHR1cmUgIT09IG51bGwgJiYgdGV4dHVyZSAhPT0gdm9pZCAwID8gdGV4dHVyZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB0aXRsZTogc2NoZW1hTWV0YS50aXRsZSxcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBzY2hlbWFNZXRhLnZlcnNpb24sXG4gICAgICAgICAgICAgICAgdmlvbGVudFVzc2FnZU5hbWU6IHNjaGVtYU1ldGEudmlvbGVudFVzc2FnZU5hbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2V4dHJhY3RHTFRGSW1hZ2UoaW5kZXgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMucGFyc2VyLmpzb247XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSAoX2EgPSBqc29uLmltYWdlcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW2luZGV4XTtcbiAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNTWV0YUxvYWRlclBsdWdpbjogQXR0ZW1wdCB0byB1c2UgaW1hZ2VzWyR7aW5kZXh9XSBvZiBnbFRGIGFzIGEgdGh1bWJuYWlsIGJ1dCB0aGUgaW1hZ2UgZG9lc24ndCBleGlzdGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUmVmOiBodHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2Jsb2IvcjEyNC9leGFtcGxlcy9qc20vbG9hZGVycy9HTFRGTG9hZGVyLmpzI0wyNDY3XG4gICAgICAgICAgICAvLyBgc291cmNlLnVyaWAgbWlnaHQgYmUgYSByZWZlcmVuY2UgdG8gYSBmaWxlXG4gICAgICAgICAgICBsZXQgc291cmNlVVJJID0gc291cmNlLnVyaTtcbiAgICAgICAgICAgIC8vIExvYWQgdGhlIGJpbmFyeSBhcyBhIGJsb2JcbiAgICAgICAgICAgIGlmIChzb3VyY2UuYnVmZmVyVmlldyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyVmlldyA9IHlpZWxkIHRoaXMucGFyc2VyLmdldERlcGVuZGVuY3koJ2J1ZmZlclZpZXcnLCBzb3VyY2UuYnVmZmVyVmlldyk7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtidWZmZXJWaWV3XSwgeyB0eXBlOiBzb3VyY2UubWltZVR5cGUgfSk7XG4gICAgICAgICAgICAgICAgc291cmNlVVJJID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzb3VyY2VVUkkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNTWV0YUxvYWRlclBsdWdpbjogQXR0ZW1wdCB0byB1c2UgaW1hZ2VzWyR7aW5kZXh9XSBvZiBnbFRGIGFzIGEgdGh1bWJuYWlsIGJ1dCB0aGUgaW1hZ2UgY291bGRuJ3QgbG9hZCBwcm9wZXJseWApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbG9hZGVyID0gbmV3IFRIUkVFLkltYWdlTG9hZGVyKCk7XG4gICAgICAgICAgICByZXR1cm4geWllbGQgbG9hZGVyLmxvYWRBc3luYyhyZXNvbHZlVVJMKHNvdXJjZVVSSSwgdGhpcy5wYXJzZXIub3B0aW9ucy5wYXRoKSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdWUk1NZXRhTG9hZGVyUGx1Z2luOiBGYWlsZWQgdG8gbG9hZCBhIHRodW1ibmFpbCBpbWFnZScpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBIGNsYXNzIHRoYXQgcmVwcmVzZW50cyBhIHNpbmdsZSBWUk0gbW9kZWwuXG4gKiBUaGlzIGNsYXNzIG9ubHkgaW5jbHVkZXMgY29yZSBzcGVjIG9mIHRoZSBWUk0gKGBWUk1DX3ZybWApLlxuICovXG5jbGFzcyBWUk1Db3JlIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgVlJNIGluc3RhbmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmFtcyBbW1ZSTVBhcmFtZXRlcnNdXSB0aGF0IHJlcHJlc2VudHMgY29tcG9uZW50cyBvZiB0aGUgVlJNXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocGFyYW1zKSB7XG4gICAgICAgIHRoaXMuc2NlbmUgPSBwYXJhbXMuc2NlbmU7XG4gICAgICAgIHRoaXMubWV0YSA9IHBhcmFtcy5tZXRhO1xuICAgICAgICB0aGlzLmh1bWFub2lkID0gcGFyYW1zLmh1bWFub2lkO1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25NYW5hZ2VyID0gcGFyYW1zLmV4cHJlc3Npb25NYW5hZ2VyO1xuICAgICAgICB0aGlzLmZpcnN0UGVyc29uID0gcGFyYW1zLmZpcnN0UGVyc29uO1xuICAgICAgICB0aGlzLmxvb2tBdCA9IHBhcmFtcy5sb29rQXQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqICoqWW91IG5lZWQgdG8gY2FsbCB0aGlzIG9uIHlvdXIgdXBkYXRlIGxvb3AuKipcbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyBldmVyeSBWUk0gY29tcG9uZW50cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZWx0YSBkZWx0YVRpbWVcbiAgICAgKi9cbiAgICB1cGRhdGUoZGVsdGEpIHtcbiAgICAgICAgdGhpcy5odW1hbm9pZC51cGRhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMubG9va0F0KSB7XG4gICAgICAgICAgICB0aGlzLmxvb2tBdC51cGRhdGUoZGVsdGEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV4cHJlc3Npb25NYW5hZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25NYW5hZ2VyLnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBWUk1Db3JlTG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHVzZSB0aGUgZXh0ZW5zaW9uIG5hbWUgaW5zdGVhZCBidXQgd2UgaGF2ZSBtdWx0aXBsZSBwbHVnaW5zIGZvciBhbiBleHRlbnNpb24uLi5cbiAgICAgICAgcmV0dXJuICdWUk1DX3ZybSc7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcnNlciwgb3B0aW9ucykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICAgICAgY29uc3QgaGVscGVyUm9vdCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWxwZXJSb290O1xuICAgICAgICBjb25zdCBhdXRvVXBkYXRlSHVtYW5Cb25lcyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5hdXRvVXBkYXRlSHVtYW5Cb25lcztcbiAgICAgICAgdGhpcy5leHByZXNzaW9uUGx1Z2luID0gKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmV4cHJlc3Npb25QbHVnaW4pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG5ldyBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luKHBhcnNlcik7XG4gICAgICAgIHRoaXMuZmlyc3RQZXJzb25QbHVnaW4gPSAoX2IgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuZmlyc3RQZXJzb25QbHVnaW4pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG5ldyBWUk1GaXJzdFBlcnNvbkxvYWRlclBsdWdpbihwYXJzZXIpO1xuICAgICAgICB0aGlzLmh1bWFub2lkUGx1Z2luID1cbiAgICAgICAgICAgIChfYyA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5odW1hbm9pZFBsdWdpbikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogbmV3IFZSTUh1bWFub2lkTG9hZGVyUGx1Z2luKHBhcnNlciwgeyBoZWxwZXJSb290LCBhdXRvVXBkYXRlSHVtYW5Cb25lcyB9KTtcbiAgICAgICAgdGhpcy5sb29rQXRQbHVnaW4gPSAoX2QgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubG9va0F0UGx1Z2luKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBuZXcgVlJNTG9va0F0TG9hZGVyUGx1Z2luKHBhcnNlciwgeyBoZWxwZXJSb290IH0pO1xuICAgICAgICB0aGlzLm1ldGFQbHVnaW4gPSAoX2UgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubWV0YVBsdWdpbikgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogbmV3IFZSTU1ldGFMb2FkZXJQbHVnaW4ocGFyc2VyKTtcbiAgICB9XG4gICAgYWZ0ZXJSb290KGdsdGYpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMubWV0YVBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmh1bWFub2lkUGx1Z2luLmFmdGVyUm9vdChnbHRmKTtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuZXhwcmVzc2lvblBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmxvb2tBdFBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmZpcnN0UGVyc29uUGx1Z2luLmFmdGVyUm9vdChnbHRmKTtcbiAgICAgICAgICAgIGNvbnN0IG1ldGEgPSBnbHRmLnVzZXJEYXRhLnZybU1ldGE7XG4gICAgICAgICAgICBjb25zdCBodW1hbm9pZCA9IGdsdGYudXNlckRhdGEudnJtSHVtYW5vaWQ7XG4gICAgICAgICAgICAvLyBtZXRhIGFuZCBodW1hbm9pZCBhcmUgcmVxdWlyZWQgdG8gYmUgYSBWUk0uXG4gICAgICAgICAgICAvLyBEb24ndCBjcmVhdGUgVlJNIGlmIHRoZXkgYXJlIG51bGxcbiAgICAgICAgICAgIGlmIChtZXRhICYmIGh1bWFub2lkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdnJtQ29yZSA9IG5ldyBWUk1Db3JlKHtcbiAgICAgICAgICAgICAgICAgICAgc2NlbmU6IGdsdGYuc2NlbmUsXG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25NYW5hZ2VyOiBnbHRmLnVzZXJEYXRhLnZybUV4cHJlc3Npb25NYW5hZ2VyLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdFBlcnNvbjogZ2x0Zi51c2VyRGF0YS52cm1GaXJzdFBlcnNvbixcbiAgICAgICAgICAgICAgICAgICAgaHVtYW5vaWQsXG4gICAgICAgICAgICAgICAgICAgIGxvb2tBdDogZ2x0Zi51c2VyRGF0YS52cm1Mb29rQXQsXG4gICAgICAgICAgICAgICAgICAgIG1ldGEsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZ2x0Zi51c2VyRGF0YS52cm1Db3JlID0gdnJtQ29yZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBWUk1Db3JlLCBWUk1Db3JlTG9hZGVyUGx1Z2luLCBWUk1FeHByZXNzaW9uLCBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luLCBWUk1FeHByZXNzaW9uTWFuYWdlciwgVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JCaW5kLCBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvclR5cGUsIFZSTUV4cHJlc3Npb25Nb3JwaFRhcmdldEJpbmQsIFZSTUV4cHJlc3Npb25PdmVycmlkZVR5cGUsIFZSTUV4cHJlc3Npb25QcmVzZXROYW1lLCBWUk1FeHByZXNzaW9uVGV4dHVyZVRyYW5zZm9ybUJpbmQsIFZSTUZpcnN0UGVyc29uLCBWUk1GaXJzdFBlcnNvbkxvYWRlclBsdWdpbiwgVlJNRmlyc3RQZXJzb25NZXNoQW5ub3RhdGlvblR5cGUsIFZSTUh1bWFuQm9uZUxpc3QsIFZSTUh1bWFuQm9uZU5hbWUsIFZSTUh1bWFuQm9uZVBhcmVudE1hcCwgVlJNSHVtYW5vaWQsIFZSTUh1bWFub2lkSGVscGVyLCBWUk1IdW1hbm9pZExvYWRlclBsdWdpbiwgVlJNTG9va0F0LCBWUk1Mb29rQXRCb25lQXBwbGllciwgVlJNTG9va0F0RXhwcmVzc2lvbkFwcGxpZXIsIFZSTUxvb2tBdEhlbHBlciwgVlJNTG9va0F0TG9hZGVyUGx1Z2luLCBWUk1Mb29rQXRSYW5nZU1hcCwgVlJNTG9va0F0VHlwZU5hbWUsIFZSTU1ldGFMb2FkZXJQbHVnaW4sIFZSTVJlcXVpcmVkSHVtYW5Cb25lTmFtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkR2h5WldVdGRuSnRMV052Y21VdWJXOWtkV3hsTG1weklpd2ljMjkxY21ObGN5STZXeUl1TGk5emNtTXZaWGh3Y21WemMybHZibk12VmxKTlJYaHdjbVZ6YzJsdmJpNTBjeUlzSWk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OTBjMnhwWWk5MGMyeHBZaTVsY3pZdWFuTWlMQ0l1TGk5emNtTXZkWFJwYkhNdloyeDBaa1Y0ZEhKaFkzUlFjbWx0YVhScGRtVnpSbkp2YlU1dlpHVXVkSE1pTENJdUxpOXpjbU12ZFhScGJITXZaMngwWmtkbGRFRnpjMjlqYVdGMFpXUk5ZWFJsY21saGJFbHVaR1Y0TG5Seklpd2lMaTR2YzNKakwyVjRjSEpsYzNOcGIyNXpMMVpTVFVWNGNISmxjM05wYjI1UWNtVnpaWFJPWVcxbExuUnpJaXdpTGk0dmMzSmpMM1YwYVd4ekwzTmhkSFZ5WVhSbExuUnpJaXdpTGk0dmMzSmpMMlY0Y0hKbGMzTnBiMjV6TDFaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeUxuUnpJaXdpTGk0dmMzSmpMMlY0Y0hKbGMzTnBiMjV6TDFaU1RVVjRjSEpsYzNOcGIyNU5ZWFJsY21saGJFTnZiRzl5Vkhsd1pTNTBjeUlzSWk0dUwzTnlZeTlsZUhCeVpYTnphVzl1Y3k5V1VrMUZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2tKcGJtUXVkSE1pTENJdUxpOXpjbU12Wlhod2NtVnpjMmx2Ym5NdlZsSk5SWGh3Y21WemMybHZiazF2Y25Cb1ZHRnlaMlYwUW1sdVpDNTBjeUlzSWk0dUwzTnlZeTlsZUhCeVpYTnphVzl1Y3k5V1VrMUZlSEJ5WlhOemFXOXVWR1Y0ZEhWeVpWUnlZVzV6Wm05eWJVSnBibVF1ZEhNaUxDSXVMaTl6Y21NdlpYaHdjbVZ6YzJsdmJuTXZWbEpOUlhod2NtVnpjMmx2Ymt4dllXUmxjbEJzZFdkcGJpNTBjeUlzSWk0dUwzTnlZeTlsZUhCeVpYTnphVzl1Y3k5V1VrMUZlSEJ5WlhOemFXOXVUM1psY25KcFpHVlVlWEJsTG5Seklpd2lMaTR2YzNKakwyWnBjbk4wVUdWeWMyOXVMMVpTVFVacGNuTjBVR1Z5YzI5dUxuUnpJaXdpTGk0dmMzSmpMMlpwY25OMFVHVnljMjl1TDFaU1RVWnBjbk4wVUdWeWMyOXVURzloWkdWeVVHeDFaMmx1TG5Seklpd2lMaTR2YzNKakwyWnBjbk4wVUdWeWMyOXVMMVpTVFVacGNuTjBVR1Z5YzI5dVRXVnphRUZ1Ym05MFlYUnBiMjVVZVhCbExuUnpJaXdpTGk0dmMzSmpMMmgxYldGdWIybGtMMmhsYkhCbGNuTXZWbEpOU0hWdFlXNXZhV1JJWld4d1pYSXVkSE1pTENJdUxpOXpjbU12YUhWdFlXNXZhV1F2VmxKTlNIVnRZVzVDYjI1bFRHbHpkQzUwY3lJc0lpNHVMM055WXk5b2RXMWhibTlwWkM5V1VrMUlkVzFoYmtKdmJtVk9ZVzFsTG5Seklpd2lMaTR2YzNKakwyaDFiV0Z1YjJsa0wxWlNUVWgxYldGdVFtOXVaVkJoY21WdWRFMWhjQzUwY3lJc0lpNHVMM055WXk5MWRHbHNjeTl4ZFdGMFNXNTJaWEowUTI5dGNHRjBMblJ6SWl3aUxpNHZjM0pqTDJoMWJXRnViMmxrTDFaU1RWSnBaeTUwY3lJc0lpNHVMM055WXk5b2RXMWhibTlwWkM5V1VrMUlkVzFoYm05cFpGSnBaeTUwY3lJc0lpNHVMM055WXk5b2RXMWhibTlwWkM5V1VrMUlkVzFoYm05cFpDNTBjeUlzSWk0dUwzTnlZeTlvZFcxaGJtOXBaQzlXVWsxU1pYRjFhWEpsWkVoMWJXRnVRbTl1WlU1aGJXVXVkSE1pTENJdUxpOXpjbU12YUhWdFlXNXZhV1F2VmxKTlNIVnRZVzV2YVdSTWIyRmtaWEpRYkhWbmFXNHVkSE1pTENJdUxpOXpjbU12Ykc5dmEwRjBMMmhsYkhCbGNuTXZkWFJwYkhNdlJtRnVRblZtWm1WeVIyVnZiV1YwY25rdWRITWlMQ0l1TGk5emNtTXZiRzl2YTBGMEwyaGxiSEJsY25NdmRYUnBiSE12VEdsdVpVRnVaRk53YUdWeVpVSjFabVpsY2tkbGIyMWxkSEo1TG5Seklpd2lMaTR2YzNKakwyeHZiMnRCZEM5b1pXeHdaWEp6TDFaU1RVeHZiMnRCZEVobGJIQmxjaTUwY3lJc0lpNHVMM055WXk5MWRHbHNjeTluWlhSWGIzSnNaRkYxWVhSbGNtNXBiMjVNYVhSbExuUnpJaXdpTGk0dmMzSmpMMnh2YjJ0QmRDOTFkR2xzY3k5allXeGpRWHBwYlhWMGFFRnNkR2wwZFdSbExuUnpJaXdpTGk0dmMzSmpMMnh2YjJ0QmRDOTFkR2xzY3k5ellXNXBkR2w2WlVGdVoyeGxMblJ6SWl3aUxpNHZjM0pqTDJ4dmIydEJkQzlXVWsxTWIyOXJRWFF1ZEhNaUxDSXVMaTl6Y21NdmJHOXZhMEYwTDFaU1RVeHZiMnRCZEVKdmJtVkJjSEJzYVdWeUxuUnpJaXdpTGk0dmMzSmpMMnh2YjJ0QmRDOVdVazFNYjI5clFYUkZlSEJ5WlhOemFXOXVRWEJ3YkdsbGNpNTBjeUlzSWk0dUwzTnlZeTlzYjI5clFYUXZWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQXVkSE1pTENJdUxpOXpjbU12Ykc5dmEwRjBMMVpTVFV4dmIydEJkRXh2WVdSbGNsQnNkV2RwYmk1MGN5SXNJaTR1TDNOeVl5OXNiMjlyUVhRdlZsSk5URzl2YTBGMFZIbHdaVTVoYldVdWRITWlMQ0l1TGk5emNtTXZkWFJwYkhNdmNtVnpiMngyWlZWU1RDNTBjeUlzSWk0dUwzTnlZeTl0WlhSaEwxWlNUVTFsZEdGTWIyRmtaWEpRYkhWbmFXNHVkSE1pTENJdUxpOXpjbU12VmxKTlEyOXlaUzUwY3lJc0lpNHVMM055WXk5V1VrMURiM0psVEc5aFpHVnlVR3gxWjJsdUxuUnpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjdJRlpTVFVWNGNISmxjM05wYjI1Q2FXNWtJSDBnWm5KdmJTQW5MaTlXVWsxRmVIQnlaWE56YVc5dVFtbHVaQ2M3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFVWNGNISmxjM05wYjI1UGRtVnljbWxrWlZSNWNHVWdmU0JtY205dElDY3VMMVpTVFVWNGNISmxjM05wYjI1UGRtVnljbWxrWlZSNWNHVW5PMXh1WEc0dkx5QmhibWx0WVhScGIyNU5hWGhsY2lEamdhN25tNlBvcHBibHI3N29zYUhqZ2EvamdJRlRZMlZ1WlNEamdhN2t1SzNqZ2F2bGhhWGpnYVBqZ2FiamdZVGpnb3ZsdjRYb3BvSGpnWXpqZ1lMamdvdmpnSUpjYmk4dklPT0JuZU9CcnVPQm4rT0NnZU9BZ2VpaHFPZWt1dU9DcXVPRGx1T0N1T09DcCtPQ3IrT0RpT09CcCtPQnIrT0JxdU9CaE9PQmtlT0NqT09CcWVPQWdVOWlhbVZqZERORUlPT0NrdWUybWVhSnYrT0JsK09CcGlCVFkyVnVaU0RqZ2F2bWlwWGxoYVhqZ2FmamdZM2pnb3ZqZ29qamdZYmpnYXZqZ1puamdvdmpnSUpjYm1WNGNHOXlkQ0JqYkdGemN5QldVazFGZUhCeVpYTnphVzl1SUdWNGRHVnVaSE1nVkVoU1JVVXVUMkpxWldOME0wUWdlMXh1SUNBdktpcGNiaUFnSUNvZ1RtRnRaU0J2WmlCMGFHbHpJR1Y0Y0hKbGMzTnBiMjR1WEc0Z0lDQXFJRVJwYzNScGJtZDFhWE5vWldRZ2QybDBhQ0JnYm1GdFpXQWdjMmx1WTJVZ1lHNWhiV1ZnSUhkcGJHd2dZbVVnWTI5dVpteHBZM1JsWkNCM2FYUm9JRTlpYW1WamRETkVMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR1Y0Y0hKbGMzTnBiMjVPWVcxbE9pQnpkSEpwYm1jN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQmpkWEp5Wlc1MElIZGxhV2RvZENCdlppQjBhR1VnWlhod2NtVnpjMmx2Ymk1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCM1pXbG5hSFFnUFNBd0xqQTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFbHVkR1Z5Y0hKbGRDQjJZV3gxWlhNZ1ozSmxZWFJsY2lCMGFHRnVJREF1TlNCaGN5QXhMakFzSUc5eWRHaGxjbmRwYzJVZ01DNHdMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2x6UW1sdVlYSjVJRDBnWm1Gc2MyVTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGTndaV05wWm5rZ2FHOTNJSFJvWlNCbGVIQnlaWE56YVc5dUlHOTJaWEp5YVdSbGN5QmliR2x1YXlCbGVIQnlaWE56YVc5dWN5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnZkbVZ5Y21sa1pVSnNhVzVyT2lCV1VrMUZlSEJ5WlhOemFXOXVUM1psY25KcFpHVlVlWEJsSUQwZ0oyNXZibVVuTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJUY0dWamFXWjVJR2h2ZHlCMGFHVWdaWGh3Y21WemMybHZiaUJ2ZG1WeWNtbGtaWE1nYkc5dmEwRjBJR1Y0Y0hKbGMzTnBiMjV6TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUc5MlpYSnlhV1JsVEc5dmEwRjBPaUJXVWsxRmVIQnlaWE56YVc5dVQzWmxjbkpwWkdWVWVYQmxJRDBnSjI1dmJtVW5PMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlRjR1ZqYVdaNUlHaHZkeUIwYUdVZ1pYaHdjbVZ6YzJsdmJpQnZkbVZ5Y21sa1pYTWdiVzkxZEdnZ1pYaHdjbVZ6YzJsdmJuTXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdiM1psY25KcFpHVk5iM1YwYURvZ1ZsSk5SWGh3Y21WemMybHZiazkyWlhKeWFXUmxWSGx3WlNBOUlDZHViMjVsSnp0Y2JseHVJQ0J3Y21sMllYUmxJRjlpYVc1a2N6b2dWbEpOUlhod2NtVnpjMmx2YmtKcGJtUmJYU0E5SUZ0ZE8xeHVYRzRnSUc5MlpYSnlhV1JsSUhKbFlXUnZibXg1SUhSNWNHVTZJSE4wY21sdVp5QjhJQ2RXVWsxRmVIQnlaWE56YVc5dUp6dGNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQjJZV3gxWlNCeVpYQnlaWE5sYm5SeklHaHZkeUJ0ZFdOb0lHbDBJSE5vYjNWc1pDQnZkbVZ5Y21sa1pTQmliR2x1YXlCbGVIQnlaWE56YVc5dWN5NWNiaUFnSUNvZ1lEQXVNR0FnUFQwZ2JtOGdiM1psY25KcFpHVWdZWFFnWVd4c0xDQmdNUzR3WUNBOVBTQmpiMjF3YkdWMFpXeDVJR0pzYjJOcklIUm9aU0JsZUhCeVpYTnphVzl1Y3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUWdiM1psY25KcFpHVkNiR2x1YTBGdGIzVnVkQ2dwT2lCdWRXMWlaWElnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbTkyWlhKeWFXUmxRbXhwYm1zZ1BUMDlJQ2RpYkc5amF5Y3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQXdMakFnUENCMGFHbHpMbmRsYVdkb2RDQS9JREV1TUNBNklEQXVNRHRjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLSFJvYVhNdWIzWmxjbkpwWkdWQ2JHbHVheUE5UFQwZ0oySnNaVzVrSnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkMlZwWjJoME8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklIWmhiSFZsSUhKbGNISmxjMlZ1ZEhNZ2FHOTNJRzExWTJnZ2FYUWdjMmh2ZFd4a0lHOTJaWEp5YVdSbElHeHZiMnRCZENCbGVIQnlaWE56YVc5dWN5NWNiaUFnSUNvZ1lEQXVNR0FnUFQwZ2JtOGdiM1psY25KcFpHVWdZWFFnWVd4c0xDQmdNUzR3WUNBOVBTQmpiMjF3YkdWMFpXeDVJR0pzYjJOcklIUm9aU0JsZUhCeVpYTnphVzl1Y3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUWdiM1psY25KcFpHVk1iMjlyUVhSQmJXOTFiblFvS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV2ZG1WeWNtbGtaVXh2YjJ0QmRDQTlQVDBnSjJKc2IyTnJKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJREF1TUNBOElIUm9hWE11ZDJWcFoyaDBJRDhnTVM0d0lEb2dNQzR3TzF4dUlDQWdJSDBnWld4elpTQnBaaUFvZEdocGN5NXZkbVZ5Y21sa1pVeHZiMnRCZENBOVBUMGdKMkpzWlc1a0p5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZDJWcFoyaDBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJSFpoYkhWbElISmxjSEpsYzJWdWRITWdhRzkzSUcxMVkyZ2dhWFFnYzJodmRXeGtJRzkyWlhKeWFXUmxJRzF2ZFhSb0lHVjRjSEpsYzNOcGIyNXpMbHh1SUNBZ0tpQmdNQzR3WUNBOVBTQnVieUJ2ZG1WeWNtbGtaU0JoZENCaGJHd3NJR0F4TGpCZ0lEMDlJR052YlhCc1pYUmxiSGtnWW14dlkyc2dkR2hsSUdWNGNISmxjM05wYjI1ekxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkQ0J2ZG1WeWNtbGtaVTF2ZFhSb1FXMXZkVzUwS0NrNklHNTFiV0psY2lCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YjNabGNuSnBaR1ZOYjNWMGFDQTlQVDBnSjJKc2IyTnJKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJREF1TUNBOElIUm9hWE11ZDJWcFoyaDBJRDhnTVM0d0lEb2dNQzR3TzF4dUlDQWdJSDBnWld4elpTQnBaaUFvZEdocGN5NXZkbVZ5Y21sa1pVMXZkWFJvSUQwOVBTQW5ZbXhsYm1RbktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTUzWldsbmFIUTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUF3TGpBN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9aWGh3Y21WemMybHZiazVoYldVNklITjBjbWx1WnlrZ2UxeHVJQ0FnSUhOMWNHVnlLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxtNWhiV1VnUFNCZ1ZsSk5SWGh3Y21WemMybHZibDhrZTJWNGNISmxjM05wYjI1T1lXMWxmV0E3WEc0Z0lDQWdkR2hwY3k1bGVIQnlaWE56YVc5dVRtRnRaU0E5SUdWNGNISmxjM05wYjI1T1lXMWxPMXh1WEc0Z0lDQWdMeThnZEhKaGRtVnljMlVnNXBtQzQ0R3U1cFdSNXJpSTVvbUw1cTYxNDRHbzQ0R1g0NEdtSUU5aWFtVmpkRE5FSU9PQnArT0JyK09CcXVPQmhPT0JrK09CcU9PQ2t1YVlqdWVrdXVPQmwrT0JwdU9CaXVPQmoxeHVJQ0FnSUhSb2FYTXVkSGx3WlNBOUlDZFdVazFGZUhCeVpYTnphVzl1Snp0Y2JseHVJQ0FnSUM4dklPaWhxT2VrdXVlYnJ1ZWFoT09CcnVPQ3F1T0RsdU9DdU9PQ3ArT0NyK09EaU9PQnArT0JyK09CcXVPQmhPT0JydU9CcCtPQWdlaXlvT2lOdCtpN3ZlYTRtK09CcnVPQm4rT0NnZU9CcXlCMmFYTnBZbXhsSU9PQ2tpQm1ZV3h6WlNEamdhdmpnWmZqZ2FiamdZcmpnWS9qZ0lKY2JpQWdJQ0F2THlEamdaUGpnb3pqZ2F2amdvampnb3JqZ0lIamdaUGpnYTdqZ3FUamc3UGpncm5qZ3Ivamc3UGpncm5qZ2F2bHI3N2pnWm5qZ292bXI0N2pnNVhqZzZ6amc3empnNkRqZ2E0Z2JXRjBjbWw0SU9pSHF1V0xsZWlvaU9ldWwrT0NrdWVjZ2VlVnBlT0JwK09CamVPQ2krT0FnbHh1SUNBZ0lIUm9hWE11ZG1semFXSnNaU0E5SUdaaGJITmxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0ZrWkVKcGJtUW9ZbWx1WkRvZ1ZsSk5SWGh3Y21WemMybHZia0pwYm1RcE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxsOWlhVzVrY3k1d2RYTm9LR0pwYm1RcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUZ3Y0d4NUlIZGxhV2RvZENCMGJ5QmxkbVZ5ZVNCaGMzTnBaMjVsWkNCaWJHVnVaQ0J6YUdGd1pYTXVYRzRnSUNBcUlGTm9iM1ZzWkNCaVpTQmpZV3hzWldRZ1pYWmxjbmtnWm5KaGJXVXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZWEJ3YkhsWFpXbG5hSFFvYjNCMGFXOXVjejg2SUh0Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCTmRXeDBhWEJzYVdWeklHRWdkbUZzZFdVZ2RHOGdhWFJ6SUhkbGFXZG9kQ0IwYnlCaGNIQnNlUzVjYmlBZ0lDQWdLaUJKYm5SbGJtUmxaQ0IwYnlCaVpTQjFjMlZrSUdadmNpQnZkbVZ5Y21sa2FXNW5JR0Z1SUdWNGNISmxjM05wYjI0Z2QyVnBaMmgwSUdKNUlHRnViM1JvWlhJZ1pYaHdjbVZ6YzJsdmJpNWNiaUFnSUNBZ0tpQlRaV1VnWVd4emJ6b2dlMEJzYVc1cklHOTJaWEp5YVdSbFFteHBibXQ5TENCN1FHeHBibXNnYjNabGNuSnBaR1ZNYjI5clFYUjlMQ0I3UUd4cGJtc2diM1psY25KcFpHVk5iM1YwYUgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0J0ZFd4MGFYQnNhV1Z5UHpvZ2JuVnRZbVZ5TzF4dUlDQjlLVG9nZG05cFpDQjdYRzRnSUNBZ2JHVjBJR0ZqZEhWaGJGZGxhV2RvZENBOUlIUm9hWE11YVhOQ2FXNWhjbmtnUHlBb2RHaHBjeTUzWldsbmFIUWdQRDBnTUM0MUlEOGdNQzR3SURvZ01TNHdLU0E2SUhSb2FYTXVkMlZwWjJoME8xeHVJQ0FnSUdGamRIVmhiRmRsYVdkb2RDQXFQU0J2Y0hScGIyNXpQeTV0ZFd4MGFYQnNhV1Z5SUQ4L0lERXVNRHRjYmx4dUlDQWdJSFJvYVhNdVgySnBibVJ6TG1admNrVmhZMmdvS0dKcGJtUXBJRDArSUdKcGJtUXVZWEJ3YkhsWFpXbG5hSFFvWVdOMGRXRnNWMlZwWjJoMEtTazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTJ4bFlYSWdjSEpsZG1sdmRYTnNlU0JoYzNOcFoyNWxaQ0JpYkdWdVpDQnphR0Z3WlhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1kyeGxZWEpCY0hCc2FXVmtWMlZwWjJoMEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUhSb2FYTXVYMkpwYm1SekxtWnZja1ZoWTJnb0tHSnBibVFwSUQwK0lHSnBibVF1WTJ4bFlYSkJjSEJzYVdWa1YyVnBaMmgwS0NrcE8xeHVJQ0I5WEc1OVhHNGlMQ0l2S2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FYSEpjYmtOdmNIbHlhV2RvZENBb1l5a2dUV2xqY205emIyWjBJRU52Y25CdmNtRjBhVzl1TGx4eVhHNWNjbHh1VUdWeWJXbHpjMmx2YmlCMGJ5QjFjMlVzSUdOdmNIa3NJRzF2WkdsbWVTd2dZVzVrTDI5eUlHUnBjM1J5YVdKMWRHVWdkR2hwY3lCemIyWjBkMkZ5WlNCbWIzSWdZVzU1WEhKY2JuQjFjbkJ2YzJVZ2QybDBhQ0J2Y2lCM2FYUm9iM1YwSUdabFpTQnBjeUJvWlhKbFlua2daM0poYm5SbFpDNWNjbHh1WEhKY2JsUklSU0JUVDBaVVYwRlNSU0JKVXlCUVVrOVdTVVJGUkNCY0lrRlRJRWxUWENJZ1FVNUVJRlJJUlNCQlZWUklUMUlnUkVsVFEweEJTVTFUSUVGTVRDQlhRVkpTUVU1VVNVVlRJRmRKVkVoY2NseHVVa1ZIUVZKRUlGUlBJRlJJU1ZNZ1UwOUdWRmRCVWtVZ1NVNURURlZFU1U1SElFRk1UQ0JKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaWEhKY2JrRk9SQ0JHU1ZST1JWTlRMaUJKVGlCT1R5QkZWa1ZPVkNCVFNFRk1UQ0JVU0VVZ1FWVlVTRTlTSUVKRklFeEpRVUpNUlNCR1QxSWdRVTVaSUZOUVJVTkpRVXdzSUVSSlVrVkRWQ3hjY2x4dVNVNUVTVkpGUTFRc0lFOVNJRU5QVGxORlVWVkZUbFJKUVV3Z1JFRk5RVWRGVXlCUFVpQkJUbGtnUkVGTlFVZEZVeUJYU0VGVVUwOUZWa1ZTSUZKRlUxVk1WRWxPUnlCR1VrOU5YSEpjYmt4UFUxTWdUMFlnVlZORkxDQkVRVlJCSUU5U0lGQlNUMFpKVkZNc0lGZElSVlJJUlZJZ1NVNGdRVTRnUVVOVVNVOU9JRTlHSUVOUFRsUlNRVU5VTENCT1JVZE1TVWRGVGtORklFOVNYSEpjYms5VVNFVlNJRlJQVWxSSlQxVlRJRUZEVkVsUFRpd2dRVkpKVTBsT1J5QlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVlUwVWdUMUpjY2x4dVVFVlNSazlTVFVGT1EwVWdUMFlnVkVoSlV5QlRUMFpVVjBGU1JTNWNjbHh1S2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb2dLaTljY2x4dUx5b2daMnh2WW1Gc0lGSmxabXhsWTNRc0lGQnliMjFwYzJVc0lGTjFjSEJ5WlhOelpXUkZjbkp2Y2l3Z1UzbHRZbTlzSUNvdlhISmNibHh5WEc1MllYSWdaWGgwWlc1a1UzUmhkR2xqY3lBOUlHWjFibU4wYVc5dUtHUXNJR0lwSUh0Y2NseHVJQ0FnSUdWNGRHVnVaRk4wWVhScFkzTWdQU0JQWW1wbFkzUXVjMlYwVUhKdmRHOTBlWEJsVDJZZ2ZIeGNjbHh1SUNBZ0lDQWdJQ0FvZXlCZlgzQnliM1J2WDE4NklGdGRJSDBnYVc1emRHRnVZMlZ2WmlCQmNuSmhlU0FtSmlCbWRXNWpkR2x2YmlBb1pDd2dZaWtnZXlCa0xsOWZjSEp2ZEc5Zlh5QTlJR0k3SUgwcElIeDhYSEpjYmlBZ0lDQWdJQ0FnWm5WdVkzUnBiMjRnS0dRc0lHSXBJSHNnWm05eUlDaDJZWElnY0NCcGJpQmlLU0JwWmlBb1QySnFaV04wTG5CeWIzUnZkSGx3WlM1b1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tHSXNJSEFwS1NCa1czQmRJRDBnWWx0d1hUc2dmVHRjY2x4dUlDQWdJSEpsZEhWeWJpQmxlSFJsYm1SVGRHRjBhV056S0dRc0lHSXBPMXh5WEc1OU8xeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZlpYaDBaVzVrY3loa0xDQmlLU0I3WEhKY2JpQWdJQ0JwWmlBb2RIbHdaVzltSUdJZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlBbUppQmlJQ0U5UFNCdWRXeHNLVnh5WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSkRiR0Z6Y3lCbGVIUmxibVJ6SUhaaGJIVmxJRndpSUNzZ1UzUnlhVzVuS0dJcElDc2dYQ0lnYVhNZ2JtOTBJR0VnWTI5dWMzUnlkV04wYjNJZ2IzSWdiblZzYkZ3aUtUdGNjbHh1SUNBZ0lHVjRkR1Z1WkZOMFlYUnBZM01vWkN3Z1lpazdYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQmZYeWdwSUhzZ2RHaHBjeTVqYjI1emRISjFZM1J2Y2lBOUlHUTdJSDFjY2x4dUlDQWdJR1F1Y0hKdmRHOTBlWEJsSUQwZ1lpQTlQVDBnYm5Wc2JDQS9JRTlpYW1WamRDNWpjbVZoZEdVb1lpa2dPaUFvWDE4dWNISnZkRzkwZVhCbElEMGdZaTV3Y205MGIzUjVjR1VzSUc1bGR5QmZYeWdwS1R0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElIWmhjaUJmWDJGemMybG5iaUE5SUdaMWJtTjBhVzl1S0NrZ2UxeHlYRzRnSUNBZ1gxOWhjM05wWjI0Z1BTQlBZbXBsWTNRdVlYTnphV2R1SUh4OElHWjFibU4wYVc5dUlGOWZZWE56YVdkdUtIUXBJSHRjY2x4dUlDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCekxDQnBJRDBnTVN3Z2JpQTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZzdJR2tnUENCdU95QnBLeXNwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY3lBOUlHRnlaM1Z0Wlc1MGMxdHBYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoMllYSWdjQ0JwYmlCektTQnBaaUFvVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzVvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0hNc0lIQXBLU0IwVzNCZElEMGdjMXR3WFR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFE3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0J5WlhSMWNtNGdYMTloYzNOcFoyNHVZWEJ3Ykhrb2RHaHBjeXdnWVhKbmRXMWxiblJ6S1R0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZjbVZ6ZENoekxDQmxLU0I3WEhKY2JpQWdJQ0IyWVhJZ2RDQTlJSHQ5TzF4eVhHNGdJQ0FnWm05eUlDaDJZWElnY0NCcGJpQnpLU0JwWmlBb1QySnFaV04wTG5CeWIzUnZkSGx3WlM1b1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tITXNJSEFwSUNZbUlHVXVhVzVrWlhoUFppaHdLU0E4SURBcFhISmNiaUFnSUNBZ0lDQWdkRnR3WFNBOUlITmJjRjA3WEhKY2JpQWdJQ0JwWmlBb2N5QWhQU0J1ZFd4c0lDWW1JSFI1Y0dWdlppQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxUZVcxaWIyeHpJRDA5UFNCY0ltWjFibU4wYVc5dVhDSXBYSEpjYmlBZ0lDQWdJQ0FnWm05eUlDaDJZWElnYVNBOUlEQXNJSEFnUFNCUFltcGxZM1F1WjJWMFQzZHVVSEp2Y0dWeWRIbFRlVzFpYjJ4ektITXBPeUJwSUR3Z2NDNXNaVzVuZEdnN0lHa3JLeWtnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pTNXBibVJsZUU5bUtIQmJhVjBwSUR3Z01DQW1KaUJQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMbkJ5YjNCbGNuUjVTWE5GYm5WdFpYSmhZbXhsTG1OaGJHd29jeXdnY0Z0cFhTa3BYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwVzNCYmFWMWRJRDBnYzF0d1cybGRYVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnZER0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZaR1ZqYjNKaGRHVW9aR1ZqYjNKaGRHOXljeXdnZEdGeVoyVjBMQ0JyWlhrc0lHUmxjMk1wSUh0Y2NseHVJQ0FnSUhaaGNpQmpJRDBnWVhKbmRXMWxiblJ6TG14bGJtZDBhQ3dnY2lBOUlHTWdQQ0F6SUQ4Z2RHRnlaMlYwSURvZ1pHVnpZeUE5UFQwZ2JuVnNiQ0EvSUdSbGMyTWdQU0JQWW1wbFkzUXVaMlYwVDNkdVVISnZjR1Z5ZEhsRVpYTmpjbWx3ZEc5eUtIUmhjbWRsZEN3Z2EyVjVLU0E2SUdSbGMyTXNJR1E3WEhKY2JpQWdJQ0JwWmlBb2RIbHdaVzltSUZKbFpteGxZM1FnUFQwOUlGd2liMkpxWldOMFhDSWdKaVlnZEhsd1pXOW1JRkpsWm14bFkzUXVaR1ZqYjNKaGRHVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpa2djaUE5SUZKbFpteGxZM1F1WkdWamIzSmhkR1VvWkdWamIzSmhkRzl5Y3l3Z2RHRnlaMlYwTENCclpYa3NJR1JsYzJNcE8xeHlYRzRnSUNBZ1pXeHpaU0JtYjNJZ0tIWmhjaUJwSUQwZ1pHVmpiM0poZEc5eWN5NXNaVzVuZEdnZ0xTQXhPeUJwSUQ0OUlEQTdJR2t0TFNrZ2FXWWdLR1FnUFNCa1pXTnZjbUYwYjNKelcybGRLU0J5SUQwZ0tHTWdQQ0F6SUQ4Z1pDaHlLU0E2SUdNZ1BpQXpJRDhnWkNoMFlYSm5aWFFzSUd0bGVTd2djaWtnT2lCa0tIUmhjbWRsZEN3Z2EyVjVLU2tnZkh3Z2NqdGNjbHh1SUNBZ0lISmxkSFZ5YmlCaklENGdNeUFtSmlCeUlDWW1JRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoMFlYSm5aWFFzSUd0bGVTd2djaWtzSUhJN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM0JoY21GdEtIQmhjbUZ0U1c1a1pYZ3NJR1JsWTI5eVlYUnZjaWtnZTF4eVhHNGdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVJQ2gwWVhKblpYUXNJR3RsZVNrZ2V5QmtaV052Y21GMGIzSW9kR0Z5WjJWMExDQnJaWGtzSUhCaGNtRnRTVzVrWlhncE95QjlYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJWelJHVmpiM0poZEdVb1kzUnZjaXdnWkdWelkzSnBjSFJ2Y2tsdUxDQmtaV052Y21GMGIzSnpMQ0JqYjI1MFpYaDBTVzRzSUdsdWFYUnBZV3hwZW1WeWN5d2daWGgwY21GSmJtbDBhV0ZzYVhwbGNuTXBJSHRjY2x4dUlDQWdJR1oxYm1OMGFXOXVJR0ZqWTJWd2RDaG1LU0I3SUdsbUlDaG1JQ0U5UFNCMmIybGtJREFnSmlZZ2RIbHdaVzltSUdZZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJa1oxYm1OMGFXOXVJR1Y0Y0dWamRHVmtYQ0lwT3lCeVpYUjFjbTRnWmpzZ2ZWeHlYRzRnSUNBZ2RtRnlJR3RwYm1RZ1BTQmpiMjUwWlhoMFNXNHVhMmx1WkN3Z2EyVjVJRDBnYTJsdVpDQTlQVDBnWENKblpYUjBaWEpjSWlBL0lGd2laMlYwWENJZ09pQnJhVzVrSUQwOVBTQmNJbk5sZEhSbGNsd2lJRDhnWENKelpYUmNJaUE2SUZ3aWRtRnNkV1ZjSWp0Y2NseHVJQ0FnSUhaaGNpQjBZWEpuWlhRZ1BTQWhaR1Z6WTNKcGNIUnZja2x1SUNZbUlHTjBiM0lnUHlCamIyNTBaWGgwU1c1YlhDSnpkR0YwYVdOY0lsMGdQeUJqZEc5eUlEb2dZM1J2Y2k1d2NtOTBiM1I1Y0dVZ09pQnVkV3hzTzF4eVhHNGdJQ0FnZG1GeUlHUmxjMk55YVhCMGIzSWdQU0JrWlhOamNtbHdkRzl5U1c0Z2ZId2dLSFJoY21kbGRDQS9JRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVVSbGMyTnlhWEIwYjNJb2RHRnlaMlYwTENCamIyNTBaWGgwU1c0dWJtRnRaU2tnT2lCN2ZTazdYSEpjYmlBZ0lDQjJZWElnWHl3Z1pHOXVaU0E5SUdaaGJITmxPMXh5WEc0Z0lDQWdabTl5SUNoMllYSWdhU0E5SUdSbFkyOXlZWFJ2Y25NdWJHVnVaM1JvSUMwZ01Uc2dhU0ErUFNBd095QnBMUzBwSUh0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnWTI5dWRHVjRkQ0E5SUh0OU8xeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJSEFnYVc0Z1kyOXVkR1Y0ZEVsdUtTQmpiMjUwWlhoMFczQmRJRDBnY0NBOVBUMGdYQ0poWTJObGMzTmNJaUEvSUh0OUlEb2dZMjl1ZEdWNGRFbHVXM0JkTzF4eVhHNGdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlIQWdhVzRnWTI5dWRHVjRkRWx1TG1GalkyVnpjeWtnWTI5dWRHVjRkQzVoWTJObGMzTmJjRjBnUFNCamIyNTBaWGgwU1c0dVlXTmpaWE56VzNCZE8xeHlYRzRnSUNBZ0lDQWdJR052Ym5SbGVIUXVZV1JrU1c1cGRHbGhiR2w2WlhJZ1BTQm1kVzVqZEdsdmJpQW9aaWtnZXlCcFppQW9aRzl1WlNrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJa05oYm01dmRDQmhaR1FnYVc1cGRHbGhiR2w2WlhKeklHRm1kR1Z5SUdSbFkyOXlZWFJwYjI0Z2FHRnpJR052YlhCc1pYUmxaRndpS1RzZ1pYaDBjbUZKYm1sMGFXRnNhWHBsY25NdWNIVnphQ2hoWTJObGNIUW9aaUI4ZkNCdWRXeHNLU2s3SUgwN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUNnd0xDQmtaV052Y21GMGIzSnpXMmxkS1NocmFXNWtJRDA5UFNCY0ltRmpZMlZ6YzI5eVhDSWdQeUI3SUdkbGREb2daR1Z6WTNKcGNIUnZjaTVuWlhRc0lITmxkRG9nWkdWelkzSnBjSFJ2Y2k1elpYUWdmU0E2SUdSbGMyTnlhWEIwYjNKYmEyVjVYU3dnWTI5dWRHVjRkQ2s3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLR3RwYm1RZ1BUMDlJRndpWVdOalpYTnpiM0pjSWlrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jbVZ6ZFd4MElEMDlQU0IyYjJsa0lEQXBJR052Ym5ScGJuVmxPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY21WemRXeDBJRDA5UFNCdWRXeHNJSHg4SUhSNWNHVnZaaUJ5WlhOMWJIUWdJVDA5SUZ3aWIySnFaV04wWENJcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pQWW1wbFkzUWdaWGh3WldOMFpXUmNJaWs3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoZklEMGdZV05qWlhCMEtISmxjM1ZzZEM1blpYUXBLU0JrWlhOamNtbHdkRzl5TG1kbGRDQTlJRjg3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoZklEMGdZV05qWlhCMEtISmxjM1ZzZEM1elpYUXBLU0JrWlhOamNtbHdkRzl5TG5ObGRDQTlJRjg3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoZklEMGdZV05qWlhCMEtISmxjM1ZzZEM1cGJtbDBLU2tnYVc1cGRHbGhiR2w2WlhKekxuVnVjMmhwWm5Rb1h5azdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tGOGdQU0JoWTJObGNIUW9jbVZ6ZFd4MEtTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYTJsdVpDQTlQVDBnWENKbWFXVnNaRndpS1NCcGJtbDBhV0ZzYVhwbGNuTXVkVzV6YUdsbWRDaGZLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCa1pYTmpjbWx3ZEc5eVcydGxlVjBnUFNCZk8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJSDFjY2x4dUlDQWdJR2xtSUNoMFlYSm5aWFFwSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaDBZWEpuWlhRc0lHTnZiblJsZUhSSmJpNXVZVzFsTENCa1pYTmpjbWx3ZEc5eUtUdGNjbHh1SUNBZ0lHUnZibVVnUFNCMGNuVmxPMXh5WEc1OU8xeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmNuVnVTVzVwZEdsaGJHbDZaWEp6S0hSb2FYTkJjbWNzSUdsdWFYUnBZV3hwZW1WeWN5d2dkbUZzZFdVcElIdGNjbHh1SUNBZ0lIWmhjaUIxYzJWV1lXeDFaU0E5SUdGeVozVnRaVzUwY3k1c1pXNW5kR2dnUGlBeU8xeHlYRzRnSUNBZ1ptOXlJQ2gyWVhJZ2FTQTlJREE3SUdrZ1BDQnBibWwwYVdGc2FYcGxjbk11YkdWdVozUm9PeUJwS3lzcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVd4MVpTQTlJSFZ6WlZaaGJIVmxJRDhnYVc1cGRHbGhiR2w2WlhKelcybGRMbU5oYkd3b2RHaHBjMEZ5Wnl3Z2RtRnNkV1VwSURvZ2FXNXBkR2xoYkdsNlpYSnpXMmxkTG1OaGJHd29kR2hwYzBGeVp5azdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQnlaWFIxY200Z2RYTmxWbUZzZFdVZ1B5QjJZV3gxWlNBNklIWnZhV1FnTUR0Y2NseHVmVHRjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM0J5YjNCTFpYa29lQ2tnZTF4eVhHNGdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQjRJRDA5UFNCY0luTjViV0p2YkZ3aUlEOGdlQ0E2SUZ3aVhDSXVZMjl1WTJGMEtIZ3BPMXh5WEc1OU8xeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmMyVjBSblZ1WTNScGIyNU9ZVzFsS0dZc0lHNWhiV1VzSUhCeVpXWnBlQ2tnZTF4eVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCdVlXMWxJRDA5UFNCY0luTjViV0p2YkZ3aUtTQnVZVzFsSUQwZ2JtRnRaUzVrWlhOamNtbHdkR2x2YmlBL0lGd2lXMXdpTG1OdmJtTmhkQ2h1WVcxbExtUmxjMk55YVhCMGFXOXVMQ0JjSWwxY0lpa2dPaUJjSWx3aU8xeHlYRzRnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaG1MQ0JjSW01aGJXVmNJaXdnZXlCamIyNW1hV2QxY21GaWJHVTZJSFJ5ZFdVc0lIWmhiSFZsT2lCd2NtVm1hWGdnUHlCY0lsd2lMbU52Ym1OaGRDaHdjbVZtYVhnc0lGd2lJRndpTENCdVlXMWxLU0E2SUc1aGJXVWdmU2s3WEhKY2JuMDdYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXRaWFJoWkdGMFlTaHRaWFJoWkdGMFlVdGxlU3dnYldWMFlXUmhkR0ZXWVd4MVpTa2dlMXh5WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJTWldac1pXTjBJRDA5UFNCY0ltOWlhbVZqZEZ3aUlDWW1JSFI1Y0dWdlppQlNaV1pzWldOMExtMWxkR0ZrWVhSaElEMDlQU0JjSW1aMWJtTjBhVzl1WENJcElISmxkSFZ5YmlCU1pXWnNaV04wTG0xbGRHRmtZWFJoS0cxbGRHRmtZWFJoUzJWNUxDQnRaWFJoWkdGMFlWWmhiSFZsS1R0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZZWGRoYVhSbGNpaDBhR2x6UVhKbkxDQmZZWEpuZFcxbGJuUnpMQ0JRTENCblpXNWxjbUYwYjNJcElIdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlHRmtiM0IwS0haaGJIVmxLU0I3SUhKbGRIVnliaUIyWVd4MVpTQnBibk4wWVc1alpXOW1JRkFnUHlCMllXeDFaU0E2SUc1bGR5QlFLR1oxYm1OMGFXOXVJQ2h5WlhOdmJIWmxLU0I3SUhKbGMyOXNkbVVvZG1Gc2RXVXBPeUI5S1RzZ2ZWeHlYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QW9VQ0I4ZkNBb1VDQTlJRkJ5YjIxcGMyVXBLU2htZFc1amRHbHZiaUFvY21WemIyeDJaU3dnY21WcVpXTjBLU0I3WEhKY2JpQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z1puVnNabWxzYkdWa0tIWmhiSFZsS1NCN0lIUnllU0I3SUhOMFpYQW9aMlZ1WlhKaGRHOXlMbTVsZUhRb2RtRnNkV1VwS1RzZ2ZTQmpZWFJqYUNBb1pTa2dleUJ5WldwbFkzUW9aU2s3SUgwZ2ZWeHlYRzRnSUNBZ0lDQWdJR1oxYm1OMGFXOXVJSEpsYW1WamRHVmtLSFpoYkhWbEtTQjdJSFJ5ZVNCN0lITjBaWEFvWjJWdVpYSmhkRzl5VzF3aWRHaHliM2RjSWwwb2RtRnNkV1VwS1RzZ2ZTQmpZWFJqYUNBb1pTa2dleUJ5WldwbFkzUW9aU2s3SUgwZ2ZWeHlYRzRnSUNBZ0lDQWdJR1oxYm1OMGFXOXVJSE4wWlhBb2NtVnpkV3gwS1NCN0lISmxjM1ZzZEM1a2IyNWxJRDhnY21WemIyeDJaU2h5WlhOMWJIUXVkbUZzZFdVcElEb2dZV1J2Y0hRb2NtVnpkV3gwTG5aaGJIVmxLUzUwYUdWdUtHWjFiR1pwYkd4bFpDd2djbVZxWldOMFpXUXBPeUI5WEhKY2JpQWdJQ0FnSUNBZ2MzUmxjQ2dvWjJWdVpYSmhkRzl5SUQwZ1oyVnVaWEpoZEc5eUxtRndjR3g1S0hSb2FYTkJjbWNzSUY5aGNtZDFiV1Z1ZEhNZ2ZId2dXMTBwS1M1dVpYaDBLQ2twTzF4eVhHNGdJQ0FnZlNrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMmRsYm1WeVlYUnZjaWgwYUdselFYSm5MQ0JpYjJSNUtTQjdYSEpjYmlBZ0lDQjJZWElnWHlBOUlIc2diR0ZpWld3NklEQXNJSE5sYm5RNklHWjFibU4wYVc5dUtDa2dleUJwWmlBb2RGc3dYU0FtSURFcElIUm9jbTkzSUhSYk1WMDdJSEpsZEhWeWJpQjBXekZkT3lCOUxDQjBjbmx6T2lCYlhTd2diM0J6T2lCYlhTQjlMQ0JtTENCNUxDQjBMQ0JuTzF4eVhHNGdJQ0FnY21WMGRYSnVJR2NnUFNCN0lHNWxlSFE2SUhabGNtSW9NQ2tzSUZ3aWRHaHliM2RjSWpvZ2RtVnlZaWd4S1N3Z1hDSnlaWFIxY201Y0lqb2dkbVZ5WWlneUtTQjlMQ0IwZVhCbGIyWWdVM2x0WW05c0lEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ0ppWWdLR2RiVTNsdFltOXNMbWwwWlhKaGRHOXlYU0E5SUdaMWJtTjBhVzl1S0NrZ2V5QnlaWFIxY200Z2RHaHBjenNnZlNrc0lHYzdYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQjJaWEppS0c0cElIc2djbVYwZFhKdUlHWjFibU4wYVc5dUlDaDJLU0I3SUhKbGRIVnliaUJ6ZEdWd0tGdHVMQ0IyWFNrN0lIMDdJSDFjY2x4dUlDQWdJR1oxYm1OMGFXOXVJSE4wWlhBb2IzQXBJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9aaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrZGxibVZ5WVhSdmNpQnBjeUJoYkhKbFlXUjVJR1Y0WldOMWRHbHVaeTVjSWlrN1hISmNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tHY2dKaVlnS0djZ1BTQXdMQ0J2Y0Zzd1hTQW1KaUFvWHlBOUlEQXBLU3dnWHlrZ2RISjVJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dZZ1BTQXhMQ0I1SUNZbUlDaDBJRDBnYjNCYk1GMGdKaUF5SUQ4Z2VWdGNJbkpsZEhWeWJsd2lYU0E2SUc5d1d6QmRJRDhnZVZ0Y0luUm9jbTkzWENKZElIeDhJQ2dvZENBOUlIbGJYQ0p5WlhSMWNtNWNJbDBwSUNZbUlIUXVZMkZzYkNoNUtTd2dNQ2tnT2lCNUxtNWxlSFFwSUNZbUlDRW9kQ0E5SUhRdVkyRnNiQ2g1TENCdmNGc3hYU2twTG1SdmJtVXBJSEpsZEhWeWJpQjBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZVNBOUlEQXNJSFFwSUc5d0lEMGdXMjl3V3pCZElDWWdNaXdnZEM1MllXeDFaVjA3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSE4zYVhSamFDQW9iM0JiTUYwcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ01Eb2dZMkZ6WlNBeE9pQjBJRDBnYjNBN0lHSnlaV0ZyTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0EwT2lCZkxteGhZbVZzS3lzN0lISmxkSFZ5YmlCN0lIWmhiSFZsT2lCdmNGc3hYU3dnWkc5dVpUb2dabUZzYzJVZ2ZUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ05Ub2dYeTVzWVdKbGJDc3JPeUI1SUQwZ2IzQmJNVjA3SUc5d0lEMGdXekJkT3lCamIyNTBhVzUxWlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnTnpvZ2IzQWdQU0JmTG05d2N5NXdiM0FvS1RzZ1h5NTBjbmx6TG5CdmNDZ3BPeUJqYjI1MGFXNTFaVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFE2WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NFb2RDQTlJRjh1ZEhKNWN5d2dkQ0E5SUhRdWJHVnVaM1JvSUQ0Z01DQW1KaUIwVzNRdWJHVnVaM1JvSUMwZ01WMHBJQ1ltSUNodmNGc3dYU0E5UFQwZ05pQjhmQ0J2Y0Zzd1hTQTlQVDBnTWlrcElIc2dYeUE5SURBN0lHTnZiblJwYm5WbE95QjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzl3V3pCZElEMDlQU0F6SUNZbUlDZ2hkQ0I4ZkNBb2IzQmJNVjBnUGlCMFd6QmRJQ1ltSUc5d1d6RmRJRHdnZEZzelhTa3BLU0I3SUY4dWJHRmlaV3dnUFNCdmNGc3hYVHNnWW5KbFlXczdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYjNCYk1GMGdQVDA5SURZZ0ppWWdYeTVzWVdKbGJDQThJSFJiTVYwcElIc2dYeTVzWVdKbGJDQTlJSFJiTVYwN0lIUWdQU0J2Y0RzZ1luSmxZV3M3SUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RDQW1KaUJmTG14aFltVnNJRHdnZEZzeVhTa2dleUJmTG14aFltVnNJRDBnZEZzeVhUc2dYeTV2Y0hNdWNIVnphQ2h2Y0NrN0lHSnlaV0ZyT3lCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUmJNbDBwSUY4dWIzQnpMbkJ2Y0NncE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUY4dWRISjVjeTV3YjNBb0tUc2dZMjl1ZEdsdWRXVTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2IzQWdQU0JpYjJSNUxtTmhiR3dvZEdocGMwRnlaeXdnWHlrN1hISmNiaUFnSUNBZ0lDQWdmU0JqWVhSamFDQW9aU2tnZXlCdmNDQTlJRnMyTENCbFhUc2dlU0E5SURBN0lIMGdabWx1WVd4c2VTQjdJR1lnUFNCMElEMGdNRHNnZlZ4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2h2Y0Zzd1hTQW1JRFVwSUhSb2NtOTNJRzl3V3pGZE95QnlaWFIxY200Z2V5QjJZV3gxWlRvZ2IzQmJNRjBnUHlCdmNGc3hYU0E2SUhadmFXUWdNQ3dnWkc5dVpUb2dkSEoxWlNCOU8xeHlYRzRnSUNBZ2ZWeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdkbUZ5SUY5ZlkzSmxZWFJsUW1sdVpHbHVaeUE5SUU5aWFtVmpkQzVqY21WaGRHVWdQeUFvWm5WdVkzUnBiMjRvYnl3Z2JTd2dheXdnYXpJcElIdGNjbHh1SUNBZ0lHbG1JQ2hyTWlBOVBUMGdkVzVrWldacGJtVmtLU0JyTWlBOUlHczdYSEpjYmlBZ0lDQjJZWElnWkdWell5QTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVVSbGMyTnlhWEIwYjNJb2JTd2dheWs3WEhKY2JpQWdJQ0JwWmlBb0lXUmxjMk1nZkh3Z0tGd2laMlYwWENJZ2FXNGdaR1Z6WXlBL0lDRnRMbDlmWlhOTmIyUjFiR1VnT2lCa1pYTmpMbmR5YVhSaFlteGxJSHg4SUdSbGMyTXVZMjl1Wm1sbmRYSmhZbXhsS1NrZ2UxeHlYRzRnSUNBZ0lDQWdJR1JsYzJNZ1BTQjdJR1Z1ZFcxbGNtRmliR1U2SUhSeWRXVXNJR2RsZERvZ1puVnVZM1JwYjI0b0tTQjdJSEpsZEhWeWJpQnRXMnRkT3lCOUlIMDdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvYnl3Z2F6SXNJR1JsYzJNcE8xeHlYRzU5S1NBNklDaG1kVzVqZEdsdmJpaHZMQ0J0TENCckxDQnJNaWtnZTF4eVhHNGdJQ0FnYVdZZ0tHc3lJRDA5UFNCMWJtUmxabWx1WldRcElHc3lJRDBnYXp0Y2NseHVJQ0FnSUc5YmF6SmRJRDBnYlZ0clhUdGNjbHh1ZlNrN1hISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5bGVIQnZjblJUZEdGeUtHMHNJRzhwSUh0Y2NseHVJQ0FnSUdadmNpQW9kbUZ5SUhBZ2FXNGdiU2tnYVdZZ0tIQWdJVDA5SUZ3aVpHVm1ZWFZzZEZ3aUlDWW1JQ0ZQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMbWhoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvYnl3Z2NDa3BJRjlmWTNKbFlYUmxRbWx1WkdsdVp5aHZMQ0J0TENCd0tUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmZG1Gc2RXVnpLRzhwSUh0Y2NseHVJQ0FnSUhaaGNpQnpJRDBnZEhsd1pXOW1JRk41YldKdmJDQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUlDWW1JRk41YldKdmJDNXBkR1Z5WVhSdmNpd2diU0E5SUhNZ0ppWWdiMXR6WFN3Z2FTQTlJREE3WEhKY2JpQWdJQ0JwWmlBb2JTa2djbVYwZFhKdUlHMHVZMkZzYkNodktUdGNjbHh1SUNBZ0lHbG1JQ2h2SUNZbUlIUjVjR1Z2WmlCdkxteGxibWQwYUNBOVBUMGdYQ0p1ZFcxaVpYSmNJaWtnY21WMGRYSnVJSHRjY2x4dUlDQWdJQ0FnSUNCdVpYaDBPaUJtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHZJQ1ltSUdrZ1BqMGdieTVzWlc1bmRHZ3BJRzhnUFNCMmIybGtJREE3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJSFpoYkhWbE9pQnZJQ1ltSUc5YmFTc3JYU3dnWkc5dVpUb2dJVzhnZlR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQjlPMXh5WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWh6SUQ4Z1hDSlBZbXBsWTNRZ2FYTWdibTkwSUdsMFpYSmhZbXhsTGx3aUlEb2dYQ0pUZVcxaWIyd3VhWFJsY21GMGIzSWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5eVpXRmtLRzhzSUc0cElIdGNjbHh1SUNBZ0lIWmhjaUJ0SUQwZ2RIbHdaVzltSUZONWJXSnZiQ0E5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJQ1ltSUc5YlUzbHRZbTlzTG1sMFpYSmhkRzl5WFR0Y2NseHVJQ0FnSUdsbUlDZ2hiU2tnY21WMGRYSnVJRzg3WEhKY2JpQWdJQ0IyWVhJZ2FTQTlJRzB1WTJGc2JDaHZLU3dnY2l3Z1lYSWdQU0JiWFN3Z1pUdGNjbHh1SUNBZ0lIUnllU0I3WEhKY2JpQWdJQ0FnSUNBZ2QyaHBiR1VnS0NodUlEMDlQU0IyYjJsa0lEQWdmSHdnYmkwdElENGdNQ2tnSmlZZ0lTaHlJRDBnYVM1dVpYaDBLQ2twTG1SdmJtVXBJR0Z5TG5CMWMyZ29jaTUyWVd4MVpTazdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQmpZWFJqYUNBb1pYSnliM0lwSUhzZ1pTQTlJSHNnWlhKeWIzSTZJR1Z5Y205eUlIMDdJSDFjY2x4dUlDQWdJR1pwYm1Gc2JIa2dlMXh5WEc0Z0lDQWdJQ0FnSUhSeWVTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h5SUNZbUlDRnlMbVJ2Ym1VZ0ppWWdLRzBnUFNCcFcxd2ljbVYwZFhKdVhDSmRLU2tnYlM1allXeHNLR2twTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JtYVc1aGJHeDVJSHNnYVdZZ0tHVXBJSFJvY205M0lHVXVaWEp5YjNJN0lIMWNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lISmxkSFZ5YmlCaGNqdGNjbHh1ZlZ4eVhHNWNjbHh1THlvcUlFQmtaWEJ5WldOaGRHVmtJQ292WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgzTndjbVZoWkNncElIdGNjbHh1SUNBZ0lHWnZjaUFvZG1GeUlHRnlJRDBnVzEwc0lHa2dQU0F3T3lCcElEd2dZWEpuZFcxbGJuUnpMbXhsYm1kMGFEc2dhU3NyS1Z4eVhHNGdJQ0FnSUNBZ0lHRnlJRDBnWVhJdVkyOXVZMkYwS0Y5ZmNtVmhaQ2hoY21kMWJXVnVkSE5iYVYwcEtUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCaGNqdGNjbHh1ZlZ4eVhHNWNjbHh1THlvcUlFQmtaWEJ5WldOaGRHVmtJQ292WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgzTndjbVZoWkVGeWNtRjVjeWdwSUh0Y2NseHVJQ0FnSUdadmNpQW9kbUZ5SUhNZ1BTQXdMQ0JwSUQwZ01Dd2dhV3dnUFNCaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvT3lCcElEd2dhV3c3SUdrckt5a2djeUFyUFNCaGNtZDFiV1Z1ZEhOYmFWMHViR1Z1WjNSb08xeHlYRzRnSUNBZ1ptOXlJQ2gyWVhJZ2NpQTlJRUZ5Y21GNUtITXBMQ0JySUQwZ01Dd2dhU0E5SURBN0lHa2dQQ0JwYkRzZ2FTc3JLVnh5WEc0Z0lDQWdJQ0FnSUdadmNpQW9kbUZ5SUdFZ1BTQmhjbWQxYldWdWRITmJhVjBzSUdvZ1BTQXdMQ0JxYkNBOUlHRXViR1Z1WjNSb095QnFJRHdnYW13N0lHb3JLeXdnYXlzcktWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCeVcydGRJRDBnWVZ0cVhUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCeU8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl6Y0hKbFlXUkJjbkpoZVNoMGJ5d2dabkp2YlN3Z2NHRmpheWtnZTF4eVhHNGdJQ0FnYVdZZ0tIQmhZMnNnZkh3Z1lYSm5kVzFsYm5SekxteGxibWQwYUNBOVBUMGdNaWtnWm05eUlDaDJZWElnYVNBOUlEQXNJR3dnUFNCbWNtOXRMbXhsYm1kMGFDd2dZWEk3SUdrZ1BDQnNPeUJwS3lzcElIdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb1lYSWdmSHdnSVNocElHbHVJR1p5YjIwcEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doWVhJcElHRnlJRDBnUVhKeVlYa3VjSEp2ZEc5MGVYQmxMbk5zYVdObExtTmhiR3dvWm5KdmJTd2dNQ3dnYVNrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdGeVcybGRJRDBnWm5KdmJWdHBYVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnZEc4dVkyOXVZMkYwS0dGeUlIeDhJRUZ5Y21GNUxuQnliM1J2ZEhsd1pTNXpiR2xqWlM1allXeHNLR1p5YjIwcEtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWVhkaGFYUW9kaWtnZTF4eVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNZ2FXNXpkR0Z1WTJWdlppQmZYMkYzWVdsMElEOGdLSFJvYVhNdWRpQTlJSFlzSUhSb2FYTXBJRG9nYm1WM0lGOWZZWGRoYVhRb2RpazdYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJGemVXNWpSMlZ1WlhKaGRHOXlLSFJvYVhOQmNtY3NJRjloY21kMWJXVnVkSE1zSUdkbGJtVnlZWFJ2Y2lrZ2UxeHlYRzRnSUNBZ2FXWWdLQ0ZUZVcxaWIyd3VZWE41Ym1OSmRHVnlZWFJ2Y2lrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJbE41YldKdmJDNWhjM2x1WTBsMFpYSmhkRzl5SUdseklHNXZkQ0JrWldacGJtVmtMbHdpS1R0Y2NseHVJQ0FnSUhaaGNpQm5JRDBnWjJWdVpYSmhkRzl5TG1Gd2NHeDVLSFJvYVhOQmNtY3NJRjloY21kMWJXVnVkSE1nZkh3Z1cxMHBMQ0JwTENCeElEMGdXMTA3WEhKY2JpQWdJQ0J5WlhSMWNtNGdhU0E5SUh0OUxDQjJaWEppS0Z3aWJtVjRkRndpS1N3Z2RtVnlZaWhjSW5Sb2NtOTNYQ0lwTENCMlpYSmlLRndpY21WMGRYSnVYQ0lwTENCcFcxTjViV0p2YkM1aGMzbHVZMGwwWlhKaGRHOXlYU0E5SUdaMWJtTjBhVzl1SUNncElIc2djbVYwZFhKdUlIUm9hWE03SUgwc0lHazdYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQjJaWEppS0c0cElIc2dhV1lnS0dkYmJsMHBJR2xiYmwwZ1BTQm1kVzVqZEdsdmJpQW9kaWtnZXlCeVpYUjFjbTRnYm1WM0lGQnliMjFwYzJVb1puVnVZM1JwYjI0Z0tHRXNJR0lwSUhzZ2NTNXdkWE5vS0Z0dUxDQjJMQ0JoTENCaVhTa2dQaUF4SUh4OElISmxjM1Z0WlNodUxDQjJLVHNnZlNrN0lIMDdJSDFjY2x4dUlDQWdJR1oxYm1OMGFXOXVJSEpsYzNWdFpTaHVMQ0IyS1NCN0lIUnllU0I3SUhOMFpYQW9aMXR1WFNoMktTazdJSDBnWTJGMFkyZ2dLR1VwSUhzZ2MyVjBkR3hsS0hGYk1GMWJNMTBzSUdVcE95QjlJSDFjY2x4dUlDQWdJR1oxYm1OMGFXOXVJSE4wWlhBb2Npa2dleUJ5TG5aaGJIVmxJR2x1YzNSaGJtTmxiMllnWDE5aGQyRnBkQ0EvSUZCeWIyMXBjMlV1Y21WemIyeDJaU2h5TG5aaGJIVmxMbllwTG5Sb1pXNG9ablZzWm1sc2JDd2djbVZxWldOMEtTQTZJSE5sZEhSc1pTaHhXekJkV3pKZExDQnlLVHNnZlZ4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnWm5Wc1ptbHNiQ2gyWVd4MVpTa2dleUJ5WlhOMWJXVW9YQ0p1WlhoMFhDSXNJSFpoYkhWbEtUc2dmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdjbVZxWldOMEtIWmhiSFZsS1NCN0lISmxjM1Z0WlNoY0luUm9jbTkzWENJc0lIWmhiSFZsS1RzZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2MyVjBkR3hsS0dZc0lIWXBJSHNnYVdZZ0tHWW9kaWtzSUhFdWMyaHBablFvS1N3Z2NTNXNaVzVuZEdncElISmxjM1Z0WlNoeFd6QmRXekJkTENCeFd6QmRXekZkS1RzZ2ZWeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTloYzNsdVkwUmxiR1ZuWVhSdmNpaHZLU0I3WEhKY2JpQWdJQ0IyWVhJZ2FTd2djRHRjY2x4dUlDQWdJSEpsZEhWeWJpQnBJRDBnZTMwc0lIWmxjbUlvWENKdVpYaDBYQ0lwTENCMlpYSmlLRndpZEdoeWIzZGNJaXdnWm5WdVkzUnBiMjRnS0dVcElIc2dkR2h5YjNjZ1pUc2dmU2tzSUhabGNtSW9YQ0p5WlhSMWNtNWNJaWtzSUdsYlUzbHRZbTlzTG1sMFpYSmhkRzl5WFNBOUlHWjFibU4wYVc5dUlDZ3BJSHNnY21WMGRYSnVJSFJvYVhNN0lIMHNJR2s3WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUIyWlhKaUtHNHNJR1lwSUhzZ2FWdHVYU0E5SUc5YmJsMGdQeUJtZFc1amRHbHZiaUFvZGlrZ2V5QnlaWFIxY200Z0tIQWdQU0FoY0NrZ1B5QjdJSFpoYkhWbE9pQmZYMkYzWVdsMEtHOWJibDBvZGlrcExDQmtiMjVsT2lCbVlXeHpaU0I5SURvZ1ppQS9JR1lvZGlrZ09pQjJPeUI5SURvZ1pqc2dmVnh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5aGMzbHVZMVpoYkhWbGN5aHZLU0I3WEhKY2JpQWdJQ0JwWmlBb0lWTjViV0p2YkM1aGMzbHVZMGwwWlhKaGRHOXlLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVUzbHRZbTlzTG1GemVXNWpTWFJsY21GMGIzSWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc0Z0lDQWdkbUZ5SUcwZ1BTQnZXMU41YldKdmJDNWhjM2x1WTBsMFpYSmhkRzl5WFN3Z2FUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCdElEOGdiUzVqWVd4c0tHOHBJRG9nS0c4Z1BTQjBlWEJsYjJZZ1gxOTJZV3gxWlhNZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lGOWZkbUZzZFdWektHOHBJRG9nYjF0VGVXMWliMnd1YVhSbGNtRjBiM0pkS0Nrc0lHa2dQU0I3ZlN3Z2RtVnlZaWhjSW01bGVIUmNJaWtzSUhabGNtSW9YQ0owYUhKdmQxd2lLU3dnZG1WeVlpaGNJbkpsZEhWeWJsd2lLU3dnYVZ0VGVXMWliMnd1WVhONWJtTkpkR1Z5WVhSdmNsMGdQU0JtZFc1amRHbHZiaUFvS1NCN0lISmxkSFZ5YmlCMGFHbHpPeUI5TENCcEtUdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlIWmxjbUlvYmlrZ2V5QnBXMjVkSUQwZ2IxdHVYU0FtSmlCbWRXNWpkR2x2YmlBb2Rpa2dleUJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWm5WdVkzUnBiMjRnS0hKbGMyOXNkbVVzSUhKbGFtVmpkQ2tnZXlCMklEMGdiMXR1WFNoMktTd2djMlYwZEd4bEtISmxjMjlzZG1Vc0lISmxhbVZqZEN3Z2RpNWtiMjVsTENCMkxuWmhiSFZsS1RzZ2ZTazdJSDA3SUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhObGRIUnNaU2h5WlhOdmJIWmxMQ0J5WldwbFkzUXNJR1FzSUhZcElIc2dVSEp2YldselpTNXlaWE52YkhabEtIWXBMblJvWlc0b1puVnVZM1JwYjI0b2Rpa2dleUJ5WlhOdmJIWmxLSHNnZG1Gc2RXVTZJSFlzSUdSdmJtVTZJR1FnZlNrN0lIMHNJSEpsYW1WamRDazdJSDFjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmJXRnJaVlJsYlhCc1lYUmxUMkpxWldOMEtHTnZiMnRsWkN3Z2NtRjNLU0I3WEhKY2JpQWdJQ0JwWmlBb1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLU0I3SUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGpiMjlyWldRc0lGd2ljbUYzWENJc0lIc2dkbUZzZFdVNklISmhkeUI5S1RzZ2ZTQmxiSE5sSUhzZ1kyOXZhMlZrTG5KaGR5QTlJSEpoZHpzZ2ZWeHlYRzRnSUNBZ2NtVjBkWEp1SUdOdmIydGxaRHRjY2x4dWZUdGNjbHh1WEhKY2JuWmhjaUJmWDNObGRFMXZaSFZzWlVSbFptRjFiSFFnUFNCUFltcGxZM1F1WTNKbFlYUmxJRDhnS0daMWJtTjBhVzl1S0c4c0lIWXBJSHRjY2x4dUlDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNodkxDQmNJbVJsWm1GMWJIUmNJaXdnZXlCbGJuVnRaWEpoWW14bE9pQjBjblZsTENCMllXeDFaVG9nZGlCOUtUdGNjbHh1ZlNrZ09pQm1kVzVqZEdsdmJpaHZMQ0IyS1NCN1hISmNiaUFnSUNCdlcxd2laR1ZtWVhWc2RGd2lYU0E5SUhZN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTlwYlhCdmNuUlRkR0Z5S0cxdlpDa2dlMXh5WEc0Z0lDQWdhV1lnS0cxdlpDQW1KaUJ0YjJRdVgxOWxjMDF2WkhWc1pTa2djbVYwZFhKdUlHMXZaRHRjY2x4dUlDQWdJSFpoY2lCeVpYTjFiSFFnUFNCN2ZUdGNjbHh1SUNBZ0lHbG1JQ2h0YjJRZ0lUMGdiblZzYkNrZ1ptOXlJQ2gyWVhJZ2F5QnBiaUJ0YjJRcElHbG1JQ2hySUNFOVBTQmNJbVJsWm1GMWJIUmNJaUFtSmlCUFltcGxZM1F1Y0hKdmRHOTBlWEJsTG1oaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2JXOWtMQ0JyS1NrZ1gxOWpjbVZoZEdWQ2FXNWthVzVuS0hKbGMzVnNkQ3dnYlc5a0xDQnJLVHRjY2x4dUlDQWdJRjlmYzJWMFRXOWtkV3hsUkdWbVlYVnNkQ2h5WlhOMWJIUXNJRzF2WkNrN1hISmNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5cGJYQnZjblJFWldaaGRXeDBLRzF2WkNrZ2UxeHlYRzRnSUNBZ2NtVjBkWEp1SUNodGIyUWdKaVlnYlc5a0xsOWZaWE5OYjJSMWJHVXBJRDhnYlc5a0lEb2dleUJrWldaaGRXeDBPaUJ0YjJRZ2ZUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWTJ4aGMzTlFjbWwyWVhSbFJtbGxiR1JIWlhRb2NtVmpaV2wyWlhJc0lITjBZWFJsTENCcmFXNWtMQ0JtS1NCN1hISmNiaUFnSUNCcFppQW9hMmx1WkNBOVBUMGdYQ0poWENJZ0ppWWdJV1lwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSlFjbWwyWVhSbElHRmpZMlZ6YzI5eUlIZGhjeUJrWldacGJtVmtJSGRwZEdodmRYUWdZU0JuWlhSMFpYSmNJaWs3WEhKY2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhOMFlYUmxJRDA5UFNCY0ltWjFibU4wYVc5dVhDSWdQeUJ5WldObGFYWmxjaUFoUFQwZ2MzUmhkR1VnZkh3Z0lXWWdPaUFoYzNSaGRHVXVhR0Z6S0hKbFkyVnBkbVZ5S1NrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJa05oYm01dmRDQnlaV0ZrSUhCeWFYWmhkR1VnYldWdFltVnlJR1p5YjIwZ1lXNGdiMkpxWldOMElIZG9iM05sSUdOc1lYTnpJR1JwWkNCdWIzUWdaR1ZqYkdGeVpTQnBkRndpS1R0Y2NseHVJQ0FnSUhKbGRIVnliaUJyYVc1a0lEMDlQU0JjSW0xY0lpQS9JR1lnT2lCcmFXNWtJRDA5UFNCY0ltRmNJaUEvSUdZdVkyRnNiQ2h5WldObGFYWmxjaWtnT2lCbUlEOGdaaTUyWVd4MVpTQTZJSE4wWVhSbExtZGxkQ2h5WldObGFYWmxjaWs3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyTnNZWE56VUhKcGRtRjBaVVpwWld4a1UyVjBLSEpsWTJWcGRtVnlMQ0J6ZEdGMFpTd2dkbUZzZFdVc0lHdHBibVFzSUdZcElIdGNjbHh1SUNBZ0lHbG1JQ2hyYVc1a0lEMDlQU0JjSW0xY0lpa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxCeWFYWmhkR1VnYldWMGFHOWtJR2x6SUc1dmRDQjNjbWwwWVdKc1pWd2lLVHRjY2x4dUlDQWdJR2xtSUNocmFXNWtJRDA5UFNCY0ltRmNJaUFtSmlBaFppa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxCeWFYWmhkR1VnWVdOalpYTnpiM0lnZDJGeklHUmxabWx1WldRZ2QybDBhRzkxZENCaElITmxkSFJsY2x3aUtUdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdjM1JoZEdVZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lISmxZMlZwZG1WeUlDRTlQU0J6ZEdGMFpTQjhmQ0FoWmlBNklDRnpkR0YwWlM1b1lYTW9jbVZqWldsMlpYSXBLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVEyRnVibTkwSUhkeWFYUmxJSEJ5YVhaaGRHVWdiV1Z0WW1WeUlIUnZJR0Z1SUc5aWFtVmpkQ0IzYUc5elpTQmpiR0Z6Y3lCa2FXUWdibTkwSUdSbFkyeGhjbVVnYVhSY0lpazdYSEpjYmlBZ0lDQnlaWFIxY200Z0tHdHBibVFnUFQwOUlGd2lZVndpSUQ4Z1ppNWpZV3hzS0hKbFkyVnBkbVZ5TENCMllXeDFaU2tnT2lCbUlEOGdaaTUyWVd4MVpTQTlJSFpoYkhWbElEb2djM1JoZEdVdWMyVjBLSEpsWTJWcGRtVnlMQ0IyWVd4MVpTa3BMQ0IyWVd4MVpUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWTJ4aGMzTlFjbWwyWVhSbFJtbGxiR1JKYmloemRHRjBaU3dnY21WalpXbDJaWElwSUh0Y2NseHVJQ0FnSUdsbUlDaHlaV05sYVhabGNpQTlQVDBnYm5Wc2JDQjhmQ0FvZEhsd1pXOW1JSEpsWTJWcGRtVnlJQ0U5UFNCY0ltOWlhbVZqZEZ3aUlDWW1JSFI1Y0dWdlppQnlaV05sYVhabGNpQWhQVDBnWENKbWRXNWpkR2x2Ymx3aUtTa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtOaGJtNXZkQ0IxYzJVZ0oybHVKeUJ2Y0dWeVlYUnZjaUJ2YmlCdWIyNHRiMkpxWldOMFhDSXBPMXh5WEc0Z0lDQWdjbVYwZFhKdUlIUjVjR1Z2WmlCemRHRjBaU0E5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJRDhnY21WalpXbDJaWElnUFQwOUlITjBZWFJsSURvZ2MzUmhkR1V1YUdGektISmxZMlZwZG1WeUtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWVdSa1JHbHpjRzl6WVdKc1pWSmxjMjkxY21ObEtHVnVkaXdnZG1Gc2RXVXNJR0Z6ZVc1aktTQjdYSEpjYmlBZ0lDQnBaaUFvZG1Gc2RXVWdJVDA5SUc1MWJHd2dKaVlnZG1Gc2RXVWdJVDA5SUhadmFXUWdNQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdVZ0lUMDlJRndpYjJKcVpXTjBYQ0lnSmlZZ2RIbHdaVzltSUhaaGJIVmxJQ0U5UFNCY0ltWjFibU4wYVc5dVhDSXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKUFltcGxZM1FnWlhod1pXTjBaV1F1WENJcE8xeHlYRzRnSUNBZ0lDQWdJSFpoY2lCa2FYTndiM05sTzF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoYzNsdVl5a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVZONWJXSnZiQzVoYzNsdVkwUnBjM0J2YzJVcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pUZVcxaWIyd3VZWE41Ym1ORWFYTndiM05sSUdseklHNXZkQ0JrWldacGJtVmtMbHdpS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWkdsemNHOXpaU0E5SUhaaGJIVmxXMU41YldKdmJDNWhjM2x1WTBScGMzQnZjMlZkTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JwWmlBb1pHbHpjRzl6WlNBOVBUMGdkbTlwWkNBd0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doVTNsdFltOXNMbVJwYzNCdmMyVXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKVGVXMWliMnd1WkdsemNHOXpaU0JwY3lCdWIzUWdaR1ZtYVc1bFpDNWNJaWs3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1JwYzNCdmMyVWdQU0IyWVd4MVpWdFRlVzFpYjJ3dVpHbHpjRzl6WlYwN1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1pHbHpjRzl6WlNBaFBUMGdYQ0ptZFc1amRHbHZibHdpS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lUMkpxWldOMElHNXZkQ0JrYVhOd2IzTmhZbXhsTGx3aUtUdGNjbHh1SUNBZ0lDQWdJQ0JsYm5ZdWMzUmhZMnN1Y0hWemFDaDdJSFpoYkhWbE9pQjJZV3gxWlN3Z1pHbHpjRzl6WlRvZ1pHbHpjRzl6WlN3Z1lYTjVibU02SUdGemVXNWpJSDBwTzF4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnWld4elpTQnBaaUFvWVhONWJtTXBJSHRjY2x4dUlDQWdJQ0FnSUNCbGJuWXVjM1JoWTJzdWNIVnphQ2g3SUdGemVXNWpPaUIwY25WbElIMHBPMXh5WEc0Z0lDQWdmVnh5WEc0Z0lDQWdjbVYwZFhKdUlIWmhiSFZsTzF4eVhHNTlYSEpjYmx4eVhHNTJZWElnWDFOMWNIQnlaWE56WldSRmNuSnZjaUE5SUhSNWNHVnZaaUJUZFhCd2NtVnpjMlZrUlhKeWIzSWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JRk4xY0hCeVpYTnpaV1JGY25KdmNpQTZJR1oxYm1OMGFXOXVJQ2hsY25KdmNpd2djM1Z3Y0hKbGMzTmxaQ3dnYldWemMyRm5aU2tnZTF4eVhHNGdJQ0FnZG1GeUlHVWdQU0J1WlhjZ1JYSnliM0lvYldWemMyRm5aU2s3WEhKY2JpQWdJQ0J5WlhSMWNtNGdaUzV1WVcxbElEMGdYQ0pUZFhCd2NtVnpjMlZrUlhKeWIzSmNJaXdnWlM1bGNuSnZjaUE5SUdWeWNtOXlMQ0JsTG5OMWNIQnlaWE56WldRZ1BTQnpkWEJ3Y21WemMyVmtMQ0JsTzF4eVhHNTlPMXh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZaR2x6Y0c5elpWSmxjMjkxY21ObGN5aGxibllwSUh0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUdaaGFXd29aU2tnZTF4eVhHNGdJQ0FnSUNBZ0lHVnVkaTVsY25KdmNpQTlJR1Z1ZGk1b1lYTkZjbkp2Y2lBL0lHNWxkeUJmVTNWd2NISmxjM05sWkVWeWNtOXlLR1VzSUdWdWRpNWxjbkp2Y2l3Z1hDSkJiaUJsY25KdmNpQjNZWE1nYzNWd2NISmxjM05sWkNCa2RYSnBibWNnWkdsemNHOXpZV3d1WENJcElEb2daVHRjY2x4dUlDQWdJQ0FnSUNCbGJuWXVhR0Z6UlhKeWIzSWdQU0IwY25WbE8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2JtVjRkQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQjNhR2xzWlNBb1pXNTJMbk4wWVdOckxteGxibWQwYUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdjbVZqSUQwZ1pXNTJMbk4wWVdOckxuQnZjQ2dwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0IwY25rZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUhKbFl5NWthWE53YjNObElDWW1JSEpsWXk1a2FYTndiM05sTG1OaGJHd29jbVZqTG5aaGJIVmxLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHlaV011WVhONWJtTXBJSEpsZEhWeWJpQlFjbTl0YVhObExuSmxjMjlzZG1Vb2NtVnpkV3gwS1M1MGFHVnVLRzVsZUhRc0lHWjFibU4wYVc5dUtHVXBJSHNnWm1GcGJDaGxLVHNnY21WMGRYSnVJRzVsZUhRb0tUc2dmU2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMkYwWTJnZ0tHVXBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdaaGFXd29aU2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhV1lnS0dWdWRpNW9ZWE5GY25KdmNpa2dkR2h5YjNjZ1pXNTJMbVZ5Y205eU8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ2NtVjBkWEp1SUc1bGVIUW9LVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdSbFptRjFiSFFnZTF4eVhHNGdJQ0FnWDE5bGVIUmxibVJ6T2lCZlgyVjRkR1Z1WkhNc1hISmNiaUFnSUNCZlgyRnpjMmxuYmpvZ1gxOWhjM05wWjI0c1hISmNiaUFnSUNCZlgzSmxjM1E2SUY5ZmNtVnpkQ3hjY2x4dUlDQWdJRjlmWkdWamIzSmhkR1U2SUY5ZlpHVmpiM0poZEdVc1hISmNiaUFnSUNCZlgzQmhjbUZ0T2lCZlgzQmhjbUZ0TEZ4eVhHNGdJQ0FnWDE5dFpYUmhaR0YwWVRvZ1gxOXRaWFJoWkdGMFlTeGNjbHh1SUNBZ0lGOWZZWGRoYVhSbGNqb2dYMTloZDJGcGRHVnlMRnh5WEc0Z0lDQWdYMTluWlc1bGNtRjBiM0k2SUY5ZloyVnVaWEpoZEc5eUxGeHlYRzRnSUNBZ1gxOWpjbVZoZEdWQ2FXNWthVzVuT2lCZlgyTnlaV0YwWlVKcGJtUnBibWNzWEhKY2JpQWdJQ0JmWDJWNGNHOXlkRk4wWVhJNklGOWZaWGh3YjNKMFUzUmhjaXhjY2x4dUlDQWdJRjlmZG1Gc2RXVnpPaUJmWDNaaGJIVmxjeXhjY2x4dUlDQWdJRjlmY21WaFpEb2dYMTl5WldGa0xGeHlYRzRnSUNBZ1gxOXpjSEpsWVdRNklGOWZjM0J5WldGa0xGeHlYRzRnSUNBZ1gxOXpjSEpsWVdSQmNuSmhlWE02SUY5ZmMzQnlaV0ZrUVhKeVlYbHpMRnh5WEc0Z0lDQWdYMTl6Y0hKbFlXUkJjbkpoZVRvZ1gxOXpjSEpsWVdSQmNuSmhlU3hjY2x4dUlDQWdJRjlmWVhkaGFYUTZJRjlmWVhkaGFYUXNYSEpjYmlBZ0lDQmZYMkZ6ZVc1alIyVnVaWEpoZEc5eU9pQmZYMkZ6ZVc1alIyVnVaWEpoZEc5eUxGeHlYRzRnSUNBZ1gxOWhjM2x1WTBSbGJHVm5ZWFJ2Y2pvZ1gxOWhjM2x1WTBSbGJHVm5ZWFJ2Y2l4Y2NseHVJQ0FnSUY5ZllYTjVibU5XWVd4MVpYTTZJRjlmWVhONWJtTldZV3gxWlhNc1hISmNiaUFnSUNCZlgyMWhhMlZVWlcxd2JHRjBaVTlpYW1WamREb2dYMTl0WVd0bFZHVnRjR3hoZEdWUFltcGxZM1FzWEhKY2JpQWdJQ0JmWDJsdGNHOXlkRk4wWVhJNklGOWZhVzF3YjNKMFUzUmhjaXhjY2x4dUlDQWdJRjlmYVcxd2IzSjBSR1ZtWVhWc2REb2dYMTlwYlhCdmNuUkVaV1poZFd4MExGeHlYRzRnSUNBZ1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFZGxkRG9nWDE5amJHRnpjMUJ5YVhaaGRHVkdhV1ZzWkVkbGRDeGNjbHh1SUNBZ0lGOWZZMnhoYzNOUWNtbDJZWFJsUm1sbGJHUlRaWFE2SUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSVFpYUXNYSEpjYmlBZ0lDQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtTVzQ2SUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSSmJpeGNjbHh1SUNBZ0lGOWZZV1JrUkdsemNHOXpZV0pzWlZKbGMyOTFjbU5sT2lCZlgyRmtaRVJwYzNCdmMyRmliR1ZTWlhOdmRYSmpaU3hjY2x4dUlDQWdJRjlmWkdsemNHOXpaVkpsYzI5MWNtTmxjem9nWDE5a2FYTndiM05sVW1WemIzVnlZMlZ6TEZ4eVhHNTlPMXh5WEc0aUxDSnBiWEJ2Y25RZ2RIbHdaU0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1IweFVSaUI5SUdaeWIyMGdKM1JvY21WbEwyVjRZVzF3YkdWekwycHpiUzlzYjJGa1pYSnpMMGRNVkVaTWIyRmtaWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2dSMHhVUmlCaGN5QkhURlJHVTJOb1pXMWhJSDBnWm5KdmJTQW5RR2RzZEdZdGRISmhibk5tYjNKdEwyTnZjbVVuTzF4dVhHNW1kVzVqZEdsdmJpQmxlSFJ5WVdOMFVISnBiV2wwYVhabGMwbHVkR1Z5Ym1Gc0tHZHNkR1k2SUVkTVZFWXNJRzV2WkdWSmJtUmxlRG9nYm5WdFltVnlMQ0J1YjJSbE9pQlVTRkpGUlM1UFltcGxZM1F6UkNrNklGUklVa1ZGTGsxbGMyaGJYU0I4SUc1MWJHd2dlMXh1SUNCamIyNXpkQ0JxYzI5dUlEMGdaMngwWmk1d1lYSnpaWEl1YW5OdmJpQmhjeUJIVEZSR1UyTm9aVzFoTGtsSFRGUkdPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQk1aWFFuY3lCc2FYTjBJSFZ3SUdWMlpYSjVJSEJ2YzNOcFlteGxJSEJoZEhSbGNtNXpJSFJvWVhRZ2NHRnljMlZrSUdkc2RHWWdibTlrWlhNZ2QybDBhQ0JoSUcxbGMyZ2dZMkZ1SUdoaGRtVXNMQ3hjYmlBZ0lDcGNiaUFnSUNvZ1hDSXFYQ0lnYVc1a2FXTmhkR1Z6SUhSb1lYUWdkR2h2YzJVZ2JXVnphR1Z6SUhOb2IzVnNaQ0JpWlNCc2FYTjBaV1FnZFhBZ2RYTnBibWNnZEdocGN5Qm1kVzVqZEdsdmJseHVJQ0FnS2x4dUlDQWdLaUFqSXlNZ1FTQnViMlJsSUhkcGRHZ2dZU0FvYldWemFDd2dZU0J6YVdkdWJHVWdjSEpwYldsMGFYWmxLVnh1SUNBZ0tseHVJQ0FnS2lBdElHQlVTRkpGUlM1TlpYTm9ZRG9nVkdobElHOXViSGtnY0hKcGJXbDBhWFpsSUc5bUlIUm9aU0J0WlhOb0lDcGNiaUFnSUNwY2JpQWdJQ29nSXlNaklFRWdibTlrWlNCM2FYUm9JR0VnS0cxbGMyZ3NJRzExYkhScGNHeGxJSEJ5YVcxcGRHbDJaWE1wWEc0Z0lDQXFYRzRnSUNBcUlDMGdZRlJJVWtWRkxrZHliM1Z3WURvZ1ZHaGxJSEp2YjNRZ2IyWWdkR2hsSUcxbGMyaGNiaUFnSUNvZ0lDQXRJR0JVU0ZKRlJTNU5aWE5vWURvZ1FTQndjbWx0YVhScGRtVWdiMllnZEdobElHMWxjMmdnS2x4dUlDQWdLaUFnSUMwZ1lGUklVa1ZGTGsxbGMyaGdPaUJCSUhCeWFXMXBkR2wyWlNCdlppQjBhR1VnYldWemFDQW9NaWtnS2x4dUlDQWdLbHh1SUNBZ0tpQWpJeU1nUVNCdWIyUmxJSGRwZEdnZ1lTQW9iV1Z6YUN3Z2JYVnNkR2x3YkdVZ2NISnBiV2wwYVhabGN5a2dRVTVFSUNoaElHTm9hV3hrSUhkcGRHZ2dZU0J0WlhOb0xDQmhJSE5wYm1kc1pTQndjbWx0YVhScGRtVXBYRzRnSUNBcVhHNGdJQ0FxSUMwZ1lGUklVa1ZGTGtkeWIzVndZRG9nVkdobElISnZiM1FnYjJZZ2RHaGxJRzFsYzJoY2JpQWdJQ29nSUNBdElHQlVTRkpGUlM1TlpYTm9ZRG9nUVNCd2NtbHRhWFJwZG1VZ2IyWWdkR2hsSUcxbGMyZ2dLbHh1SUNBZ0tpQWdJQzBnWUZSSVVrVkZMazFsYzJoZ09pQkJJSEJ5YVcxcGRHbDJaU0J2WmlCMGFHVWdiV1Z6YUNBb01pa2dLbHh1SUNBZ0tpQWdJQzBnWUZSSVVrVkZMazFsYzJoZ09pQkJJSEJ5YVcxcGRHbDJaU0J2WmlCaElFMUZVMGdnVDBZZ1ZFaEZJRU5JU1V4RVhHNGdJQ0FxWEc0Z0lDQXFJQ01qSXlCQklHNXZaR1VnZDJsMGFDQmhJQ2h0WlhOb0xDQnRkV3gwYVhCc1pTQndjbWx0YVhScGRtVnpLU0JCVGtRZ0tHRWdZMmhwYkdRZ2QybDBhQ0JoSUcxbGMyZ3NJRzExYkhScGNHeGxJSEJ5YVcxcGRHbDJaWE1wWEc0Z0lDQXFYRzRnSUNBcUlDMGdZRlJJVWtWRkxrZHliM1Z3WURvZ1ZHaGxJSEp2YjNRZ2IyWWdkR2hsSUcxbGMyaGNiaUFnSUNvZ0lDQXRJR0JVU0ZKRlJTNU5aWE5vWURvZ1FTQndjbWx0YVhScGRtVWdiMllnZEdobElHMWxjMmdnS2x4dUlDQWdLaUFnSUMwZ1lGUklVa1ZGTGsxbGMyaGdPaUJCSUhCeWFXMXBkR2wyWlNCdlppQjBhR1VnYldWemFDQW9NaWtnS2x4dUlDQWdLaUFnSUMwZ1lGUklVa1ZGTGtkeWIzVndZRG9nVkdobElISnZiM1FnYjJZZ1lTQk5SVk5JSUU5R0lGUklSU0JEU0VsTVJGeHVJQ0FnS2lBZ0lDQWdMU0JnVkVoU1JVVXVUV1Z6YUdBNklFRWdjSEpwYldsMGFYWmxJRzltSUhSb1pTQnRaWE5vSUc5bUlIUm9aU0JqYUdsc1pGeHVJQ0FnS2lBZ0lDQWdMU0JnVkVoU1JVVXVUV1Z6YUdBNklFRWdjSEpwYldsMGFYWmxJRzltSUhSb1pTQnRaWE5vSUc5bUlIUm9aU0JqYUdsc1pDQW9NaWxjYmlBZ0lDcGNiaUFnSUNvZ0l5TWpJRUVnYm05a1pTQjNhWFJvSUdFZ0tHMWxjMmdzSUcxMWJIUnBjR3hsSUhCeWFXMXBkR2wyWlhNcElFSlZWQ0IwYUdVZ2JtOWtaU0JwY3lCaElHSnZibVZjYmlBZ0lDcGNiaUFnSUNvZ0xTQmdWRWhTUlVVdVFtOXVaV0E2SUZSb1pTQnliMjkwSUc5bUlIUm9aU0J1YjJSbExDQmhjeUJoSUdKdmJtVmNiaUFnSUNvZ0lDQXRJR0JVU0ZKRlJTNUhjbTkxY0dBNklGUm9aU0J5YjI5MElHOW1JSFJvWlNCdFpYTm9YRzRnSUNBcUlDQWdJQ0F0SUdCVVNGSkZSUzVOWlhOb1lEb2dRU0J3Y21sdGFYUnBkbVVnYjJZZ2RHaGxJRzFsYzJnZ0tseHVJQ0FnS2lBZ0lDQWdMU0JnVkVoU1JVVXVUV1Z6YUdBNklFRWdjSEpwYldsMGFYWmxJRzltSUhSb1pTQnRaWE5vSUNneUtTQXFYRzRnSUNBcVhHNGdJQ0FxSUNNakl5QkJJRzV2WkdVZ2QybDBhQ0JoSUNodFpYTm9MQ0J0ZFd4MGFYQnNaU0J3Y21sdGFYUnBkbVZ6S1NCQlRrUWdLR0VnWTJocGJHUWdkMmwwYUNCaElHMWxjMmdzSUcxMWJIUnBjR3hsSUhCeWFXMXBkR2wyWlhNcElFSlZWQ0IwYUdVZ2JtOWtaU0JwY3lCaElHSnZibVZjYmlBZ0lDcGNiaUFnSUNvZ0xTQmdWRWhTUlVVdVFtOXVaV0E2SUZSb1pTQnliMjkwSUc5bUlIUm9aU0J1YjJSbExDQmhjeUJoSUdKdmJtVmNiaUFnSUNvZ0lDQXRJR0JVU0ZKRlJTNUhjbTkxY0dBNklGUm9aU0J5YjI5MElHOW1JSFJvWlNCdFpYTm9YRzRnSUNBcUlDQWdJQ0F0SUdCVVNGSkZSUzVOWlhOb1lEb2dRU0J3Y21sdGFYUnBkbVVnYjJZZ2RHaGxJRzFsYzJnZ0tseHVJQ0FnS2lBZ0lDQWdMU0JnVkVoU1JVVXVUV1Z6YUdBNklFRWdjSEpwYldsMGFYWmxJRzltSUhSb1pTQnRaWE5vSUNneUtTQXFYRzRnSUNBcUlDQWdMU0JnVkVoU1JVVXVSM0p2ZFhCZ09pQlVhR1VnY205dmRDQnZaaUJoSUUxRlUwZ2dUMFlnVkVoRklFTklTVXhFWEc0Z0lDQXFJQ0FnSUNBdElHQlVTRkpGUlM1TlpYTm9ZRG9nUVNCd2NtbHRhWFJwZG1VZ2IyWWdkR2hsSUcxbGMyZ2diMllnZEdobElHTm9hV3hrWEc0Z0lDQXFJQ0FnSUNBdElHQlVTRkpGUlM1TlpYTm9ZRG9nUVNCd2NtbHRhWFJwZG1VZ2IyWWdkR2hsSUcxbGMyZ2diMllnZEdobElHTm9hV3hrSUNneUtWeHVJQ0FnS2x4dUlDQWdLaUF1TGk1SklIZHBiR3dnZEdGclpTQmhJSE4wY21GMFpXZDVJSFJvWVhRZ2RISmhkbVZ5YzJWeklIUm9aU0J5YjI5MElHOW1JSFJvWlNCdWIyUmxJR0Z1WkNCMFlXdGxJR1pwY25OMElDaHdjbWx0YVhScGRtVkRiM1Z1ZENrZ2JXVnphR1Z6TGx4dUlDQWdLaTljYmx4dUlDQXZMeUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnYm05a1pTQm9ZWE1nWVNCdFpYTm9YRzRnSUdOdmJuTjBJSE5qYUdWdFlVNXZaR1VnUFNCcWMyOXVMbTV2WkdWelB5NWJibTlrWlVsdVpHVjRYVHRjYmlBZ2FXWWdLSE5qYUdWdFlVNXZaR1VnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJR052Ym5OdmJHVXVkMkZ5YmloZ1pYaDBjbUZqZEZCeWFXMXBkR2wyWlhOSmJuUmxjbTVoYkRvZ1FYUjBaVzF3ZENCMGJ5QjFjMlVnYm05a1pYTmJKSHR1YjJSbFNXNWtaWGg5WFNCdlppQm5iRlJHSUdKMWRDQjBhR1VnYm05a1pTQmtiMlZ6YmlkMElHVjRhWE4wWUNrN1hHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQmpiMjV6ZENCdFpYTm9TVzVrWlhnZ1BTQnpZMmhsYldGT2IyUmxMbTFsYzJnN1hHNGdJR2xtSUNodFpYTm9TVzVrWlhnZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdMeThnU0c5M0lHMWhibmtnY0hKcGJXbDBhWFpsY3lCMGFHVWdiV1Z6YUNCb1lYTS9YRzRnSUdOdmJuTjBJSE5qYUdWdFlVMWxjMmdnUFNCcWMyOXVMbTFsYzJobGN6OHVXMjFsYzJoSmJtUmxlRjA3WEc0Z0lHbG1JQ2h6WTJobGJXRk5aWE5vSUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0JqYjI1emIyeGxMbmRoY200b1lHVjRkSEpoWTNSUWNtbHRhWFJwZG1WelNXNTBaWEp1WVd3NklFRjBkR1Z0Y0hRZ2RHOGdkWE5sSUcxbGMyaGxjMXNrZTIxbGMyaEpibVJsZUgxZElHOW1JR2RzVkVZZ1luVjBJSFJvWlNCdFpYTm9JR1J2WlhOdUozUWdaWGhwYzNSZ0tUdGNiaUFnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJR052Ym5OMElIQnlhVzFwZEdsMlpVTnZkVzUwSUQwZ2MyTm9aVzFoVFdWemFDNXdjbWx0YVhScGRtVnpMbXhsYm1kMGFEdGNibHh1SUNBdkx5QlVjbUYyWlhKelpTQjBhR1VnYm05a1pTQmhibVFnZEdGclpTQm1hWEp6ZENBb2NISnBiV2wwYVhabFEyOTFiblFwSUcxbGMyaGxjMXh1SUNCamIyNXpkQ0J3Y21sdGFYUnBkbVZ6T2lCVVNGSkZSUzVOWlhOb1cxMGdQU0JiWFR0Y2JpQWdibTlrWlM1MGNtRjJaWEp6WlNnb2IySnFaV04wS1NBOVBpQjdYRzRnSUNBZ2FXWWdLSEJ5YVcxcGRHbDJaWE11YkdWdVozUm9JRHdnY0hKcGJXbDBhWFpsUTI5MWJuUXBJSHRjYmlBZ0lDQWdJR2xtSUNnb2IySnFaV04wSUdGeklHRnVlU2t1YVhOTlpYTm9LU0I3WEc0Z0lDQWdJQ0FnSUhCeWFXMXBkR2wyWlhNdWNIVnphQ2h2WW1wbFkzUWdZWE1nVkVoU1JVVXVUV1Z6YUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlLVHRjYmx4dUlDQnlaWFIxY200Z2NISnBiV2wwYVhabGN6dGNibjFjYmx4dUx5b3FYRzRnS2lCRmVIUnlZV04wSUhCeWFXMXBkR2wyWlhNZ0tDQmdWRWhTUlVVdVRXVnphRnRkWUNBcElHOW1JR0VnYm05a1pTQm1jbTl0SUdFZ2JHOWhaR1ZrSUVkTVZFWXVYRzRnS2lCVWFHVWdiV0ZwYmlCd2RYSndiM05sSUc5bUlIUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ2RHOGdaR2x6ZEdsdVozVnBjMmdnY0hKcGJXbDBhWFpsY3lCaGJtUWdZMmhwYkdSeVpXNGdabkp2YlNCaElHNXZaR1VnZEdoaGRDQm9ZWE1nWW05MGFDQnRaWE5vWlhNZ1lXNWtJR05vYVd4a2NtVnVMbHh1SUNwY2JpQXFJRWwwSUhWMGFXeHBlbVZ6SUhSb1pTQmlaV2hoZG1sdmNpQjBhR0YwSUVkTVZFWk1iMkZrWlhJZ1lXUmtjeUJ0WlhOb0lIQnlhVzFwZEdsMlpYTWdkRzhnZEdobElHNXZaR1VnYjJKcVpXTjBJQ2dnWUZSSVVrVkZMa2R5YjNWd1lDQXBJR1pwY25OMElIUm9aVzRnWVdSa2N5QnBkSE1nWTJocGJHUnlaVzR1WEc0Z0tseHVJQ29nUUhCaGNtRnRJR2RzZEdZZ1FTQkhURlJHSUc5aWFtVmpkQ0IwWVd0bGJpQm1jbTl0SUVkTVZFWk1iMkZrWlhKY2JpQXFJRUJ3WVhKaGJTQnViMlJsU1c1a1pYZ2dWR2hsSUdsdVpHVjRJRzltSUhSb1pTQnViMlJsWEc0Z0tpOWNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCbmJIUm1SWGgwY21GamRGQnlhVzFwZEdsMlpYTkdjbTl0VG05a1pTaG5iSFJtT2lCSFRGUkdMQ0J1YjJSbFNXNWtaWGc2SUc1MWJXSmxjaWs2SUZCeWIyMXBjMlU4VkVoU1JVVXVUV1Z6YUZ0ZElId2diblZzYkQ0Z2UxeHVJQ0JqYjI1emRDQnViMlJsT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ0E5SUdGM1lXbDBJR2RzZEdZdWNHRnljMlZ5TG1kbGRFUmxjR1Z1WkdWdVkza29KMjV2WkdVbkxDQnViMlJsU1c1a1pYZ3BPMXh1SUNCeVpYUjFjbTRnWlhoMGNtRmpkRkJ5YVcxcGRHbDJaWE5KYm5SbGNtNWhiQ2huYkhSbUxDQnViMlJsU1c1a1pYZ3NJRzV2WkdVcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVWNGRISmhZM1FnY0hKcGJXbDBhWFpsY3lBb0lHQlVTRkpGUlM1TlpYTm9XMTFnSUNrZ2IyWWdibTlrWlhNZ1puSnZiU0JoSUd4dllXUmxaQ0JIVEZSR0xseHVJQ29nVTJWbElIdEFiR2x1YXlCbmJIUm1SWGgwY21GamRGQnlhVzFwZEdsMlpYTkdjbTl0VG05a1pYMGdabTl5SUcxdmNtVWdaR1YwWVdsc2N5NWNiaUFxWEc0Z0tpQkpkQ0J5WlhSMWNtNXpJR0VnYldGd0lHWnliMjBnYm05a1pTQnBibVJsZUNCMGJ5QmxlSFJ5WVdOMGFXOXVJSEpsYzNWc2RDNWNiaUFxSUVsbUlHRWdibTlrWlNCa2IyVnpJRzV2ZENCb1lYWmxJR0VnYldWemFDd2dkR2hsSUdWdWRISjVJR1p2Y2lCMGFHVWdibTlrWlNCM2FXeHNJRzV2ZENCaVpTQndkWFFnYVc0Z2RHaGxJSEpsZEhWeWJtbHVaeUJ0WVhBdVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUdkc2RHWWdRU0JIVEZSR0lHOWlhbVZqZENCMFlXdGxiaUJtY205dElFZE1WRVpNYjJGa1pYSmNiaUFxTDF4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJR2RzZEdaRmVIUnlZV04wVUhKcGJXbDBhWFpsYzBaeWIyMU9iMlJsY3lobmJIUm1PaUJIVEZSR0tUb2dVSEp2YldselpUeE5ZWEE4Ym5WdFltVnlMQ0JVU0ZKRlJTNU5aWE5vVzEwK1BpQjdYRzRnSUdOdmJuTjBJRzV2WkdWek9pQlVTRkpGUlM1UFltcGxZM1F6UkZ0ZElEMGdZWGRoYVhRZ1oyeDBaaTV3WVhKelpYSXVaMlYwUkdWd1pXNWtaVzVqYVdWektDZHViMlJsSnlrN1hHNGdJR052Ym5OMElHMWhjQ0E5SUc1bGR5Qk5ZWEE4Ym5WdFltVnlMQ0JVU0ZKRlJTNU5aWE5vVzEwK0tDazdYRzVjYmlBZ2JtOWtaWE11Wm05eVJXRmphQ2dvYm05a1pTd2dhVzVrWlhncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCbGVIUnlZV04wVUhKcGJXbDBhWFpsYzBsdWRHVnlibUZzS0dkc2RHWXNJR2x1WkdWNExDQnViMlJsS1R0Y2JpQWdJQ0JwWmlBb2NtVnpkV3gwSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUcxaGNDNXpaWFFvYVc1a1pYZ3NJSEpsYzNWc2RDazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JseHVJQ0J5WlhSMWNtNGdiV0Z3TzF4dWZWeHVJaXdpYVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIc2dSMHhVUmxCaGNuTmxjaUI5SUdaeWIyMGdKM1JvY21WbEwyVjRZVzF3YkdWekwycHpiUzlzYjJGa1pYSnpMMGRNVkVaTWIyRmtaWEl1YW5Nbk8xeHVYRzR2S2lwY2JpQXFJRWRsZENCaElHMWhkR1Z5YVdGc0lHUmxabWx1YVhScGIyNGdhVzVrWlhnZ2IyWWdaMnhVUmlCbWNtOXRJR0Z6YzI5amFXRjBaV1FnYldGMFpYSnBZV3d1WEc0Z0tpQkpkQ2R6SUdKaGMybGpZV3hzZVNCaElHTnZiV0YwSUdOdlpHVWdZbVYwZDJWbGJpQlVhSEpsWlM1cWN5QnlNVE16SUc5eUlHRmliM1psSUdGdVpDQndjbVYyYVc5MWN5QjJaWEp6YVc5dWN5NWNiaUFxSUVCd1lYSmhiU0J3WVhKelpYSWdSMHhVUmxCaGNuTmxjbHh1SUNvZ1FIQmhjbUZ0SUcxaGRHVnlhV0ZzSUVFZ2JXRjBaWEpwWVd3Z2IyWWdaMngwWmx4dUlDb2dRSEpsZEhWeWJuTWdUV0YwWlhKcFlXd2daR1ZtYVc1cGRHbHZiaUJwYm1SbGVDQnZaaUJuYkZSR1hHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuYkhSbVIyVjBRWE56YjJOcFlYUmxaRTFoZEdWeWFXRnNTVzVrWlhnb2NHRnljMlZ5T2lCSFRGUkdVR0Z5YzJWeUxDQnRZWFJsY21saGJEb2dWRWhTUlVVdVRXRjBaWEpwWVd3cE9pQnVkVzFpWlhJZ2ZDQnVkV3hzSUh0Y2JpQWdZMjl1YzNRZ2RHaHlaV1ZTWlhacGMybHZiaUE5SUhCaGNuTmxTVzUwS0ZSSVVrVkZMbEpGVmtsVFNVOU9MQ0F4TUNrN1hHNWNiaUFnYkdWMElHbHVaR1Y0T2lCdWRXMWlaWElnZkNCdWRXeHNJRDBnYm5Wc2JEdGNibHh1SUNCcFppQW9kR2h5WldWU1pYWnBjMmx2YmlBK1BTQXhNek1wSUh0Y2JpQWdJQ0JwYm1SbGVDQTlJSEJoY25ObGNpNWhjM052WTJsaGRHbHZibk11WjJWMEtHMWhkR1Z5YVdGc0tUOHViV0YwWlhKcFlXeHpJRDgvSUc1MWJHdzdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdMeThnUTA5TlVFRlVPaUJ6ZEhKMVkzUjFjbVVnYjJZZ1lIQmhjbk5sY2k1aGMzTnZZMmxoZEdsdmJuTmdJR2hoY3lCaVpXVnVJR05vWVc1blpXUWdRQ0J5TVRNelhHNGdJQ0FnTHk4Z1UyVmxPaUJvZEhSd2N6b3ZMMmRwZEdoMVlpNWpiMjB2YlhKa2IyOWlMM1JvY21WbExtcHpMM0IxYkd3dk1qRTNNemRjYmlBZ0lDQXZMeUJTWldZNklHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTBhSEpsWlMxMGVYQmxjeTkwYUhKbFpTMTBjeTEwZVhCbGN5OWpiMjF0YVhRdk5USTBOalkzTm1VME56bGlOakZoT1dabU1tUmlOekZrWmpReE1UbG1ObVl4TkRZeU5UZ3daRnh1SUNBZ0lIUjVjR1VnUjB4VVJsSmxabVZ5Wlc1alpWQnlaVEV6TXlBOUlIdGNiaUFnSUNBZ0lIUjVjR1U2SUNkdFlYUmxjbWxoYkhNbklId2dKMjV2WkdWekp5QjhJQ2QwWlhoMGRYSmxjeWNnZkNBbmJXVnphR1Z6Snp0Y2JpQWdJQ0FnSUdsdVpHVjRPaUJ1ZFcxaVpYSTdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lIUjVjR1VnUjB4VVJrRnpjMjlqYVdGMGFXOXVjMUJ5WlRFek15QTlJRTFoY0R4VVNGSkZSUzVQWW1wbFkzUXpSQ0I4SUZSSVVrVkZMazFoZEdWeWFXRnNJSHdnVkVoU1JVVXVWR1Y0ZEhWeVpTd2dSMHhVUmxKbFptVnlaVzVqWlZCeVpURXpNejQ3WEc1Y2JpQWdJQ0JqYjI1emRDQmhjM052WTJsaGRHbHZibk1nUFNCd1lYSnpaWEl1WVhOemIyTnBZWFJwYjI1eklHRnpJRWRNVkVaQmMzTnZZMmxoZEdsdmJuTlFjbVV4TXpNN1hHNWNiaUFnSUNCamIyNXpkQ0J5WldabGNtVnVZMlVnUFNCaGMzTnZZMmxoZEdsdmJuTXVaMlYwS0cxaGRHVnlhV0ZzS1R0Y2JseHVJQ0FnSUdsbUlDaHlaV1psY21WdVkyVS9MblI1Y0dVZ1BUMDlJQ2R0WVhSbGNtbGhiSE1uS1NCN1hHNGdJQ0FnSUNCcGJtUmxlQ0E5SUhKbFptVnlaVzVqWlM1cGJtUmxlRHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdhVzVrWlhnN1hHNTlYRzRpTENJdktpQmxjMnhwYm5RdFpHbHpZV0pzWlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtRnRhVzVuTFdOdmJuWmxiblJwYjI0Z0tpOWNibHh1Wlhod2IzSjBJR052Ym5OMElGWlNUVVY0Y0hKbGMzTnBiMjVRY21WelpYUk9ZVzFsSUQwZ2UxeHVJQ0JCWVRvZ0oyRmhKeXhjYmlBZ1NXZzZJQ2RwYUNjc1hHNGdJRTkxT2lBbmIzVW5MRnh1SUNCRlpUb2dKMlZsSnl4Y2JpQWdUMmc2SUNkdmFDY3NYRzRnSUVKc2FXNXJPaUFuWW14cGJtc25MRnh1SUNCSVlYQndlVG9nSjJoaGNIQjVKeXhjYmlBZ1FXNW5jbms2SUNkaGJtZHllU2NzWEc0Z0lGTmhaRG9nSjNOaFpDY3NYRzRnSUZKbGJHRjRaV1E2SUNkeVpXeGhlR1ZrSnl4Y2JpQWdURzl2YTFWd09pQW5iRzl2YTFWd0p5eGNiaUFnVTNWeWNISnBjMlZrT2lBbmMzVnljSEpwYzJWa0p5eGNiaUFnVEc5dmEwUnZkMjQ2SUNkc2IyOXJSRzkzYmljc1hHNGdJRXh2YjJ0TVpXWjBPaUFuYkc5dmEweGxablFuTEZ4dUlDQk1iMjlyVW1sbmFIUTZJQ2RzYjI5clVtbG5hSFFuTEZ4dUlDQkNiR2x1YTB4bFpuUTZJQ2RpYkdsdWEweGxablFuTEZ4dUlDQkNiR2x1YTFKcFoyaDBPaUFuWW14cGJtdFNhV2RvZENjc1hHNGdJRTVsZFhSeVlXdzZJQ2R1WlhWMGNtRnNKeXhjYm4wZ1lYTWdZMjl1YzNRN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZaU1RVVjRjSEpsYzNOcGIyNVFjbVZ6WlhST1lXMWxJRDBnZEhsd1pXOW1JRlpTVFVWNGNISmxjM05wYjI1UWNtVnpaWFJPWVcxbFcydGxlVzltSUhSNWNHVnZaaUJXVWsxRmVIQnlaWE56YVc5dVVISmxjMlYwVG1GdFpWMDdYRzRpTENJdktpcGNiaUFxSUVOc1lXMXdJSFJvWlNCcGJuQjFkQ0IyWVd4MVpTQjNhWFJvYVc0Z1d6QXVNQ0F0SURFdU1GMHVYRzRnS2x4dUlDb2dRSEJoY21GdElIWmhiSFZsSUZSb1pTQnBibkIxZENCMllXeDFaVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MyRjBkWEpoZEdVb2RtRnNkV1U2SUc1MWJXSmxjaWs2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9MbTFoZUNoTllYUm9MbTFwYmloMllXeDFaU3dnTVM0d0tTd2dNQzR3S1R0Y2JuMWNiaUlzSW1sdGNHOXlkQ0I3SUZaU1RVVjRjSEpsYzNOcGIyNVFjbVZ6WlhST1lXMWxJSDBnWm5KdmJTQW5MaTlXVWsxRmVIQnlaWE56YVc5dVVISmxjMlYwVG1GdFpTYzdYRzVwYlhCdmNuUWdleUJ6WVhSMWNtRjBaU0I5SUdaeWIyMGdKeTR1TDNWMGFXeHpMM05oZEhWeVlYUmxKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dWbEpOUlhod2NtVnpjMmx2YmlCOUlHWnliMjBnSnk0dlZsSk5SWGh3Y21WemMybHZiaWM3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxRmVIQnlaWE56YVc5dVRXRnVZV2RsY2lCN1hHNGdJQzhxS2x4dUlDQWdLaUJCSUhObGRDQnZaaUJ1WVcxbElHOXlJSEJ5WlhObGRDQnVZVzFsSUc5bUlHVjRjSEpsYzNOcGIyNXpJSFJvWVhRZ2QybHNiQ0JpWlNCdmRtVnljbWxrWkdWdUlHSjVJSHRBYkdsdWF5QldVazFGZUhCeVpYTnphVzl1TG05MlpYSnlhV1JsUW14cGJtdDlMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR0pzYVc1clJYaHdjbVZ6YzJsdmJrNWhiV1Z6SUQwZ1d5ZGliR2x1YXljc0lDZGliR2x1YTB4bFpuUW5MQ0FuWW14cGJtdFNhV2RvZENkZE8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklITmxkQ0J2WmlCdVlXMWxJRzl5SUhCeVpYTmxkQ0J1WVcxbElHOW1JR1Y0Y0hKbGMzTnBiMjV6SUhSb1lYUWdkMmxzYkNCaVpTQnZkbVZ5Y21sa1pHVnVJR0o1SUh0QWJHbHVheUJXVWsxRmVIQnlaWE56YVc5dUxtOTJaWEp5YVdSbFRHOXZhMEYwZlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCc2IyOXJRWFJGZUhCeVpYTnphVzl1VG1GdFpYTWdQU0JiSjJ4dmIydE1aV1owSnl3Z0oyeHZiMnRTYVdkb2RDY3NJQ2RzYjI5clZYQW5MQ0FuYkc5dmEwUnZkMjRuWFR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCelpYUWdiMllnYm1GdFpTQnZjaUJ3Y21WelpYUWdibUZ0WlNCdlppQmxlSEJ5WlhOemFXOXVjeUIwYUdGMElIZHBiR3dnWW1VZ2IzWmxjbkpwWkdSbGJpQmllU0I3UUd4cGJtc2dWbEpOUlhod2NtVnpjMmx2Ymk1dmRtVnljbWxrWlUxdmRYUm9mUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ0YjNWMGFFVjRjSEpsYzNOcGIyNU9ZVzFsY3lBOUlGc25ZV0VuTENBblpXVW5MQ0FuYVdnbkxDQW5iMmduTENBbmIzVW5YVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0J6WlhRZ2IyWWdlMEJzYVc1cklGWlNUVVY0Y0hKbGMzTnBiMjU5TGx4dUlDQWdLaUJYYUdWdUlIbHZkU0IzWVc1MElIUnZJSEpsWjJsemRHVnlJR1Y0Y0hKbGMzTnBiMjV6TENCMWMyVWdlMEJzYVc1cklISmxaMmx6ZEdWeVJYaHdjbVZ6YzJsdmJuMWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdYMlY0Y0hKbGMzTnBiMjV6T2lCV1VrMUZlSEJ5WlhOemFXOXVXMTBnUFNCYlhUdGNiaUFnY0hWaWJHbGpJR2RsZENCbGVIQnlaWE56YVc5dWN5Z3BPaUJXVWsxRmVIQnlaWE56YVc5dVcxMGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDlsZUhCeVpYTnphVzl1Y3k1amIyNWpZWFFvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJRzFoY0NCbWNtOXRJRzVoYldVZ2RHOGdaWGh3Y21WemMybHZiaTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJWNGNISmxjM05wYjI1TllYQTZJSHNnVzI1aGJXVTZJSE4wY21sdVoxMDZJRlpTVFVWNGNISmxjM05wYjI0Z2ZTQTlJSHQ5TzF4dUlDQndkV0pzYVdNZ1oyVjBJR1Y0Y0hKbGMzTnBiMjVOWVhBb0tUb2dleUJiYm1GdFpUb2djM1J5YVc1blhUb2dWbEpOUlhod2NtVnpjMmx2YmlCOUlIdGNiaUFnSUNCeVpYUjFjbTRnVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnZEdocGN5NWZaWGh3Y21WemMybHZiazFoY0NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0J0WVhBZ1puSnZiU0J1WVcxbElIUnZJR1Y0Y0hKbGMzTnBiMjRzSUdKMWRDQmxlR05zZFdScGJtY2dZM1Z6ZEc5dElHVjRjSEpsYzNOcGIyNXpMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZENCd2NtVnpaWFJGZUhCeVpYTnphVzl1VFdGd0tDazZJSHNnVzI1aGJXVWdhVzRnVmxKTlJYaHdjbVZ6YzJsdmJsQnlaWE5sZEU1aGJXVmRQem9nVmxKTlJYaHdjbVZ6YzJsdmJpQjlJSHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFE2SUhzZ1cyNWhiV1VnYVc0Z1ZsSk5SWGh3Y21WemMybHZibEJ5WlhObGRFNWhiV1ZkUHpvZ1ZsSk5SWGh3Y21WemMybHZiaUI5SUQwZ2UzMDdYRzVjYmlBZ0lDQmpiMjV6ZENCd2NtVnpaWFJPWVcxbFUyVjBJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLRTlpYW1WamRDNTJZV3gxWlhNb1ZsSk5SWGh3Y21WemMybHZibEJ5WlhObGRFNWhiV1VwS1R0Y2JseHVJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdVgyVjRjSEpsYzNOcGIyNU5ZWEFwTG1admNrVmhZMmdvS0Z0dVlXMWxMQ0JsZUhCeVpYTnphVzl1WFNrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0hCeVpYTmxkRTVoYldWVFpYUXVhR0Z6S0c1aGJXVXBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGMzVnNkRnR1WVcxbElHRnpJRlpTVFVWNGNISmxjM05wYjI1UWNtVnpaWFJPWVcxbFhTQTlJR1Y0Y0hKbGMzTnBiMjQ3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4ME8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnYldGd0lHWnliMjBnYm1GdFpTQjBieUJsZUhCeVpYTnphVzl1TENCaWRYUWdaWGhqYkhWa2FXNW5JSEJ5WlhObGRDQmxlSEJ5WlhOemFXOXVjeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhRZ1kzVnpkRzl0Ulhod2NtVnpjMmx2YmsxaGNDZ3BPaUI3SUZ0dVlXMWxPaUJ6ZEhKcGJtZGRPaUJXVWsxRmVIQnlaWE56YVc5dUlIMGdlMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkRG9nZXlCYmJtRnRaVG9nYzNSeWFXNW5YVG9nVmxKTlJYaHdjbVZ6YzJsdmJpQjlJRDBnZTMwN1hHNWNiaUFnSUNCamIyNXpkQ0J3Y21WelpYUk9ZVzFsVTJWMElEMGdibVYzSUZObGREeHpkSEpwYm1jK0tFOWlhbVZqZEM1MllXeDFaWE1vVmxKTlJYaHdjbVZ6YzJsdmJsQnlaWE5sZEU1aGJXVXBLVHRjYmx4dUlDQWdJRTlpYW1WamRDNWxiblJ5YVdWektIUm9hWE11WDJWNGNISmxjM05wYjI1TllYQXBMbVp2Y2tWaFkyZ29LRnR1WVcxbExDQmxlSEJ5WlhOemFXOXVYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z3Y21WelpYUk9ZVzFsVTJWMExtaGhjeWh1WVcxbEtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhOMWJIUmJibUZ0WlYwZ1BTQmxlSEJ5WlhOemFXOXVPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdVZ1lTQnVaWGNnZTBCc2FXNXJJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5ZlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQXZMeUJrYnlCdWIzUm9hVzVuWEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXdlU0IwYUdVZ1oybDJaVzRnZTBCc2FXNXJJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5ZlNCcGJuUnZJSFJvYVhNZ2IyNWxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2MyOTFjbU5sSUZSb1pTQjdRR3hwYm1zZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSjlJSGx2ZFNCM1lXNTBJSFJ2SUdOdmNIbGNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2RHaHBjMXh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR052Y0hrb2MyOTFjbU5sT2lCV1VrMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpazZJSFJvYVhNZ2UxeHVJQ0FnSUM4dklHWnBjbk4wSUhWdWNtVm5hWE4wWlhJZ1lXeHNJSFJvWlNCbGVIQnlaWE56YVc5dUlHbDBJR2hoYzF4dUlDQWdJR052Ym5OMElHVjRjSEpsYzNOcGIyNXpJRDBnZEdocGN5NWZaWGh3Y21WemMybHZibk11WTI5dVkyRjBLQ2s3WEc0Z0lDQWdaWGh3Y21WemMybHZibk11Wm05eVJXRmphQ2dvWlhod2NtVnpjMmx2YmlrZ1BUNGdlMXh1SUNBZ0lDQWdkR2hwY3k1MWJuSmxaMmx6ZEdWeVJYaHdjbVZ6YzJsdmJpaGxlSEJ5WlhOemFXOXVLVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJQzh2SUhSb1pXNGdjbVZuYVhOMFpYSWdZV3hzSUhSb1pTQmxlSEJ5WlhOemFXOXVJRzltSUhSb1pTQnpiM1Z5WTJWY2JpQWdJQ0J6YjNWeVkyVXVYMlY0Y0hKbGMzTnBiMjV6TG1admNrVmhZMmdvS0dWNGNISmxjM05wYjI0cElEMCtJSHRjYmlBZ0lDQWdJSFJvYVhNdWNtVm5hWE4wWlhKRmVIQnlaWE56YVc5dUtHVjRjSEpsYzNOcGIyNHBPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeThnWTI5d2VTQnlaVzFoYVc1cGJtY2diV1Z0WW1WeWMxeHVJQ0FnSUhSb2FYTXVZbXhwYm10RmVIQnlaWE56YVc5dVRtRnRaWE1nUFNCemIzVnlZMlV1WW14cGJtdEZlSEJ5WlhOemFXOXVUbUZ0WlhNdVkyOXVZMkYwS0NrN1hHNGdJQ0FnZEdocGN5NXNiMjlyUVhSRmVIQnlaWE56YVc5dVRtRnRaWE1nUFNCemIzVnlZMlV1Ykc5dmEwRjBSWGh3Y21WemMybHZiazVoYldWekxtTnZibU5oZENncE8xeHVJQ0FnSUhSb2FYTXViVzkxZEdoRmVIQnlaWE56YVc5dVRtRnRaWE1nUFNCemIzVnlZMlV1Ylc5MWRHaEZlSEJ5WlhOemFXOXVUbUZ0WlhNdVkyOXVZMkYwS0NrN1hHNWNiaUFnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR0VnWTJ4dmJtVWdiMllnZEdocGN5QjdRR3hwYm1zZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSjlMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QkRiM0JwWldRZ2UwQnNhVzVySUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeWZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHTnNiMjVsS0NrNklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlJSHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5S0NrdVkyOXdlU2gwYUdsektUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdZU0J5WldkcGMzUmxjbVZrSUdWNGNISmxjM05wYjI0dVhHNGdJQ0FxSUVsbUlHbDBJR05oYm01dmRDQm1hVzVrSUdGdUlHVjRjSEpsYzNOcGIyNHNJR2wwSUhkcGJHd2djbVYwZFhKdUlHQnVkV3hzWUNCcGJuTjBaV0ZrTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2JtRnRaU0JPWVcxbElHOXlJSEJ5WlhObGRDQnVZVzFsSUc5bUlIUm9aU0JsZUhCeVpYTnphVzl1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMFJYaHdjbVZ6YzJsdmJpaHVZVzFsT2lCV1VrMUZlSEJ5WlhOemFXOXVVSEpsYzJWMFRtRnRaU0I4SUhOMGNtbHVaeWs2SUZaU1RVVjRjSEpsYzNOcGIyNGdmQ0J1ZFd4c0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWZaWGh3Y21WemMybHZiazFoY0Z0dVlXMWxYU0EvUHlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbFoybHpkR1Z5SUdGdUlHVjRjSEpsYzNOcGIyNHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JsZUhCeVpYTnphVzl1SUh0QWJHbHVheUJXVWsxRmVIQnlaWE56YVc5dWZTQjBhR0YwSUdSbGMyTnlhV0psY3lCMGFHVWdaWGh3Y21WemMybHZibHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsWjJsemRHVnlSWGh3Y21WemMybHZiaWhsZUhCeVpYTnphVzl1T2lCV1VrMUZlSEJ5WlhOemFXOXVLVG9nZG05cFpDQjdYRzRnSUNBZ2RHaHBjeTVmWlhod2NtVnpjMmx2Ym5NdWNIVnphQ2hsZUhCeVpYTnphVzl1S1R0Y2JpQWdJQ0IwYUdsekxsOWxlSEJ5WlhOemFXOXVUV0Z3VzJWNGNISmxjM05wYjI0dVpYaHdjbVZ6YzJsdmJrNWhiV1ZkSUQwZ1pYaHdjbVZ6YzJsdmJqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJWYm5KbFoybHpkR1Z5SUdGdUlHVjRjSEpsYzNOcGIyNHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JsZUhCeVpYTnphVzl1SUZSb1pTQmxlSEJ5WlhOemFXOXVJSGx2ZFNCM1lXNTBJSFJ2SUhWdWNtVm5hWE4wWlhKY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCMWJuSmxaMmx6ZEdWeVJYaHdjbVZ6YzJsdmJpaGxlSEJ5WlhOemFXOXVPaUJXVWsxRmVIQnlaWE56YVc5dUtUb2dkbTlwWkNCN1hHNGdJQ0FnWTI5dWMzUWdhVzVrWlhnZ1BTQjBhR2x6TGw5bGVIQnlaWE56YVc5dWN5NXBibVJsZUU5bUtHVjRjSEpsYzNOcGIyNHBPMXh1SUNBZ0lHbG1JQ2hwYm1SbGVDQTlQVDBnTFRFcElIdGNiaUFnSUNBZ0lHTnZibk52YkdVdWQyRnliaWduVmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJNklGUm9aU0J6Y0dWamFXWnBaV1FnWlhod2NtVnpjMmx2Ym5NZ2FYTWdibTkwSUhKbFoybHpkR1Z5WldRbktUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbDlsZUhCeVpYTnphVzl1Y3k1emNHeHBZMlVvYVc1a1pYZ3NJREVwTzF4dUlDQWdJR1JsYkdWMFpTQjBhR2x6TGw5bGVIQnlaWE56YVc5dVRXRndXMlY0Y0hKbGMzTnBiMjR1Wlhod2NtVnpjMmx2Yms1aGJXVmRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnWTNWeWNtVnVkQ0IzWldsbmFIUWdiMllnZEdobElITndaV05wWm1sbFpDQmxlSEJ5WlhOemFXOXVMbHh1SUNBZ0tpQkpaaUJwZENCa2IyVnpiaWQwSUdoaGRtVWdZVzRnWlhod2NtVnpjMmx2YmlCdlppQm5hWFpsYmlCdVlXMWxMQ0JwZENCM2FXeHNJSEpsZEhWeWJpQmdiblZzYkdBZ2FXNXpkR1ZoWkM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHNWhiV1VnVG1GdFpTQnZaaUIwYUdVZ1pYaHdjbVZ6YzJsdmJseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkRlpoYkhWbEtHNWhiV1U2SUZaU1RVVjRjSEpsYzNOcGIyNVFjbVZ6WlhST1lXMWxJSHdnYzNSeWFXNW5LVG9nYm5WdFltVnlJSHdnYm5Wc2JDQjdYRzRnSUNBZ1kyOXVjM1FnWlhod2NtVnpjMmx2YmlBOUlIUm9hWE11WjJWMFJYaHdjbVZ6YzJsdmJpaHVZVzFsS1R0Y2JpQWdJQ0J5WlhSMWNtNGdaWGh3Y21WemMybHZiajh1ZDJWcFoyaDBJRDgvSUc1MWJHdzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVTJWMElHRWdkMlZwWjJoMElIUnZJSFJvWlNCemNHVmphV1pwWldRZ1pYaHdjbVZ6YzJsdmJpNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJRzVoYldVZ1RtRnRaU0J2WmlCMGFHVWdaWGh3Y21WemMybHZibHh1SUNBZ0tpQkFjR0Z5WVcwZ2QyVnBaMmgwSUZkbGFXZG9kRnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE5sZEZaaGJIVmxLRzVoYldVNklGWlNUVVY0Y0hKbGMzTnBiMjVRY21WelpYUk9ZVzFsSUh3Z2MzUnlhVzVuTENCM1pXbG5hSFE2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUdWNGNISmxjM05wYjI0Z1BTQjBhR2x6TG1kbGRFVjRjSEpsYzNOcGIyNG9ibUZ0WlNrN1hHNGdJQ0FnYVdZZ0tHVjRjSEpsYzNOcGIyNHBJSHRjYmlBZ0lDQWdJR1Y0Y0hKbGMzTnBiMjR1ZDJWcFoyaDBJRDBnYzJGMGRYSmhkR1VvZDJWcFoyaDBLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElHRWdkSEpoWTJzZ2JtRnRaU0J2WmlCemNHVmphV1pwWldRZ1pYaHdjbVZ6YzJsdmJpNWNiaUFnSUNvZ1ZHaHBjeUIwY21GamF5QnVZVzFsSUdseklHNWxaV1JsWkNCMGJ5QnRZVzVwY0hWc1lYUmxJR2wwY3lCbGVIQnlaWE56YVc5dUlIWnBZU0JyWlhsbWNtRnRaU0JoYm1sdFlYUnBiMjV6TGx4dUlDQWdLbHh1SUNBZ0tpQkFaWGhoYlhCc1pTQk5ZVzVwY0hWc1lYUmxJR0Z1SUdWNGNISmxjM05wYjI0Z2RYTnBibWNnYTJWNVpuSmhiV1VnWVc1cGJXRjBhVzl1WEc0Z0lDQXFJR0JnWUdwelhHNGdJQ0FxSUdOdmJuTjBJSFJ5WVdOclRtRnRaU0E5SUhaeWJTNWxlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpNW5aWFJGZUhCeVpYTnphVzl1VkhKaFkydE9ZVzFsS0NBbllteHBibXNuSUNrN1hHNGdJQ0FxSUdOdmJuTjBJSFJ5WVdOcklEMGdibVYzSUZSSVVrVkZMazUxYldKbGNrdGxlV1p5WVcxbFZISmhZMnNvWEc0Z0lDQXFJQ0FnYm1GdFpTeGNiaUFnSUNvZ0lDQmJJREF1TUN3Z01DNDFMQ0F4TGpBZ1hTd2dMeThnZEdsdFpYTmNiaUFnSUNvZ0lDQmJJREF1TUN3Z01TNHdMQ0F3TGpBZ1hTQXZMeUIyWVd4MVpYTmNiaUFnSUNvZ0tUdGNiaUFnSUNwY2JpQWdJQ29nWTI5dWMzUWdZMnhwY0NBOUlHNWxkeUJVU0ZKRlJTNUJibWx0WVhScGIyNURiR2x3S0Z4dUlDQWdLaUFnSUNkaWJHbHVheWNzSUM4dklHNWhiV1ZjYmlBZ0lDb2dJQ0F4TGpBc0lDOHZJR1IxY21GMGFXOXVYRzRnSUNBcUlDQWdXeUIwY21GamF5QmRJQzh2SUhSeVlXTnJjMXh1SUNBZ0tpQXBPMXh1SUNBZ0tseHVJQ0FnS2lCamIyNXpkQ0J0YVhobGNpQTlJRzVsZHlCVVNGSkZSUzVCYm1sdFlYUnBiMjVOYVhobGNpZ2dkbkp0TG5OalpXNWxJQ2s3WEc0Z0lDQXFJR052Ym5OMElHRmpkR2x2YmlBOUlHMXBlR1Z5TG1Oc2FYQkJZM1JwYjI0b0lHTnNhWEFnS1R0Y2JpQWdJQ29nWVdOMGFXOXVMbkJzWVhrb0tUdGNiaUFnSUNvZ1lHQmdYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0J1WVcxbElFNWhiV1VnYjJZZ2RHaGxJR1Y0Y0hKbGMzTnBiMjVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhSRmVIQnlaWE56YVc5dVZISmhZMnRPWVcxbEtHNWhiV1U2SUZaU1RVVjRjSEpsYzNOcGIyNVFjbVZ6WlhST1lXMWxJSHdnYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHdnYm5Wc2JDQjdYRzRnSUNBZ1kyOXVjM1FnWlhod2NtVnpjMmx2YmlBOUlIUm9hWE11WjJWMFJYaHdjbVZ6YzJsdmJpaHVZVzFsS1R0Y2JpQWdJQ0J5WlhSMWNtNGdaWGh3Y21WemMybHZiaUEvSUdBa2UyVjRjSEpsYzNOcGIyNHVibUZ0WlgwdWQyVnBaMmgwWUNBNklHNTFiR3c3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZYQmtZWFJsSUdWMlpYSjVJR1Y0Y0hKbGMzTnBiMjV6TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhWd1pHRjBaU2dwT2lCMmIybGtJSHRjYmlBZ0lDQXZMeUJ6WldVZ2FHOTNJRzExWTJnZ2QyVWdjMmh2ZFd4a0lHOTJaWEp5YVdSbElHTmxjblJoYVc0Z1pYaHdjbVZ6YzJsdmJuTmNiaUFnSUNCamIyNXpkQ0IzWldsbmFIUk5kV3gwYVhCc2FXVnljeUE5SUhSb2FYTXVYMk5oYkdOMWJHRjBaVmRsYVdkb2RFMTFiSFJwY0d4cFpYSnpLQ2s3WEc1Y2JpQWdJQ0F2THlCeVpYTmxkQ0JsZUhCeVpYTnphVzl1SUdKcGJtUnpJR1pwY25OMFhHNGdJQ0FnZEdocGN5NWZaWGh3Y21WemMybHZibk11Wm05eVJXRmphQ2dvWlhod2NtVnpjMmx2YmlrZ1BUNGdlMXh1SUNBZ0lDQWdaWGh3Y21WemMybHZiaTVqYkdWaGNrRndjR3hwWldSWFpXbG5hSFFvS1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklIUm9aVzRnWVhCd2JIa2dZbWx1WkhOY2JpQWdJQ0IwYUdsekxsOWxlSEJ5WlhOemFXOXVjeTVtYjNKRllXTm9LQ2hsZUhCeVpYTnphVzl1S1NBOVBpQjdYRzRnSUNBZ0lDQnNaWFFnYlhWc2RHbHdiR2xsY2lBOUlERXVNRHRjYmlBZ0lDQWdJR052Ym5OMElHNWhiV1VnUFNCbGVIQnlaWE56YVc5dUxtVjRjSEpsYzNOcGIyNU9ZVzFsTzF4dVhHNGdJQ0FnSUNCcFppQW9kR2hwY3k1aWJHbHVhMFY0Y0hKbGMzTnBiMjVPWVcxbGN5NXBibVJsZUU5bUtHNWhiV1VwSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNCdGRXeDBhWEJzYVdWeUlDbzlJSGRsYVdkb2RFMTFiSFJwY0d4cFpYSnpMbUpzYVc1ck8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXNiMjlyUVhSRmVIQnlaWE56YVc5dVRtRnRaWE11YVc1a1pYaFBaaWh1WVcxbEtTQWhQVDBnTFRFcElIdGNiaUFnSUNBZ0lDQWdiWFZzZEdsd2JHbGxjaUFxUFNCM1pXbG5hSFJOZFd4MGFYQnNhV1Z5Y3k1c2IyOXJRWFE3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG0xdmRYUm9SWGh3Y21WemMybHZiazVoYldWekxtbHVaR1Y0VDJZb2JtRnRaU2tnSVQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUcxMWJIUnBjR3hwWlhJZ0tqMGdkMlZwWjJoMFRYVnNkR2x3YkdsbGNuTXViVzkxZEdnN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHVjRjSEpsYzNOcGIyNHVZWEJ3YkhsWFpXbG5hSFFvZXlCdGRXeDBhWEJzYVdWeUlIMHBPMXh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOaGJHTjFiR0YwWlNCemRXMGdiMllnYjNabGNuSnBaR1VnWVcxdmRXNTBjeUIwYnlCelpXVWdhRzkzSUcxMVkyZ2dkMlVnYzJodmRXeGtJRzExYkhScGNHeDVJSGRsYVdkb2RITWdiMllnWTJWeWRHRnBiaUJsZUhCeVpYTnphVzl1Y3k1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1gyTmhiR04xYkdGMFpWZGxhV2RvZEUxMWJIUnBjR3hwWlhKektDazZJSHRjYmlBZ0lDQmliR2x1YXpvZ2JuVnRZbVZ5TzF4dUlDQWdJR3h2YjJ0QmREb2diblZ0WW1WeU8xeHVJQ0FnSUcxdmRYUm9PaUJ1ZFcxaVpYSTdYRzRnSUgwZ2UxeHVJQ0FnSUd4bGRDQmliR2x1YXlBOUlERXVNRHRjYmlBZ0lDQnNaWFFnYkc5dmEwRjBJRDBnTVM0d08xeHVJQ0FnSUd4bGRDQnRiM1YwYUNBOUlERXVNRHRjYmx4dUlDQWdJSFJvYVhNdVgyVjRjSEpsYzNOcGIyNXpMbVp2Y2tWaFkyZ29LR1Y0Y0hKbGMzTnBiMjRwSUQwK0lIdGNiaUFnSUNBZ0lHSnNhVzVySUMwOUlHVjRjSEpsYzNOcGIyNHViM1psY25KcFpHVkNiR2x1YTBGdGIzVnVkRHRjYmlBZ0lDQWdJR3h2YjJ0QmRDQXRQU0JsZUhCeVpYTnphVzl1TG05MlpYSnlhV1JsVEc5dmEwRjBRVzF2ZFc1ME8xeHVJQ0FnSUNBZ2JXOTFkR2dnTFQwZ1pYaHdjbVZ6YzJsdmJpNXZkbVZ5Y21sa1pVMXZkWFJvUVcxdmRXNTBPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdZbXhwYm1zZ1BTQk5ZWFJvTG0xaGVDZ3dMakFzSUdKc2FXNXJLVHRjYmlBZ0lDQnNiMjlyUVhRZ1BTQk5ZWFJvTG0xaGVDZ3dMakFzSUd4dmIydEJkQ2s3WEc0Z0lDQWdiVzkxZEdnZ1BTQk5ZWFJvTG0xaGVDZ3dMakFzSUcxdmRYUm9LVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdJR0pzYVc1ckxDQnNiMjlyUVhRc0lHMXZkWFJvSUgwN1hHNGdJSDFjYm4xY2JpSXNJaThxSUdWemJHbHVkQzFrYVhOaFlteGxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1WVcxcGJtY3RZMjl1ZG1WdWRHbHZiaUFxTDF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVmxKTlJYaHdjbVZ6YzJsdmJrMWhkR1Z5YVdGc1EyOXNiM0pVZVhCbElEMGdlMXh1SUNCRGIyeHZjam9nSjJOdmJHOXlKeXhjYmlBZ1JXMXBjM05wYjI1RGIyeHZjam9nSjJWdGFYTnphVzl1UTI5c2IzSW5MRnh1SUNCVGFHRmtaVU52Ykc5eU9pQW5jMmhoWkdWRGIyeHZjaWNzWEc0Z0lFMWhkR05oY0VOdmJHOXlPaUFuYldGMFkyRndRMjlzYjNJbkxGeHVJQ0JTYVcxRGIyeHZjam9nSjNKcGJVTnZiRzl5Snl4Y2JpQWdUM1YwYkdsdVpVTnZiRzl5T2lBbmIzVjBiR2x1WlVOdmJHOXlKeXhjYm4wZ1lYTWdZMjl1YzNRN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZaU1RVVjRjSEpsYzNOcGIyNU5ZWFJsY21saGJFTnZiRzl5Vkhsd1pTQTlYRzRnSUhSNWNHVnZaaUJXVWsxRmVIQnlaWE56YVc5dVRXRjBaWEpwWVd4RGIyeHZjbFI1Y0dWYmEyVjViMllnZEhsd1pXOW1JRlpTVFVWNGNISmxjM05wYjI1TllYUmxjbWxoYkVOdmJHOXlWSGx3WlYwN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCMk1FVjRjSEpsYzNOcGIyNU5ZWFJsY21saGJFTnZiRzl5VFdGd09pQjdJRnRyWlhrNklITjBjbWx1WjEwNklGWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVZIbHdaU0I4SUhWdVpHVm1hVzVsWkNCOUlEMGdlMXh1SUNCZlEyOXNiM0k2SUZaU1RVVjRjSEpsYzNOcGIyNU5ZWFJsY21saGJFTnZiRzl5Vkhsd1pTNURiMnh2Y2l4Y2JpQWdYMFZ0YVhOemFXOXVRMjlzYjNJNklGWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVZIbHdaUzVGYldsemMybHZia052Ykc5eUxGeHVJQ0JmVTJoaFpHVkRiMnh2Y2pvZ1ZsSk5SWGh3Y21WemMybHZiazFoZEdWeWFXRnNRMjlzYjNKVWVYQmxMbE5vWVdSbFEyOXNiM0lzWEc0Z0lGOVNhVzFEYjJ4dmNqb2dWbEpOUlhod2NtVnpjMmx2YmsxaGRHVnlhV0ZzUTI5c2IzSlVlWEJsTGxKcGJVTnZiRzl5TEZ4dUlDQmZUM1YwYkdsdVpVTnZiRzl5T2lCV1VrMUZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2xSNWNHVXVUM1YwYkdsdVpVTnZiRzl5TEZ4dWZUdGNiaUlzSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5SWGh3Y21WemMybHZia0pwYm1RZ2ZTQm1jbTl0SUNjdUwxWlNUVVY0Y0hKbGMzTnBiMjVDYVc1a0p6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5SWGh3Y21WemMybHZiazFoZEdWeWFXRnNRMjlzYjNKVWVYQmxJSDBnWm5KdmJTQW5MaTlXVWsxRmVIQnlaWE56YVc5dVRXRjBaWEpwWVd4RGIyeHZjbFI1Y0dVbk8xeHVYRzVqYjI1emRDQmZZMjlzYjNJZ1BTQnVaWGNnVkVoU1JVVXVRMjlzYjNJb0tUdGNibHh1YVc1MFpYSm1ZV05sSUVOdmJHOXlRbWx1WkZOMFlYUmxJSHRjYmlBZ2NISnZjR1Z5ZEhsT1lXMWxPaUJ6ZEhKcGJtYzdYRzRnSUdsdWFYUnBZV3hXWVd4MVpUb2dWRWhTUlVVdVEyOXNiM0k3WEc0Z0lHUmxiSFJoVm1Gc2RXVTZJRlJJVWtWRkxrTnZiRzl5TzF4dWZWeHVYRzVwYm5SbGNtWmhZMlVnUVd4d2FHRkNhVzVrVTNSaGRHVWdlMXh1SUNCd2NtOXdaWEowZVU1aGJXVTZJSE4wY21sdVp6dGNiaUFnYVc1cGRHbGhiRlpoYkhWbE9pQnVkVzFpWlhJN1hHNGdJR1JsYkhSaFZtRnNkV1U2SUc1MWJXSmxjanRjYm4xY2JseHVhVzUwWlhKbVlXTmxJRUpwYm1SVGRHRjBaU0I3WEc0Z0lHTnZiRzl5T2lCRGIyeHZja0pwYm1SVGRHRjBaU0I4SUc1MWJHdzdYRzRnSUdGc2NHaGhPaUJCYkhCb1lVSnBibVJUZEdGMFpTQjhJRzUxYkd3N1hHNTlYRzVjYmk4cUtseHVJQ29nUVNCaWFXNWtJRzltSUdWNGNISmxjM05wYjI0Z2FXNW1iSFZsYm1ObGN5QjBieUJoSUcxaGRHVnlhV0ZzSUdOdmJHOXlMbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlJYaHdjbVZ6YzJsdmJrMWhkR1Z5YVdGc1EyOXNiM0pDYVc1a0lHbHRjR3hsYldWdWRITWdWbEpOUlhod2NtVnpjMmx2YmtKcGJtUWdlMXh1SUNBdktpcGNiaUFnSUNvZ1RXRndjR2x1WnlCdlppQndjbTl3WlhKMGVTQnVZVzFsY3lCbWNtOXRJRlpTVFVNdmJXRjBaWEpwWVd4RGIyeHZja0pwYm1SekxuUjVjR1VnZEc4Z2RHaHlaV1V1YW5NdlRXRjBaWEpwWVd3dVhHNGdJQ0FxSUZSb1pTQm1hWEp6ZENCbGJHVnRaVzUwSUhOMFlXNWtjeUJtYjNJZ1kyOXNiM0lnWTJoaGJtNWxiSE1zSUhSb1pTQnpaV052Ym1RZ1pXeGxiV1Z1ZENCemRHRnVaSE1nWm05eUlIUm9aU0JoYkhCb1lTQmphR0Z1Ym1Wc0xseHVJQ0FnS2lCVWFHVWdjMlZqYjI1a0lHVnNaVzFsYm5RZ1kyRnVJR0psSUc1MWJHd2dhV1lnZEdobElIUmhjbWRsZENCd2NtOXdaWEowZVNCa2IyVnpiaWQwSUdWNGFYTjBMbHh1SUNBZ0tpOWNiaUFnTHk4Z1ZFOUVUem9nVjJVZ2JXbG5hSFFnZDJGdWRDQjBieUIxYzJVZ2RHaGxJR0J6WVhScGMyWnBaWE5nSUc5d1pYSmhkRzl5SUc5dVkyVWdkMlVnWW5WdGNDQlVVeUIwYnlBMExqa2diM0lnYUdsbmFHVnlYRzRnSUM4dklGTmxaVG9nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCcGVHbDJMM1JvY21WbExYWnliUzl3ZFd4c0x6RXpNak1qWkdselkzVnpjMmx2Ymw5eU1UTTNOREF5TURBek5WeHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QmZjSEp2Y0dWeWRIbE9ZVzFsVFdGd1RXRndPaUI3WEc0Z0lDQWdXMlJwYzNScGJtZDFhWE5vWlhJNklITjBjbWx1WjEwNklIc2dXM1I1Y0dVZ2FXNGdWbEpOUlhod2NtVnpjMmx2YmsxaGRHVnlhV0ZzUTI5c2IzSlVlWEJsWFQ4NklISmxZV1J2Ym14NUlGdHpkSEpwYm1jc0lITjBjbWx1WnlCOElHNTFiR3hkSUgwN1hHNGdJSDBnUFNCN1hHNGdJQ0FnYVhOTlpYTm9VM1JoYm1SaGNtUk5ZWFJsY21saGJEb2dlMXh1SUNBZ0lDQWdZMjlzYjNJNklGc25ZMjlzYjNJbkxDQW5iM0JoWTJsMGVTZGRMRnh1SUNBZ0lDQWdaVzFwYzNOcGIyNURiMnh2Y2pvZ1d5ZGxiV2x6YzJsMlpTY3NJRzUxYkd4ZExGeHVJQ0FnSUgwc1hHNGdJQ0FnYVhOTlpYTm9RbUZ6YVdOTllYUmxjbWxoYkRvZ2UxeHVJQ0FnSUNBZ1kyOXNiM0k2SUZzblkyOXNiM0luTENBbmIzQmhZMmwwZVNkZExGeHVJQ0FnSUgwc1hHNGdJQ0FnYVhOTlZHOXZiazFoZEdWeWFXRnNPaUI3WEc0Z0lDQWdJQ0JqYjJ4dmNqb2dXeWRqYjJ4dmNpY3NJQ2R2Y0dGamFYUjVKMTBzWEc0Z0lDQWdJQ0JsYldsemMybHZia052Ykc5eU9pQmJKMlZ0YVhOemFYWmxKeXdnYm5Wc2JGMHNYRzRnSUNBZ0lDQnZkWFJzYVc1bFEyOXNiM0k2SUZzbmIzVjBiR2x1WlVOdmJHOXlSbUZqZEc5eUp5d2diblZzYkYwc1hHNGdJQ0FnSUNCdFlYUmpZWEJEYjJ4dmNqb2dXeWR0WVhSallYQkdZV04wYjNJbkxDQnVkV3hzWFN4Y2JpQWdJQ0FnSUhKcGJVTnZiRzl5T2lCYkozQmhjbUZ0WlhSeWFXTlNhVzFEYjJ4dmNrWmhZM1J2Y2ljc0lHNTFiR3hkTEZ4dUlDQWdJQ0FnYzJoaFpHVkRiMnh2Y2pvZ1d5ZHphR0ZrWlVOdmJHOXlSbUZqZEc5eUp5d2diblZzYkYwc1hHNGdJQ0FnZlN4Y2JpQWdmVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUhSaGNtZGxkQ0J0WVhSbGNtbGhiQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0J0WVhSbGNtbGhiRG9nVkVoU1JVVXVUV0YwWlhKcFlXdzdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0IwZVhCbElHOW1JSFJvWlNCMFlYSm5aWFFnY0hKdmNHVnlkSGtnYjJZZ2RHaGxJRzFoZEdWeWFXRnNMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJSFI1Y0dVNklGWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVZIbHdaVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUhSaGNtZGxkQ0JqYjJ4dmNpNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQjBZWEpuWlhSV1lXeDFaVG9nVkVoU1JVVXVRMjlzYjNJN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQjBZWEpuWlhRZ1lXeHdhR0V1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nY21WaFpHOXViSGtnZEdGeVoyVjBRV3h3YUdFNklHNTFiV0psY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nU1hSeklHSnBibVJwYm1jZ2MzUmhkR1V1WEc0Z0lDQXFJRWxtSUdsMElHTmhibTV2ZENCbWFXNWtJSFJvWlNCMFlYSm5aWFFnY0hKdmNHVnlkSGtnYVc0Z2RHaGxJR052Ym5OMGNuVmpkRzl5TENCbFlXTm9JSEJ5YjNCbGNuUjVJSGRwYkd3Z1ltVWdiblZzYkNCcGJuTjBaV0ZrTGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCZmMzUmhkR1U2SUVKcGJtUlRkR0YwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvZTF4dUlDQWdJRzFoZEdWeWFXRnNMRnh1SUNBZ0lIUjVjR1VzWEc0Z0lDQWdkR0Z5WjJWMFZtRnNkV1VzWEc0Z0lDQWdkR0Z5WjJWMFFXeHdhR0VzWEc0Z0lIMDZJSHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJVYUdVZ2RHRnlaMlYwSUcxaGRHVnlhV0ZzTGx4dUlDQWdJQ0FxTDF4dUlDQWdJRzFoZEdWeWFXRnNPaUJVU0ZKRlJTNU5ZWFJsY21saGJEdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCMGVYQmxJRzltSUhSb1pTQjBZWEpuWlhRZ2NISnZjR1Z5ZEhrZ2IyWWdkR2hsSUcxaGRHVnlhV0ZzTGx4dUlDQWdJQ0FxTDF4dUlDQWdJSFI1Y0dVNklGWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVZIbHdaVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQjBZWEpuWlhRZ1kyOXNiM0l1WEc0Z0lDQWdJQ292WEc0Z0lDQWdkR0Z5WjJWMFZtRnNkV1U2SUZSSVVrVkZMa052Ykc5eU8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUhSaGNtZGxkQ0JoYkhCb1lTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCMFlYSm5aWFJCYkhCb1lUODZJRzUxYldKbGNqdGNiaUFnZlNrZ2UxeHVJQ0FnSUhSb2FYTXViV0YwWlhKcFlXd2dQU0J0WVhSbGNtbGhiRHRjYmlBZ0lDQjBhR2x6TG5SNWNHVWdQU0IwZVhCbE8xeHVJQ0FnSUhSb2FYTXVkR0Z5WjJWMFZtRnNkV1VnUFNCMFlYSm5aWFJXWVd4MVpUdGNiaUFnSUNCMGFHbHpMblJoY21kbGRFRnNjR2hoSUQwZ2RHRnlaMlYwUVd4d2FHRWdQejhnTVM0d08xeHVYRzRnSUNBZ0x5OGdhVzVwZENCaWFXNWtJSE4wWVhSbFhHNGdJQ0FnWTI5dWMzUWdZMjlzYjNJZ1BTQjBhR2x6TGw5cGJtbDBRMjlzYjNKQ2FXNWtVM1JoZEdVb0tUdGNiaUFnSUNCamIyNXpkQ0JoYkhCb1lTQTlJSFJvYVhNdVgybHVhWFJCYkhCb1lVSnBibVJUZEdGMFpTZ3BPMXh1SUNBZ0lIUm9hWE11WDNOMFlYUmxJRDBnZXlCamIyeHZjaXdnWVd4d2FHRWdmVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJoY0hCc2VWZGxhV2RvZENoM1pXbG5hSFE2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kyOXNiM0lzSUdGc2NHaGhJSDBnUFNCMGFHbHpMbDl6ZEdGMFpUdGNibHh1SUNBZ0lHbG1JQ2hqYjJ4dmNpQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCN0lIQnliM0JsY25SNVRtRnRaU3dnWkdWc2RHRldZV3gxWlNCOUlEMGdZMjlzYjNJN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUhSaGNtZGxkQ0E5SUNoMGFHbHpMbTFoZEdWeWFXRnNJR0Z6SUdGdWVTbGJjSEp2Y0dWeWRIbE9ZVzFsWFNCaGN5QlVTRkpGUlM1RGIyeHZjanRjYmlBZ0lDQWdJR2xtSUNoMFlYSm5aWFFnSVQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJSFJoY21kbGRDNWhaR1FvWDJOdmJHOXlMbU52Y0hrb1pHVnNkR0ZXWVd4MVpTa3ViWFZzZEdsd2JIbFRZMkZzWVhJb2QyVnBaMmgwS1NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHRnNjR2hoSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSHNnY0hKdmNHVnlkSGxPWVcxbExDQmtaV3gwWVZaaGJIVmxJSDBnUFNCaGJIQm9ZVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdkR0Z5WjJWMElEMGdLSFJvYVhNdWJXRjBaWEpwWVd3Z1lYTWdZVzU1S1Z0d2NtOXdaWEowZVU1aGJXVmRJR0Z6SUc1MWJXSmxjanRjYmlBZ0lDQWdJR2xtSUNoMFlYSm5aWFFnSVQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJQ2dvZEdocGN5NXRZWFJsY21saGJDQmhjeUJoYm5rcFczQnliM0JsY25SNVRtRnRaVjBnWVhNZ2JuVnRZbVZ5S1NBclBTQmtaV3gwWVZaaGJIVmxJQ29nZDJWcFoyaDBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiR1ZoY2tGd2NHeHBaV1JYWldsbmFIUW9LVG9nZG05cFpDQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamIyeHZjaXdnWVd4d2FHRWdmU0E5SUhSb2FYTXVYM04wWVhSbE8xeHVYRzRnSUNBZ2FXWWdLR052Ykc5eUlDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lHTnZibk4wSUhzZ2NISnZjR1Z5ZEhsT1lXMWxMQ0JwYm1sMGFXRnNWbUZzZFdVZ2ZTQTlJR052Ykc5eU8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCMFlYSm5aWFFnUFNBb2RHaHBjeTV0WVhSbGNtbGhiQ0JoY3lCaGJua3BXM0J5YjNCbGNuUjVUbUZ0WlYwZ1lYTWdWRWhTUlVVdVEyOXNiM0k3WEc0Z0lDQWdJQ0JwWmlBb2RHRnlaMlYwSUNFOUlIVnVaR1ZtYVc1bFpDa2dlMXh1SUNBZ0lDQWdJQ0IwWVhKblpYUXVZMjl3ZVNocGJtbDBhV0ZzVm1Gc2RXVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hoYkhCb1lTQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCN0lIQnliM0JsY25SNVRtRnRaU3dnYVc1cGRHbGhiRlpoYkhWbElIMGdQU0JoYkhCb1lUdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ2RHRnlaMlYwSUQwZ0tIUm9hWE11YldGMFpYSnBZV3dnWVhNZ1lXNTVLVnR3Y205d1pYSjBlVTVoYldWZElHRnpJRzUxYldKbGNqdGNiaUFnSUNBZ0lHbG1JQ2gwWVhKblpYUWdJVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBZ0lDZ29kR2hwY3k1dFlYUmxjbWxoYkNCaGN5QmhibmtwVzNCeWIzQmxjblI1VG1GdFpWMGdZWE1nYm5WdFltVnlLU0E5SUdsdWFYUnBZV3hXWVd4MVpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOXBibWwwUTI5c2IzSkNhVzVrVTNSaGRHVW9LVG9nUTI5c2IzSkNhVzVrVTNSaGRHVWdmQ0J1ZFd4c0lIdGNiaUFnSUNCamIyNXpkQ0I3SUcxaGRHVnlhV0ZzTENCMGVYQmxMQ0IwWVhKblpYUldZV3gxWlNCOUlEMGdkR2hwY3p0Y2JseHVJQ0FnSUdOdmJuTjBJSEJ5YjNCbGNuUjVUbUZ0WlUxaGNDQTlJSFJvYVhNdVgyZGxkRkJ5YjNCbGNuUjVUbUZ0WlUxaGNDZ3BPMXh1SUNBZ0lHTnZibk4wSUhCeWIzQmxjblI1VG1GdFpTQTlJSEJ5YjNCbGNuUjVUbUZ0WlUxaGNEOHVXM1I1Y0dWZFB5NWJNRjBnUHo4Z2JuVnNiRHRjYmx4dUlDQWdJR2xtSUNod2NtOXdaWEowZVU1aGJXVWdQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0Z4dUlDQWdJQ0FnSUNCZ1ZISnBaV1FnZEc4Z1lXUmtJR0VnYldGMFpYSnBZV3dnWTI5c2IzSWdZbWx1WkNCMGJ5QjBhR1VnYldGMFpYSnBZV3dnSkh0Y2JpQWdJQ0FnSUNBZ0lDQnRZWFJsY21saGJDNXVZVzFsSUQ4L0lDY29ibThnYm1GdFpTa25YRzRnSUNBZ0lDQWdJSDBzSUhSb1pTQjBlWEJsSUNSN2RIbHdaWDBnWW5WMElIUm9aU0J0WVhSbGNtbGhiQ0J2Y2lCMGFHVWdkSGx3WlNCcGN5QnViM1FnYzNWd2NHOXlkR1ZrTG1Bc1hHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFFnUFNBb2JXRjBaWEpwWVd3Z1lYTWdZVzU1S1Z0d2NtOXdaWEowZVU1aGJXVmRJR0Z6SUZSSVVrVkZMa052Ykc5eU8xeHVYRzRnSUNBZ1kyOXVjM1FnYVc1cGRHbGhiRlpoYkhWbElEMGdkR0Z5WjJWMExtTnNiMjVsS0NrN1hHNWNiaUFnSUNBdkx5RG9zcURqZ2E3bGdLVGpncExrdjUzbWpJSGpnWm5qZ292amdaL2pnb0hqZ2F0RGIyeHZjaTV6ZFdMamdwTGt2Yi9qZ28vamdacmpnYXZsdDY3bGlJYmpncExvcUlqbnJwZmpnWm5qZ290Y2JpQWdJQ0JqYjI1emRDQmtaV3gwWVZaaGJIVmxJRDBnYm1WM0lGUklVa1ZGTGtOdmJHOXlLRnh1SUNBZ0lDQWdkR0Z5WjJWMFZtRnNkV1V1Y2lBdElHbHVhWFJwWVd4V1lXeDFaUzV5TEZ4dUlDQWdJQ0FnZEdGeVoyVjBWbUZzZFdVdVp5QXRJR2x1YVhScFlXeFdZV3gxWlM1bkxGeHVJQ0FnSUNBZ2RHRnlaMlYwVm1Gc2RXVXVZaUF0SUdsdWFYUnBZV3hXWVd4MVpTNWlMRnh1SUNBZ0lDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2V5QndjbTl3WlhKMGVVNWhiV1VzSUdsdWFYUnBZV3hXWVd4MVpTd2daR1ZzZEdGV1lXeDFaU0I5TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCZmFXNXBkRUZzY0doaFFtbHVaRk4wWVhSbEtDazZJRUZzY0doaFFtbHVaRk4wWVhSbElId2diblZzYkNCN1hHNGdJQ0FnWTI5dWMzUWdleUJ0WVhSbGNtbGhiQ3dnZEhsd1pTd2dkR0Z5WjJWMFFXeHdhR0VnZlNBOUlIUm9hWE03WEc1Y2JpQWdJQ0JqYjI1emRDQndjbTl3WlhKMGVVNWhiV1ZOWVhBZ1BTQjBhR2x6TGw5blpYUlFjbTl3WlhKMGVVNWhiV1ZOWVhBb0tUdGNiaUFnSUNCamIyNXpkQ0J3Y205d1pYSjBlVTVoYldVZ1BTQndjbTl3WlhKMGVVNWhiV1ZOWVhBL0xsdDBlWEJsWFQ4dVd6RmRJRDgvSUc1MWJHdzdYRzVjYmlBZ0lDQnBaaUFvY0hKdmNHVnlkSGxPWVcxbElEMDlJRzUxYkd3Z0ppWWdkR0Z5WjJWMFFXeHdhR0VnSVQwOUlERXVNQ2tnZTF4dUlDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtGeHVJQ0FnSUNBZ0lDQmdWSEpwWldRZ2RHOGdZV1JrSUdFZ2JXRjBaWEpwWVd3Z1lXeHdhR0VnWW1sdVpDQjBieUIwYUdVZ2JXRjBaWEpwWVd3Z0pIdGNiaUFnSUNBZ0lDQWdJQ0J0WVhSbGNtbGhiQzV1WVcxbElEOC9JQ2NvYm04Z2JtRnRaU2tuWEc0Z0lDQWdJQ0FnSUgwc0lIUm9aU0IwZVhCbElDUjdkSGx3WlgwZ1luVjBJSFJvWlNCdFlYUmxjbWxoYkNCdmNpQjBhR1VnZEhsd1pTQmtiMlZ6SUc1dmRDQnpkWEJ3YjNKMElHRnNjR2hoTG1Bc1hHNGdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvY0hKdmNHVnlkSGxPWVcxbElEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdsdWFYUnBZV3hXWVd4MVpTQTlJQ2h0WVhSbGNtbGhiQ0JoY3lCaGJua3BXM0J5YjNCbGNuUjVUbUZ0WlYwZ1lYTWdiblZ0WW1WeU8xeHVYRzRnSUNBZ1kyOXVjM1FnWkdWc2RHRldZV3gxWlNBOUlIUmhjbWRsZEVGc2NHaGhJQzBnYVc1cGRHbGhiRlpoYkhWbE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhzZ2NISnZjR1Z5ZEhsT1lXMWxMQ0JwYm1sMGFXRnNWbUZzZFdVc0lHUmxiSFJoVm1Gc2RXVWdmVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJkbGRGQnliM0JsY25SNVRtRnRaVTFoY0NncE9seHVJQ0FnSUh3Z2V5QmJkSGx3WlNCcGJpQldVazFGZUhCeVpYTnphVzl1VFdGMFpYSnBZV3hEYjJ4dmNsUjVjR1ZkUHpvZ2NtVmhaRzl1YkhrZ1czTjBjbWx1Wnl3Z2MzUnlhVzVuSUh3Z2JuVnNiRjBnZlZ4dUlDQWdJSHdnYm5Wc2JDQjdYRzRnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLRlpTVFVWNGNISmxjM05wYjI1TllYUmxjbWxoYkVOdmJHOXlRbWx1WkM1ZmNISnZjR1Z5ZEhsT1lXMWxUV0Z3VFdGd0tTNW1hVzVrS0NoYlpHbHpkR2x1WjNWcGMyaGxjbDBwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDaDBhR2x6TG0xaGRHVnlhV0ZzSUdGeklHRnVlU2xiWkdsemRHbHVaM1ZwYzJobGNsMGdQVDA5SUhSeWRXVTdYRzRnSUNBZ0lDQjlLVDh1V3pGZElEOC9JRzUxYkd4Y2JpQWdJQ0FwTzF4dUlDQjlYRzU5WEc0aUxDSnBiWEJ2Y25RZ2RIbHdaU0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5SWGh3Y21WemMybHZia0pwYm1RZ2ZTQm1jbTl0SUNjdUwxWlNUVVY0Y0hKbGMzTnBiMjVDYVc1a0p6dGNibHh1THlvcVhHNGdLaUJCSUdKcGJtUWdiMllnZTBCc2FXNXJJRlpTVFVWNGNISmxjM05wYjI1OUlHbHVabXgxWlc1alpYTWdkRzhnYlc5eWNHZ2dkR0Z5WjJWMGN5NWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRlpTVFVWNGNISmxjM05wYjI1TmIzSndhRlJoY21kbGRFSnBibVFnYVcxd2JHVnRaVzUwY3lCV1VrMUZlSEJ5WlhOemFXOXVRbWx1WkNCN1hHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ2JXVnphQ0J3Y21sdGFYUnBkbVZ6SUhSb1lYUWdZWFIwWVdOb1pXUWdkRzhnZEdGeVoyVjBJRzFsYzJndVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtVmhaRzl1YkhrZ2NISnBiV2wwYVhabGN6b2dWRWhTUlVVdVRXVnphRnRkTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ2FXNWtaWGdnYjJZZ2RHaGxJRzF2Y25Cb0lIUmhjbWRsZENCcGJpQjBhR1VnYldWemFDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQnBibVJsZURvZ2JuVnRZbVZ5TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ2QyVnBaMmgwSUhaaGJIVmxJRzltSUhSaGNtZGxkQ0J0YjNKd2FDQjBZWEpuWlhRdUlGSmhibWRwYm1jZ2FXNGdXekF1TUNBdElERXVNRjB1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nY21WaFpHOXViSGtnZDJWcFoyaDBPaUJ1ZFcxaVpYSTdYRzVjYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtIdGNiaUFnSUNCd2NtbHRhWFJwZG1WekxGeHVJQ0FnSUdsdVpHVjRMRnh1SUNBZ0lIZGxhV2RvZEN4Y2JpQWdmVG9nZTF4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQnRaWE5vSUhCeWFXMXBkR2wyWlhNZ2RHaGhkQ0JoZEhSaFkyaGxaQ0IwYnlCMFlYSm5aWFFnYldWemFDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCd2NtbHRhWFJwZG1Wek9pQlVTRkpGUlM1TlpYTm9XMTA3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdhVzVrWlhnZ2IyWWdkR2hsSUcxdmNuQm9JSFJoY21kbGRDQnBiaUIwYUdVZ2JXVnphQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQnBibVJsZURvZ2JuVnRZbVZ5TzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJSGRsYVdkb2RDQjJZV3gxWlNCdlppQjBZWEpuWlhRZ2JXOXljR2dnZEdGeVoyVjBMaUJTWVc1bmFXNW5JR2x1SUZzd0xqQWdMU0F4TGpCZExseHVJQ0FnSUNBcUwxeHVJQ0FnSUhkbGFXZG9kRG9nYm5WdFltVnlPMXh1SUNCOUtTQjdYRzRnSUNBZ2RHaHBjeTV3Y21sdGFYUnBkbVZ6SUQwZ2NISnBiV2wwYVhabGN6dGNiaUFnSUNCMGFHbHpMbWx1WkdWNElEMGdhVzVrWlhnN1hHNGdJQ0FnZEdocGN5NTNaV2xuYUhRZ1BTQjNaV2xuYUhRN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1lYQndiSGxYWldsbmFIUW9kMlZwWjJoME9pQnVkVzFpWlhJcE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxuQnlhVzFwZEdsMlpYTXVabTl5UldGamFDZ29iV1Z6YUNrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0cxbGMyZ3ViVzl5Y0doVVlYSm5aWFJKYm1ac2RXVnVZMlZ6UHk1YmRHaHBjeTVwYm1SbGVGMGdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0J0WlhOb0xtMXZjbkJvVkdGeVoyVjBTVzVtYkhWbGJtTmxjMXQwYUdsekxtbHVaR1Y0WFNBclBTQjBhR2x6TG5kbGFXZG9kQ0FxSUhkbGFXZG9kRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJqYkdWaGNrRndjR3hwWldSWFpXbG5hSFFvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdkR2hwY3k1d2NtbHRhWFJwZG1WekxtWnZja1ZoWTJnb0tHMWxjMmdwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2h0WlhOb0xtMXZjbkJvVkdGeVoyVjBTVzVtYkhWbGJtTmxjejh1VzNSb2FYTXVhVzVrWlhoZElDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDQWdiV1Z6YUM1dGIzSndhRlJoY21kbGRFbHVabXgxWlc1alpYTmJkR2hwY3k1cGJtUmxlRjBnUFNBd0xqQTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUgxY2JuMWNiaUlzSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5SWGh3Y21WemMybHZia0pwYm1RZ2ZTQm1jbTl0SUNjdUwxWlNUVVY0Y0hKbGMzTnBiMjVDYVc1a0p6dGNibHh1WTI5dWMzUWdYM1l5SUQwZ2JtVjNJRlJJVWtWRkxsWmxZM1J2Y2pJb0tUdGNibHh1THlvcVhHNGdLaUJCSUdKcGJtUWdiMllnWlhod2NtVnpjMmx2YmlCcGJtWnNkV1Z1WTJWeklIUnZJSFJsZUhSMWNtVWdkSEpoYm5ObWIzSnRjeTVjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZaU1RVVjRjSEpsYzNOcGIyNVVaWGgwZFhKbFZISmhibk5tYjNKdFFtbHVaQ0JwYlhCc1pXMWxiblJ6SUZaU1RVVjRjSEpsYzNOcGIyNUNhVzVrSUh0Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ1gzQnliM0JsY25SNVRtRnRaWE5OWVhBNklIc2dXMlJwYzNScGJtZDFhWE5vWlhJNklITjBjbWx1WjEwNklITjBjbWx1WjF0ZElIMGdQU0I3WEc0Z0lDQWdhWE5OWlhOb1UzUmhibVJoY21STllYUmxjbWxoYkRvZ1cxeHVJQ0FnSUNBZ0oyMWhjQ2NzWEc0Z0lDQWdJQ0FuWlcxcGMzTnBkbVZOWVhBbkxGeHVJQ0FnSUNBZ0oySjFiWEJOWVhBbkxGeHVJQ0FnSUNBZ0oyNXZjbTFoYkUxaGNDY3NYRzRnSUNBZ0lDQW5aR2x6Y0d4aFkyVnRaVzUwVFdGd0p5eGNiaUFnSUNBZ0lDZHliM1ZuYUc1bGMzTk5ZWEFuTEZ4dUlDQWdJQ0FnSjIxbGRHRnNibVZ6YzAxaGNDY3NYRzRnSUNBZ0lDQW5ZV3h3YUdGTllYQW5MRnh1SUNBZ0lGMHNYRzRnSUNBZ2FYTk5aWE5vUW1GemFXTk5ZWFJsY21saGJEb2dXeWR0WVhBbkxDQW5jM0JsWTNWc1lYSk5ZWEFuTENBbllXeHdhR0ZOWVhBblhTeGNiaUFnSUNCcGMwMVViMjl1VFdGMFpYSnBZV3c2SUZ0Y2JpQWdJQ0FnSUNkdFlYQW5MRnh1SUNBZ0lDQWdKMjV2Y20xaGJFMWhjQ2NzWEc0Z0lDQWdJQ0FuWlcxcGMzTnBkbVZOWVhBbkxGeHVJQ0FnSUNBZ0ozTm9ZV1JsVFhWc2RHbHdiSGxVWlhoMGRYSmxKeXhjYmlBZ0lDQWdJQ2R5YVcxTmRXeDBhWEJzZVZSbGVIUjFjbVVuTEZ4dUlDQWdJQ0FnSjI5MWRHeHBibVZYYVdSMGFFMTFiSFJwY0d4NVZHVjRkSFZ5WlNjc1hHNGdJQ0FnSUNBbmRYWkJibWx0WVhScGIyNU5ZWE5yVkdWNGRIVnlaU2NzWEc0Z0lDQWdYU3hjYmlBZ2ZUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSFJoY21kbGRDQnRZWFJsY21saGJDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQnRZWFJsY21saGJEb2dWRWhTUlVVdVRXRjBaWEpwWVd3N1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQjFkaUJ6WTJGc1pTQnZaaUIwYUdVZ2RHVjRkSFZ5WlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCelkyRnNaVG9nVkVoU1JVVXVWbVZqZEc5eU1qdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSFYySUc5bVpuTmxkQ0J2WmlCMGFHVWdkR1Y0ZEhWeVpTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQnZabVp6WlhRNklGUklVa1ZGTGxabFkzUnZjakk3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCc2FYTjBJRzltSUhSbGVIUjFjbVVnYm1GdFpYTWdZVzVrSUdsMGN5QnpkR0YwWlNCMGFHRjBJSE5vYjNWc1pDQmlaU0IwY21GdWMyWnZjbTFsWkNCaWVTQjBhR2x6SUdKcGJtUXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjl3Y205d1pYSjBhV1Z6T2lCN1hHNGdJQ0FnYm1GdFpUb2djM1J5YVc1bk8xeHVJQ0FnSUdsdWFYUnBZV3hQWm1aelpYUTZJRlJJVWtWRkxsWmxZM1J2Y2pJN1hHNGdJQ0FnYVc1cGRHbGhiRk5qWVd4bE9pQlVTRkpGUlM1V1pXTjBiM0l5TzF4dUlDQWdJR1JsYkhSaFQyWm1jMlYwT2lCVVNGSkZSUzVXWldOMGIzSXlPMXh1SUNBZ0lHUmxiSFJoVTJOaGJHVTZJRlJJVWtWRkxsWmxZM1J2Y2pJN1hHNGdJSDFiWFR0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvZTF4dUlDQWdJRzFoZEdWeWFXRnNMRnh1SUNBZ0lITmpZV3hsTEZ4dUlDQWdJRzltWm5ObGRDeGNiaUFnZlRvZ2UxeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0IwWVhKblpYUWdiV0YwWlhKcFlXd3VYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2JXRjBaWEpwWVd3NklGUklVa1ZGTGsxaGRHVnlhV0ZzTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1ZHaGxJSFYySUhOallXeGxJRzltSUhSb1pTQjBaWGgwZFhKbExseHVJQ0FnSUNBcUwxeHVJQ0FnSUhOallXeGxPaUJVU0ZKRlJTNVdaV04wYjNJeU8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUhWMklHOW1abk5sZENCdlppQjBhR1VnZEdWNGRIVnlaUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQnZabVp6WlhRNklGUklVa1ZGTGxabFkzUnZjakk3WEc0Z0lIMHBJSHRjYmlBZ0lDQjBhR2x6TG0xaGRHVnlhV0ZzSUQwZ2JXRjBaWEpwWVd3N1hHNGdJQ0FnZEdocGN5NXpZMkZzWlNBOUlITmpZV3hsTzF4dUlDQWdJSFJvYVhNdWIyWm1jMlYwSUQwZ2IyWm1jMlYwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjSEp2Y0dWeWRIbE9ZVzFsY3lBOUlFOWlhbVZqZEM1bGJuUnlhV1Z6S0ZaU1RVVjRjSEpsYzNOcGIyNVVaWGgwZFhKbFZISmhibk5tYjNKdFFtbHVaQzVmY0hKdmNHVnlkSGxPWVcxbGMwMWhjQ2t1Wm1sdVpDaGNiaUFnSUNBZ0lDaGJaR2x6ZEdsdVozVnBjMmhsY2wwcElEMCtJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2h0WVhSbGNtbGhiQ0JoY3lCaGJua3BXMlJwYzNScGJtZDFhWE5vWlhKZElEMDlQU0IwY25WbE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBcFB5NWJNVjA3WEc1Y2JpQWdJQ0JwWmlBb2NISnZjR1Z5ZEhsT1lXMWxjeUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b1hHNGdJQ0FnSUNBZ0lHQlVjbWxsWkNCMGJ5QmhaR1FnWVNCMFpYaDBkWEpsSUhSeVlXNXpabTl5YlNCaWFXNWtJSFJ2SUhSb1pTQnRZWFJsY21saGJDQWtlMXh1SUNBZ0lDQWdJQ0FnSUcxaGRHVnlhV0ZzTG01aGJXVWdQejhnSnlodWJ5QnVZVzFsS1NkY2JpQWdJQ0FnSUNBZ2ZTQmlkWFFnZEdobElHMWhkR1Z5YVdGc0lHbHpJRzV2ZENCemRYQndiM0owWldRdVlDeGNiaUFnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJSFJvYVhNdVgzQnliM0JsY25ScFpYTWdQU0JiWFR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2hwY3k1ZmNISnZjR1Z5ZEdsbGN5QTlJRnRkTzF4dVhHNGdJQ0FnSUNCd2NtOXdaWEowZVU1aGJXVnpMbVp2Y2tWaFkyZ29LSEJ5YjNCbGNuUjVUbUZ0WlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBaWGgwZFhKbElEMGdLQ2h0WVhSbGNtbGhiQ0JoY3lCaGJua3BXM0J5YjNCbGNuUjVUbUZ0WlYwZ1lYTWdWRWhTUlVVdVZHVjRkSFZ5WlNCOElIVnVaR1ZtYVc1bFpDay9MbU5zYjI1bEtDazdYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHVjRkSFZ5WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdLRzFoZEdWeWFXRnNJR0Z6SUdGdWVTbGJjSEp2Y0dWeWRIbE9ZVzFsWFNBOUlIUmxlSFIxY21VN0lDOHZJR0psWTJGMWMyVWdkR2hsSUhSbGVIUjFjbVVnYVhNZ1kyeHZibVZrWEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVc1cGRHbGhiRTltWm5ObGRDQTlJSFJsZUhSMWNtVXViMlptYzJWMExtTnNiMjVsS0NrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdsdWFYUnBZV3hUWTJGc1pTQTlJSFJsZUhSMWNtVXVjbVZ3WldGMExtTnNiMjVsS0NrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSbGJIUmhUMlptYzJWMElEMGdiMlptYzJWMExtTnNiMjVsS0NrdWMzVmlLR2x1YVhScFlXeFBabVp6WlhRcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa1pXeDBZVk5qWVd4bElEMGdjMk5oYkdVdVkyeHZibVVvS1M1emRXSW9hVzVwZEdsaGJGTmpZV3hsS1R0Y2JseHVJQ0FnSUNBZ0lDQjBhR2x6TGw5d2NtOXdaWEowYVdWekxuQjFjMmdvZTF4dUlDQWdJQ0FnSUNBZ0lHNWhiV1U2SUhCeWIzQmxjblI1VG1GdFpTeGNiaUFnSUNBZ0lDQWdJQ0JwYm1sMGFXRnNUMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJR1JsYkhSaFQyWm1jMlYwTEZ4dUlDQWdJQ0FnSUNBZ0lHbHVhWFJwWVd4VFkyRnNaU3hjYmlBZ0lDQWdJQ0FnSUNCa1pXeDBZVk5qWVd4bExGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJoY0hCc2VWZGxhV2RvZENoM1pXbG5hSFE2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lIUm9hWE11WDNCeWIzQmxjblJwWlhNdVptOXlSV0ZqYUNnb2NISnZjR1Z5ZEhrcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElIUmhjbWRsZENBOUlDaDBhR2x6TG0xaGRHVnlhV0ZzSUdGeklHRnVlU2xiY0hKdmNHVnlkSGt1Ym1GdFpWMGdZWE1nVkVoU1JVVXVWR1Y0ZEhWeVpUdGNiaUFnSUNBZ0lHbG1JQ2gwWVhKblpYUWdQVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOUlDOHZJRlJQUkU4NklIZGxJSE5vYjNWc1pDQnJhV05ySUhSb2FYTWdZWFFnWUdGa1pFMWhkR1Z5YVdGc1ZtRnNkV1ZnWEc1Y2JpQWdJQ0FnSUhSaGNtZGxkQzV2Wm1aelpYUXVZV1JrS0Y5Mk1pNWpiM0I1S0hCeWIzQmxjblI1TG1SbGJIUmhUMlptYzJWMEtTNXRkV3gwYVhCc2VWTmpZV3hoY2loM1pXbG5hSFFwS1R0Y2JpQWdJQ0FnSUhSaGNtZGxkQzV5WlhCbFlYUXVZV1JrS0Y5Mk1pNWpiM0I1S0hCeWIzQmxjblI1TG1SbGJIUmhVMk5oYkdVcExtMTFiSFJwY0d4NVUyTmhiR0Z5S0hkbGFXZG9kQ2twTzF4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdOc1pXRnlRWEJ3YkdsbFpGZGxhV2RvZENncE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxsOXdjbTl3WlhKMGFXVnpMbVp2Y2tWaFkyZ29LSEJ5YjNCbGNuUjVLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwWVhKblpYUWdQU0FvZEdocGN5NXRZWFJsY21saGJDQmhjeUJoYm5rcFczQnliM0JsY25SNUxtNWhiV1ZkSUdGeklGUklVa1ZGTGxSbGVIUjFjbVU3WEc0Z0lDQWdJQ0JwWmlBb2RHRnlaMlYwSUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmU0F2THlCVVQwUlBPaUIzWlNCemFHOTFiR1FnYTJsamF5QjBhR2x6SUdGMElHQmhaR1JOWVhSbGNtbGhiRlpoYkhWbFlGeHVYRzRnSUNBZ0lDQjBZWEpuWlhRdWIyWm1jMlYwTG1OdmNIa29jSEp2Y0dWeWRIa3VhVzVwZEdsaGJFOW1abk5sZENrN1hHNGdJQ0FnSUNCMFlYSm5aWFF1Y21Wd1pXRjBMbU52Y0hrb2NISnZjR1Z5ZEhrdWFXNXBkR2xoYkZOallXeGxLVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUhSNWNHVWdLaUJoY3lCV01GWlNUU0JtY205dElDZEFjR2w0YVhZdmRIbHdaWE10ZG5KdExUQXVNQ2M3WEc1cGJYQnZjblFnZEhsd1pTQXFJR0Z6SUZZeFZsSk5VMk5vWlcxaElHWnliMjBnSjBCd2FYaHBkaTkwZVhCbGN5MTJjbTFqTFhaeWJTMHhMakFuTzF4dWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSHNnUjB4VVJpd2dSMHhVUmt4dllXUmxjbEJzZFdkcGJpd2dSMHhVUmxCaGNuTmxjaUI5SUdaeWIyMGdKM1JvY21WbEwyVjRZVzF3YkdWekwycHpiUzlzYjJGa1pYSnpMMGRNVkVaTWIyRmtaWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2daMngwWmtWNGRISmhZM1JRY21sdGFYUnBkbVZ6Um5KdmJVNXZaR1VnZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeTluYkhSbVJYaDBjbUZqZEZCeWFXMXBkR2wyWlhOR2NtOXRUbTlrWlNjN1hHNXBiWEJ2Y25RZ2V5Qm5iSFJtUjJWMFFYTnpiMk5wWVhSbFpFMWhkR1Z5YVdGc1NXNWtaWGdnZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeTluYkhSbVIyVjBRWE56YjJOcFlYUmxaRTFoZEdWeWFXRnNTVzVrWlhnbk8xeHVhVzF3YjNKMElIc2dWbEpOUlhod2NtVnpjMmx2YmlCOUlHWnliMjBnSnk0dlZsSk5SWGh3Y21WemMybHZiaWM3WEc1cGJYQnZjblFnZXlCV1VrMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpQjlJR1p5YjIwZ0p5NHZWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWEluTzF4dWFXMXdiM0owSUhzZ2RqQkZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2sxaGNDQjlJR1p5YjIwZ0p5NHZWbEpOUlhod2NtVnpjMmx2YmsxaGRHVnlhV0ZzUTI5c2IzSlVlWEJsSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVFtbHVaQ0I5SUdaeWIyMGdKeTR2VmxKTlJYaHdjbVZ6YzJsdmJrMWhkR1Z5YVdGc1EyOXNiM0pDYVc1a0p6dGNibWx0Y0c5eWRDQjdJRlpTVFVWNGNISmxjM05wYjI1TmIzSndhRlJoY21kbGRFSnBibVFnZlNCbWNtOXRJQ2N1TDFaU1RVVjRjSEpsYzNOcGIyNU5iM0p3YUZSaGNtZGxkRUpwYm1Rbk8xeHVhVzF3YjNKMElIc2dWbEpOUlhod2NtVnpjMmx2YmxCeVpYTmxkRTVoYldVZ2ZTQm1jbTl0SUNjdUwxWlNUVVY0Y0hKbGMzTnBiMjVRY21WelpYUk9ZVzFsSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVVY0Y0hKbGMzTnBiMjVVWlhoMGRYSmxWSEpoYm5ObWIzSnRRbWx1WkNCOUlHWnliMjBnSnk0dlZsSk5SWGh3Y21WemMybHZibFJsZUhSMWNtVlVjbUZ1YzJadmNtMUNhVzVrSnp0Y2JtbHRjRzl5ZENCN0lFZE1WRVlnWVhNZ1IweFVSbE5qYUdWdFlTQjlJR1p5YjIwZ0owQm5iSFJtTFhSeVlXNXpabTl5YlM5amIzSmxKenRjYmx4dUx5b3FYRzRnS2lCUWIzTnphV0pzWlNCemNHVmpJSFpsY25OcGIyNXpJR2wwSUhKbFkyOW5ibWw2WlhNdVhHNGdLaTljYm1OdmJuTjBJRkJQVTFOSlFreEZYMU5RUlVOZlZrVlNVMGxQVGxNZ1BTQnVaWGNnVTJWMEtGc25NUzR3Snl3Z0p6RXVNQzFpWlhSaEoxMHBPMXh1WEc0dktpcGNiaUFxSUVFZ2NHeDFaMmx1SUc5bUlFZE1WRVpNYjJGa1pYSWdkR2hoZENCcGJYQnZjblJ6SUdFZ2UwQnNhVzVySUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeWZTQm1jbTl0SUdFZ1ZsSk5JR1Y0ZEdWdWMybHZiaUJ2WmlCaElFZE1WRVl1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCV1VrMUZlSEJ5WlhOemFXOXVURzloWkdWeVVHeDFaMmx1SUdsdGNHeGxiV1Z1ZEhNZ1IweFVSa3h2WVdSbGNsQnNkV2RwYmlCN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ2RqQjJNVkJ5WlhObGRFNWhiV1ZOWVhBNklIc2dXM1l3VG1GdFpTQnBiaUJXTUZaU1RTNUNiR1Z1WkZOb1lYQmxVSEpsYzJWMFRtRnRaVjAvT2lCV1VrMUZlSEJ5WlhOemFXOXVVSEpsYzJWMFRtRnRaU0I5SUQwZ2UxeHVJQ0FnSUdFNklDZGhZU2NzWEc0Z0lDQWdaVG9nSjJWbEp5eGNiaUFnSUNCcE9pQW5hV2duTEZ4dUlDQWdJRzg2SUNkdmFDY3NYRzRnSUNBZ2RUb2dKMjkxSnl4Y2JpQWdJQ0JpYkdsdWF6b2dKMkpzYVc1ckp5eGNiaUFnSUNCcWIzazZJQ2RvWVhCd2VTY3NYRzRnSUNBZ1lXNW5jbms2SUNkaGJtZHllU2NzWEc0Z0lDQWdjMjl5Y205M09pQW5jMkZrSnl4Y2JpQWdJQ0JtZFc0NklDZHlaV3hoZUdWa0p5eGNiaUFnSUNCc2IyOXJkWEE2SUNkc2IyOXJWWEFuTEZ4dUlDQWdJR3h2YjJ0a2IzZHVPaUFuYkc5dmEwUnZkMjRuTEZ4dUlDQWdJR3h2YjJ0c1pXWjBPaUFuYkc5dmEweGxablFuTEZ4dUlDQWdJR3h2YjJ0eWFXZG9kRG9nSjJ4dmIydFNhV2RvZENjc1hHNGdJQ0FnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dVlXMXBibWN0WTI5dWRtVnVkR2x2Ymx4dUlDQWdJR0pzYVc1clgydzZJQ2RpYkdsdWEweGxablFuTEZ4dUlDQWdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym1GdGFXNW5MV052Ym5abGJuUnBiMjVjYmlBZ0lDQmliR2x1YTE5eU9pQW5ZbXhwYm10U2FXZG9kQ2NzWEc0Z0lDQWdibVYxZEhKaGJEb2dKMjVsZFhSeVlXd25MRnh1SUNCOU8xeHVYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0J3WVhKelpYSTZJRWRNVkVaUVlYSnpaWEk3WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J1WVcxbEtDazZJSE4wY21sdVp5QjdYRzRnSUNBZ0x5OGdWMlVnYzJodmRXeGtJSFZ6WlNCMGFHVWdaWGgwWlc1emFXOXVJRzVoYldVZ2FXNXpkR1ZoWkNCaWRYUWdkMlVnYUdGMlpTQnRkV3gwYVhCc1pTQndiSFZuYVc1eklHWnZjaUJoYmlCbGVIUmxibk5wYjI0dUxpNWNiaUFnSUNCeVpYUjFjbTRnSjFaU1RVVjRjSEpsYzNOcGIyNU1iMkZrWlhKUWJIVm5hVzRuTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtIQmhjbk5sY2pvZ1IweFVSbEJoY25ObGNpa2dlMXh1SUNBZ0lIUm9hWE11Y0dGeWMyVnlJRDBnY0dGeWMyVnlPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklHRm1kR1Z5VW05dmRDaG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1oyeDBaaTUxYzJWeVJHRjBZUzUyY20xRmVIQnlaWE56YVc5dVRXRnVZV2RsY2lBOUlHRjNZV2wwSUhSb2FYTXVYMmx0Y0c5eWRDaG5iSFJtS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkpiWEJ2Y25RZ1lTQjdRR3hwYm1zZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSjlJR1p5YjIwZ1lTQldVazB1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCbmJIUm1JRUVnY0dGeWMyVmtJSEpsYzNWc2RDQnZaaUJIVEZSR0lIUmhhMlZ1SUdaeWIyMGdSMHhVUmt4dllXUmxjbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QmZhVzF3YjNKMEtHZHNkR1k2SUVkTVZFWXBPaUJRY205dGFYTmxQRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5SUh3Z2JuVnNiRDRnZTF4dUlDQWdJR052Ym5OMElIWXhVbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTVmZGpGSmJYQnZjblFvWjJ4MFppazdYRzRnSUNBZ2FXWWdLSFl4VW1WemRXeDBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkakZTWlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZGpCU1pYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxsOTJNRWx0Y0c5eWRDaG5iSFJtS1R0Y2JpQWdJQ0JwWmlBb2RqQlNaWE4xYkhRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMk1GSmxjM1ZzZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDNZeFNXMXdiM0owS0dkc2RHWTZJRWRNVkVZcE9pQlFjbTl0YVhObFBGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlJSHdnYm5Wc2JENGdlMXh1SUNBZ0lHTnZibk4wSUdwemIyNGdQU0IwYUdsekxuQmhjbk5sY2k1cWMyOXVJR0Z6SUVkTVZFWlRZMmhsYldFdVNVZE1WRVk3WEc1Y2JpQWdJQ0F2THlCbFlYSnNlU0JoWW05eWRDQnBaaUJwZENCa2IyVnpiaWQwSUhWelpTQjJjbTFjYmlBZ0lDQmpiMjV6ZENCcGMxWlNUVlZ6WldRZ1BTQnFjMjl1TG1WNGRHVnVjMmx2Ym5OVmMyVmtQeTVwYm1SbGVFOW1LQ2RXVWsxRFgzWnliU2NwSUNFOVBTQXRNVHRjYmlBZ0lDQnBaaUFvSVdselZsSk5WWE5sWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWlhoMFpXNXphVzl1SUQwZ2FuTnZiaTVsZUhSbGJuTnBiMjV6UHk1YkoxWlNUVU5mZG5KdEoxMGdZWE1nVmpGV1VrMVRZMmhsYldFdVZsSk5RMVpTVFNCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9JV1Y0ZEdWdWMybHZiaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjM0JsWTFabGNuTnBiMjRnUFNCbGVIUmxibk5wYjI0dWMzQmxZMVpsY25OcGIyNDdYRzRnSUNBZ2FXWWdLQ0ZRVDFOVFNVSk1SVjlUVUVWRFgxWkZVbE5KVDA1VExtaGhjeWh6Y0dWalZtVnljMmx2YmlrcElIdGNiaUFnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhnVmxKTlJYaHdjbVZ6YzJsdmJreHZZV1JsY2xCc2RXZHBiam9nVlc1cmJtOTNiaUJXVWsxRFgzWnliU0J6Y0dWalZtVnljMmx2YmlCY0lpUjdjM0JsWTFabGNuTnBiMjU5WENKZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhOamFHVnRZVVY0Y0hKbGMzTnBiMjV6SUQwZ1pYaDBaVzV6YVc5dUxtVjRjSEpsYzNOcGIyNXpPMXh1SUNBZ0lHbG1JQ2doYzJOb1pXMWhSWGh3Y21WemMybHZibk1wSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklHeHBjM1FnWlhod2NtVnpjMmx2Ym5OY2JpQWdJQ0JqYjI1emRDQndjbVZ6WlhST1lXMWxVMlYwSUQwZ2JtVjNJRk5sZER4emRISnBibWMrS0U5aWFtVmpkQzUyWVd4MVpYTW9WbEpOUlhod2NtVnpjMmx2YmxCeVpYTmxkRTVoYldVcEtUdGNiaUFnSUNCamIyNXpkQ0J1WVcxbFUyTm9aVzFoUlhod2NtVnpjMmx2YmsxaGNDQTlJRzVsZHlCTllYQThjM1J5YVc1bkxDQldNVlpTVFZOamFHVnRZUzVGZUhCeVpYTnphVzl1UGlncE8xeHVYRzRnSUNBZ2FXWWdLSE5qYUdWdFlVVjRjSEpsYzNOcGIyNXpMbkJ5WlhObGRDQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQlBZbXBsWTNRdVpXNTBjbWxsY3loelkyaGxiV0ZGZUhCeVpYTnphVzl1Y3k1d2NtVnpaWFFwTG1admNrVmhZMmdvS0Z0dVlXMWxMQ0J6WTJobGJXRkZlSEJ5WlhOemFXOXVYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYzJOb1pXMWhSWGh3Y21WemMybHZiaUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCOUlDOHZJSFI1Y0dWelkzSnBjSFJjYmx4dUlDQWdJQ0FnSUNCcFppQW9JWEJ5WlhObGRFNWhiV1ZUWlhRdWFHRnpLRzVoYldVcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtHQldVazFGZUhCeVpYTnphVzl1VEc5aFpHVnlVR3gxWjJsdU9pQlZibXR1YjNkdUlIQnlaWE5sZENCdVlXMWxJRndpSkh0dVlXMWxmVndpSUdSbGRHVmpkR1ZrTGlCSloyNXZjbWx1WnlCMGFHVWdaWGh3Y21WemMybHZibUFwTzF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJRzVoYldWVFkyaGxiV0ZGZUhCeVpYTnphVzl1VFdGd0xuTmxkQ2h1WVcxbExDQnpZMmhsYldGRmVIQnlaWE56YVc5dUtUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h6WTJobGJXRkZlSEJ5WlhOemFXOXVjeTVqZFhOMGIyMGdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdUMkpxWldOMExtVnVkSEpwWlhNb2MyTm9aVzFoUlhod2NtVnpjMmx2Ym5NdVkzVnpkRzl0S1M1bWIzSkZZV05vS0NoYmJtRnRaU3dnYzJOb1pXMWhSWGh3Y21WemMybHZibDBwSUQwK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0hCeVpYTmxkRTVoYldWVFpYUXVhR0Z6S0c1aGJXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lGWlNUVVY0Y0hKbGMzTnBiMjVNYjJGa1pYSlFiSFZuYVc0NklFTjFjM1J2YlNCbGVIQnlaWE56YVc5dUlHTmhibTV2ZENCb1lYWmxJSEJ5WlhObGRDQnVZVzFsSUZ3aUpIdHVZVzFsZlZ3aUxpQkpaMjV2Y21sdVp5QjBhR1VnWlhod2NtVnpjMmx2Ym1Bc1hHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnVZVzFsVTJOb1pXMWhSWGh3Y21WemMybHZiazFoY0M1elpYUW9ibUZ0WlN3Z2MyTm9aVzFoUlhod2NtVnpjMmx2YmlrN1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QndjbVZ3WVhKbElHMWhibUZuWlhKY2JpQWdJQ0JqYjI1emRDQnRZVzVoWjJWeUlEMGdibVYzSUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeUtDazdYRzVjYmlBZ0lDQXZMeUJzYjJGa0lHVjRjSEpsYzNOcGIyNXpYRzRnSUNBZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b1hHNGdJQ0FnSUNCQmNuSmhlUzVtY205dEtHNWhiV1ZUWTJobGJXRkZlSEJ5WlhOemFXOXVUV0Z3TG1WdWRISnBaWE1vS1NrdWJXRndLR0Z6ZVc1aklDaGJibUZ0WlN3Z2MyTm9aVzFoUlhod2NtVnpjMmx2YmwwcElEMCtJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaWGh3Y21WemMybHZiaUE5SUc1bGR5QldVazFGZUhCeVpYTnphVzl1S0c1aGJXVXBPMXh1SUNBZ0lDQWdJQ0JuYkhSbUxuTmpaVzVsTG1Ga1pDaGxlSEJ5WlhOemFXOXVLVHRjYmx4dUlDQWdJQ0FnSUNCbGVIQnlaWE56YVc5dUxtbHpRbWx1WVhKNUlEMGdjMk5vWlcxaFJYaHdjbVZ6YzJsdmJpNXBjMEpwYm1GeWVTQS9QeUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdaWGh3Y21WemMybHZiaTV2ZG1WeWNtbGtaVUpzYVc1cklEMGdjMk5vWlcxaFJYaHdjbVZ6YzJsdmJpNXZkbVZ5Y21sa1pVSnNhVzVySUQ4L0lDZHViMjVsSnp0Y2JpQWdJQ0FnSUNBZ1pYaHdjbVZ6YzJsdmJpNXZkbVZ5Y21sa1pVeHZiMnRCZENBOUlITmphR1Z0WVVWNGNISmxjM05wYjI0dWIzWmxjbkpwWkdWTWIyOXJRWFFnUHo4Z0oyNXZibVVuTzF4dUlDQWdJQ0FnSUNCbGVIQnlaWE56YVc5dUxtOTJaWEp5YVdSbFRXOTFkR2dnUFNCelkyaGxiV0ZGZUhCeVpYTnphVzl1TG05MlpYSnlhV1JsVFc5MWRHZ2dQejhnSjI1dmJtVW5PMXh1WEc0Z0lDQWdJQ0FnSUhOamFHVnRZVVY0Y0hKbGMzTnBiMjR1Ylc5eWNHaFVZWEpuWlhSQ2FXNWtjejh1Wm05eVJXRmphQ2hoYzNsdVl5QW9ZbWx1WkNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGlhVzVrTG01dlpHVWdQVDA5SUhWdVpHVm1hVzVsWkNCOGZDQmlhVzVrTG1sdVpHVjRJRDA5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQndjbWx0YVhScGRtVnpJRDBnS0dGM1lXbDBJR2RzZEdaRmVIUnlZV04wVUhKcGJXbDBhWFpsYzBaeWIyMU9iMlJsS0dkc2RHWXNJR0pwYm1RdWJtOWtaU2twSVR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGIzSndhRlJoY21kbGRFbHVaR1Y0SUQwZ1ltbHVaQzVwYm1SbGVEdGNibHh1SUNBZ0lDQWdJQ0FnSUM4dklHTm9aV05ySUdsbUlIUm9aU0J0WlhOb0lHaGhjeUIwYUdVZ2RHRnlaMlYwSUcxdmNuQm9JSFJoY21kbGRGeHVJQ0FnSUNBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0Z3Y21sdGFYUnBkbVZ6TG1WMlpYSjVLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQW9jSEpwYldsMGFYWmxLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVGeWNtRjVMbWx6UVhKeVlYa29jSEpwYldsMGFYWmxMbTF2Y25Cb1ZHRnlaMlYwU1c1bWJIVmxibU5sY3lrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRiM0p3YUZSaGNtZGxkRWx1WkdWNElEd2djSEpwYldsMGFYWmxMbTF2Y25Cb1ZHRnlaMlYwU1c1bWJIVmxibU5sY3k1c1pXNW5kR2dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdCV1VrMUZlSEJ5WlhOemFXOXVURzloWkdWeVVHeDFaMmx1T2lBa2UzTmphR1Z0WVVWNGNISmxjM05wYjI0dWJtRnRaWDBnWVhSMFpXMXdkSE1nZEc4Z2FXNWtaWGdnYlc5eWNHZ2dJeVI3Ylc5eWNHaFVZWEpuWlhSSmJtUmxlSDBnWW5WMElHNXZkQ0JtYjNWdVpDNWdMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JsZUhCeVpYTnphVzl1TG1Ga1pFSnBibVFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGNnVmxKTlJYaHdjbVZ6YzJsdmJrMXZjbkJvVkdGeVoyVjBRbWx1WkNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhCeWFXMXBkR2wyWlhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRPaUJ0YjNKd2FGUmhjbWRsZEVsdVpHVjRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNaV2xuYUhRNklHSnBibVF1ZDJWcFoyaDBJRDgvSURFdU1DeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcExGeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNoelkyaGxiV0ZGZUhCeVpYTnphVzl1TG0xaGRHVnlhV0ZzUTI5c2IzSkNhVzVrY3lCOGZDQnpZMmhsYldGRmVIQnlaWE56YVc5dUxuUmxlSFIxY21WVWNtRnVjMlp2Y20xQ2FXNWtjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDOHZJR3hwYzNRZ2RYQWdaWFpsY25rZ2JXRjBaWEpwWVd3Z2FXNGdZR2RzZEdZdWMyTmxibVZnWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWjJ4MFprMWhkR1Z5YVdGc2N6b2dWRWhTUlVVdVRXRjBaWEpwWVd4YlhTQTlJRnRkTzF4dUlDQWdJQ0FnSUNBZ0lHZHNkR1l1YzJObGJtVXVkSEpoZG1WeWMyVW9LRzlpYW1WamRDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBaWEpwWVd3Z1BTQW9iMkpxWldOMElHRnpJR0Z1ZVNrdWJXRjBaWEpwWVd3Z1lYTWdWRWhTUlVVdVRXRjBaWEpwWVd3Z2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iV0YwWlhKcFlXd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaMngwWmsxaGRHVnlhV0ZzY3k1d2RYTm9LRzFoZEdWeWFXRnNLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ0lDQWdJSE5qYUdWdFlVVjRjSEpsYzNOcGIyNHViV0YwWlhKcFlXeERiMnh2Y2tKcGJtUnpQeTVtYjNKRllXTm9LR0Z6ZVc1aklDaGlhVzVrS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSbGNtbGhiSE1nUFNCbmJIUm1UV0YwWlhKcFlXeHpMbVpwYkhSbGNpZ29iV0YwWlhKcFlXd3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwWlhKcFlXeEpibVJsZUNBOUlHZHNkR1pIWlhSQmMzTnZZMmxoZEdWa1RXRjBaWEpwWVd4SmJtUmxlQ2gwYUdsekxuQmhjbk5sY2l3Z2JXRjBaWEpwWVd3cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWW1sdVpDNXRZWFJsY21saGJDQTlQVDBnYldGMFpYSnBZV3hKYm1SbGVEdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCdFlYUmxjbWxoYkhNdVptOXlSV0ZqYUNnb2JXRjBaWEpwWVd3cElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaWGh3Y21WemMybHZiaTVoWkdSQ2FXNWtLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZHlCV1VrMUZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2tKcGJtUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldGMFpYSnBZV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJpYVc1a0xuUjVjR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMFlYSm5aWFJXWVd4MVpUb2dibVYzSUZSSVVrVkZMa052Ykc5eUtDa3Vabkp2YlVGeWNtRjVLR0pwYm1RdWRHRnlaMlYwVm1Gc2RXVXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdGeVoyVjBRV3h3YUdFNklHSnBibVF1ZEdGeVoyVjBWbUZzZFdWYk0xMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0FnSUhOamFHVnRZVVY0Y0hKbGMzTnBiMjR1ZEdWNGRIVnlaVlJ5WVc1elptOXliVUpwYm1SelB5NW1iM0pGWVdOb0tHRnplVzVqSUNoaWFXNWtLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnRZWFJsY21saGJITWdQU0JuYkhSbVRXRjBaWEpwWVd4ekxtWnBiSFJsY2lnb2JXRjBaWEpwWVd3cElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBaWEpwWVd4SmJtUmxlQ0E5SUdkc2RHWkhaWFJCYzNOdlkybGhkR1ZrVFdGMFpYSnBZV3hKYm1SbGVDaDBhR2x6TG5CaGNuTmxjaXdnYldGMFpYSnBZV3dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZbWx1WkM1dFlYUmxjbWxoYkNBOVBUMGdiV0YwWlhKcFlXeEpibVJsZUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0J0WVhSbGNtbGhiSE11Wm05eVJXRmphQ2dvYldGMFpYSnBZV3dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1pYaHdjbVZ6YzJsdmJpNWhaR1JDYVc1a0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxkeUJXVWsxRmVIQnlaWE56YVc5dVZHVjRkSFZ5WlZSeVlXNXpabTl5YlVKcGJtUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldGMFpYSnBZV3dzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdlptWnpaWFE2SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l5S0NrdVpuSnZiVUZ5Y21GNUtHSnBibVF1YjJabWMyVjBJRDgvSUZzd0xqQXNJREF1TUYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMk5oYkdVNklHNWxkeUJVU0ZKRlJTNVdaV04wYjNJeUtDa3Vabkp2YlVGeWNtRjVLR0pwYm1RdWMyTmhiR1VnUHo4Z1d6RXVNQ3dnTVM0d1hTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUcxaGJtRm5aWEl1Y21WbmFYTjBaWEpGZUhCeVpYTnphVzl1S0dWNGNISmxjM05wYjI0cE8xeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0tUdGNibHh1SUNBZ0lISmxkSFZ5YmlCdFlXNWhaMlZ5TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJmZGpCSmJYQnZjblFvWjJ4MFpqb2dSMHhVUmlrNklGQnliMjFwYzJVOFZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSWdmQ0J1ZFd4c1BpQjdYRzRnSUNBZ1kyOXVjM1FnYW5OdmJpQTlJSFJvYVhNdWNHRnljMlZ5TG1wemIyNGdZWE1nUjB4VVJsTmphR1Z0WVM1SlIweFVSanRjYmx4dUlDQWdJQzh2SUdWaGNteDVJR0ZpYjNKMElHbG1JR2wwSUdSdlpYTnVKM1FnZFhObElIWnliVnh1SUNBZ0lHTnZibk4wSUhaeWJVVjRkQ0E5SUdwemIyNHVaWGgwWlc1emFXOXVjejh1VmxKTklHRnpJRll3VmxKTkxsWlNUU0I4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb0lYWnliVVY0ZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYzJOb1pXMWhRbXhsYm1SVGFHRndaU0E5SUhaeWJVVjRkQzVpYkdWdVpGTm9ZWEJsVFdGemRHVnlPMXh1SUNBZ0lHbG1JQ2doYzJOb1pXMWhRbXhsYm1SVGFHRndaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdiV0Z1WVdkbGNpQTlJRzVsZHlCV1VrMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpZ3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MyTm9aVzFoUW14bGJtUlRhR0Z3WlVkeWIzVndjeUE5SUhOamFHVnRZVUpzWlc1a1UyaGhjR1V1WW14bGJtUlRhR0Z3WlVkeWIzVndjenRjYmlBZ0lDQnBaaUFvSVhOamFHVnRZVUpzWlc1a1UyaGhjR1ZIY205MWNITXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnRZVzVoWjJWeU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR0pzWlc1a1UyaGhjR1ZPWVcxbFUyVjBJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLQ2s3WEc1Y2JpQWdJQ0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2hjYmlBZ0lDQWdJSE5qYUdWdFlVSnNaVzVrVTJoaGNHVkhjbTkxY0hNdWJXRndLR0Z6ZVc1aklDaHpZMmhsYldGSGNtOTFjQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMk1GQnlaWE5sZEU1aGJXVWdQU0J6WTJobGJXRkhjbTkxY0M1d2NtVnpaWFJPWVcxbE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMk1WQnlaWE5sZEU1aGJXVWdQVnh1SUNBZ0lDQWdJQ0FnSUNoMk1GQnlaWE5sZEU1aGJXVWdJVDBnYm5Wc2JDQW1KaUJXVWsxRmVIQnlaWE56YVc5dVRHOWhaR1Z5VUd4MVoybHVMbll3ZGpGUWNtVnpaWFJPWVcxbFRXRndXM1l3VUhKbGMyVjBUbUZ0WlYwcElIeDhJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1aGJXVWdQU0IyTVZCeVpYTmxkRTVoYldVZ1B6OGdjMk5vWlcxaFIzSnZkWEF1Ym1GdFpUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb2JtRnRaU0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLQ2RXVWsxRmVIQnlaWE56YVc5dVRHOWhaR1Z5VUd4MVoybHVPaUJQYm1VZ2IyWWdZM1Z6ZEc5dElHVjRjSEpsYzNOcGIyNXpJR2hoY3lCdWJ5QnVZVzFsTGlCSloyNXZjbWx1WnlCMGFHVWdaWGh3Y21WemMybHZiaWNwTzF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQzh2SUdSMWNHeHBZMkYwYVc5dUlHTm9aV05yWEc0Z0lDQWdJQ0FnSUdsbUlDaGliR1Z1WkZOb1lYQmxUbUZ0WlZObGRDNW9ZWE1vYm1GdFpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9YRzRnSUNBZ0lDQWdJQ0FnSUNCZ1ZsSk5SWGh3Y21WemMybHZia3h2WVdSbGNsQnNkV2RwYmpvZ1FXNGdaWGh3Y21WemMybHZiaUJ3Y21WelpYUWdKSHQyTUZCeVpYTmxkRTVoYldWOUlHaGhjeUJrZFhCc2FXTmhkR1ZrSUdWdWRISnBaWE11SUVsbmJtOXlhVzVuSUhSb1pTQmxlSEJ5WlhOemFXOXVZQ3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUdKc1pXNWtVMmhoY0dWT1lXMWxVMlYwTG1Ga1pDaHVZVzFsS1R0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbGVIQnlaWE56YVc5dUlEMGdibVYzSUZaU1RVVjRjSEpsYzNOcGIyNG9ibUZ0WlNrN1hHNGdJQ0FnSUNBZ0lHZHNkR1l1YzJObGJtVXVZV1JrS0dWNGNISmxjM05wYjI0cE8xeHVYRzRnSUNBZ0lDQWdJR1Y0Y0hKbGMzTnBiMjR1YVhOQ2FXNWhjbmtnUFNCelkyaGxiV0ZIY205MWNDNXBjMEpwYm1GeWVTQS9QeUJtWVd4elpUdGNiaUFnSUNBZ0lDQWdMeThnZGpBZ1pHOWxjMjRuZENCb1lYWmxJR2xuYm05eVpTQndjbTl3WlhKMGFXVnpYRzVjYmlBZ0lDQWdJQ0FnTHk4Z1FtbHVaQ0J0YjNKd2FGUmhjbWRsZEZ4dUlDQWdJQ0FnSUNCcFppQW9jMk5vWlcxaFIzSnZkWEF1WW1sdVpITXBJSHRjYmlBZ0lDQWdJQ0FnSUNCelkyaGxiV0ZIY205MWNDNWlhVzVrY3k1bWIzSkZZV05vS0dGemVXNWpJQ2hpYVc1a0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWW1sdVpDNXRaWE5vSUQwOVBTQjFibVJsWm1sdVpXUWdmSHdnWW1sdVpDNXBibVJsZUNBOVBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdibTlrWlhOVmMybHVaMDFsYzJnNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnFjMjl1TG01dlpHVnpQeTVtYjNKRllXTm9LQ2h1YjJSbExDQnBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHViMlJsTG0xbGMyZ2dQVDA5SUdKcGJtUXViV1Z6YUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNXZaR1Z6VlhOcGJtZE5aWE5vTG5CMWMyZ29hU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGIzSndhRlJoY21kbGRFbHVaR1Y0SUQwZ1ltbHVaQzVwYm1SbGVEdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUc1dlpHVnpWWE5wYm1kTlpYTm9MbTFoY0NoaGMzbHVZeUFvYm05a1pVbHVaR1Y0S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NISnBiV2wwYVhabGN5QTlJQ2hoZDJGcGRDQm5iSFJtUlhoMGNtRmpkRkJ5YVcxcGRHbDJaWE5HY205dFRtOWtaU2huYkhSbUxDQnViMlJsU1c1a1pYZ3BLU0U3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QmphR1ZqYXlCcFppQjBhR1VnYldWemFDQm9ZWE1nZEdobElIUmhjbWRsZENCdGIzSndhQ0IwWVhKblpYUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBaGNISnBiV2wwYVhabGN5NWxkbVZ5ZVNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLSEJ5YVcxcGRHbDJaU2tnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JCY25KaGVTNXBjMEZ5Y21GNUtIQnlhVzFwZEdsMlpTNXRiM0p3YUZSaGNtZGxkRWx1Wm14MVpXNWpaWE1wSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYlc5eWNHaFVZWEpuWlhSSmJtUmxlQ0E4SUhCeWFXMXBkR2wyWlM1dGIzSndhRlJoY21kbGRFbHVabXgxWlc1alpYTXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCZ1ZsSk5SWGh3Y21WemMybHZia3h2WVdSbGNsQnNkV2RwYmpvZ0pIdHpZMmhsYldGSGNtOTFjQzV1WVcxbGZTQmhkSFJsYlhCMGN5QjBieUJwYm1SbGVDQWtlMjF2Y25Cb1ZHRnlaMlYwU1c1a1pYaDlkR2dnYlc5eWNHZ2dZblYwSUc1dmRDQm1iM1Z1WkM1Z0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGVIQnlaWE56YVc5dUxtRmtaRUpwYm1Rb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnVaWGNnVmxKTlJYaHdjbVZ6YzJsdmJrMXZjbkJvVkdGeVoyVjBRbWx1WkNoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJ5YVcxcGRHbDJaWE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Y0T2lCdGIzSndhRlJoY21kbGRFbHVaR1Y0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjNaV2xuYUhRNklEQXVNREVnS2lBb1ltbHVaQzUzWldsbmFIUWdQejhnTVRBd0tTd2dMeThnYm1GeWNtOTNhVzVuSUhSb1pTQnlZVzVuWlNCbWNtOXRJRnNnTUM0d0lDMGdNVEF3TGpBZ1hTQjBieUJiSURBdU1DQXRJREV1TUNCZFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBdkx5QkNhVzVrSUUxaGRHVnlhV0ZzUTI5c2IzSWdZVzVrSUZSbGVIUjFjbVZVY21GdWMyWnZjbTFjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwWlhKcFlXeFdZV3gxWlhNZ1BTQnpZMmhsYldGSGNtOTFjQzV0WVhSbGNtbGhiRlpoYkhWbGN6dGNiaUFnSUNBZ0lDQWdhV1lnS0cxaGRHVnlhV0ZzVm1Gc2RXVnpJQ1ltSUcxaGRHVnlhV0ZzVm1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJRzFoZEdWeWFXRnNWbUZzZFdWekxtWnZja1ZoWTJnb0tHMWhkR1Z5YVdGc1ZtRnNkV1VwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JXRjBaWEpwWVd4V1lXeDFaUzV0WVhSbGNtbGhiRTVoYldVZ1BUMDlJSFZ1WkdWbWFXNWxaQ0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J0WVhSbGNtbGhiRlpoYkhWbExuQnliM0JsY25SNVRtRnRaU0E5UFQwZ2RXNWtaV1pwYm1Wa0lIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhkR1Z5YVdGc1ZtRnNkV1V1ZEdGeVoyVjBWbUZzZFdVZ1BUMDlJSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdMeW9xWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdLaURqZ3FMamc1RGpnci9qZzd6amdhN2pncXJqZzViamdyampncWZqZ3Evamc0ampnYXZvcUszbHJwcmpnWlhqZ296amdhYmpnWVRqZ292amc1N2pnNGJqZzZyamdxTGpnNnZqZ2E3bGhvWGpnWXZqZ29sY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FxSUcxaGRHVnlhV0ZzVm1Gc2RXWGpnYWZtaklmbHJwcmpnWlhqZ296amdhYmpnWVRqZ292amc1N2pnNGJqZzZyamdxTGpnNnZqZ3BMcG00Ympnb0hqZ292amdJSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBcVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnS2lEbmlibmxycHJqZ2F2amdhL2xrSTNsaVkzamdwTGt2Yi9ubEtqamdabmpnb3ZqZ0lKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FxSU9PQ291T0NwdU9EaU9PRHFlT0NwT09EcythUGorZVV1K2VVcU9PQnJ1T0RudU9EaHVPRHF1T0NvdU9EcStPQ2d1V1FqT2FaZ3VPQnErbWJodU9DZ2VPQ2krT0FnbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDb3ZYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSbGNtbGhiSE02SUZSSVVrVkZMazFoZEdWeWFXRnNXMTBnUFNCYlhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdkc2RHWXVjMk5sYm1VdWRISmhkbVZ5YzJVb0tHOWlhbVZqZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvS0c5aWFtVmpkQ0JoY3lCaGJua3BMbTFoZEdWeWFXRnNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwWlhKcFlXdzZJRlJJVWtWRkxrMWhkR1Z5YVdGc1cxMGdmQ0JVU0ZKRlJTNU5ZWFJsY21saGJDQTlJQ2h2WW1wbFkzUWdZWE1nWVc1NUtTNXRZWFJsY21saGJEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaHRZWFJsY21saGJDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGRHVnlhV0ZzY3k1d2RYTm9LRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNXRZWFJsY21saGJDNW1hV3gwWlhJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0cxMGJDa2dQVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2h0ZEd3dWJtRnRaU0E5UFQwZ2JXRjBaWEpwWVd4V1lXeDFaUzV0WVhSbGNtbGhiRTVoYldVaElIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzEwYkM1dVlXMWxJRDA5UFNCdFlYUmxjbWxoYkZaaGJIVmxMbTFoZEdWeWFXRnNUbUZ0WlNFZ0t5QW5JQ2hQZFhSc2FXNWxLU2NwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYUmxjbWxoYkhNdWFXNWtaWGhQWmlodGRHd3BJRDA5UFNBdE1TeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2h0WVhSbGNtbGhiQzV1WVcxbElEMDlQU0J0WVhSbGNtbGhiRlpoYkhWbExtMWhkR1Z5YVdGc1RtRnRaU0FtSmlCdFlYUmxjbWxoYkhNdWFXNWtaWGhQWmlodFlYUmxjbWxoYkNrZ1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRZWFJsY21saGJITXVjSFZ6YUNodFlYUmxjbWxoYkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwWlhKcFlXeFFjbTl3WlhKMGVVNWhiV1VnUFNCdFlYUmxjbWxoYkZaaGJIVmxMbkJ5YjNCbGNuUjVUbUZ0WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFoZEdWeWFXRnNjeTVtYjNKRllXTm9LQ2h0WVhSbGNtbGhiQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QlVaWGgwZFhKbFZISmhibk5tYjNKdFFtbHVaRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYldGMFpYSnBZV3hRY205d1pYSjBlVTVoYldVZ1BUMDlJQ2RmVFdGcGJsUmxlRjlUVkNjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCelkyRnNaU0E5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l5S0cxaGRHVnlhV0ZzVm1Gc2RXVXVkR0Z5WjJWMFZtRnNkV1VoV3pCZExDQnRZWFJsY21saGJGWmhiSFZsTG5SaGNtZGxkRlpoYkhWbElWc3hYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiMlptYzJWMElEMGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqSW9iV0YwWlhKcFlXeFdZV3gxWlM1MFlYSm5aWFJXWVd4MVpTRmJNbDBzSUcxaGRHVnlhV0ZzVm1Gc2RXVXVkR0Z5WjJWMFZtRnNkV1VoV3pOZEtUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzltWm5ObGRDNTVJRDBnTVM0d0lDMGdiMlptYzJWMExua2dMU0J6WTJGc1pTNTVPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlhod2NtVnpjMmx2Ymk1aFpHUkNhVzVrS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JtVjNJRlpTVFVWNGNISmxjM05wYjI1VVpYaDBkWEpsVkhKaGJuTm1iM0p0UW1sdVpDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxaGRHVnlhV0ZzTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpZMkZzWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklFMWhkR1Z5YVdGc1EyOXNiM0pDYVc1a1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFoZEdWeWFXRnNRMjlzYjNKVWVYQmxJRDBnZGpCRmVIQnlaWE56YVc5dVRXRjBaWEpwWVd4RGIyeHZjazFoY0Z0dFlYUmxjbWxoYkZCeWIzQmxjblI1VG1GdFpWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h0WVhSbGNtbGhiRU52Ykc5eVZIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWNGNISmxjM05wYjI0dVlXUmtRbWx1WkNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxkeUJXVWsxRmVIQnlaWE56YVc5dVRXRjBaWEpwWVd4RGIyeHZja0pwYm1Rb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0WVhSbGNtbGhiQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RIbHdaVG9nYldGMFpYSnBZV3hEYjJ4dmNsUjVjR1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmhjbWRsZEZaaGJIVmxPaUJ1WlhjZ1ZFaFNSVVV1UTI5c2IzSW9LUzVtY205dFFYSnlZWGtvYldGMFpYSnBZV3hXWVd4MVpTNTBZWEpuWlhSV1lXeDFaU0VwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBZWEpuWlhSQmJIQm9ZVG9nYldGMFpYSnBZV3hXWVd4MVpTNTBZWEpuWlhSV1lXeDFaU0ZiTTEwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtHMWhkR1Z5YVdGc1VISnZjR1Z5ZEhsT1lXMWxJQ3NnSnlCcGN5QnViM1FnYzNWd2NHOXlkR1ZrSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHMWhibUZuWlhJdWNtVm5hWE4wWlhKRmVIQnlaWE56YVc5dUtHVjRjSEpsYzNOcGIyNHBPMXh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnRZVzVoWjJWeU8xeHVJQ0I5WEc1OVhHNGlMQ0l2S2lCbGMyeHBiblF0WkdsellXSnNaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym1GdGFXNW5MV052Ym5abGJuUnBiMjRnS2k5Y2JseHVaWGh3YjNKMElHTnZibk4wSUZaU1RVVjRjSEpsYzNOcGIyNVBkbVZ5Y21sa1pWUjVjR1VnUFNCN1hHNGdJRTV2Ym1VNklDZHViMjVsSnl4Y2JpQWdRbXh2WTJzNklDZGliRzlqYXljc1hHNGdJRUpzWlc1a09pQW5ZbXhsYm1RbkxGeHVmU0JoY3lCamIyNXpkRHRjYmx4dVpYaHdiM0owSUhSNWNHVWdWbEpOUlhod2NtVnpjMmx2Yms5MlpYSnlhV1JsVkhsd1pTQTlJSFI1Y0dWdlppQldVazFGZUhCeVpYTnphVzl1VDNabGNuSnBaR1ZVZVhCbFcydGxlVzltSUhSNWNHVnZaaUJXVWsxRmVIQnlaWE56YVc5dVQzWmxjbkpwWkdWVWVYQmxYVHRjYmlJc0ltbHRjRzl5ZENCMGVYQmxJSHNnVmxKTlJtbHljM1JRWlhKemIyNU5aWE5vUVc1dWIzUmhkR2x2YmlCOUlHWnliMjBnSnk0dlZsSk5SbWx5YzNSUVpYSnpiMjVOWlhOb1FXNXViM1JoZEdsdmJpYzdYRzVwYlhCdmNuUWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVaDFiV0Z1YjJsa0lIMGdabkp2YlNBbkxpNHZhSFZ0WVc1dmFXUW5PMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOUm1seWMzUlFaWEp6YjI0Z2UxeHVJQ0F2S2lwY2JpQWdJQ29nUVNCa1pXWmhkV3gwSUdOaGJXVnlZU0JzWVhsbGNpQm1iM0lnWUVacGNuTjBVR1Z5YzI5dVQyNXNlV0FnYkdGNVpYSXVYRzRnSUNBcVhHNGdJQ0FxSUVCelpXVWdXMXRuWlhSR2FYSnpkRkJsY25OdmJrOXViSGxNWVhsbGNsMWRYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklISmxZV1J2Ym14NUlFUkZSa0ZWVEZSZlJrbFNVMVJRUlZKVFQwNWZUMDVNV1Y5TVFWbEZVaUE5SURrN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ1pHVm1ZWFZzZENCallXMWxjbUVnYkdGNVpYSWdabTl5SUdCVWFHbHlaRkJsY25OdmJrOXViSGxnSUd4aGVXVnlMbHh1SUNBZ0tseHVJQ0FnS2lCQWMyVmxJRnRiWjJWMFZHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSmRYVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQkVSVVpCVlV4VVgxUklTVkpFVUVWU1UwOU9YMDlPVEZsZlRFRlpSVklnUFNBeE1EdGNibHh1SUNBdktpcGNiaUFnSUNvZ1NYUnpJR0Z6YzI5amFXRjBaV1FnZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrZlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCb2RXMWhibTlwWkRvZ1ZsSk5TSFZ0WVc1dmFXUTdYRzRnSUhCMVlteHBZeUJ0WlhOb1FXNXViM1JoZEdsdmJuTTZJRlpTVFVacGNuTjBVR1Z5YzI5dVRXVnphRUZ1Ym05MFlYUnBiMjViWFR0Y2JseHVJQ0J3Y21sMllYUmxJRjltYVhKemRGQmxjbk52Yms5dWJIbE1ZWGxsY2lBOUlGWlNUVVpwY25OMFVHVnljMjl1TGtSRlJrRlZURlJmUmtsU1UxUlFSVkpUVDA1ZlQwNU1XVjlNUVZsRlVqdGNiaUFnY0hKcGRtRjBaU0JmZEdocGNtUlFaWEp6YjI1UGJteDVUR0Y1WlhJZ1BTQldVazFHYVhKemRGQmxjbk52Ymk1RVJVWkJWVXhVWDFSSVNWSkVVRVZTVTA5T1gwOU9URmxmVEVGWlJWSTdYRzVjYmlBZ2NISnBkbUYwWlNCZmFXNXBkR2xoYkdsNlpXUk1ZWGxsY25NZ1BTQm1ZV3h6WlR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lGWlNUVVpwY25OMFVHVnljMjl1SUc5aWFtVmpkQzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUdoMWJXRnViMmxrSUVFZ2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa2ZWeHVJQ0FnS2lCQWNHRnlZVzBnYldWemFFRnVibTkwWVhScGIyNXpJRUVnY21WdVpHVnlaWElnYzJWMGRHbHVaM011SUZObFpTQjBhR1VnWkdWelkzSnBjSFJwYjI0Z2IyWWdXMXRTWlc1a1pYSmxja1pwY25OMFVHVnljMjl1Um14aFozTmRYU0JtYjNJZ2JXOXlaU0JwYm1adlhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9hSFZ0WVc1dmFXUTZJRlpTVFVoMWJXRnViMmxrTENCdFpYTm9RVzV1YjNSaGRHbHZibk02SUZaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1YlhTa2dlMXh1SUNBZ0lIUm9hWE11YUhWdFlXNXZhV1FnUFNCb2RXMWhibTlwWkR0Y2JpQWdJQ0IwYUdsekxtMWxjMmhCYm01dmRHRjBhVzl1Y3lBOUlHMWxjMmhCYm01dmRHRjBhVzl1Y3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiM0I1SUhSb1pTQm5hWFpsYmlCN1FHeHBibXNnVmxKTlJtbHljM1JRWlhKemIyNTlJR2x1ZEc4Z2RHaHBjeUJ2Ym1VdVhHNGdJQ0FxSUh0QWJHbHVheUJvZFcxaGJtOXBaSDBnYlhWemRDQmlaU0J6WVcxbElHRnpJSFJvWlNCemIzVnlZMlVnYjI1bExseHVJQ0FnS2lCQWNHRnlZVzBnYzI5MWNtTmxJRlJvWlNCN1FHeHBibXNnVmxKTlJtbHljM1JRWlhKemIyNTlJSGx2ZFNCM1lXNTBJSFJ2SUdOdmNIbGNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2RHaHBjMXh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR052Y0hrb2MyOTFjbU5sT2lCV1VrMUdhWEp6ZEZCbGNuTnZiaWs2SUhSb2FYTWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtaDFiV0Z1YjJsa0lDRTlQU0J6YjNWeVkyVXVhSFZ0WVc1dmFXUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25WbEpOUm1seWMzUlFaWEp6YjI0NklHaDFiV0Z1YjJsa0lHMTFjM1FnWW1VZ2MyRnRaU0JwYmlCdmNtUmxjaUIwYnlCamIzQjVKeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1dFpYTm9RVzV1YjNSaGRHbHZibk1nUFNCemIzVnlZMlV1YldWemFFRnVibTkwWVhScGIyNXpMbTFoY0Nnb1lXNXViM1JoZEdsdmJpa2dQVDRnS0h0Y2JpQWdJQ0FnSUcxbGMyaGxjem9nWVc1dWIzUmhkR2x2Ymk1dFpYTm9aWE11WTI5dVkyRjBLQ2tzWEc0Z0lDQWdJQ0IwZVhCbE9pQmhibTV2ZEdGMGFXOXVMblI1Y0dVc1hHNGdJQ0FnZlNrcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUJoSUdOc2IyNWxJRzltSUhSb2FYTWdlMEJzYVc1cklGWlNUVVpwY25OMFVHVnljMjl1ZlM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nUTI5d2FXVmtJSHRBYkdsdWF5QldVazFHYVhKemRGQmxjbk52Ym4xY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCamJHOXVaU2dwT2lCV1VrMUdhWEp6ZEZCbGNuTnZiaUI3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJXVWsxR2FYSnpkRkJsY25OdmJpaDBhR2x6TG1oMWJXRnViMmxrTENCMGFHbHpMbTFsYzJoQmJtNXZkR0YwYVc5dWN5a3VZMjl3ZVNoMGFHbHpLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklHTmhiV1Z5WVNCc1lYbGxjaUJ5WlhCeVpYTmxiblJ6SUdCR2FYSnpkRkJsY25OdmJrOXViSGxnSUd4aGVXVnlMbHh1SUNBZ0tpQk9iM1JsSUhSb1lYUWdLaXA1YjNVZ2JYVnpkQ0JqWVd4c0lIdEFiR2x1YXlCelpYUjFjSDBnWm1seWMzUWdZbVZtYjNKbElIbHZkU0IxYzJVZ2RHaGxJR3hoZVdWeUlHWmxZWFIxY21VcUtpQnZjaUJwZENCa2IyVnpJRzV2ZENCM2IzSnJJSEJ5YjNCbGNteDVMbHh1SUNBZ0tseHVJQ0FnS2lCVWFHVWdkbUZzZFdVZ2FYTWdlMEJzYVc1cklFUkZSa0ZWVEZSZlJrbFNVMVJRUlZKVFQwNWZUMDVNV1Y5TVFWbEZVbjBnWW5rZ1pHVm1ZWFZzZENCaWRYUWdlVzkxSUdOaGJpQmphR0Z1WjJVZ2RHaGxJR3hoZVdWeUlHSjVJSE53WldOcFpubHBibWNnZG1saElIdEFiR2x1YXlCelpYUjFjSDBnYVdZZ2VXOTFJSEJ5WldabGNpNWNiaUFnSUNwY2JpQWdJQ29nUUhObFpTQm9kSFJ3Y3pvdkwzWnliUzVrWlhZdlpXNHZkVzVwZG5KdEwyRndhUzkxYm1sMmNtMWZkWE5sWDJacGNuTjBjR1Z5YzI5dUwxeHVJQ0FnS2lCQWMyVmxJR2gwZEhCek9pOHZkR2h5WldWcWN5NXZjbWN2Wkc5amN5OGpZWEJwTDJWdUwyTnZjbVV2VEdGNVpYSnpYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwSUdacGNuTjBVR1Z5YzI5dVQyNXNlVXhoZVdWeUtDazZJRzUxYldKbGNpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMlpwY25OMFVHVnljMjl1VDI1c2VVeGhlV1Z5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFRWdZMkZ0WlhKaElHeGhlV1Z5SUhKbGNISmxjMlZ1ZEhNZ1lGUm9hWEprVUdWeWMyOXVUMjVzZVdBZ2JHRjVaWEl1WEc0Z0lDQXFJRTV2ZEdVZ2RHaGhkQ0FxS25sdmRTQnRkWE4wSUdOaGJHd2dlMEJzYVc1cklITmxkSFZ3ZlNCbWFYSnpkQ0JpWldadmNtVWdlVzkxSUhWelpTQjBhR1VnYkdGNVpYSWdabVZoZEhWeVpTb3FJRzl5SUdsMElHUnZaWE1nYm05MElIZHZjbXNnY0hKdmNHVnliSGt1WEc0Z0lDQXFYRzRnSUNBcUlGUm9aU0IyWVd4MVpTQnBjeUI3UUd4cGJtc2dSRVZHUVZWTVZGOVVTRWxTUkZCRlVsTlBUbDlQVGt4WlgweEJXVVZTZlNCaWVTQmtaV1poZFd4MElHSjFkQ0I1YjNVZ1kyRnVJR05vWVc1blpTQjBhR1VnYkdGNVpYSWdZbmtnYzNCbFkybG1lV2x1WnlCMmFXRWdlMEJzYVc1cklITmxkSFZ3ZlNCcFppQjViM1VnY0hKbFptVnlMbHh1SUNBZ0tseHVJQ0FnS2lCQWMyVmxJR2gwZEhCek9pOHZkbkp0TG1SbGRpOWxiaTkxYm1sMmNtMHZZWEJwTDNWdWFYWnliVjkxYzJWZlptbHljM1J3WlhKemIyNHZYRzRnSUNBcUlFQnpaV1VnYUhSMGNITTZMeTkwYUhKbFpXcHpMbTl5Wnk5a2IyTnpMeU5oY0drdlpXNHZZMjl5WlM5TVlYbGxjbk5jYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhRZ2RHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSW9LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmZEdocGNtUlFaWEp6YjI1UGJteDVUR0Y1WlhJN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTVzRnZEdocGN5QnRaWFJvYjJRc0lHbDBJR0Z6YzJsbmJuTWdiR0Y1WlhKeklHWnZjaUJsZG1WeWVTQnRaWE5vWlhNZ1ltRnpaV1FnYjI0Z2JXVnphQ0JoYm01dmRHRjBhVzl1Y3k1Y2JpQWdJQ29nV1c5MUlHMTFjM1FnWTJGc2JDQjBhR2x6SUcxbGRHaHZaQ0JtYVhKemRDQmlaV1p2Y21VZ2VXOTFJSFZ6WlNCMGFHVWdiR0Y1WlhJZ1ptVmhkSFZ5WlM1Y2JpQWdJQ3BjYmlBZ0lDb2dWR2hwY3lCcGN5QmhiaUJsY1hWcGRtRnNaVzUwSUc5bUlGdFdVazFHYVhKemRGQmxjbk52Ymk1VFpYUjFjRjBvYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNaeWJTMWpMMVZ1YVZaU1RTOWliRzlpTHpjellUVmlaRGhtWTJSa1lXRXlZVGRoT0Rjek5UQTVPV0U1TjJVMk0yTTVaR0l6WlRWbFlUQXZRWE56WlhSekwxWlNUUzlTZFc1MGFXMWxMMFpwY25OMFVHVnljMjl1TDFaU1RVWnBjbk4wVUdWeWMyOXVMbU56STB3eU9UVXRUREk1T1NrZ2IyWWdkR2hsSUZWdWFWWlNUUzVjYmlBZ0lDcGNiaUFnSUNvZ1ZHaGxJR0JqWVcxbGNtRk1ZWGxsY21BZ2NHRnlZVzFsZEdWeUlITndaV05wWm1sbGN5QjNhR2xqYUNCc1lYbGxjaUIzYVd4c0lHSmxJR0Z6YzJsbmJtVmtJR1p2Y2lCZ1JtbHljM1JRWlhKemIyNVBibXg1WUNBdklHQlVhR2x5WkZCbGNuTnZiazl1YkhsZ0xseHVJQ0FnS2lCSmJpQlZibWxXVWswc0lIZGxJSE53WldOcFptbGxaQ0IwYUc5elpTQmllU0J1WVcxcGJtY2daV0ZqYUNCa1pYTnBjbVZrSUd4aGVXVnlJR0Z6SUdCR1NWSlRWRkJGVWxOUFRsOVBUa3haWDB4QldVVlNZQ0F2SUdCVVNFbFNSRkJGVWxOUFRsOVBUa3haWDB4QldVVlNZRnh1SUNBZ0tpQmlkWFFnZDJVZ1lYSmxJR2R2YVc1bklIUnZJSE53WldOcFpua2dkR2hsYzJVZ2JHRjVaWEp6SUdGMElHaGxjbVVnYzJsdVkyVWdkMlVnWVhKbElIVnVZV0pzWlNCMGJ5QnVZVzFsSUd4aGVXVnljeUJwYmlCVWFISmxaUzVxY3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHTmhiV1Z5WVV4aGVXVnlJRk53WldOcFpua2dkMmhwWTJnZ2JHRjVaWElnZDJsc2JDQmlaU0JtYjNJZ1lFWnBjbk4wVUdWeWMyOXVUMjVzZVdBZ0x5QmdWR2hwY21SUVpYSnpiMjVQYm14NVlDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnpaWFIxY0NoN1hHNGdJQ0FnWm1seWMzUlFaWEp6YjI1UGJteDVUR0Y1WlhJZ1BTQldVazFHYVhKemRGQmxjbk52Ymk1RVJVWkJWVXhVWDBaSlVsTlVVRVZTVTA5T1gwOU9URmxmVEVGWlJWSXNYRzRnSUNBZ2RHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSWdQU0JXVWsxR2FYSnpkRkJsY25OdmJpNUVSVVpCVlV4VVgxUklTVkpFVUVWU1UwOU9YMDlPVEZsZlRFRlpSVklzWEc0Z0lIMGdQU0I3ZlNrNklIWnZhV1FnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbDlwYm1sMGFXRnNhWHBsWkV4aGVXVnljeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNiaUFnSUNCMGFHbHpMbDltYVhKemRGQmxjbk52Yms5dWJIbE1ZWGxsY2lBOUlHWnBjbk4wVUdWeWMyOXVUMjVzZVV4aGVXVnlPMXh1SUNBZ0lIUm9hWE11WDNSb2FYSmtVR1Z5YzI5dVQyNXNlVXhoZVdWeUlEMGdkR2hwY21SUVpYSnpiMjVQYm14NVRHRjVaWEk3WEc1Y2JpQWdJQ0IwYUdsekxtMWxjMmhCYm01dmRHRjBhVzl1Y3k1bWIzSkZZV05vS0NocGRHVnRLU0E5UGlCN1hHNGdJQ0FnSUNCcGRHVnRMbTFsYzJobGN5NW1iM0pGWVdOb0tDaHRaWE5vS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNocGRHVnRMblI1Y0dVZ1BUMDlJQ2RtYVhKemRGQmxjbk52Yms5dWJIa25LU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JXVnphQzVzWVhsbGNuTXVjMlYwS0hSb2FYTXVYMlpwY25OMFVHVnljMjl1VDI1c2VVeGhlV1Z5S1R0Y2JpQWdJQ0FnSUNBZ0lDQnRaWE5vTG5SeVlYWmxjbk5sS0NoamFHbHNaQ2tnUFQ0Z1kyaHBiR1F1YkdGNVpYSnpMbk5sZENoMGFHbHpMbDltYVhKemRGQmxjbk52Yms5dWJIbE1ZWGxsY2lrcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR2wwWlcwdWRIbHdaU0E5UFQwZ0ozUm9hWEprVUdWeWMyOXVUMjVzZVNjcElIdGNiaUFnSUNBZ0lDQWdJQ0J0WlhOb0xteGhlV1Z5Y3k1elpYUW9kR2hwY3k1ZmRHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSXBPMXh1SUNBZ0lDQWdJQ0FnSUcxbGMyZ3VkSEpoZG1WeWMyVW9LR05vYVd4a0tTQTlQaUJqYUdsc1pDNXNZWGxsY25NdWMyVjBLSFJvYVhNdVgzUm9hWEprVUdWeWMyOXVUMjVzZVV4aGVXVnlLU2s3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb2FYUmxiUzUwZVhCbElEMDlQU0FuWVhWMGJ5Y3BJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbDlqY21WaGRHVklaV0ZrYkdWemMwMXZaR1ZzS0cxbGMyZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUhSb2FYTXVYMmx1YVhScFlXeHBlbVZrVEdGNVpYSnpJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMlY0WTJ4MVpHVlVjbWxoYm1kc1pYTW9kSEpwWVc1bmJHVnpPaUJ1ZFcxaVpYSmJYU3dnWW5kek9pQnVkVzFpWlhKYlhWdGRMQ0J6YTJsdVNXNWtaWGc2SUc1MWJXSmxjbHRkVzEwc0lHVjRZMngxWkdVNklHNTFiV0psY2x0ZEtUb2diblZ0WW1WeUlIdGNiaUFnSUNCc1pYUWdZMjkxYm5RZ1BTQXdPMXh1SUNBZ0lHbG1JQ2hpZDNNZ0lUMGdiblZzYkNBbUppQmlkM011YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQjBjbWxoYm1kc1pYTXViR1Z1WjNSb095QnBJQ3M5SURNcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1lTQTlJSFJ5YVdGdVoyeGxjMXRwWFR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWWlBOUlIUnlhV0Z1WjJ4bGMxdHBJQ3NnTVYwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdNZ1BTQjBjbWxoYm1kc1pYTmJhU0FySURKZE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaWR6QWdQU0JpZDNOYllWMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElITnJhVzR3SUQwZ2MydHBia2x1WkdWNFcyRmRPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGlkekJiTUYwZ1BpQXdJQ1ltSUdWNFkyeDFaR1V1YVc1amJIVmtaWE1vYzJ0cGJqQmJNRjBwS1NCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR0ozTUZzeFhTQStJREFnSmlZZ1pYaGpiSFZrWlM1cGJtTnNkV1JsY3loemEybHVNRnN4WFNrcElHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWW5jd1d6SmRJRDRnTUNBbUppQmxlR05zZFdSbExtbHVZMngxWkdWektITnJhVzR3V3pKZEtTa2dZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJR2xtSUNoaWR6QmJNMTBnUGlBd0lDWW1JR1Y0WTJ4MVpHVXVhVzVqYkhWa1pYTW9jMnRwYmpCYk0xMHBLU0JqYjI1MGFXNTFaVHRjYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0JpZHpFZ1BTQmlkM05iWWwwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhOcmFXNHhJRDBnYzJ0cGJrbHVaR1Y0VzJKZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWW5jeFd6QmRJRDRnTUNBbUppQmxlR05zZFdSbExtbHVZMngxWkdWektITnJhVzR4V3pCZEtTa2dZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJR2xtSUNoaWR6RmJNVjBnUGlBd0lDWW1JR1Y0WTJ4MVpHVXVhVzVqYkhWa1pYTW9jMnRwYmpGYk1WMHBLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHSjNNVnN5WFNBK0lEQWdKaVlnWlhoamJIVmtaUzVwYm1Oc2RXUmxjeWh6YTJsdU1Wc3lYU2twSUdOdmJuUnBiblZsTzF4dUlDQWdJQ0FnSUNCcFppQW9ZbmN4V3pOZElENGdNQ0FtSmlCbGVHTnNkV1JsTG1sdVkyeDFaR1Z6S0hOcmFXNHhXek5kS1NrZ1kyOXVkR2x1ZFdVN1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1luY3lJRDBnWW5kelcyTmRPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnphMmx1TWlBOUlITnJhVzVKYm1SbGVGdGpYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHSjNNbHN3WFNBK0lEQWdKaVlnWlhoamJIVmtaUzVwYm1Oc2RXUmxjeWh6YTJsdU1sc3dYU2twSUdOdmJuUnBiblZsTzF4dUlDQWdJQ0FnSUNCcFppQW9ZbmN5V3pGZElENGdNQ0FtSmlCbGVHTnNkV1JsTG1sdVkyeDFaR1Z6S0hOcmFXNHlXekZkS1NrZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hpZHpKYk1sMGdQaUF3SUNZbUlHVjRZMngxWkdVdWFXNWpiSFZrWlhNb2MydHBiakpiTWwwcEtTQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0dKM01sc3pYU0ErSURBZ0ppWWdaWGhqYkhWa1pTNXBibU5zZFdSbGN5aHphMmx1TWxzelhTa3BJR052Ym5ScGJuVmxPMXh1WEc0Z0lDQWdJQ0FnSUhSeWFXRnVaMnhsYzF0amIzVnVkQ3NyWFNBOUlHRTdYRzRnSUNBZ0lDQWdJSFJ5YVdGdVoyeGxjMXRqYjNWdWRDc3JYU0E5SUdJN1hHNGdJQ0FnSUNBZ0lIUnlhV0Z1WjJ4bGMxdGpiM1Z1ZENzclhTQTlJR003WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCamIzVnVkRHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJOeVpXRjBaVVZ5WVhObFpFMWxjMmdvYzNKak9pQlVTRkpGUlM1VGEybHVibVZrVFdWemFDd2daWEpoYzJsdVowSnZibVZ6U1c1a1pYZzZJRzUxYldKbGNsdGRLVG9nVkVoU1JVVXVVMnRwYm01bFpFMWxjMmdnZTF4dUlDQWdJR052Ym5OMElHUnpkQ0E5SUc1bGR5QlVTRkpGUlM1VGEybHVibVZrVFdWemFDaHpjbU11WjJWdmJXVjBjbmt1WTJ4dmJtVW9LU3dnYzNKakxtMWhkR1Z5YVdGc0tUdGNiaUFnSUNCa2MzUXVibUZ0WlNBOUlHQWtlM055WXk1dVlXMWxmU2hsY21GelpTbGdPMXh1SUNBZ0lHUnpkQzVtY25WemRIVnRRM1ZzYkdWa0lEMGdjM0pqTG1aeWRYTjBkVzFEZFd4c1pXUTdYRzRnSUNBZ1pITjBMbXhoZVdWeWN5NXpaWFFvZEdocGN5NWZabWx5YzNSUVpYSnpiMjVQYm14NVRHRjVaWElwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaMlZ2YldWMGNua2dQU0JrYzNRdVoyVnZiV1YwY25rN1hHNWNiaUFnSUNCamIyNXpkQ0J6YTJsdVNXNWtaWGhCZEhSeUlEMGdaMlZ2YldWMGNua3VaMlYwUVhSMGNtbGlkWFJsS0NkemEybHVTVzVrWlhnbktUdGNiaUFnSUNCamIyNXpkQ0J6YTJsdVNXNWtaWGhCZEhSeVFYSnlZWGtnUFNCemEybHVTVzVrWlhoQmRIUnlJR2x1YzNSaGJtTmxiMllnVkVoU1JVVXVSMHhDZFdabVpYSkJkSFJ5YVdKMWRHVWdQeUJiWFNBNklITnJhVzVKYm1SbGVFRjBkSEl1WVhKeVlYazdYRzRnSUNBZ1kyOXVjM1FnYzJ0cGJrbHVaR1Y0SUQwZ1cxMDdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnphMmx1U1c1a1pYaEJkSFJ5UVhKeVlYa3ViR1Z1WjNSb095QnBJQ3M5SURRcElIdGNiaUFnSUNBZ0lITnJhVzVKYm1SbGVDNXdkWE5vS0Z0Y2JpQWdJQ0FnSUNBZ2MydHBia2x1WkdWNFFYUjBja0Z5Y21GNVcybGRMRnh1SUNBZ0lDQWdJQ0J6YTJsdVNXNWtaWGhCZEhSeVFYSnlZWGxiYVNBcklERmRMRnh1SUNBZ0lDQWdJQ0J6YTJsdVNXNWtaWGhCZEhSeVFYSnlZWGxiYVNBcklESmRMRnh1SUNBZ0lDQWdJQ0J6YTJsdVNXNWtaWGhCZEhSeVFYSnlZWGxiYVNBcklETmRMRnh1SUNBZ0lDQWdYU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2MydHBibGRsYVdkb2RFRjBkSElnUFNCblpXOXRaWFJ5ZVM1blpYUkJkSFJ5YVdKMWRHVW9KM05yYVc1WFpXbG5hSFFuS1R0Y2JpQWdJQ0JqYjI1emRDQnphMmx1VjJWcFoyaDBRWFIwY2tGeWNtRjVJRDBnYzJ0cGJsZGxhV2RvZEVGMGRISWdhVzV6ZEdGdVkyVnZaaUJVU0ZKRlJTNUhURUoxWm1abGNrRjBkSEpwWW5WMFpTQS9JRnRkSURvZ2MydHBibGRsYVdkb2RFRjBkSEl1WVhKeVlYazdYRzRnSUNBZ1kyOXVjM1FnYzJ0cGJsZGxhV2RvZENBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2djMnRwYmxkbGFXZG9kRUYwZEhKQmNuSmhlUzVzWlc1bmRHZzdJR2tnS3owZ05Da2dlMXh1SUNBZ0lDQWdjMnRwYmxkbGFXZG9kQzV3ZFhOb0tGdGNiaUFnSUNBZ0lDQWdjMnRwYmxkbGFXZG9kRUYwZEhKQmNuSmhlVnRwWFN4Y2JpQWdJQ0FnSUNBZ2MydHBibGRsYVdkb2RFRjBkSEpCY25KaGVWdHBJQ3NnTVYwc1hHNGdJQ0FnSUNBZ0lITnJhVzVYWldsbmFIUkJkSFJ5UVhKeVlYbGJhU0FySURKZExGeHVJQ0FnSUNBZ0lDQnphMmx1VjJWcFoyaDBRWFIwY2tGeWNtRjVXMmtnS3lBelhTeGNiaUFnSUNBZ0lGMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdsdVpHVjRJRDBnWjJWdmJXVjBjbmt1WjJWMFNXNWtaWGdvS1R0Y2JpQWdJQ0JwWmlBb0lXbHVaR1Y0S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWENKVWFHVWdaMlZ2YldWMGNua2daRzlsYzI0bmRDQm9ZWFpsSUdGdUlHbHVaR1Y0SUdKMVptWmxjbHdpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2IyeGtWSEpwWVc1bmJHVnpJRDBnUVhKeVlYa3Vabkp2YlNocGJtUmxlQzVoY25KaGVTazdYRzVjYmlBZ0lDQmpiMjV6ZENCamIzVnVkQ0E5SUhSb2FYTXVYMlY0WTJ4MVpHVlVjbWxoYm1kc1pYTW9iMnhrVkhKcFlXNW5iR1Z6TENCemEybHVWMlZwWjJoMExDQnphMmx1U1c1a1pYZ3NJR1Z5WVhOcGJtZENiMjVsYzBsdVpHVjRLVHRjYmlBZ0lDQmpiMjV6ZENCdVpYZFVjbWxoYm1kc1pUb2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdOdmRXNTBPeUJwS3lzcElIdGNiaUFnSUNBZ0lHNWxkMVJ5YVdGdVoyeGxXMmxkSUQwZ2IyeGtWSEpwWVc1bmJHVnpXMmxkTzF4dUlDQWdJSDFjYmlBZ0lDQm5aVzl0WlhSeWVTNXpaWFJKYm1SbGVDaHVaWGRVY21saGJtZHNaU2s3WEc1Y2JpQWdJQ0F2THlCdGRHOXZiaUJ0WVhSbGNtbGhiQ0JwYm1Oc2RXUmxjeUJ2YmtKbFptOXlaVkpsYm1SbGNpNGdkR2hwY3lCcGN5QjFibk4xY0hCdmNuUmxaQ0JoZENCVGEybHVibVZrVFdWemFDTmpiRzl1WlZ4dUlDQWdJR2xtSUNoemNtTXViMjVDWldadmNtVlNaVzVrWlhJcElIdGNiaUFnSUNBZ0lHUnpkQzV2YmtKbFptOXlaVkpsYm1SbGNpQTlJSE55WXk1dmJrSmxabTl5WlZKbGJtUmxjanRjYmlBZ0lDQjlYRzRnSUNBZ1pITjBMbUpwYm1Rb2JtVjNJRlJJVWtWRkxsTnJaV3hsZEc5dUtITnlZeTV6YTJWc1pYUnZiaTVpYjI1bGN5d2djM0pqTG5OclpXeGxkRzl1TG1KdmJtVkpiblpsY25ObGN5a3NJRzVsZHlCVVNGSkZSUzVOWVhSeWFYZzBLQ2twTzF4dUlDQWdJSEpsZEhWeWJpQmtjM1E3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUY5amNtVmhkR1ZJWldGa2JHVnpjMDF2WkdWc1JtOXlVMnRwYm01bFpFMWxjMmdvY0dGeVpXNTBPaUJVU0ZKRlJTNVBZbXBsWTNRelJDd2diV1Z6YURvZ1ZFaFNSVVV1VTJ0cGJtNWxaRTFsYzJncE9pQjJiMmxrSUh0Y2JpQWdJQ0JqYjI1emRDQmxjbUZ6WlVKdmJtVkpibVJsZUdWek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJRzFsYzJndWMydGxiR1YwYjI0dVltOXVaWE11Wm05eVJXRmphQ2dvWW05dVpTd2dhVzVrWlhncElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbDlwYzBWeVlYTmxWR0Z5WjJWMEtHSnZibVVwS1NCbGNtRnpaVUp2Ym1WSmJtUmxlR1Z6TG5CMWMyZ29hVzVrWlhncE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5OGdWVzVzYVd0bElGVnVhVlpTVFNCM1pTQmtiMjRuZENCamIzQjVJRzFsYzJnZ2FXWWdibThnYVc1MmFYTnBZbXhsSUdKdmJtVWdkMkZ6SUdadmRXNWtYRzRnSUNBZ2FXWWdLQ0ZsY21GelpVSnZibVZKYm1SbGVHVnpMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdiV1Z6YUM1c1lYbGxjbk11Wlc1aFlteGxLSFJvYVhNdVgzUm9hWEprVUdWeWMyOXVUMjVzZVV4aGVXVnlLVHRjYmlBZ0lDQWdJRzFsYzJndWJHRjVaWEp6TG1WdVlXSnNaU2gwYUdsekxsOW1hWEp6ZEZCbGNuTnZiazl1YkhsTVlYbGxjaWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVJQ0FnSUcxbGMyZ3ViR0Y1WlhKekxuTmxkQ2gwYUdsekxsOTBhR2x5WkZCbGNuTnZiazl1YkhsTVlYbGxjaWs3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNUV1Z6YUNBOUlIUm9hWE11WDJOeVpXRjBaVVZ5WVhObFpFMWxjMmdvYldWemFDd2daWEpoYzJWQ2IyNWxTVzVrWlhobGN5azdYRzRnSUNBZ2NHRnlaVzUwTG1Ga1pDaHVaWGROWlhOb0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMk55WldGMFpVaGxZV1JzWlhOelRXOWtaV3dvYm05a1pUb2dWRWhTUlVVdVQySnFaV04wTTBRcE9pQjJiMmxrSUh0Y2JpQWdJQ0JwWmlBb2JtOWtaUzUwZVhCbElEMDlQU0FuUjNKdmRYQW5LU0I3WEc0Z0lDQWdJQ0J1YjJSbExteGhlV1Z5Y3k1elpYUW9kR2hwY3k1ZmRHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSXBPMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVYMmx6UlhKaGMyVlVZWEpuWlhRb2JtOWtaU2twSUh0Y2JpQWdJQ0FnSUNBZ2JtOWtaUzUwY21GMlpYSnpaU2dvWTJocGJHUXBJRDArSUdOb2FXeGtMbXhoZVdWeWN5NXpaWFFvZEdocGN5NWZkR2hwY21SUVpYSnpiMjVQYm14NVRHRjVaWElwS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJoY21WdWRDQTlJRzVsZHlCVVNGSkZSUzVIY205MWNDZ3BPMXh1SUNBZ0lDQWdJQ0J3WVhKbGJuUXVibUZ0WlNBOUlHQmZhR1ZoWkd4bGMzTmZKSHR1YjJSbExtNWhiV1Y5WUR0Y2JpQWdJQ0FnSUNBZ2NHRnlaVzUwTG14aGVXVnljeTV6WlhRb2RHaHBjeTVmWm1seWMzUlFaWEp6YjI1UGJteDVUR0Y1WlhJcE8xeHVJQ0FnSUNBZ0lDQnViMlJsTG5CaGNtVnVkQ0V1WVdSa0tIQmhjbVZ1ZENrN1hHNGdJQ0FnSUNBZ0lHNXZaR1V1WTJocGJHUnlaVzVjYmlBZ0lDQWdJQ0FnSUNBdVptbHNkR1Z5S0NoamFHbHNaQ2tnUFQ0Z1kyaHBiR1F1ZEhsd1pTQTlQVDBnSjFOcmFXNXVaV1JOWlhOb0p5bGNiaUFnSUNBZ0lDQWdJQ0F1Wm05eVJXRmphQ2dvWTJocGJHUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElITnJhVzV1WldSTlpYTm9JRDBnWTJocGJHUWdZWE1nVkVoU1JVVXVVMnRwYm01bFpFMWxjMmc3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5amNtVmhkR1ZJWldGa2JHVnpjMDF2WkdWc1JtOXlVMnRwYm01bFpFMWxjMmdvY0dGeVpXNTBMQ0J6YTJsdWJtVmtUV1Z6YUNrN1hHNGdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2h1YjJSbExuUjVjR1VnUFQwOUlDZFRhMmx1Ym1Wa1RXVnphQ2NwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5yYVc1dVpXUk5aWE5vSUQwZ2JtOWtaU0JoY3lCVVNGSkZSUzVUYTJsdWJtVmtUV1Z6YUR0Y2JpQWdJQ0FnSUhSb2FYTXVYMk55WldGMFpVaGxZV1JzWlhOelRXOWtaV3hHYjNKVGEybHVibVZrVFdWemFDaHViMlJsTG5CaGNtVnVkQ0VzSUhOcmFXNXVaV1JOWlhOb0tUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WDJselJYSmhjMlZVWVhKblpYUW9ibTlrWlNrcElIdGNiaUFnSUNBZ0lDQWdibTlrWlM1c1lYbGxjbk11YzJWMEtIUm9hWE11WDNSb2FYSmtVR1Z5YzI5dVQyNXNlVXhoZVdWeUtUdGNiaUFnSUNBZ0lDQWdibTlrWlM1MGNtRjJaWEp6WlNnb1kyaHBiR1FwSUQwK0lHTm9hV3hrTG14aGVXVnljeTV6WlhRb2RHaHBjeTVmZEdocGNtUlFaWEp6YjI1UGJteDVUR0Y1WlhJcEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOXBjMFZ5WVhObFZHRnlaMlYwS0dKdmJtVTZJRlJJVWtWRkxrOWlhbVZqZERORUtUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2FXWWdLR0p2Ym1VZ1BUMDlJSFJvYVhNdWFIVnRZVzV2YVdRdVoyVjBVbUYzUW05dVpVNXZaR1VvSjJobFlXUW5LU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNnaFltOXVaUzV3WVhKbGJuUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WDJselJYSmhjMlZVWVhKblpYUW9ZbTl1WlM1d1lYSmxiblFwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUhSNWNHVWdLaUJoY3lCV01GWlNUU0JtY205dElDZEFjR2w0YVhZdmRIbHdaWE10ZG5KdExUQXVNQ2M3WEc1cGJYQnZjblFnZEhsd1pTQXFJR0Z6SUZZeFZsSk5VMk5vWlcxaElHWnliMjBnSjBCd2FYaHBkaTkwZVhCbGN5MTJjbTFqTFhaeWJTMHhMakFuTzF4dWFXMXdiM0owSUhSNWNHVWdleUJIVEZSR0xDQkhURlJHVEc5aFpHVnlVR3gxWjJsdUxDQkhURlJHVUdGeWMyVnlJSDBnWm5KdmJTQW5kR2h5WldVdlpYaGhiWEJzWlhNdmFuTnRMMnh2WVdSbGNuTXZSMHhVUmt4dllXUmxjaTVxY3ljN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVaDFiV0Z1YjJsa0lIMGdabkp2YlNBbkxpNHZhSFZ0WVc1dmFXUXZWbEpOU0hWdFlXNXZhV1FuTzF4dWFXMXdiM0owSUhzZ1oyeDBaa1Y0ZEhKaFkzUlFjbWx0YVhScGRtVnpSbkp2YlU1dlpHVnpJSDBnWm5KdmJTQW5MaTR2ZFhScGJITXZaMngwWmtWNGRISmhZM1JRY21sdGFYUnBkbVZ6Um5KdmJVNXZaR1VuTzF4dWFXMXdiM0owSUhzZ1ZsSk5SbWx5YzNSUVpYSnpiMjRnZlNCbWNtOXRJQ2N1TDFaU1RVWnBjbk4wVUdWeWMyOXVKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dWbEpOUm1seWMzUlFaWEp6YjI1TlpYTm9RVzV1YjNSaGRHbHZiaUI5SUdaeWIyMGdKeTR2VmxKTlJtbHljM1JRWlhKemIyNU5aWE5vUVc1dWIzUmhkR2x2YmljN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1VWVYQmxJSDBnWm5KdmJTQW5MaTlXVWsxR2FYSnpkRkJsY25OdmJrMWxjMmhCYm01dmRHRjBhVzl1Vkhsd1pTYzdYRzVwYlhCdmNuUWdleUJIVEZSR0lHRnpJRWRNVkVaVFkyaGxiV0VnZlNCbWNtOXRJQ2RBWjJ4MFppMTBjbUZ1YzJadmNtMHZZMjl5WlNjN1hHNWNiaThxS2x4dUlDb2dVRzl6YzJsaWJHVWdjM0JsWXlCMlpYSnphVzl1Y3lCcGRDQnlaV052WjI1cGVtVnpMbHh1SUNvdlhHNWpiMjV6ZENCUVQxTlRTVUpNUlY5VFVFVkRYMVpGVWxOSlQwNVRJRDBnYm1WM0lGTmxkQ2hiSnpFdU1DY3NJQ2N4TGpBdFltVjBZU2RkS1R0Y2JseHVMeW9xWEc0Z0tpQkJJSEJzZFdkcGJpQnZaaUJIVEZSR1RHOWhaR1Z5SUhSb1lYUWdhVzF3YjNKMGN5QmhJSHRBYkdsdWF5QldVazFHYVhKemRGQmxjbk52Ym4wZ1puSnZiU0JoSUZaU1RTQmxlSFJsYm5OcGIyNGdiMllnWVNCSFRGUkdMbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlJtbHljM1JRWlhKemIyNU1iMkZrWlhKUWJIVm5hVzRnYVcxd2JHVnRaVzUwY3lCSFRGUkdURzloWkdWeVVHeDFaMmx1SUh0Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlIQmhjbk5sY2pvZ1IweFVSbEJoY25ObGNqdGNibHh1SUNCd2RXSnNhV01nWjJWMElHNWhiV1VvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0F2THlCWFpTQnphRzkxYkdRZ2RYTmxJSFJvWlNCbGVIUmxibk5wYjI0Z2JtRnRaU0JwYm5OMFpXRmtJR0oxZENCM1pTQm9ZWFpsSUcxMWJIUnBjR3hsSUhCc2RXZHBibk1nWm05eUlHRnVJR1Y0ZEdWdWMybHZiaTR1TGx4dUlDQWdJSEpsZEhWeWJpQW5WbEpOUm1seWMzUlFaWEp6YjI1TWIyRmtaWEpRYkhWbmFXNG5PMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0hCaGNuTmxjam9nUjB4VVJsQmhjbk5sY2lrZ2UxeHVJQ0FnSUhSb2FYTXVjR0Z5YzJWeUlEMGdjR0Z5YzJWeU8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHRnplVzVqSUdGbWRHVnlVbTl2ZENobmJIUm1PaUJIVEZSR0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdkbkp0U0hWdFlXNXZhV1FnUFNCbmJIUm1MblZ6WlhKRVlYUmhMblp5YlVoMWJXRnViMmxrSUdGeklGWlNUVWgxYldGdWIybGtJSHdnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnTHk4Z1pYaHdiR2xqYVhSc2VTQmthWE4wYVc1bmRXbHphQ0J1ZFd4c0lHRnVaQ0IxYm1SbFptbHVaV1JjYmlBZ0lDQXZMeUJ6YVc1alpTQjJjbTFJZFcxaGJtOXBaQ0J0YVdkb2RDQmlaU0J1ZFd4c0lHRnpJR0VnY21WemRXeDBYRzRnSUNBZ2FXWWdLSFp5YlVoMWJXRnViMmxrSUQwOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2gyY20xSWRXMWhibTlwWkNBOVBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ2RXVWsxR2FYSnpkRkJsY25OdmJreHZZV1JsY2xCc2RXZHBiam9nZG5KdFNIVnRZVzV2YVdRZ2FYTWdkVzVrWldacGJtVmtMaUJXVWsxSWRXMWhibTlwWkV4dllXUmxjbEJzZFdkcGJpQm9ZWFpsSUhSdklHSmxJSFZ6WldRZ1ptbHljM1FuTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JuYkhSbUxuVnpaWEpFWVhSaExuWnliVVpwY25OMFVHVnljMjl1SUQwZ1lYZGhhWFFnZEdocGN5NWZhVzF3YjNKMEtHZHNkR1lzSUhaeWJVaDFiV0Z1YjJsa0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJKYlhCdmNuUWdZU0I3UUd4cGJtc2dWbEpOUm1seWMzUlFaWEp6YjI1OUlHWnliMjBnWVNCV1VrMHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JuYkhSbUlFRWdjR0Z5YzJWa0lISmxjM1ZzZENCdlppQkhURlJHSUhSaGEyVnVJR1p5YjIwZ1IweFVSa3h2WVdSbGNseHVJQ0FnS2lCQWNHRnlZVzBnYUhWdFlXNXZhV1FnUVNCN1FHeHBibXNnVmxKTlNIVnRZVzV2YVdSOUlHbHVjM1JoYm1ObElIUm9ZWFFnY21Wd2NtVnpaVzUwY3lCMGFHVWdWbEpOWEc0Z0lDQXFMMXh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDJsdGNHOXlkQ2huYkhSbU9pQkhURlJHTENCb2RXMWhibTlwWkRvZ1ZsSk5TSFZ0WVc1dmFXUWdmQ0J1ZFd4c0tUb2dVSEp2YldselpUeFdVazFHYVhKemRGQmxjbk52YmlCOElHNTFiR3crSUh0Y2JpQWdJQ0JwWmlBb2FIVnRZVzV2YVdRZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZGpGU1pYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxsOTJNVWx0Y0c5eWRDaG5iSFJtTENCb2RXMWhibTlwWkNrN1hHNGdJQ0FnYVdZZ0tIWXhVbVZ6ZFd4MEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RqRlNaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdkakJTWlhOMWJIUWdQU0JoZDJGcGRDQjBhR2x6TGw5Mk1FbHRjRzl5ZENobmJIUm1MQ0JvZFcxaGJtOXBaQ2s3WEc0Z0lDQWdhV1lnS0hZd1VtVnpkV3gwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZGpCU1pYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJRjkyTVVsdGNHOXlkQ2huYkhSbU9pQkhURlJHTENCb2RXMWhibTlwWkRvZ1ZsSk5TSFZ0WVc1dmFXUXBPaUJRY205dGFYTmxQRlpTVFVacGNuTjBVR1Z5YzI5dUlId2diblZzYkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR3B6YjI0Z1BTQjBhR2x6TG5CaGNuTmxjaTVxYzI5dUlHRnpJRWRNVkVaVFkyaGxiV0V1U1VkTVZFWTdYRzVjYmlBZ0lDQXZMeUJsWVhKc2VTQmhZbTl5ZENCcFppQnBkQ0JrYjJWemJpZDBJSFZ6WlNCMmNtMWNiaUFnSUNCamIyNXpkQ0JwYzFaU1RWVnpaV1FnUFNCcWMyOXVMbVY0ZEdWdWMybHZibk5WYzJWa1B5NXBibVJsZUU5bUtDZFdVazFEWDNaeWJTY3BJQ0U5UFNBdE1UdGNiaUFnSUNCcFppQW9JV2x6VmxKTlZYTmxaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdaWGgwWlc1emFXOXVJRDBnYW5OdmJpNWxlSFJsYm5OcGIyNXpQeTViSjFaU1RVTmZkbkp0SjEwZ1lYTWdWakZXVWsxVFkyaGxiV0V1VmxKTlExWlNUU0I4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb0lXVjRkR1Z1YzJsdmJpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2MzQmxZMVpsY25OcGIyNGdQU0JsZUhSbGJuTnBiMjR1YzNCbFkxWmxjbk5wYjI0N1hHNGdJQ0FnYVdZZ0tDRlFUMU5UU1VKTVJWOVRVRVZEWDFaRlVsTkpUMDVUTG1oaGN5aHpjR1ZqVm1WeWMybHZiaWtwSUh0Y2JpQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGdWbEpOUm1seWMzUlFaWEp6YjI1TWIyRmtaWEpRYkhWbmFXNDZJRlZ1YTI1dmQyNGdWbEpOUTE5MmNtMGdjM0JsWTFabGNuTnBiMjRnWENJa2UzTndaV05XWlhKemFXOXVmVndpWUNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J6WTJobGJXRkdhWEp6ZEZCbGNuTnZiaUE5SUdWNGRHVnVjMmx2Ymk1bWFYSnpkRkJsY25OdmJqdGNiaUFnSUNCcFppQW9JWE5qYUdWdFlVWnBjbk4wVUdWeWMyOXVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnRaWE5vUVc1dWIzUmhkR2x2Ym5NNklGWlNUVVpwY25OMFVHVnljMjl1VFdWemFFRnVibTkwWVhScGIyNWJYU0E5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJRzV2WkdWUWNtbHRhWFJwZG1WelRXRndJRDBnWVhkaGFYUWdaMngwWmtWNGRISmhZM1JRY21sdGFYUnBkbVZ6Um5KdmJVNXZaR1Z6S0dkc2RHWXBPMXh1SUNBZ0lFRnljbUY1TG1aeWIyMG9ibTlrWlZCeWFXMXBkR2wyWlhOTllYQXVaVzUwY21sbGN5Z3BLUzVtYjNKRllXTm9LQ2hiYm05a1pVbHVaR1Y0TENCd2NtbHRhWFJwZG1WelhTa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZVzV1YjNSaGRHbHZiaUE5SUhOamFHVnRZVVpwY25OMFVHVnljMjl1TG0xbGMyaEJibTV2ZEdGMGFXOXVjMXh1SUNBZ0lDQWdJQ0EvSUhOamFHVnRZVVpwY25OMFVHVnljMjl1TG0xbGMyaEJibTV2ZEdGMGFXOXVjeTVtYVc1a0tDaGhLU0E5UGlCaExtNXZaR1VnUFQwOUlHNXZaR1ZKYm1SbGVDbGNiaUFnSUNBZ0lDQWdPaUIxYm1SbFptbHVaV1E3WEc1Y2JpQWdJQ0FnSUcxbGMyaEJibTV2ZEdGMGFXOXVjeTV3ZFhOb0tIdGNiaUFnSUNBZ0lDQWdiV1Z6YUdWek9pQndjbWx0YVhScGRtVnpMRnh1SUNBZ0lDQWdJQ0IwZVhCbE9pQmhibTV2ZEdGMGFXOXVQeTUwZVhCbElEOC9JQ2RpYjNSb0p5eGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJXVWsxR2FYSnpkRkJsY25OdmJpaG9kVzFoYm05cFpDd2diV1Z6YUVGdWJtOTBZWFJwYjI1ektUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1gzWXdTVzF3YjNKMEtHZHNkR1k2SUVkTVZFWXNJR2gxYldGdWIybGtPaUJXVWsxSWRXMWhibTlwWkNrNklGQnliMjFwYzJVOFZsSk5SbWx5YzNSUVpYSnpiMjRnZkNCdWRXeHNQaUI3WEc0Z0lDQWdZMjl1YzNRZ2FuTnZiaUE5SUhSb2FYTXVjR0Z5YzJWeUxtcHpiMjRnWVhNZ1IweFVSbE5qYUdWdFlTNUpSMHhVUmp0Y2JseHVJQ0FnSUdOdmJuTjBJSFp5YlVWNGRDQTlJR3B6YjI0dVpYaDBaVzV6YVc5dWN6OHVWbEpOSUdGeklGWXdWbEpOTGxaU1RTQjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvSVhaeWJVVjRkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjMk5vWlcxaFJtbHljM1JRWlhKemIyNDZJRll3VmxKTkxrWnBjbk4wVUdWeWMyOXVJSHdnZFc1a1pXWnBibVZrSUQwZ2RuSnRSWGgwTG1acGNuTjBVR1Z5YzI5dU8xeHVJQ0FnSUdsbUlDZ2hjMk5vWlcxaFJtbHljM1JRWlhKemIyNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHMWxjMmhCYm01dmRHRjBhVzl1Y3pvZ1ZsSk5SbWx5YzNSUVpYSnpiMjVOWlhOb1FXNXViM1JoZEdsdmJsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdibTlrWlZCeWFXMXBkR2wyWlhOTllYQWdQU0JoZDJGcGRDQm5iSFJtUlhoMGNtRmpkRkJ5YVcxcGRHbDJaWE5HY205dFRtOWtaWE1vWjJ4MFppazdYRzVjYmlBZ0lDQkJjbkpoZVM1bWNtOXRLRzV2WkdWUWNtbHRhWFJwZG1WelRXRndMbVZ1ZEhKcFpYTW9LU2t1Wm05eVJXRmphQ2dvVzI1dlpHVkpibVJsZUN3Z2NISnBiV2wwYVhabGMxMHBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5qYUdWdFlVNXZaR1VnUFNCcWMyOXVMbTV2WkdWeklWdHViMlJsU1c1a1pYaGRPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQm1iR0ZuSUQwZ2MyTm9aVzFoUm1seWMzUlFaWEp6YjI0dWJXVnphRUZ1Ym05MFlYUnBiMjV6WEc0Z0lDQWdJQ0FnSUQ4Z2MyTm9aVzFoUm1seWMzUlFaWEp6YjI0dWJXVnphRUZ1Ym05MFlYUnBiMjV6TG1acGJtUW9LR0VwSUQwK0lHRXViV1Z6YUNBOVBUMGdjMk5vWlcxaFRtOWtaUzV0WlhOb0tWeHVJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQWdJQ0FnYldWemFFRnVibTkwWVhScGIyNXpMbkIxYzJnb2UxeHVJQ0FnSUNBZ0lDQnRaWE5vWlhNNklIQnlhVzFwZEdsMlpYTXNYRzRnSUNBZ0lDQWdJSFI1Y0dVNklIUm9hWE11WDJOdmJuWmxjblJXTUVac1lXZFViMVl4Vkhsd1pTaG1iR0ZuUHk1bWFYSnpkRkJsY25OdmJrWnNZV2NwTEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnYm1WM0lGWlNUVVpwY25OMFVHVnljMjl1S0doMWJXRnViMmxrTENCdFpYTm9RVzV1YjNSaGRHbHZibk1wTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCZlkyOXVkbVZ5ZEZZd1JteGhaMVJ2VmpGVWVYQmxLR1pzWVdjNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDazZJRlpTVFVacGNuTjBVR1Z5YzI5dVRXVnphRUZ1Ym05MFlYUnBiMjVVZVhCbElIdGNiaUFnSUNCcFppQW9abXhoWnlBOVBUMGdKMFpwY25OMFVHVnljMjl1VDI1c2VTY3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW5abWx5YzNSUVpYSnpiMjVQYm14NUp6dGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHWnNZV2NnUFQwOUlDZFVhR2x5WkZCbGNuTnZiazl1YkhrbktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z0ozUm9hWEprVUdWeWMyOXVUMjVzZVNjN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNobWJHRm5JRDA5UFNBblFYVjBieWNwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFuWVhWMGJ5YzdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFuWW05MGFDYzdYRzRnSUNBZ2ZWeHVJQ0I5WEc1OVhHNGlMQ0l2S2lCbGMyeHBiblF0WkdsellXSnNaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym1GdGFXNW5MV052Ym5abGJuUnBiMjRnS2k5Y2JseHVaWGh3YjNKMElHTnZibk4wSUZaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1VWVYQmxJRDBnZTF4dUlDQkJkWFJ2T2lBbllYVjBieWNzWEc0Z0lFSnZkR2c2SUNkaWIzUm9KeXhjYmlBZ1ZHaHBjbVJRWlhKemIyNVBibXg1T2lBbmRHaHBjbVJRWlhKemIyNVBibXg1Snl4Y2JpQWdSbWx5YzNSUVpYSnpiMjVQYm14NU9pQW5abWx5YzNSUVpYSnpiMjVQYm14NUp5eGNibjBnWVhNZ1kyOXVjM1E3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRlpTVFVacGNuTjBVR1Z5YzI5dVRXVnphRUZ1Ym05MFlYUnBiMjVVZVhCbElEMWNiaUFnZEhsd1pXOW1JRlpTVFVacGNuTjBVR1Z5YzI5dVRXVnphRUZ1Ym05MFlYUnBiMjVVZVhCbFcydGxlVzltSUhSNWNHVnZaaUJXVWsxR2FYSnpkRkJsY25OdmJrMWxjMmhCYm01dmRHRjBhVzl1Vkhsd1pWMDdYRzRpTENKcGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdleUJXVWsxSWRXMWhia0p2Ym1VZ2ZTQm1jbTl0SUNjdUxpOVdVazFJZFcxaGJrSnZibVVuTzF4dWFXMXdiM0owSUhzZ1ZsSk5TSFZ0WVc1dmFXUWdmU0JtY205dElDY3VMaTlXVWsxSWRXMWhibTlwWkNjN1hHNWNibU52Ym5OMElGOTJNMEVnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVZMjl1YzNRZ1gzWXpRaUE5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNWpiMjV6ZENCZmNYVmhkRUVnUFNCdVpYY2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpZ3BPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOU0hWdFlXNXZhV1JJWld4d1pYSWdaWGgwWlc1a2N5QlVTRkpGUlM1SGNtOTFjQ0I3WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCMmNtMUlkVzFoYm05cFpEb2dWbEpOU0hWdFlXNXZhV1E3WEc0Z0lIQnlhWFpoZEdVZ1gySnZibVZCZUdWelRXRndPaUJOWVhBOFZsSk5TSFZ0WVc1Q2IyNWxMQ0JVU0ZKRlJTNUJlR1Z6U0dWc2NHVnlQanRjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9hSFZ0WVc1dmFXUTZJRlpTVFVoMWJXRnViMmxrS1NCN1hHNGdJQ0FnYzNWd1pYSW9LVHRjYmx4dUlDQWdJSFJvYVhNdWRuSnRTSFZ0WVc1dmFXUWdQU0JvZFcxaGJtOXBaRHRjYmx4dUlDQWdJSFJvYVhNdVgySnZibVZCZUdWelRXRndJRDBnYm1WM0lFMWhjQ2dwTzF4dVhHNGdJQ0FnVDJKcVpXTjBMblpoYkhWbGN5aG9kVzFoYm05cFpDNW9kVzFoYmtKdmJtVnpLUzVtYjNKRllXTm9LQ2hpYjI1bEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h3WlhJZ1BTQnVaWGNnVkVoU1JVVXVRWGhsYzBobGJIQmxjaWd4TGpBcE8xeHVYRzRnSUNBZ0lDQm9aV3h3WlhJdWJXRjBjbWw0UVhWMGIxVndaR0YwWlNBOUlHWmhiSE5sTzF4dVhHNGdJQ0FnSUNBb2FHVnNjR1Z5TG0xaGRHVnlhV0ZzSUdGeklGUklVa1ZGTGsxaGRHVnlhV0ZzS1M1a1pYQjBhRlJsYzNRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNob1pXeHdaWEl1YldGMFpYSnBZV3dnWVhNZ1ZFaFNSVVV1VFdGMFpYSnBZV3dwTG1SbGNIUm9WM0pwZEdVZ1BTQm1ZV3h6WlR0Y2JseHVJQ0FnSUNBZ2RHaHBjeTVoWkdRb2FHVnNjR1Z5S1R0Y2JseHVJQ0FnSUNBZ2RHaHBjeTVmWW05dVpVRjRaWE5OWVhBdWMyVjBLR0p2Ym1Vc0lHaGxiSEJsY2lrN1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1pHbHpjRzl6WlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0JCY25KaGVTNW1jbTl0S0hSb2FYTXVYMkp2Ym1WQmVHVnpUV0Z3TG5aaGJIVmxjeWdwS1M1bWIzSkZZV05vS0NoaGVHVnpLU0E5UGlCN1hHNGdJQ0FnSUNCaGVHVnpMbWRsYjIxbGRISjVMbVJwYzNCdmMyVW9LVHRjYmlBZ0lDQWdJQ2hoZUdWekxtMWhkR1Z5YVdGc0lHRnpJRlJJVWtWRkxrMWhkR1Z5YVdGc0tTNWthWE53YjNObEtDazdYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdkWEJrWVhSbFRXRjBjbWw0VjI5eWJHUW9abTl5WTJVNklHSnZiMnhsWVc0cE9pQjJiMmxrSUh0Y2JpQWdJQ0JCY25KaGVTNW1jbTl0S0hSb2FYTXVYMkp2Ym1WQmVHVnpUV0Z3TG1WdWRISnBaWE1vS1NrdVptOXlSV0ZqYUNnb1cySnZibVVzSUdGNFpYTmRLU0E5UGlCN1hHNGdJQ0FnSUNCaWIyNWxMbTV2WkdVdWRYQmtZWFJsVjI5eWJHUk5ZWFJ5YVhnb2RISjFaU3dnWm1Gc2MyVXBPMXh1WEc0Z0lDQWdJQ0JpYjI1bExtNXZaR1V1YldGMGNtbDRWMjl5YkdRdVpHVmpiMjF3YjNObEtGOTJNMEVzSUY5eGRXRjBRU3dnWDNZelFpazdYRzVjYmlBZ0lDQWdJR052Ym5OMElITmpZV3hsSUQwZ1gzWXpRUzV6WlhRb01DNHhMQ0F3TGpFc0lEQXVNU2t1WkdsMmFXUmxLRjkyTTBJcE8xeHVJQ0FnSUNBZ1lYaGxjeTV0WVhSeWFYZ3VZMjl3ZVNoaWIyNWxMbTV2WkdVdWJXRjBjbWw0VjI5eWJHUXBMbk5qWVd4bEtITmpZV3hsS1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUhOMWNHVnlMblZ3WkdGMFpVMWhkSEpwZUZkdmNteGtLR1p2Y21ObEtUdGNiaUFnZlZ4dWZWeHVJaXdpTHlvZ1pYTnNhVzUwTFdScGMyRmliR1VnUUhSNWNHVnpZM0pwY0hRdFpYTnNhVzUwTDI1aGJXbHVaeTFqYjI1MlpXNTBhVzl1SUNvdlhHNWNibWx0Y0c5eWRDQjdJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVWdmU0JtY205dElDY3VMMVpTVFVoMWJXRnVRbTl1WlU1aGJXVW5PMXh1WEc0dktpcGNiaUFxSUZSb1pTQnNhWE4wSUc5bUlIdEFiR2x1YXlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsZlM0Z1JHVndaVzVrWlc1amVTQmhkMkZ5WlM1Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElGWlNUVWgxYldGdVFtOXVaVXhwYzNRNklGWlNUVWgxYldGdVFtOXVaVTVoYldWYlhTQTlJRnRjYmlBZ0oyaHBjSE1uTEZ4dUlDQW5jM0JwYm1VbkxGeHVJQ0FuWTJobGMzUW5MRnh1SUNBbmRYQndaWEpEYUdWemRDY3NYRzRnSUNkdVpXTnJKeXhjYmx4dUlDQW5hR1ZoWkNjc1hHNGdJQ2RzWldaMFJYbGxKeXhjYmlBZ0ozSnBaMmgwUlhsbEp5eGNiaUFnSjJwaGR5Y3NYRzVjYmlBZ0oyeGxablJWY0hCbGNreGxaeWNzWEc0Z0lDZHNaV1owVEc5M1pYSk1aV2NuTEZ4dUlDQW5iR1ZtZEVadmIzUW5MRnh1SUNBbmJHVm1kRlJ2WlhNbkxGeHVYRzRnSUNkeWFXZG9kRlZ3Y0dWeVRHVm5KeXhjYmlBZ0ozSnBaMmgwVEc5M1pYSk1aV2NuTEZ4dUlDQW5jbWxuYUhSR2IyOTBKeXhjYmlBZ0ozSnBaMmgwVkc5bGN5Y3NYRzVjYmlBZ0oyeGxablJUYUc5MWJHUmxjaWNzWEc0Z0lDZHNaV1owVlhCd1pYSkJjbTBuTEZ4dUlDQW5iR1ZtZEV4dmQyVnlRWEp0Snl4Y2JpQWdKMnhsWm5SSVlXNWtKeXhjYmx4dUlDQW5jbWxuYUhSVGFHOTFiR1JsY2ljc1hHNGdJQ2R5YVdkb2RGVndjR1Z5UVhKdEp5eGNiaUFnSjNKcFoyaDBURzkzWlhKQmNtMG5MRnh1SUNBbmNtbG5hSFJJWVc1a0p5eGNibHh1SUNBbmJHVm1kRlJvZFcxaVRXVjBZV05oY25CaGJDY3NYRzRnSUNkc1pXWjBWR2gxYldKUWNtOTRhVzFoYkNjc1hHNGdJQ2RzWldaMFZHaDFiV0pFYVhOMFlXd25MRnh1SUNBbmJHVm1kRWx1WkdWNFVISnZlR2x0WVd3bkxGeHVJQ0FuYkdWbWRFbHVaR1Y0U1c1MFpYSnRaV1JwWVhSbEp5eGNiaUFnSjJ4bFpuUkpibVJsZUVScGMzUmhiQ2NzWEc0Z0lDZHNaV1owVFdsa1pHeGxVSEp2ZUdsdFlXd25MRnh1SUNBbmJHVm1kRTFwWkdSc1pVbHVkR1Z5YldWa2FXRjBaU2NzWEc0Z0lDZHNaV1owVFdsa1pHeGxSR2x6ZEdGc0p5eGNiaUFnSjJ4bFpuUlNhVzVuVUhKdmVHbHRZV3duTEZ4dUlDQW5iR1ZtZEZKcGJtZEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQW5iR1ZtZEZKcGJtZEVhWE4wWVd3bkxGeHVJQ0FuYkdWbWRFeHBkSFJzWlZCeWIzaHBiV0ZzSnl4Y2JpQWdKMnhsWm5STWFYUjBiR1ZKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0FuYkdWbWRFeHBkSFJzWlVScGMzUmhiQ2NzWEc1Y2JpQWdKM0pwWjJoMFZHaDFiV0pOWlhSaFkyRnljR0ZzSnl4Y2JpQWdKM0pwWjJoMFZHaDFiV0pRY205NGFXMWhiQ2NzWEc0Z0lDZHlhV2RvZEZSb2RXMWlSR2x6ZEdGc0p5eGNiaUFnSjNKcFoyaDBTVzVrWlhoUWNtOTRhVzFoYkNjc1hHNGdJQ2R5YVdkb2RFbHVaR1Y0U1c1MFpYSnRaV1JwWVhSbEp5eGNiaUFnSjNKcFoyaDBTVzVrWlhoRWFYTjBZV3duTEZ4dUlDQW5jbWxuYUhSTmFXUmtiR1ZRY205NGFXMWhiQ2NzWEc0Z0lDZHlhV2RvZEUxcFpHUnNaVWx1ZEdWeWJXVmthV0YwWlNjc1hHNGdJQ2R5YVdkb2RFMXBaR1JzWlVScGMzUmhiQ2NzWEc0Z0lDZHlhV2RvZEZKcGJtZFFjbTk0YVcxaGJDY3NYRzRnSUNkeWFXZG9kRkpwYm1kSmJuUmxjbTFsWkdsaGRHVW5MRnh1SUNBbmNtbG5hSFJTYVc1blJHbHpkR0ZzSnl4Y2JpQWdKM0pwWjJoMFRHbDBkR3hsVUhKdmVHbHRZV3duTEZ4dUlDQW5jbWxuYUhSTWFYUjBiR1ZKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0FuY21sbmFIUk1hWFIwYkdWRWFYTjBZV3duTEZ4dVhUdGNiaUlzSWk4cUlHVnpiR2x1ZEMxa2FYTmhZbXhsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dVlXMXBibWN0WTI5dWRtVnVkR2x2YmlBcUwxeHVYRzR2S2lwY2JpQXFJRlJvWlNCdVlXMWxjeUJ2WmlCN1FHeHBibXNnVmxKTlNIVnRZVzV2YVdSOUlHSnZibVVnYm1GdFpYTXVYRzRnS2x4dUlDb2dVbVZtT2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmRuSnRMV012ZG5KdExYTndaV05wWm1sallYUnBiMjR2WW14dllpOXRZWE4wWlhJdmMzQmxZMmxtYVdOaGRHbHZiaTlXVWsxRFgzWnliUzB4TGpBdmFIVnRZVzV2YVdRdWJXUmNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVWdQU0I3WEc0Z0lFaHBjSE02SUNkb2FYQnpKeXhjYmlBZ1UzQnBibVU2SUNkemNHbHVaU2NzWEc0Z0lFTm9aWE4wT2lBblkyaGxjM1FuTEZ4dUlDQlZjSEJsY2tOb1pYTjBPaUFuZFhCd1pYSkRhR1Z6ZENjc1hHNGdJRTVsWTJzNklDZHVaV05ySnl4Y2JseHVJQ0JJWldGa09pQW5hR1ZoWkNjc1hHNGdJRXhsWm5SRmVXVTZJQ2RzWldaMFJYbGxKeXhjYmlBZ1VtbG5hSFJGZVdVNklDZHlhV2RvZEVWNVpTY3NYRzRnSUVwaGR6b2dKMnBoZHljc1hHNWNiaUFnVEdWbWRGVndjR1Z5VEdWbk9pQW5iR1ZtZEZWd2NHVnlUR1ZuSnl4Y2JpQWdUR1ZtZEV4dmQyVnlUR1ZuT2lBbmJHVm1kRXh2ZDJWeVRHVm5KeXhjYmlBZ1RHVm1kRVp2YjNRNklDZHNaV1owUm05dmRDY3NYRzRnSUV4bFpuUlViMlZ6T2lBbmJHVm1kRlJ2WlhNbkxGeHVYRzRnSUZKcFoyaDBWWEJ3WlhKTVpXYzZJQ2R5YVdkb2RGVndjR1Z5VEdWbkp5eGNiaUFnVW1sbmFIUk1iM2RsY2t4bFp6b2dKM0pwWjJoMFRHOTNaWEpNWldjbkxGeHVJQ0JTYVdkb2RFWnZiM1E2SUNkeWFXZG9kRVp2YjNRbkxGeHVJQ0JTYVdkb2RGUnZaWE02SUNkeWFXZG9kRlJ2WlhNbkxGeHVYRzRnSUV4bFpuUlRhRzkxYkdSbGNqb2dKMnhsWm5SVGFHOTFiR1JsY2ljc1hHNGdJRXhsWm5SVmNIQmxja0Z5YlRvZ0oyeGxablJWY0hCbGNrRnliU2NzWEc0Z0lFeGxablJNYjNkbGNrRnliVG9nSjJ4bFpuUk1iM2RsY2tGeWJTY3NYRzRnSUV4bFpuUklZVzVrT2lBbmJHVm1kRWhoYm1RbkxGeHVYRzRnSUZKcFoyaDBVMmh2ZFd4a1pYSTZJQ2R5YVdkb2RGTm9iM1ZzWkdWeUp5eGNiaUFnVW1sbmFIUlZjSEJsY2tGeWJUb2dKM0pwWjJoMFZYQndaWEpCY20wbkxGeHVJQ0JTYVdkb2RFeHZkMlZ5UVhKdE9pQW5jbWxuYUhSTWIzZGxja0Z5YlNjc1hHNGdJRkpwWjJoMFNHRnVaRG9nSjNKcFoyaDBTR0Z1WkNjc1hHNWNiaUFnVEdWbWRGUm9kVzFpVFdWMFlXTmhjbkJoYkRvZ0oyeGxablJVYUhWdFlrMWxkR0ZqWVhKd1lXd25MRnh1SUNCTVpXWjBWR2gxYldKUWNtOTRhVzFoYkRvZ0oyeGxablJVYUhWdFlsQnliM2hwYldGc0p5eGNiaUFnVEdWbWRGUm9kVzFpUkdsemRHRnNPaUFuYkdWbWRGUm9kVzFpUkdsemRHRnNKeXhjYmlBZ1RHVm1kRWx1WkdWNFVISnZlR2x0WVd3NklDZHNaV1owU1c1a1pYaFFjbTk0YVcxaGJDY3NYRzRnSUV4bFpuUkpibVJsZUVsdWRHVnliV1ZrYVdGMFpUb2dKMnhsWm5SSmJtUmxlRWx1ZEdWeWJXVmthV0YwWlNjc1hHNGdJRXhsWm5SSmJtUmxlRVJwYzNSaGJEb2dKMnhsWm5SSmJtUmxlRVJwYzNSaGJDY3NYRzRnSUV4bFpuUk5hV1JrYkdWUWNtOTRhVzFoYkRvZ0oyeGxablJOYVdSa2JHVlFjbTk0YVcxaGJDY3NYRzRnSUV4bFpuUk5hV1JrYkdWSmJuUmxjbTFsWkdsaGRHVTZJQ2RzWldaMFRXbGtaR3hsU1c1MFpYSnRaV1JwWVhSbEp5eGNiaUFnVEdWbWRFMXBaR1JzWlVScGMzUmhiRG9nSjJ4bFpuUk5hV1JrYkdWRWFYTjBZV3duTEZ4dUlDQk1aV1owVW1sdVoxQnliM2hwYldGc09pQW5iR1ZtZEZKcGJtZFFjbTk0YVcxaGJDY3NYRzRnSUV4bFpuUlNhVzVuU1c1MFpYSnRaV1JwWVhSbE9pQW5iR1ZtZEZKcGJtZEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQk1aV1owVW1sdVowUnBjM1JoYkRvZ0oyeGxablJTYVc1blJHbHpkR0ZzSnl4Y2JpQWdUR1ZtZEV4cGRIUnNaVkJ5YjNocGJXRnNPaUFuYkdWbWRFeHBkSFJzWlZCeWIzaHBiV0ZzSnl4Y2JpQWdUR1ZtZEV4cGRIUnNaVWx1ZEdWeWJXVmthV0YwWlRvZ0oyeGxablJNYVhSMGJHVkpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQk1aV1owVEdsMGRHeGxSR2x6ZEdGc09pQW5iR1ZtZEV4cGRIUnNaVVJwYzNSaGJDY3NYRzVjYmlBZ1VtbG5hSFJVYUhWdFlrMWxkR0ZqWVhKd1lXdzZJQ2R5YVdkb2RGUm9kVzFpVFdWMFlXTmhjbkJoYkNjc1hHNGdJRkpwWjJoMFZHaDFiV0pRY205NGFXMWhiRG9nSjNKcFoyaDBWR2gxYldKUWNtOTRhVzFoYkNjc1hHNGdJRkpwWjJoMFZHaDFiV0pFYVhOMFlXdzZJQ2R5YVdkb2RGUm9kVzFpUkdsemRHRnNKeXhjYmlBZ1VtbG5hSFJKYm1SbGVGQnliM2hwYldGc09pQW5jbWxuYUhSSmJtUmxlRkJ5YjNocGJXRnNKeXhjYmlBZ1VtbG5hSFJKYm1SbGVFbHVkR1Z5YldWa2FXRjBaVG9nSjNKcFoyaDBTVzVrWlhoSmJuUmxjbTFsWkdsaGRHVW5MRnh1SUNCU2FXZG9kRWx1WkdWNFJHbHpkR0ZzT2lBbmNtbG5hSFJKYm1SbGVFUnBjM1JoYkNjc1hHNGdJRkpwWjJoMFRXbGtaR3hsVUhKdmVHbHRZV3c2SUNkeWFXZG9kRTFwWkdSc1pWQnliM2hwYldGc0p5eGNiaUFnVW1sbmFIUk5hV1JrYkdWSmJuUmxjbTFsWkdsaGRHVTZJQ2R5YVdkb2RFMXBaR1JzWlVsdWRHVnliV1ZrYVdGMFpTY3NYRzRnSUZKcFoyaDBUV2xrWkd4bFJHbHpkR0ZzT2lBbmNtbG5hSFJOYVdSa2JHVkVhWE4wWVd3bkxGeHVJQ0JTYVdkb2RGSnBibWRRY205NGFXMWhiRG9nSjNKcFoyaDBVbWx1WjFCeWIzaHBiV0ZzSnl4Y2JpQWdVbWxuYUhSU2FXNW5TVzUwWlhKdFpXUnBZWFJsT2lBbmNtbG5hSFJTYVc1blNXNTBaWEp0WldScFlYUmxKeXhjYmlBZ1VtbG5hSFJTYVc1blJHbHpkR0ZzT2lBbmNtbG5hSFJTYVc1blJHbHpkR0ZzSnl4Y2JpQWdVbWxuYUhSTWFYUjBiR1ZRY205NGFXMWhiRG9nSjNKcFoyaDBUR2wwZEd4bFVISnZlR2x0WVd3bkxGeHVJQ0JTYVdkb2RFeHBkSFJzWlVsdWRHVnliV1ZrYVdGMFpUb2dKM0pwWjJoMFRHbDBkR3hsU1c1MFpYSnRaV1JwWVhSbEp5eGNiaUFnVW1sbmFIUk1hWFIwYkdWRWFYTjBZV3c2SUNkeWFXZG9kRXhwZEhSc1pVUnBjM1JoYkNjc1hHNTlJR0Z6SUdOdmJuTjBPMXh1WEc1bGVIQnZjblFnZEhsd1pTQldVazFJZFcxaGJrSnZibVZPWVcxbElEMGdkSGx3Wlc5bUlGWlNUVWgxYldGdVFtOXVaVTVoYldWYmEyVjViMllnZEhsd1pXOW1JRlpTVFVoMWJXRnVRbTl1WlU1aGJXVmRPMXh1SWl3aUx5b2daWE5zYVc1MExXUnBjMkZpYkdVZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNWhiV2x1WnkxamIyNTJaVzUwYVc5dUlDb3ZYRzVjYm1sdGNHOXlkQ0I3SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VnZlNCbWNtOXRJQ2N1TDFaU1RVaDFiV0Z1UW05dVpVNWhiV1VuTzF4dVhHNHZLaXBjYmlBcUlFRnVJRzlpYW1WamRDQjBhR0YwSUcxaGNITWdabkp2YlNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bFRtRnRaWDBnZEc4Z2FYUnpJSEJoY21WdWRDQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxUbUZ0WlgwdVhHNGdLbHh1SUNvZ1VtVm1PaUJvZEhSd2N6b3ZMMmRwZEdoMVlpNWpiMjB2ZG5KdExXTXZkbkp0TFhOd1pXTnBabWxqWVhScGIyNHZZbXh2WWk5dFlYTjBaWEl2YzNCbFkybG1hV05oZEdsdmJpOVdVazFEWDNaeWJTMHhMakF2YUhWdFlXNXZhV1F1YldSY2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElGWlNUVWgxYldGdVFtOXVaVkJoY21WdWRFMWhjRG9nZXlCYlltOXVaU0JwYmlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsWFRvZ1ZsSk5TSFZ0WVc1Q2IyNWxUbUZ0WlNCOElHNTFiR3dnZlNBOUlIdGNiaUFnYUdsd2N6b2diblZzYkN4Y2JpQWdjM0JwYm1VNklDZG9hWEJ6Snl4Y2JpQWdZMmhsYzNRNklDZHpjR2x1WlNjc1hHNGdJSFZ3Y0dWeVEyaGxjM1E2SUNkamFHVnpkQ2NzWEc0Z0lHNWxZMnM2SUNkMWNIQmxja05vWlhOMEp5eGNibHh1SUNCb1pXRmtPaUFuYm1WamF5Y3NYRzRnSUd4bFpuUkZlV1U2SUNkb1pXRmtKeXhjYmlBZ2NtbG5hSFJGZVdVNklDZG9aV0ZrSnl4Y2JpQWdhbUYzT2lBbmFHVmhaQ2NzWEc1Y2JpQWdiR1ZtZEZWd2NHVnlUR1ZuT2lBbmFHbHdjeWNzWEc0Z0lHeGxablJNYjNkbGNreGxaem9nSjJ4bFpuUlZjSEJsY2t4bFp5Y3NYRzRnSUd4bFpuUkdiMjkwT2lBbmJHVm1kRXh2ZDJWeVRHVm5KeXhjYmlBZ2JHVm1kRlJ2WlhNNklDZHNaV1owUm05dmRDY3NYRzVjYmlBZ2NtbG5hSFJWY0hCbGNreGxaem9nSjJocGNITW5MRnh1SUNCeWFXZG9kRXh2ZDJWeVRHVm5PaUFuY21sbmFIUlZjSEJsY2t4bFp5Y3NYRzRnSUhKcFoyaDBSbTl2ZERvZ0ozSnBaMmgwVEc5M1pYSk1aV2NuTEZ4dUlDQnlhV2RvZEZSdlpYTTZJQ2R5YVdkb2RFWnZiM1FuTEZ4dVhHNGdJR3hsWm5SVGFHOTFiR1JsY2pvZ0ozVndjR1Z5UTJobGMzUW5MRnh1SUNCc1pXWjBWWEJ3WlhKQmNtMDZJQ2RzWldaMFUyaHZkV3hrWlhJbkxGeHVJQ0JzWldaMFRHOTNaWEpCY20wNklDZHNaV1owVlhCd1pYSkJjbTBuTEZ4dUlDQnNaV1owU0dGdVpEb2dKMnhsWm5STWIzZGxja0Z5YlNjc1hHNWNiaUFnY21sbmFIUlRhRzkxYkdSbGNqb2dKM1Z3Y0dWeVEyaGxjM1FuTEZ4dUlDQnlhV2RvZEZWd2NHVnlRWEp0T2lBbmNtbG5hSFJUYUc5MWJHUmxjaWNzWEc0Z0lISnBaMmgwVEc5M1pYSkJjbTA2SUNkeWFXZG9kRlZ3Y0dWeVFYSnRKeXhjYmlBZ2NtbG5hSFJJWVc1a09pQW5jbWxuYUhSTWIzZGxja0Z5YlNjc1hHNWNiaUFnYkdWbWRGUm9kVzFpVFdWMFlXTmhjbkJoYkRvZ0oyeGxablJJWVc1a0p5eGNiaUFnYkdWbWRGUm9kVzFpVUhKdmVHbHRZV3c2SUNkc1pXWjBWR2gxYldKTlpYUmhZMkZ5Y0dGc0p5eGNiaUFnYkdWbWRGUm9kVzFpUkdsemRHRnNPaUFuYkdWbWRGUm9kVzFpVUhKdmVHbHRZV3duTEZ4dUlDQnNaV1owU1c1a1pYaFFjbTk0YVcxaGJEb2dKMnhsWm5SSVlXNWtKeXhjYmlBZ2JHVm1kRWx1WkdWNFNXNTBaWEp0WldScFlYUmxPaUFuYkdWbWRFbHVaR1Y0VUhKdmVHbHRZV3duTEZ4dUlDQnNaV1owU1c1a1pYaEVhWE4wWVd3NklDZHNaV1owU1c1a1pYaEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQnNaV1owVFdsa1pHeGxVSEp2ZUdsdFlXdzZJQ2RzWldaMFNHRnVaQ2NzWEc0Z0lHeGxablJOYVdSa2JHVkpiblJsY20xbFpHbGhkR1U2SUNkc1pXWjBUV2xrWkd4bFVISnZlR2x0WVd3bkxGeHVJQ0JzWldaMFRXbGtaR3hsUkdsemRHRnNPaUFuYkdWbWRFMXBaR1JzWlVsdWRHVnliV1ZrYVdGMFpTY3NYRzRnSUd4bFpuUlNhVzVuVUhKdmVHbHRZV3c2SUNkc1pXWjBTR0Z1WkNjc1hHNGdJR3hsWm5SU2FXNW5TVzUwWlhKdFpXUnBZWFJsT2lBbmJHVm1kRkpwYm1kUWNtOTRhVzFoYkNjc1hHNGdJR3hsWm5SU2FXNW5SR2x6ZEdGc09pQW5iR1ZtZEZKcGJtZEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQnNaV1owVEdsMGRHeGxVSEp2ZUdsdFlXdzZJQ2RzWldaMFNHRnVaQ2NzWEc0Z0lHeGxablJNYVhSMGJHVkpiblJsY20xbFpHbGhkR1U2SUNkc1pXWjBUR2wwZEd4bFVISnZlR2x0WVd3bkxGeHVJQ0JzWldaMFRHbDBkR3hsUkdsemRHRnNPaUFuYkdWbWRFeHBkSFJzWlVsdWRHVnliV1ZrYVdGMFpTY3NYRzVjYmlBZ2NtbG5hSFJVYUhWdFlrMWxkR0ZqWVhKd1lXdzZJQ2R5YVdkb2RFaGhibVFuTEZ4dUlDQnlhV2RvZEZSb2RXMWlVSEp2ZUdsdFlXdzZJQ2R5YVdkb2RGUm9kVzFpVFdWMFlXTmhjbkJoYkNjc1hHNGdJSEpwWjJoMFZHaDFiV0pFYVhOMFlXdzZJQ2R5YVdkb2RGUm9kVzFpVUhKdmVHbHRZV3duTEZ4dUlDQnlhV2RvZEVsdVpHVjRVSEp2ZUdsdFlXdzZJQ2R5YVdkb2RFaGhibVFuTEZ4dUlDQnlhV2RvZEVsdVpHVjRTVzUwWlhKdFpXUnBZWFJsT2lBbmNtbG5hSFJKYm1SbGVGQnliM2hwYldGc0p5eGNiaUFnY21sbmFIUkpibVJsZUVScGMzUmhiRG9nSjNKcFoyaDBTVzVrWlhoSmJuUmxjbTFsWkdsaGRHVW5MRnh1SUNCeWFXZG9kRTFwWkdSc1pWQnliM2hwYldGc09pQW5jbWxuYUhSSVlXNWtKeXhjYmlBZ2NtbG5hSFJOYVdSa2JHVkpiblJsY20xbFpHbGhkR1U2SUNkeWFXZG9kRTFwWkdSc1pWQnliM2hwYldGc0p5eGNiaUFnY21sbmFIUk5hV1JrYkdWRWFYTjBZV3c2SUNkeWFXZG9kRTFwWkdSc1pVbHVkR1Z5YldWa2FXRjBaU2NzWEc0Z0lISnBaMmgwVW1sdVoxQnliM2hwYldGc09pQW5jbWxuYUhSSVlXNWtKeXhjYmlBZ2NtbG5hSFJTYVc1blNXNTBaWEp0WldScFlYUmxPaUFuY21sbmFIUlNhVzVuVUhKdmVHbHRZV3duTEZ4dUlDQnlhV2RvZEZKcGJtZEVhWE4wWVd3NklDZHlhV2RvZEZKcGJtZEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQnlhV2RvZEV4cGRIUnNaVkJ5YjNocGJXRnNPaUFuY21sbmFIUklZVzVrSnl4Y2JpQWdjbWxuYUhSTWFYUjBiR1ZKYm5SbGNtMWxaR2xoZEdVNklDZHlhV2RvZEV4cGRIUnNaVkJ5YjNocGJXRnNKeXhjYmlBZ2NtbG5hSFJNYVhSMGJHVkVhWE4wWVd3NklDZHlhV2RvZEV4cGRIUnNaVWx1ZEdWeWJXVmthV0YwWlNjc1hHNTlPMXh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1WEc0dktpcGNiaUFxSUVFZ1kyOXRjR0YwSUdaMWJtTjBhVzl1SUdadmNpQmdVWFZoZEdWeWJtbHZiaTVwYm5abGNuUW9LV0FnTHlCZ1VYVmhkR1Z5Ym1sdmJpNXBiblpsY25ObEtDbGdMbHh1SUNvZ1lGRjFZWFJsY201cGIyNHVhVzUyWlhKMEtDbGdJR2x6SUdsdWRISnZaSFZqWldRZ2FXNGdjakV5TXlCaGJtUWdZRkYxWVhSbGNtNXBiMjR1YVc1MlpYSnpaU2dwWUNCbGJXbDBjeUJoSUhkaGNtNXBibWN1WEc0Z0tpQlhaU0JoY21VZ1oyOXBibWNnZEc4Z2RYTmxJSFJvYVhNZ1kyOXRjR0YwSUdadmNpQmhJSGRvYVd4bExseHVJQ29nUUhCaGNtRnRJSFJoY21kbGRDQkJJSFJoY21kbGRDQnhkV0YwWlhKdWFXOXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeGRXRjBTVzUyWlhKMFEyOXRjR0YwUEZRZ1pYaDBaVzVrY3lCVVNGSkZSUzVSZFdGMFpYSnVhVzl1UGloMFlYSm5aWFE2SUZRcE9pQlVJSHRjYmlBZ2FXWWdLQ2gwWVhKblpYUWdZWE1nWVc1NUtTNXBiblpsY25RcElIdGNiaUFnSUNCMFlYSm5aWFF1YVc1MlpYSjBLQ2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnS0hSaGNtZGxkQ0JoY3lCaGJua3BMbWx1ZG1WeWMyVW9LVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUIwWVhKblpYUTdYRzU5WEc0aUxDSnBiWEJ2Y25RZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1cGJYQnZjblFnZXlCeGRXRjBTVzUyWlhKMFEyOXRjR0YwSUgwZ1puSnZiU0FuTGk0dmRYUnBiSE12Y1hWaGRFbHVkbVZ5ZEVOdmJYQmhkQ2M3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFVoMWJXRnVRbTl1WlNCOUlHWnliMjBnSnk0dlZsSk5TSFZ0WVc1Q2IyNWxKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dWbEpOU0hWdFlXNUNiMjVsY3lCOUlHWnliMjBnSnk0dlZsSk5TSFZ0WVc1Q2IyNWxjeWM3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVWdmU0JtY205dElDY3VMMVpTVFVoMWJXRnVRbTl1WlU1aGJXVW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QldVazFRYjNObElIMGdabkp2YlNBbkxpOVdVazFRYjNObEp6dGNibHh1WTI5dWMzUWdYM1l6UVNBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVqYjI1emRDQmZjWFZoZEVFZ1BTQnVaWGNnVkVoU1JVVXVVWFZoZEdWeWJtbHZiaWdwTzF4dVhHNHZLaXBjYmlBcUlFRWdZMnhoYzNNZ2NtVndjbVZ6Wlc1MGN5QjBhR1VnVW1sbklHOW1JR0VnVmxKTkxseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOVW1sbklIdGNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2UwQnNhVzVySUZaU1RVaDFiV0Z1UW05dVpYTjlJSFJvWVhRZ1kyOXVkR0ZwYm5NZ1lXeHNJSFJvWlNCb2RXMWhiaUJpYjI1bGN5QnZaaUIwYUdVZ1ZsSk5MbHh1SUNBZ0tpQlpiM1VnYldsbmFIUWdkMkZ1ZENCMGJ5Qm5aWFFnZEdobGMyVWdZbTl1WlhNZ2RYTnBibWNnZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrTG1kbGRFSnZibVY5TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdoMWJXRnVRbTl1WlhNNklGWlNUVWgxYldGdVFtOXVaWE03WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnZTBCc2FXNXJJRlpTVFZCdmMyVjlJSFJvWVhRZ2FYTWdhWFJ6SUdSbFptRjFiSFFnYzNSaGRHVXVYRzRnSUNBcUlFNXZkR1VnZEdoaGRDQnBkQ2R6SUc1dmRDQmpiMjF3WVhScFlteGxJSGRwZEdnZ2UwQnNhVzVySUhObGRGQnZjMlY5SUdGdVpDQjdRR3hwYm1zZ1oyVjBVRzl6Wlgwc0lITnBibU5sSUdsMElHTnZiblJoYVc1eklHNXZiaTF5Wld4aGRHbDJaU0IyWVd4MVpYTWdiMllnWldGamFDQnNiMk5oYkNCMGNtRnVjMlp2Y20xekxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmxjM1JRYjNObE9pQldVazFRYjNObE8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGNtVmhkR1VnWVNCdVpYY2dlMEJzYVc1cklGWlNUVWgxYldGdWIybGtmUzVjYmlBZ0lDb2dRSEJoY21GdElHaDFiV0Z1UW05dVpYTWdRU0I3UUd4cGJtc2dWbEpOU0hWdFlXNUNiMjVsYzMwZ1kyOXVkR0ZwYm5NZ1lXeHNJSFJvWlNCaWIyNWxjeUJ2WmlCMGFHVWdibVYzSUdoMWJXRnViMmxrWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2FIVnRZVzVDYjI1bGN6b2dWbEpOU0hWdFlXNUNiMjVsY3lrZ2UxeHVJQ0FnSUhSb2FYTXVhSFZ0WVc1Q2IyNWxjeUE5SUdoMWJXRnVRbTl1WlhNN1hHNWNiaUFnSUNCMGFHbHpMbkpsYzNSUWIzTmxJRDBnZEdocGN5NW5aWFJCWW5OdmJIVjBaVkJ2YzJVb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUdOMWNuSmxiblFnWVdKemIyeDFkR1VnY0c5elpTQnZaaUIwYUdseklHaDFiV0Z1YjJsa0lHRnpJR0VnZTBCc2FXNXJJRlpTVFZCdmMyVjlMbHh1SUNBZ0tpQk9iM1JsSUhSb1lYUWdkR2hsSUc5MWRIQjFkQ0J5WlhOMWJIUWdkMmxzYkNCamIyNTBZV2x1SUdsdWFYUnBZV3dnYzNSaGRHVWdiMllnZEdobElGWlNUU0JoYm1RZ2JtOTBJR052YlhCaGRHbGliR1VnWW1WMGQyVmxiaUJrYVdabVpYSmxiblFnYlc5a1pXeHpMbHh1SUNBZ0tpQlpiM1VnYldsbmFIUWdkMkZ1ZENCMGJ5QjFjMlVnZTBCc2FXNXJJR2RsZEZCdmMyVjlJR2x1YzNSbFlXUXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwUVdKemIyeDFkR1ZRYjNObEtDazZJRlpTVFZCdmMyVWdlMXh1SUNBZ0lHTnZibk4wSUhCdmMyVWdQU0I3ZlNCaGN5QldVazFRYjNObE8xeHVYRzRnSUNBZ1QySnFaV04wTG10bGVYTW9kR2hwY3k1b2RXMWhia0p2Ym1WektTNW1iM0pGWVdOb0tDaDJjbTFDYjI1bFRtRnRaVk4wY21sdVp5a2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkbkp0UW05dVpVNWhiV1VnUFNCMmNtMUNiMjVsVG1GdFpWTjBjbWx1WnlCaGN5QldVazFJZFcxaGJrSnZibVZPWVcxbE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYm05a1pTQTlJSFJvYVhNdVoyVjBRbTl1WlU1dlpHVW9kbkp0UW05dVpVNWhiV1VwTzF4dVhHNGdJQ0FnSUNBdkx5QkpaMjV2Y21VZ2QyaGxiaUIwYUdWeVpTQmhjbVVnYm04Z1ltOXVaU0J2YmlCMGFHVWdWbEpOU0hWdFlXNXZhV1JjYmlBZ0lDQWdJR2xtSUNnaGJtOWtaU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklFZGxkQ0IwYUdVZ2NHOXphWFJwYjI0Z0x5QnliM1JoZEdsdmJpQm1jbTl0SUhSb1pTQnViMlJsWEc0Z0lDQWdJQ0JmZGpOQkxtTnZjSGtvYm05a1pTNXdiM05wZEdsdmJpazdYRzRnSUNBZ0lDQmZjWFZoZEVFdVkyOXdlU2h1YjJSbExuRjFZWFJsY201cGIyNHBPMXh1WEc0Z0lDQWdJQ0F2THlCRGIyNTJaWEowSUhSdklISmhkeUJoY25KaGVYTmNiaUFnSUNBZ0lIQnZjMlZiZG5KdFFtOXVaVTVoYldWZElEMGdlMXh1SUNBZ0lDQWdJQ0J3YjNOcGRHbHZiam9nWDNZelFTNTBiMEZ5Y21GNUtDa2dZWE1nVzI1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSmRMRnh1SUNBZ0lDQWdJQ0J5YjNSaGRHbHZiam9nWDNGMVlYUkJMblJ2UVhKeVlYa29LU0JoY3lCYmJuVnRZbVZ5TENCdWRXMWlaWElzSUc1MWJXSmxjaXdnYm5WdFltVnlYU3hjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjRzl6WlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z2RHaGxJR04xY25KbGJuUWdjRzl6WlNCdlppQjBhR2x6SUdoMWJXRnViMmxrSUdGeklHRWdlMEJzYVc1cklGWlNUVkJ2YzJWOUxseHVJQ0FnS2x4dUlDQWdLaUJGWVdOb0lIUnlZVzV6Wm05eWJTQnBjeUJoSUd4dlkyRnNJSFJ5WVc1elptOXliU0J5Wld4aGRHbDJaU0JtY205dElISmxjM1FnY0c5elpTQW9WQzF3YjNObEtTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJRYjNObEtDazZJRlpTVFZCdmMyVWdlMXh1SUNBZ0lHTnZibk4wSUhCdmMyVWdQU0I3ZlNCaGN5QldVazFRYjNObE8xeHVYRzRnSUNBZ1QySnFaV04wTG10bGVYTW9kR2hwY3k1b2RXMWhia0p2Ym1WektTNW1iM0pGWVdOb0tDaGliMjVsVG1GdFpWTjBjbWx1WnlrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ1ltOXVaVTVoYldVZ1BTQmliMjVsVG1GdFpWTjBjbWx1WnlCaGN5QldVazFJZFcxaGJrSnZibVZPWVcxbE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYm05a1pTQTlJSFJvYVhNdVoyVjBRbTl1WlU1dlpHVW9ZbTl1WlU1aGJXVXBPMXh1WEc0Z0lDQWdJQ0F2THlCSloyNXZjbVVnZDJobGJpQjBhR1Z5WlNCaGNtVWdibThnWW05dVpTQnZiaUIwYUdVZ1ZsSk5TSFZ0WVc1dmFXUmNiaUFnSUNBZ0lHbG1JQ2doYm05a1pTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQzh2SUZSaGEyVWdZU0JrYVdabUlHWnliMjBnY21WemRGQnZjMlZjYmlBZ0lDQWdJRjkyTTBFdWMyVjBLREFzSURBc0lEQXBPMXh1SUNBZ0lDQWdYM0YxWVhSQkxtbGtaVzUwYVhSNUtDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElISmxjM1JUZEdGMFpTQTlJSFJvYVhNdWNtVnpkRkJ2YzJWYlltOXVaVTVoYldWZE8xeHVJQ0FnSUNBZ2FXWWdLSEpsYzNSVGRHRjBaVDh1Y0c5emFYUnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ1gzWXpRUzVtY205dFFYSnlZWGtvY21WemRGTjBZWFJsTG5CdmMybDBhVzl1S1M1dVpXZGhkR1VvS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaHlaWE4wVTNSaGRHVS9Mbkp2ZEdGMGFXOXVLU0I3WEc0Z0lDQWdJQ0FnSUhGMVlYUkpiblpsY25SRGIyMXdZWFFvWDNGMVlYUkJMbVp5YjIxQmNuSmhlU2h5WlhOMFUzUmhkR1V1Y205MFlYUnBiMjRwS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0x5OGdSMlYwSUhSb1pTQndiM05wZEdsdmJpQXZJSEp2ZEdGMGFXOXVJR1p5YjIwZ2RHaGxJRzV2WkdWY2JpQWdJQ0FnSUY5Mk0wRXVZV1JrS0c1dlpHVXVjRzl6YVhScGIyNHBPMXh1SUNBZ0lDQWdYM0YxWVhSQkxuQnlaVzExYkhScGNHeDVLRzV2WkdVdWNYVmhkR1Z5Ym1sdmJpazdYRzVjYmlBZ0lDQWdJQzh2SUVOdmJuWmxjblFnZEc4Z2NtRjNJR0Z5Y21GNWMxeHVJQ0FnSUNBZ2NHOXpaVnRpYjI1bFRtRnRaVjBnUFNCN1hHNGdJQ0FnSUNBZ0lIQnZjMmwwYVc5dU9pQmZkak5CTG5SdlFYSnlZWGtvS1NCaGN5QmJiblZ0WW1WeUxDQnVkVzFpWlhJc0lHNTFiV0psY2wwc1hHNGdJQ0FnSUNBZ0lISnZkR0YwYVc5dU9pQmZjWFZoZEVFdWRHOUJjbkpoZVNncElHRnpJRnR1ZFcxaVpYSXNJRzUxYldKbGNpd2diblZ0WW1WeUxDQnVkVzFpWlhKZExGeHVJQ0FnSUNBZ2ZUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCd2IzTmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUV4bGRDQjBhR1VnYUhWdFlXNXZhV1FnWkc4Z1lTQnpjR1ZqYVdacFpXUWdjRzl6WlM1Y2JpQWdJQ3BjYmlBZ0lDb2dSV0ZqYUNCMGNtRnVjMlp2Y20wZ2FHRjJaU0IwYnlCaVpTQmhJR3h2WTJGc0lIUnlZVzV6Wm05eWJTQnlaV3hoZEdsMlpTQm1jbTl0SUhKbGMzUWdjRzl6WlNBb1ZDMXdiM05sS1M1Y2JpQWdJQ29nV1c5MUlHTmhiaUJ3WVhOeklIZG9ZWFFnZVc5MUlHZHZkQ0JtY205dElIdEFiR2x1YXlCblpYUlFiM05sZlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIQnZjMlZQWW1wbFkzUWdRU0JiVzFaU1RWQnZjMlZkWFNCMGFHRjBJSEpsY0hKbGMyVnVkSE1nWVNCemFXNW5iR1VnY0c5elpWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITmxkRkJ2YzJVb2NHOXpaVTlpYW1WamREb2dWbEpOVUc5elpTazZJSFp2YVdRZ2UxeHVJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLSEJ2YzJWUFltcGxZM1FwTG1admNrVmhZMmdvS0Z0aWIyNWxUbUZ0WlZOMGNtbHVaeXdnYzNSaGRHVmRLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JpYjI1bFRtRnRaU0E5SUdKdmJtVk9ZVzFsVTNSeWFXNW5JR0Z6SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1U3WEc0Z0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2RHaHBjeTVuWlhSQ2IyNWxUbTlrWlNoaWIyNWxUbUZ0WlNrN1hHNWNiaUFnSUNBZ0lDOHZJRWxuYm05eVpTQjNhR1Z1SUhSb1pYSmxJR0Z5WlNCdWJ5QmliMjVsSUhSb1lYUWdhWE1nWkdWbWFXNWxaQ0JwYmlCMGFHVWdjRzl6WlNCdmJpQjBhR1VnVmxKTlNIVnRZVzV2YVdSY2JpQWdJQ0FnSUdsbUlDZ2hibTlrWlNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzUlRkR0YwWlNBOUlIUm9hWE11Y21WemRGQnZjMlZiWW05dVpVNWhiV1ZkTzF4dUlDQWdJQ0FnYVdZZ0tDRnlaWE4wVTNSaGRHVXBJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1NYUW5jeUIyWlhKNUlIVnViR2xyWld4NUxpQlFiM056YVdKc2VTQmhJR0oxWjF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklFRndjR3g1SUhSb1pTQnpkR0YwWlNCMGJ5QjBhR1VnWVdOMGRXRnNJR0p2Ym1WY2JpQWdJQ0FnSUdsbUlDaHpkR0YwWlQ4dWNHOXphWFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdibTlrWlM1d2IzTnBkR2x2Ymk1bWNtOXRRWEp5WVhrb2MzUmhkR1V1Y0c5emFYUnBiMjRwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h5WlhOMFUzUmhkR1V1Y0c5emFYUnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnViMlJsTG5CdmMybDBhVzl1TG1Ga1pDaGZkak5CTG1aeWIyMUJjbkpoZVNoeVpYTjBVM1JoZEdVdWNHOXphWFJwYjI0cEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2MzUmhkR1UvTG5KdmRHRjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lHNXZaR1V1Y1hWaGRHVnlibWx2Ymk1bWNtOXRRWEp5WVhrb2MzUmhkR1V1Y205MFlYUnBiMjRwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h5WlhOMFUzUmhkR1V1Y205MFlYUnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnViMlJsTG5GMVlYUmxjbTVwYjI0dWJYVnNkR2x3Ykhrb1gzRjFZWFJCTG1aeWIyMUJjbkpoZVNoeVpYTjBVM1JoZEdVdWNtOTBZWFJwYjI0cEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGMyVjBJSFJvWlNCb2RXMWhibTlwWkNCMGJ5QnBkSE1nY21WemRDQndiM05sTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbGMyVjBVRzl6WlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0JQWW1wbFkzUXVaVzUwY21sbGN5aDBhR2x6TG5KbGMzUlFiM05sS1M1bWIzSkZZV05vS0NoYlltOXVaVTVoYldVc0lISmxjM1JkS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnZEdocGN5NW5aWFJDYjI1bFRtOWtaU2hpYjI1bFRtRnRaU0JoY3lCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLQ0Z1YjJSbEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdhV1lnS0hKbGMzUS9MbkJ2YzJsMGFXOXVLU0I3WEc0Z0lDQWdJQ0FnSUc1dlpHVXVjRzl6YVhScGIyNHVabkp2YlVGeWNtRjVLSEpsYzNRdWNHOXphWFJwYjI0cE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvY21WemREOHVjbTkwWVhScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnYm05a1pTNXhkV0YwWlhKdWFXOXVMbVp5YjIxQmNuSmhlU2h5WlhOMExuSnZkR0YwYVc5dUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdZU0JpYjI1bElHSnZkVzVrSUhSdklHRWdjM0JsWTJsbWFXVmtJSHRBYkdsdWF5QldVazFJZFcxaGJrSnZibVZPWVcxbGZTd2dZWE1nWVNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bGZTNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJRzVoYldVZ1RtRnRaU0J2WmlCMGFHVWdZbTl1WlNCNWIzVWdkMkZ1ZEZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRFSnZibVVvYm1GdFpUb2dWbEpOU0hWdFlXNUNiMjVsVG1GdFpTazZJRlpTVFVoMWJXRnVRbTl1WlNCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVhSFZ0WVc1Q2IyNWxjMXR1WVcxbFhTQS9QeUIxYm1SbFptbHVaV1E3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUdFZ1ltOXVaU0JpYjNWdVpDQjBieUJoSUhOd1pXTnBabWxsWkNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bFRtRnRaWDBzSUdGeklHRWdZRlJJVWtWRkxrOWlhbVZqZERORVlDNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJRzVoYldVZ1RtRnRaU0J2WmlCMGFHVWdZbTl1WlNCNWIzVWdkMkZ1ZEZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRFSnZibVZPYjJSbEtHNWhiV1U2SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VwT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ0I4SUc1MWJHd2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWgxYldGdVFtOXVaWE5iYm1GdFpWMC9MbTV2WkdVZ1B6OGdiblZzYkR0Y2JpQWdmVnh1ZlZ4dUlpd2lhVzF3YjNKMElDb2dZWE1nVkVoU1JVVWdabkp2YlNBbmRHaHlaV1VuTzF4dWFXMXdiM0owSUhzZ1ZsSk5TSFZ0WVc1Q2IyNWxUbUZ0WlN3Z1ZsSk5TSFZ0WVc1Q2IyNWxjeUI5SUdaeWIyMGdKeTRuTzF4dWFXMXdiM0owSUhzZ1ZsSk5TSFZ0WVc1Q2IyNWxUR2x6ZENCOUlHWnliMjBnSnk0dlZsSk5TSFZ0WVc1Q2IyNWxUR2x6ZENjN1hHNXBiWEJ2Y25RZ2V5QldVazFJZFcxaGJrSnZibVZRWVhKbGJuUk5ZWEFnZlNCbWNtOXRJQ2N1TDFaU1RVaDFiV0Z1UW05dVpWQmhjbVZ1ZEUxaGNDYzdYRzVwYlhCdmNuUWdleUJXVWsxU2FXY2dmU0JtY205dElDY3VMMVpTVFZKcFp5YzdYRzVjYm1OdmJuTjBJRjkyTTBFZ1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WTI5dWMzUWdYM0YxWVhSQklEMGdibVYzSUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRvS1R0Y2JtTnZibk4wSUY5aWIyNWxWMjl5YkdSUWIzTWdQU0J1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWdwTzF4dVhHNHZLaXBjYmlBcUlFRWdZMnhoYzNNZ2NtVndjbVZ6Wlc1MGN5QjBhR1VnYm05eWJXRnNhWHBsWkNCU2FXY2diMllnWVNCV1VrMHVYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxSWRXMWhibTlwWkZKcFp5QmxlSFJsYm1SeklGWlNUVkpwWnlCN1hHNGdJSEJ5YjNSbFkzUmxaQ0J6ZEdGMGFXTWdYM05sZEhWd1ZISmhibk5tYjNKdGN5aHRiMlJsYkZKcFp6b2dWbEpOVW1sbktUb2dlMXh1SUNBZ0lISnBaMEp2Ym1Wek9pQldVazFJZFcxaGJrSnZibVZ6TzF4dUlDQWdJSEp2YjNRNklGUklVa1ZGTGs5aWFtVmpkRE5FTzF4dUlDQWdJSEJoY21WdWRGZHZjbXhrVW05MFlYUnBiMjV6T2lCN0lGdGliMjVsVG1GdFpTQnBiaUJXVWsxSWRXMWhia0p2Ym1WT1lXMWxYVDg2SUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRnZlR0Y2JpQWdJQ0JpYjI1bFVtOTBZWFJwYjI1ek9pQjdJRnRpYjI1bFRtRnRaU0JwYmlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsWFQ4NklGUklVa1ZGTGxGMVlYUmxjbTVwYjI0Z2ZUdGNiaUFnZlNCN1hHNGdJQ0FnWTI5dWMzUWdjbTl2ZENBOUlHNWxkeUJVU0ZKRlJTNVBZbXBsWTNRelJDZ3BPMXh1SUNBZ0lISnZiM1F1Ym1GdFpTQTlJQ2RXVWsxSWRXMWhibTlwWkZKcFp5YzdYRzVjYmlBZ0lDQXZMeUJ6ZEc5eVpTQmliMjVsVjI5eWJHUlFiM05wZEdsdmJuTXNJR0p2Ym1WWGIzSnNaRkp2ZEdGMGFXOXVjeXdnWVc1a0lIQmhjbVZ1ZEZkdmNteGtVbTkwWVhScGIyNXpYRzRnSUNBZ1kyOXVjM1FnWW05dVpWZHZjbXhrVUc5emFYUnBiMjV6T2lCN0lGdGliMjVsVG1GdFpTQnBiaUJXVWsxSWRXMWhia0p2Ym1WT1lXMWxYVDg2SUZSSVVrVkZMbFpsWTNSdmNqTWdmU0E5SUh0OU8xeHVJQ0FnSUdOdmJuTjBJR0p2Ym1WWGIzSnNaRkp2ZEdGMGFXOXVjem9nZXlCYlltOXVaVTVoYldVZ2FXNGdWbEpOU0hWdFlXNUNiMjVsVG1GdFpWMC9PaUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVJSDBnUFNCN2ZUdGNiaUFnSUNCamIyNXpkQ0JpYjI1bFVtOTBZWFJwYjI1ek9pQjdJRnRpYjI1bFRtRnRaU0JwYmlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsWFQ4NklGUklVa1ZGTGxGMVlYUmxjbTVwYjI0Z2ZTQTlJSHQ5TzF4dUlDQWdJR052Ym5OMElIQmhjbVZ1ZEZkdmNteGtVbTkwWVhScGIyNXpPaUI3SUZ0aWIyNWxUbUZ0WlNCcGJpQldVazFJZFcxaGJrSnZibVZPWVcxbFhUODZJRlJJVWtWRkxsRjFZWFJsY201cGIyNGdmU0E5SUh0OU8xeHVYRzRnSUNBZ1ZsSk5TSFZ0WVc1Q2IyNWxUR2x6ZEM1bWIzSkZZV05vS0NoaWIyNWxUbUZ0WlNrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ1ltOXVaVTV2WkdVZ1BTQnRiMlJsYkZKcFp5NW5aWFJDYjI1bFRtOWtaU2hpYjI1bFRtRnRaU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaGliMjVsVG05a1pTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmliMjVsVjI5eWJHUlFiM05wZEdsdmJpQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR0p2Ym1WWGIzSnNaRkp2ZEdGMGFXOXVJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNibHh1SUNBZ0lDQWdJQ0JpYjI1bFRtOWtaUzUxY0dSaGRHVlhiM0pzWkUxaGRISnBlQ2gwY25WbExDQm1ZV3h6WlNrN1hHNGdJQ0FnSUNBZ0lHSnZibVZPYjJSbExtMWhkSEpwZUZkdmNteGtMbVJsWTI5dGNHOXpaU2hpYjI1bFYyOXliR1JRYjNOcGRHbHZiaXdnWW05dVpWZHZjbXhrVW05MFlYUnBiMjRzSUY5Mk0wRXBPMXh1WEc0Z0lDQWdJQ0FnSUdKdmJtVlhiM0pzWkZCdmMybDBhVzl1YzF0aWIyNWxUbUZ0WlYwZ1BTQmliMjVsVjI5eWJHUlFiM05wZEdsdmJqdGNiaUFnSUNBZ0lDQWdZbTl1WlZkdmNteGtVbTkwWVhScGIyNXpXMkp2Ym1WT1lXMWxYU0E5SUdKdmJtVlhiM0pzWkZKdmRHRjBhVzl1TzF4dUlDQWdJQ0FnSUNCaWIyNWxVbTkwWVhScGIyNXpXMkp2Ym1WT1lXMWxYU0E5SUdKdmJtVk9iMlJsTG5GMVlYUmxjbTVwYjI0dVkyeHZibVVvS1R0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSmxiblJYYjNKc1pGSnZkR0YwYVc5dUlEMGdibVYzSUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRvS1R0Y2JpQWdJQ0FnSUNBZ1ltOXVaVTV2WkdVdWNHRnlaVzUwUHk1dFlYUnlhWGhYYjNKc1pDNWtaV052YlhCdmMyVW9YM1l6UVN3Z2NHRnlaVzUwVjI5eWJHUlNiM1JoZEdsdmJpd2dYM1l6UVNrN1hHNGdJQ0FnSUNBZ0lIQmhjbVZ1ZEZkdmNteGtVbTkwWVhScGIyNXpXMkp2Ym1WT1lXMWxYU0E5SUhCaGNtVnVkRmR2Y214a1VtOTBZWFJwYjI0N1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdkx5QmlkV2xzWkNCeWFXY2dhR2xsY21GeVkyaDVJQ3NnYzNSdmNtVWdjR0Z5Wlc1MFYyOXliR1JTYjNSaGRHbHZibk5jYmlBZ0lDQmpiMjV6ZENCeWFXZENiMjVsY3pvZ1VHRnlkR2xoYkR4V1VrMUlkVzFoYmtKdmJtVnpQaUE5SUh0OU8xeHVJQ0FnSUZaU1RVaDFiV0Z1UW05dVpVeHBjM1F1Wm05eVJXRmphQ2dvWW05dVpVNWhiV1VwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUdKdmJtVk9iMlJsSUQwZ2JXOWtaV3hTYVdjdVoyVjBRbTl1WlU1dlpHVW9ZbTl1WlU1aGJXVXBPMXh1WEc0Z0lDQWdJQ0JwWmlBb1ltOXVaVTV2WkdVcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1ltOXVaVmR2Y214a1VHOXphWFJwYjI0Z1BTQmliMjVsVjI5eWJHUlFiM05wZEdsdmJuTmJZbTl1WlU1aGJXVmRJR0Z6SUZSSVVrVkZMbFpsWTNSdmNqTTdYRzVjYmlBZ0lDQWdJQ0FnTHk4Z2MyVmxJSFJvWlNCdVpXRnlaWE4wSUhCaGNtVnVkQ0J3YjNOcGRHbHZibHh1SUNBZ0lDQWdJQ0JzWlhRZ1kzVnljbVZ1ZEVKdmJtVk9ZVzFsT2lCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsSUh3Z2JuVnNiQ0E5SUdKdmJtVk9ZVzFsTzF4dUlDQWdJQ0FnSUNCc1pYUWdjR0Z5Wlc1MFFtOXVaVmR2Y214a1VHOXphWFJwYjI0NklGUklVa1ZGTGxabFkzUnZjak1nZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNod1lYSmxiblJDYjI1bFYyOXliR1JRYjNOcGRHbHZiaUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kzVnljbVZ1ZEVKdmJtVk9ZVzFsSUQwZ1ZsSk5TSFZ0WVc1Q2IyNWxVR0Z5Wlc1MFRXRndXMk4xY25KbGJuUkNiMjVsVG1GdFpWMDdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjFjbkpsYm5SQ2IyNWxUbUZ0WlNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2NHRnlaVzUwUW05dVpWZHZjbXhrVUc5emFYUnBiMjRnUFNCaWIyNWxWMjl5YkdSUWIzTnBkR2x2Ym5OYlkzVnljbVZ1ZEVKdmJtVk9ZVzFsWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQzh2SUdGa1pDQjBieUJvYVdWeVlYSmphSGxjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjbWxuUW05dVpVNXZaR1VnUFNCdVpYY2dWRWhTUlVVdVQySnFaV04wTTBRb0tUdGNiaUFnSUNBZ0lDQWdjbWxuUW05dVpVNXZaR1V1Ym1GdFpTQTlJQ2RPYjNKdFlXeHBlbVZrWHljZ0t5QmliMjVsVG05a1pTNXVZVzFsTzF4dVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGNtVnVkRkpwWjBKdmJtVk9iMlJsSUQwZ0tHTjFjbkpsYm5SQ2IyNWxUbUZ0WlNBL0lISnBaMEp2Ym1WelcyTjFjbkpsYm5SQ2IyNWxUbUZ0WlYwL0xtNXZaR1VnT2lCeWIyOTBLU0JoY3lCVVNGSkZSUzVQWW1wbFkzUXpSRHRjYmx4dUlDQWdJQ0FnSUNCd1lYSmxiblJTYVdkQ2IyNWxUbTlrWlM1aFpHUW9jbWxuUW05dVpVNXZaR1VwTzF4dUlDQWdJQ0FnSUNCeWFXZENiMjVsVG05a1pTNXdiM05wZEdsdmJpNWpiM0I1S0dKdmJtVlhiM0pzWkZCdmMybDBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSEJoY21WdWRFSnZibVZYYjNKc1pGQnZjMmwwYVc5dUtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21sblFtOXVaVTV2WkdVdWNHOXphWFJwYjI0dWMzVmlLSEJoY21WdWRFSnZibVZYYjNKc1pGQnZjMmwwYVc5dUtUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUhKcFowSnZibVZ6VzJKdmJtVk9ZVzFsWFNBOUlIc2dibTlrWlRvZ2NtbG5RbTl1WlU1dlpHVWdmVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnlhV2RDYjI1bGN6b2djbWxuUW05dVpYTWdZWE1nVmxKTlNIVnRZVzVDYjI1bGN5eGNiaUFnSUNBZ0lISnZiM1FzWEc0Z0lDQWdJQ0J3WVhKbGJuUlhiM0pzWkZKdmRHRjBhVzl1Y3l4Y2JpQWdJQ0FnSUdKdmJtVlNiM1JoZEdsdmJuTXNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQnZjbWxuYVc1aGJEb2dWbEpOVW1sbk8xeHVJQ0J3ZFdKc2FXTWdjbVZoWkc5dWJIa2djbTl2ZERvZ1ZFaFNSVVV1VDJKcVpXTjBNMFE3WEc0Z0lIQnliM1JsWTNSbFpDQnlaV0ZrYjI1c2VTQmZjR0Z5Wlc1MFYyOXliR1JTYjNSaGRHbHZibk02SUhzZ1cySnZibVZPWVcxbElHbHVJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVmRQem9nVkVoU1JVVXVVWFZoZEdWeWJtbHZiaUI5TzF4dUlDQndjbTkwWldOMFpXUWdjbVZoWkc5dWJIa2dYMkp2Ym1WU2IzUmhkR2x2Ym5NNklIc2dXMkp2Ym1WT1lXMWxJR2x1SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1ZkUHpvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlCOU8xeHVYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2lob2RXMWhibTlwWkRvZ1ZsSk5VbWxuS1NCN1hHNGdJQ0FnWTI5dWMzUWdleUJ5YVdkQ2IyNWxjeXdnY205dmRDd2djR0Z5Wlc1MFYyOXliR1JTYjNSaGRHbHZibk1zSUdKdmJtVlNiM1JoZEdsdmJuTWdmU0E5SUZaU1RVaDFiV0Z1YjJsa1VtbG5MbDl6WlhSMWNGUnlZVzV6Wm05eWJYTW9hSFZ0WVc1dmFXUXBPMXh1WEc0Z0lDQWdjM1Z3WlhJb2NtbG5RbTl1WlhNcE8xeHVYRzRnSUNBZ2RHaHBjeTV2Y21sbmFXNWhiQ0E5SUdoMWJXRnViMmxrTzF4dUlDQWdJSFJvYVhNdWNtOXZkQ0E5SUhKdmIzUTdYRzRnSUNBZ2RHaHBjeTVmY0dGeVpXNTBWMjl5YkdSU2IzUmhkR2x2Ym5NZ1BTQndZWEpsYm5SWGIzSnNaRkp2ZEdGMGFXOXVjenRjYmlBZ0lDQjBhR2x6TGw5aWIyNWxVbTkwWVhScGIyNXpJRDBnWW05dVpWSnZkR0YwYVc5dWN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJWY0dSaGRHVWdkR2hwY3lCb2RXMWhibTlwWkNCeWFXY3VYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdkWEJrWVhSbEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUZaU1RVaDFiV0Z1UW05dVpVeHBjM1F1Wm05eVJXRmphQ2dvWW05dVpVNWhiV1VwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUdKdmJtVk9iMlJsSUQwZ2RHaHBjeTV2Y21sbmFXNWhiQzVuWlhSQ2IyNWxUbTlrWlNoaWIyNWxUbUZ0WlNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2hpYjI1bFRtOWtaU0FoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEpwWjBKdmJtVk9iMlJsSUQwZ2RHaHBjeTVuWlhSQ2IyNWxUbTlrWlNoaWIyNWxUbUZ0WlNraE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSmxiblJYYjNKc1pGSnZkR0YwYVc5dUlEMGdkR2hwY3k1ZmNHRnlaVzUwVjI5eWJHUlNiM1JoZEdsdmJuTmJZbTl1WlU1aGJXVmRJVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhVzUyVUdGeVpXNTBWMjl5YkdSU2IzUmhkR2x2YmlBOUlGOXhkV0YwUVM1amIzQjVLSEJoY21WdWRGZHZjbXhrVW05MFlYUnBiMjRwTG1sdWRtVnlkQ2dwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JpYjI1bFVtOTBZWFJwYjI0Z1BTQjBhR2x6TGw5aWIyNWxVbTkwWVhScGIyNXpXMkp2Ym1WT1lXMWxYU0U3WEc1Y2JpQWdJQ0FnSUNBZ1ltOXVaVTV2WkdVdWNYVmhkR1Z5Ym1sdmJseHVJQ0FnSUNBZ0lDQWdJQzVqYjNCNUtISnBaMEp2Ym1WT2IyUmxMbkYxWVhSbGNtNXBiMjRwWEc0Z0lDQWdJQ0FnSUNBZ0xtMTFiSFJwY0d4NUtIQmhjbVZ1ZEZkdmNteGtVbTkwWVhScGIyNHBYRzRnSUNBZ0lDQWdJQ0FnTG5CeVpXMTFiSFJwY0d4NUtHbHVkbEJoY21WdWRGZHZjbXhrVW05MFlYUnBiMjRwWEc0Z0lDQWdJQ0FnSUNBZ0xtMTFiSFJwY0d4NUtHSnZibVZTYjNSaGRHbHZiaWs3WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdUVzkyWlNCMGFHVWdiV0Z6Y3lCalpXNTBaWElnYjJZZ2RHaGxJRlpTVFZ4dUlDQWdJQ0FnSUNCcFppQW9ZbTl1WlU1aGJXVWdQVDA5SUNkb2FYQnpKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdKdmJtVlhiM0pzWkZCdmMybDBhVzl1SUQwZ2NtbG5RbTl1WlU1dlpHVXVaMlYwVjI5eWJHUlFiM05wZEdsdmJpaGZZbTl1WlZkdmNteGtVRzl6S1R0Y2JpQWdJQ0FnSUNBZ0lDQmliMjVsVG05a1pTNXdZWEpsYm5RaExuVndaR0YwWlZkdmNteGtUV0YwY21sNEtIUnlkV1VzSUdaaGJITmxLVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3WVhKbGJuUlhiM0pzWkUxaGRISnBlQ0E5SUdKdmJtVk9iMlJsTG5CaGNtVnVkQ0V1YldGMGNtbDRWMjl5YkdRN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JHOWpZV3hRYjNOcGRHbHZiaUE5SUdKdmJtVlhiM0pzWkZCdmMybDBhVzl1TG1Gd2NHeDVUV0YwY21sNE5DaHdZWEpsYm5SWGIzSnNaRTFoZEhKcGVDNXBiblpsY25Rb0tTazdYRzRnSUNBZ0lDQWdJQ0FnWW05dVpVNXZaR1V1Y0c5emFYUnBiMjR1WTI5d2VTaHNiMk5oYkZCdmMybDBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1OVhHNGlMQ0pwYlhCdmNuUWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVaDFiV0Z1UW05dVpTQjlJR1p5YjIwZ0p5NHZWbEpOU0hWdFlXNUNiMjVsSnp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVmxKTlNIVnRZVzVDYjI1bGN5QjlJR1p5YjIwZ0p5NHZWbEpOU0hWdFlXNUNiMjVsY3ljN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VnZlNCbWNtOXRJQ2N1TDFaU1RVaDFiV0Z1UW05dVpVNWhiV1VuTzF4dWFXMXdiM0owSUhSNWNHVWdleUJXVWsxUWIzTmxJSDBnWm5KdmJTQW5MaTlXVWsxUWIzTmxKenRjYm1sdGNHOXlkQ0I3SUZaU1RWSnBaeUI5SUdaeWIyMGdKeTR2VmxKTlVtbG5KenRjYm1sdGNHOXlkQ0I3SUZaU1RVaDFiV0Z1YjJsa1VtbG5JSDBnWm5KdmJTQW5MaTlXVWsxSWRXMWhibTlwWkZKcFp5YzdYRzVjYmk4cUtseHVJQ29nUVNCamJHRnpjeUJ5WlhCeVpYTmxiblJ6SUdFZ2FIVnRZVzV2YVdRZ2IyWWdZU0JXVWswdVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QldVazFJZFcxaGJtOXBaQ0I3WEc0Z0lDOHFLbHh1SUNBZ0tpQlhhR1YwYUdWeUlHbDBJR052Y0dsbGN5QndiM05sSUdaeWIyMGdibTl5YldGc2FYcGxaRWgxYldGdVFtOXVaWE1nZEc4Z2NtRjNTSFZ0WVc1Q2IyNWxjeUJ2YmlCN1FHeHBibXNnZFhCa1lYUmxmUzVjYmlBZ0lDb2dZSFJ5ZFdWZ0lHSjVJR1JsWm1GMWJIUXVYRzRnSUNBcVhHNGdJQ0FxSUVCa1pXWmhkV3gwSUhSeWRXVmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmhkWFJ2VlhCa1lYUmxTSFZ0WVc1Q2IyNWxjem9nWW05dmJHVmhianRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0J5WVhjZ2NtbG5JRzltSUhSb1pTQldVazB1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5eVlYZElkVzFoYmtKdmJtVnpPaUJXVWsxU2FXYzdJQzh2SUZSUFJFODZJRkpsYm1GdFpWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklHNXZjbTFoYkdsNlpXUWdjbWxuSUc5bUlIUm9aU0JXVWswdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXViM0p0WVd4cGVtVmtTSFZ0WVc1Q2IyNWxjem9nVmxKTlNIVnRZVzV2YVdSU2FXYzdJQzh2SUZSUFJFODZJRkpsYm1GdFpWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVndjbVZqWVhSbFpDQkVaWEJ5WldOaGRHVmtMaUJWYzJVZ1pXbDBhR1Z5SUh0QWJHbHVheUJ5WVhkU1pYTjBVRzl6WlgwZ2IzSWdlMEJzYVc1cklHNXZjbTFoYkdsNlpXUlNaWE4wVUc5elpYMGdhVzV6ZEdWaFpDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFFnY21WemRGQnZjMlVvS1RvZ1ZsSk5VRzl6WlNCN1hHNGdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtDZFdVazFJZFcxaGJtOXBaRG9nY21WemRGQnZjMlVnYVhNZ1pHVndjbVZqWVhSbFpDNGdWWE5sSUdWcGRHaGxjaUJ5WVhkU1pYTjBVRzl6WlNCdmNpQnViM0p0WVd4cGVtVmtVbVZ6ZEZCdmMyVWdhVzV6ZEdWaFpDNG5LVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5KaGQxSmxjM1JRYjNObE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnZTBCc2FXNXJJRlpTVFZCdmMyVjlJRzltSUdsMGN5QnlZWGNnYUhWdFlXNGdZbTl1WlhNZ2RHaGhkQ0JwY3lCcGRITWdaR1ZtWVhWc2RDQnpkR0YwWlM1Y2JpQWdJQ29nVG05MFpTQjBhR0YwSUdsMEozTWdibTkwSUdOdmJYQmhkR2xpYkdVZ2QybDBhQ0I3UUd4cGJtc2djMlYwVW1GM1VHOXpaWDBnWVc1a0lIdEFiR2x1YXlCblpYUlNZWGRRYjNObGZTd2djMmx1WTJVZ2FYUWdZMjl1ZEdGcGJuTWdibTl1TFhKbGJHRjBhWFpsSUhaaGJIVmxjeUJ2WmlCbFlXTm9JR3h2WTJGc0lIUnlZVzV6Wm05eWJYTXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwSUhKaGQxSmxjM1JRYjNObEtDazZJRlpTVFZCdmMyVWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl5WVhkSWRXMWhia0p2Ym1WekxuSmxjM1JRYjNObE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnZTBCc2FXNXJJRlpTVFZCdmMyVjlJRzltSUdsMGN5QnViM0p0WVd4cGVtVmtJR2gxYldGdUlHSnZibVZ6SUhSb1lYUWdhWE1nYVhSeklHUmxabUYxYkhRZ2MzUmhkR1V1WEc0Z0lDQXFJRTV2ZEdVZ2RHaGhkQ0JwZENkeklHNXZkQ0JqYjIxd1lYUnBZbXhsSUhkcGRHZ2dlMEJzYVc1cklITmxkRTV2Y20xaGJHbDZaV1JRYjNObGZTQmhibVFnZTBCc2FXNXJJR2RsZEU1dmNtMWhiR2w2WldSUWIzTmxmU3dnYzJsdVkyVWdhWFFnWTI5dWRHRnBibk1nYm05dUxYSmxiR0YwYVhabElIWmhiSFZsY3lCdlppQmxZV05vSUd4dlkyRnNJSFJ5WVc1elptOXliWE11WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMElHNXZjbTFoYkdsNlpXUlNaWE4wVUc5elpTZ3BPaUJXVWsxUWIzTmxJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmYm05eWJXRnNhWHBsWkVoMWJXRnVRbTl1WlhNdWNtVnpkRkJ2YzJVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0J0WVhBZ1puSnZiU0I3UUd4cGJtc2dWbEpOU0hWdFlXNUNiMjVsVG1GdFpYMGdkRzhnY21GM0lIdEFiR2x1YXlCV1VrMUlkVzFoYmtKdmJtVjljeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhRZ2FIVnRZVzVDYjI1bGN5Z3BPaUJXVWsxSWRXMWhia0p2Ym1WeklIdGNiaUFnSUNBdkx5QmhiaUJoYkdsaGN5QnZaaUJnY21GM1NIVnRZVzVDYjI1bGMyQmNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWZjbUYzU0hWdFlXNUNiMjVsY3k1b2RXMWhia0p2Ym1Wek8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnYldGd0lHWnliMjBnZTBCc2FXNXJJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVjlJSFJ2SUhKaGR5QjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxmWE11WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMElISmhkMGgxYldGdVFtOXVaWE1vS1RvZ1ZsSk5TSFZ0WVc1Q2IyNWxjeUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNKaGQwaDFiV0Z1UW05dVpYTXVhSFZ0WVc1Q2IyNWxjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklHMWhjQ0JtY205dElIdEFiR2x1YXlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsZlNCMGJ5QnViM0p0WVd4cGVtVmtJSHRBYkdsdWF5QldVazFJZFcxaGJrSnZibVY5Y3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUWdibTl5YldGc2FYcGxaRWgxYldGdVFtOXVaWE1vS1RvZ1ZsSk5TSFZ0WVc1Q2IyNWxjeUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDI1dmNtMWhiR2w2WldSSWRXMWhia0p2Ym1WekxtaDFiV0Z1UW05dVpYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElISnZiM1FnYjJZZ2JtOXliV0ZzYVhwbFpDQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxmWE11WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMElHNXZjbTFoYkdsNlpXUklkVzFoYmtKdmJtVnpVbTl2ZENncE9pQlVTRkpGUlM1UFltcGxZM1F6UkNCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyNXZjbTFoYkdsNlpXUklkVzFoYmtKdmJtVnpMbkp2YjNRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdibVYzSUh0QWJHbHVheUJXVWsxSWRXMWhibTlwWkgwdVhHNGdJQ0FxSUVCd1lYSmhiU0JvZFcxaGJrSnZibVZ6SUVFZ2UwQnNhVzVySUZaU1RVaDFiV0Z1UW05dVpYTjlJR052Ym5SaGFXNXpJR0ZzYkNCMGFHVWdZbTl1WlhNZ2IyWWdkR2hsSUc1bGR5Qm9kVzFoYm05cFpGeHVJQ0FnS2lCQWNHRnlZVzBnWVhWMGIxVndaR0YwWlVoMWJXRnVRbTl1WlhNZ1YyaGxkR2hsY2lCcGRDQmpiM0JwWlhNZ2NHOXpaU0JtY205dElHNXZjbTFoYkdsNlpXUklkVzFoYmtKdmJtVnpJSFJ2SUhKaGQwaDFiV0Z1UW05dVpYTWdiMjRnZTBCc2FXNXJJSFZ3WkdGMFpYMHVJR0IwY25WbFlDQmllU0JrWldaaGRXeDBMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0doMWJXRnVRbTl1WlhNNklGWlNUVWgxYldGdVFtOXVaWE1zSUc5d2RHbHZibk0vT2lCN0lHRjFkRzlWY0dSaGRHVklkVzFoYmtKdmJtVnpQem9nWW05dmJHVmhiaUI5S1NCN1hHNGdJQ0FnZEdocGN5NWhkWFJ2VlhCa1lYUmxTSFZ0WVc1Q2IyNWxjeUE5SUc5d2RHbHZibk0vTG1GMWRHOVZjR1JoZEdWSWRXMWhia0p2Ym1WeklEOC9JSFJ5ZFdVN1hHNGdJQ0FnZEdocGN5NWZjbUYzU0hWdFlXNUNiMjVsY3lBOUlHNWxkeUJXVWsxU2FXY29hSFZ0WVc1Q2IyNWxjeWs3WEc0Z0lDQWdkR2hwY3k1ZmJtOXliV0ZzYVhwbFpFaDFiV0Z1UW05dVpYTWdQU0J1WlhjZ1ZsSk5TSFZ0WVc1dmFXUlNhV2NvZEdocGN5NWZjbUYzU0hWdFlXNUNiMjVsY3lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl3ZVNCMGFHVWdaMmwyWlc0Z2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa2ZTQnBiblJ2SUhSb2FYTWdiMjVsTGx4dUlDQWdLaUJBY0dGeVlXMGdjMjkxY21ObElGUm9aU0I3UUd4cGJtc2dWbEpOU0hWdFlXNXZhV1I5SUhsdmRTQjNZVzUwSUhSdklHTnZjSGxjYmlBZ0lDb2dRSEpsZEhWeWJuTWdkR2hwYzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmNIa29jMjkxY21ObE9pQldVazFJZFcxaGJtOXBaQ2s2SUhSb2FYTWdlMXh1SUNBZ0lIUm9hWE11WVhWMGIxVndaR0YwWlVoMWJXRnVRbTl1WlhNZ1BTQnpiM1Z5WTJVdVlYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTTdYRzRnSUNBZ2RHaHBjeTVmY21GM1NIVnRZVzVDYjI1bGN5QTlJRzVsZHlCV1VrMVNhV2NvYzI5MWNtTmxMbWgxYldGdVFtOXVaWE1wTzF4dUlDQWdJSFJvYVhNdVgyNXZjbTFoYkdsNlpXUklkVzFoYmtKdmJtVnpJRDBnYm1WM0lGWlNUVWgxYldGdWIybGtVbWxuS0hSb2FYTXVYM0poZDBoMWJXRnVRbTl1WlhNcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUJoSUdOc2IyNWxJRzltSUhSb2FYTWdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtmUzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdRMjl3YVdWa0lIdEFiR2x1YXlCV1VrMUlkVzFoYm05cFpIMWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmpiRzl1WlNncE9pQldVazFJZFcxaGJtOXBaQ0I3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJXVWsxSWRXMWhibTlwWkNoMGFHbHpMbWgxYldGdVFtOXVaWE1zSUhzZ1lYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTTZJSFJvYVhNdVlYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTWdmU2t1WTI5d2VTaDBhR2x6S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z3Y21WallYUmxaQ0JFWlhCeVpXTmhkR1ZrTGlCVmMyVWdaV2wwYUdWeUlIdEFiR2x1YXlCblpYUlNZWGRCWW5OdmJIVjBaVkJ2YzJWOUlHOXlJSHRBYkdsdWF5Qm5aWFJPYjNKdFlXeHBlbVZrUVdKemIyeDFkR1ZRYjNObGZTQnBibk4wWldGa0xseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkRUZpYzI5c2RYUmxVRzl6WlNncE9pQldVazFRYjNObElIdGNiaUFnSUNCamIyNXpiMnhsTG5kaGNtNG9YRzRnSUNBZ0lDQW5WbEpOU0hWdFlXNXZhV1E2SUdkbGRFRmljMjlzZFhSbFVHOXpaU2dwSUdseklHUmxjSEpsWTJGMFpXUXVJRlZ6WlNCbGFYUm9aWElnWjJWMFVtRjNRV0p6YjJ4MWRHVlFiM05sS0NrZ2IzSWdaMlYwVG05eWJXRnNhWHBsWkVGaWMyOXNkWFJsVUc5elpTZ3BJR2x1YzNSbFlXUXVKeXhjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWMFVtRjNRV0p6YjJ4MWRHVlFiM05sS0NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIUm9aU0JqZFhKeVpXNTBJR0ZpYzI5c2RYUmxJSEJ2YzJVZ2IyWWdkR2hwY3lCeVlYY2dhSFZ0WVc0Z1ltOXVaWE1nWVhNZ1lTQjdRR3hwYm1zZ1ZsSk5VRzl6WlgwdVhHNGdJQ0FxSUU1dmRHVWdkR2hoZENCMGFHVWdiM1YwY0hWMElISmxjM1ZzZENCM2FXeHNJR052Ym5SaGFXNGdhVzVwZEdsaGJDQnpkR0YwWlNCdlppQjBhR1VnVmxKTklHRnVaQ0J1YjNRZ1kyOXRjR0YwYVdKc1pTQmlaWFIzWldWdUlHUnBabVpsY21WdWRDQnRiMlJsYkhNdVhHNGdJQ0FxSUZsdmRTQnRhV2RvZENCM1lXNTBJSFJ2SUhWelpTQjdRR3hwYm1zZ1oyVjBVbUYzVUc5elpYMGdhVzV6ZEdWaFpDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJTWVhkQlluTnZiSFYwWlZCdmMyVW9LVG9nVmxKTlVHOXpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNKaGQwaDFiV0Z1UW05dVpYTXVaMlYwUVdKemIyeDFkR1ZRYjNObEtDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJSFJvWlNCamRYSnlaVzUwSUdGaWMyOXNkWFJsSUhCdmMyVWdiMllnZEdocGN5QnViM0p0WVd4cGVtVmtJR2gxYldGdUlHSnZibVZ6SUdGeklHRWdlMEJzYVc1cklGWlNUVkJ2YzJWOUxseHVJQ0FnS2lCT2IzUmxJSFJvWVhRZ2RHaGxJRzkxZEhCMWRDQnlaWE4xYkhRZ2QybHNiQ0JqYjI1MFlXbHVJR2x1YVhScFlXd2djM1JoZEdVZ2IyWWdkR2hsSUZaU1RTQmhibVFnYm05MElHTnZiWEJoZEdsaWJHVWdZbVYwZDJWbGJpQmthV1ptWlhKbGJuUWdiVzlrWld4ekxseHVJQ0FnS2lCWmIzVWdiV2xuYUhRZ2QyRnVkQ0IwYnlCMWMyVWdlMEJzYVc1cklHZGxkRTV2Y20xaGJHbDZaV1JRYjNObGZTQnBibk4wWldGa0xseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkRTV2Y20xaGJHbDZaV1JCWW5OdmJIVjBaVkJ2YzJVb0tUb2dWbEpOVUc5elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMjV2Y20xaGJHbDZaV1JJZFcxaGJrSnZibVZ6TG1kbGRFRmljMjlzZFhSbFVHOXpaU2dwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWEJ5WldOaGRHVmtJRVJsY0hKbFkyRjBaV1F1SUZWelpTQmxhWFJvWlhJZ2UwQnNhVzVySUdkbGRGSmhkMUJ2YzJWOUlHOXlJSHRBYkdsdWF5Qm5aWFJPYjNKdFlXeHBlbVZrVUc5elpYMGdhVzV6ZEdWaFpDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJRYjNObEtDazZJRlpTVFZCdmMyVWdlMXh1SUNBZ0lHTnZibk52YkdVdWQyRnliaWduVmxKTlNIVnRZVzV2YVdRNklHZGxkRkJ2YzJVb0tTQnBjeUJrWlhCeVpXTmhkR1ZrTGlCVmMyVWdaV2wwYUdWeUlHZGxkRkpoZDFCdmMyVW9LU0J2Y2lCblpYUk9iM0p0WVd4cGVtVmtVRzl6WlNncElHbHVjM1JsWVdRdUp5azdYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVuWlhSU1lYZFFiM05sS0NrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIUm9aU0JqZFhKeVpXNTBJSEJ2YzJVZ2IyWWdjbUYzSUdoMWJXRnVJR0p2Ym1WeklHRnpJR0VnZTBCc2FXNXJJRlpTVFZCdmMyVjlMbHh1SUNBZ0tseHVJQ0FnS2lCRllXTm9JSFJ5WVc1elptOXliU0JwY3lCaElHeHZZMkZzSUhSeVlXNXpabTl5YlNCeVpXeGhkR2wyWlNCbWNtOXRJSEpsYzNRZ2NHOXpaU0FvVkMxd2IzTmxLUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhSU1lYZFFiM05sS0NrNklGWlNUVkJ2YzJVZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXlZWGRJZFcxaGJrSnZibVZ6TG1kbGRGQnZjMlVvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z2RHaGxJR04xY25KbGJuUWdjRzl6WlNCdlppQnViM0p0WVd4cGVtVmtJR2gxYldGdUlHSnZibVZ6SUdGeklHRWdlMEJzYVc1cklGWlNUVkJ2YzJWOUxseHVJQ0FnS2x4dUlDQWdLaUJGWVdOb0lIUnlZVzV6Wm05eWJTQnBjeUJoSUd4dlkyRnNJSFJ5WVc1elptOXliU0J5Wld4aGRHbDJaU0JtY205dElISmxjM1FnY0c5elpTQW9WQzF3YjNObEtTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJPYjNKdFlXeHBlbVZrVUc5elpTZ3BPaUJXVWsxUWIzTmxJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmYm05eWJXRnNhWHBsWkVoMWJXRnVRbTl1WlhNdVoyVjBVRzl6WlNncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhCeVpXTmhkR1ZrSUVSbGNISmxZMkYwWldRdUlGVnpaU0JsYVhSb1pYSWdlMEJzYVc1cklITmxkRkpoZDFCdmMyVjlJRzl5SUh0QWJHbHVheUJ6WlhST2IzSnRZV3hwZW1Wa1VHOXpaWDBnYVc1emRHVmhaQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6WlhSUWIzTmxLSEJ2YzJWUFltcGxZM1E2SUZaU1RWQnZjMlVwT2lCMmIybGtJSHRjYmlBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvSjFaU1RVaDFiV0Z1YjJsa09pQnpaWFJRYjNObEtDa2dhWE1nWkdWd2NtVmpZWFJsWkM0Z1ZYTmxJR1ZwZEdobGNpQnpaWFJTWVhkUWIzTmxLQ2tnYjNJZ2MyVjBUbTl5YldGc2FYcGxaRkJ2YzJVb0tTQnBibk4wWldGa0xpY3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzJWMFVtRjNVRzl6WlNod2IzTmxUMkpxWldOMEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJNWlhRZ2RHaGxJSEpoZHlCb2RXMWhiaUJpYjI1bGN5QmtieUJoSUhOd1pXTnBabWxsWkNCd2IzTmxMbHh1SUNBZ0tseHVJQ0FnS2lCRllXTm9JSFJ5WVc1elptOXliU0JvWVhabElIUnZJR0psSUdFZ2JHOWpZV3dnZEhKaGJuTm1iM0p0SUhKbGJHRjBhWFpsSUdaeWIyMGdjbVZ6ZENCd2IzTmxJQ2hVTFhCdmMyVXBMbHh1SUNBZ0tpQlpiM1VnWTJGdUlIQmhjM01nZDJoaGRDQjViM1VnWjI5MElHWnliMjBnZTBCc2FXNXJJR2RsZEZKaGQxQnZjMlY5TGx4dUlDQWdLbHh1SUNBZ0tpQkpaaUI1YjNVZ1lYSmxJSFZ6YVc1bklIdEFiR2x1YXlCaGRYUnZWWEJrWVhSbFNIVnRZVzVDYjI1bGMzMHNJSGx2ZFNCdGFXZG9kQ0IzWVc1MElIUnZJSFZ6WlNCN1FHeHBibXNnYzJWMFRtOXliV0ZzYVhwbFpGQnZjMlY5SUdsdWMzUmxZV1F1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCd2IzTmxUMkpxWldOMElFRWdlMEJzYVc1cklGWlNUVkJ2YzJWOUlIUm9ZWFFnY21Wd2NtVnpaVzUwY3lCaElITnBibWRzWlNCd2IzTmxYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjMlYwVW1GM1VHOXpaU2h3YjNObFQySnFaV04wT2lCV1VrMVFiM05sS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNKaGQwaDFiV0Z1UW05dVpYTXVjMlYwVUc5elpTaHdiM05sVDJKcVpXTjBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCTVpYUWdkR2hsSUc1dmNtMWhiR2w2WldRZ2FIVnRZVzRnWW05dVpYTWdaRzhnWVNCemNHVmphV1pwWldRZ2NHOXpaUzVjYmlBZ0lDcGNiaUFnSUNvZ1JXRmphQ0IwY21GdWMyWnZjbTBnYUdGMlpTQjBieUJpWlNCaElHeHZZMkZzSUhSeVlXNXpabTl5YlNCeVpXeGhkR2wyWlNCbWNtOXRJSEpsYzNRZ2NHOXpaU0FvVkMxd2IzTmxLUzVjYmlBZ0lDb2dXVzkxSUdOaGJpQndZWE56SUhkb1lYUWdlVzkxSUdkdmRDQm1jbTl0SUh0QWJHbHVheUJuWlhST2IzSnRZV3hwZW1Wa1VHOXpaWDB1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCd2IzTmxUMkpxWldOMElFRWdlMEJzYVc1cklGWlNUVkJ2YzJWOUlIUm9ZWFFnY21Wd2NtVnpaVzUwY3lCaElITnBibWRzWlNCd2IzTmxYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjMlYwVG05eWJXRnNhWHBsWkZCdmMyVW9jRzl6WlU5aWFtVmpkRG9nVmxKTlVHOXpaU2s2SUhadmFXUWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl1YjNKdFlXeHBlbVZrU0hWdFlXNUNiMjVsY3k1elpYUlFiM05sS0hCdmMyVlBZbXBsWTNRcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhCeVpXTmhkR1ZrSUVSbGNISmxZMkYwWldRdUlGVnpaU0JsYVhSb1pYSWdlMEJzYVc1cklISmxjMlYwVW1GM1VHOXpaWDBnYjNJZ2UwQnNhVzVySUhKbGMyVjBUbTl5YldGc2FYcGxaRkJ2YzJWOUlHbHVjM1JsWVdRdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtVnpaWFJRYjNObEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpZ25WbEpOU0hWdFlXNXZhV1E2SUhKbGMyVjBVRzl6WlNncElHbHpJR1JsY0hKbFkyRjBaV1F1SUZWelpTQmxhWFJvWlhJZ2NtVnpaWFJTWVhkUWIzTmxLQ2tnYjNJZ2NtVnpaWFJPYjNKdFlXeHBlbVZrVUc5elpTZ3BJR2x1YzNSbFlXUXVKeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVpYTmxkRkpoZDFCdmMyVW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYTmxkQ0IwYUdVZ2NtRjNJR2gxYldGdWIybGtJSFJ2SUdsMGN5QnlaWE4wSUhCdmMyVXVYRzRnSUNBcVhHNGdJQ0FxSUVsbUlIbHZkU0JoY21VZ2RYTnBibWNnZTBCc2FXNXJJR0YxZEc5VmNHUmhkR1ZJZFcxaGJrSnZibVZ6ZlN3Z2VXOTFJRzFwWjJoMElIZGhiblFnZEc4Z2RYTmxJSHRBYkdsdWF5QnlaWE5sZEU1dmNtMWhiR2w2WldSUWIzTmxmU0JwYm5OMFpXRmtMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsYzJWMFVtRjNVRzl6WlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmNtRjNTSFZ0WVc1Q2IyNWxjeTV5WlhObGRGQnZjMlVvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWE5sZENCMGFHVWdibTl5YldGc2FYcGxaQ0JvZFcxaGJtOXBaQ0IwYnlCcGRITWdjbVZ6ZENCd2IzTmxMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsYzJWMFRtOXliV0ZzYVhwbFpGQnZjMlVvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDI1dmNtMWhiR2w2WldSSWRXMWhia0p2Ym1WekxuSmxjMlYwVUc5elpTZ3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYQnlaV05oZEdWa0lFUmxjSEpsWTJGMFpXUXVJRlZ6WlNCbGFYUm9aWElnZTBCc2FXNXJJR2RsZEZKaGQwSnZibVY5SUc5eUlIdEFiR2x1YXlCblpYUk9iM0p0WVd4cGVtVmtRbTl1WlgwZ2FXNXpkR1ZoWkM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUkNiMjVsS0c1aGJXVTZJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVXBPaUJXVWsxSWRXMWhia0p2Ym1VZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lHTnZibk52YkdVdWQyRnliaWduVmxKTlNIVnRZVzV2YVdRNklHZGxkRUp2Ym1Vb0tTQnBjeUJrWlhCeVpXTmhkR1ZrTGlCVmMyVWdaV2wwYUdWeUlHZGxkRkpoZDBKdmJtVW9LU0J2Y2lCblpYUk9iM0p0WVd4cGVtVmtRbTl1WlNncElHbHVjM1JsWVdRdUp5azdYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVuWlhSU1lYZENiMjVsS0c1aGJXVXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnliaUJoSUhKaGR5QjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxmU0JpYjNWdVpDQjBieUJoSUhOd1pXTnBabWxsWkNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bFRtRnRaWDB1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCdVlXMWxJRTVoYldVZ2IyWWdkR2hsSUdKdmJtVWdlVzkxSUhkaGJuUmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJTWVhkQ2IyNWxLRzVoYldVNklGWlNUVWgxYldGdVFtOXVaVTVoYldVcE9pQldVazFJZFcxaGJrSnZibVVnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXlZWGRJZFcxaGJrSnZibVZ6TG1kbGRFSnZibVVvYm1GdFpTazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJR0VnYm05eWJXRnNhWHBsWkNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bGZTQmliM1Z1WkNCMGJ5QmhJSE53WldOcFptbGxaQ0I3UUd4cGJtc2dWbEpOU0hWdFlXNUNiMjVsVG1GdFpYMHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0J1WVcxbElFNWhiV1VnYjJZZ2RHaGxJR0p2Ym1VZ2VXOTFJSGRoYm5SY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUk9iM0p0WVd4cGVtVmtRbTl1WlNodVlXMWxPaUJXVWsxSWRXMWhia0p2Ym1WT1lXMWxLVG9nVmxKTlNIVnRZVzVDYjI1bElId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmYm05eWJXRnNhWHBsWkVoMWJXRnVRbTl1WlhNdVoyVjBRbTl1WlNodVlXMWxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVndjbVZqWVhSbFpDQkVaWEJ5WldOaGRHVmtMaUJWYzJVZ1pXbDBhR1Z5SUh0QWJHbHVheUJuWlhSU1lYZENiMjVsVG05a1pYMGdiM0lnZTBCc2FXNXJJR2RsZEU1dmNtMWhiR2w2WldSQ2IyNWxUbTlrWlgwZ2FXNXpkR1ZoWkM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUkNiMjVsVG05a1pTaHVZVzFsT2lCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsS1RvZ1ZFaFNSVVV1VDJKcVpXTjBNMFFnZkNCdWRXeHNJSHRjYmlBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWEc0Z0lDQWdJQ0FuVmxKTlNIVnRZVzV2YVdRNklHZGxkRUp2Ym1WT2IyUmxLQ2tnYVhNZ1pHVndjbVZqWVhSbFpDNGdWWE5sSUdWcGRHaGxjaUJuWlhSU1lYZENiMjVsVG05a1pTZ3BJRzl5SUdkbGRFNXZjbTFoYkdsNlpXUkNiMjVsVG05a1pTZ3BJR2x1YzNSbFlXUXVKeXhjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWMFVtRjNRbTl1WlU1dlpHVW9ibUZ0WlNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlHRWdjbUYzSUdKdmJtVWdZWE1nWVNCZ1ZFaFNSVVV1VDJKcVpXTjBNMFJnSUdKdmRXNWtJSFJ2SUdFZ2MzQmxZMmxtYVdWa0lIdEFiR2x1YXlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsZlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHNWhiV1VnVG1GdFpTQnZaaUIwYUdVZ1ltOXVaU0I1YjNVZ2QyRnVkRnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZEZKaGQwSnZibVZPYjJSbEtHNWhiV1U2SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VwT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ0I4SUc1MWJHd2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl5WVhkSWRXMWhia0p2Ym1WekxtZGxkRUp2Ym1WT2IyUmxLRzVoYldVcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJpQmhJRzV2Y20xaGJHbDZaV1FnWW05dVpTQmhjeUJoSUdCVVNGSkZSUzVQWW1wbFkzUXpSR0FnWW05MWJtUWdkRzhnWVNCemNHVmphV1pwWldRZ2UwQnNhVzVySUZaU1RVaDFiV0Z1UW05dVpVNWhiV1Y5TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2JtRnRaU0JPWVcxbElHOW1JSFJvWlNCaWIyNWxJSGx2ZFNCM1lXNTBYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwVG05eWJXRnNhWHBsWkVKdmJtVk9iMlJsS0c1aGJXVTZJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVXBPaUJVU0ZKRlJTNVBZbXBsWTNRelJDQjhJRzUxYkd3Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXViM0p0WVd4cGVtVmtTSFZ0WVc1Q2IyNWxjeTVuWlhSQ2IyNWxUbTlrWlNodVlXMWxLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVmNHUmhkR1VnZEdobElHaDFiV0Z1YjJsa0lHTnZiWEJ2Ym1WdWRDNWNiaUFnSUNwY2JpQWdJQ29nU1dZZ2UwQnNhVzVySUdGMWRHOVZjR1JoZEdWSWRXMWhia0p2Ym1WemZTQnBjeUJnZEhKMVpXQXNJR2wwSUhSeVlXNXpabVZ5Y3lCMGFHVWdjRzl6WlNCdlppQnViM0p0WVd4cGVtVmtJR2gxYldGdUlHSnZibVZ6SUhSdklISmhkeUJvZFcxaGJpQmliMjVsY3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCMWNHUmhkR1VvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVZWFYwYjFWd1pHRjBaVWgxYldGdVFtOXVaWE1wSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYMjV2Y20xaGJHbDZaV1JJZFcxaGJrSnZibVZ6TG5Wd1pHRjBaU2dwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWl3aUx5b2daWE5zYVc1MExXUnBjMkZpYkdVZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNWhiV2x1WnkxamIyNTJaVzUwYVc5dUlDb3ZYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQldVazFTWlhGMWFYSmxaRWgxYldGdVFtOXVaVTVoYldVZ1BTQjdYRzRnSUVocGNITTZJQ2RvYVhCekp5eGNiaUFnVTNCcGJtVTZJQ2R6Y0dsdVpTY3NYRzRnSUVobFlXUTZJQ2RvWldGa0p5eGNiaUFnVEdWbWRGVndjR1Z5VEdWbk9pQW5iR1ZtZEZWd2NHVnlUR1ZuSnl4Y2JpQWdUR1ZtZEV4dmQyVnlUR1ZuT2lBbmJHVm1kRXh2ZDJWeVRHVm5KeXhjYmlBZ1RHVm1kRVp2YjNRNklDZHNaV1owUm05dmRDY3NYRzRnSUZKcFoyaDBWWEJ3WlhKTVpXYzZJQ2R5YVdkb2RGVndjR1Z5VEdWbkp5eGNiaUFnVW1sbmFIUk1iM2RsY2t4bFp6b2dKM0pwWjJoMFRHOTNaWEpNWldjbkxGeHVJQ0JTYVdkb2RFWnZiM1E2SUNkeWFXZG9kRVp2YjNRbkxGeHVJQ0JNWldaMFZYQndaWEpCY20wNklDZHNaV1owVlhCd1pYSkJjbTBuTEZ4dUlDQk1aV1owVEc5M1pYSkJjbTA2SUNkc1pXWjBURzkzWlhKQmNtMG5MRnh1SUNCTVpXWjBTR0Z1WkRvZ0oyeGxablJJWVc1a0p5eGNiaUFnVW1sbmFIUlZjSEJsY2tGeWJUb2dKM0pwWjJoMFZYQndaWEpCY20wbkxGeHVJQ0JTYVdkb2RFeHZkMlZ5UVhKdE9pQW5jbWxuYUhSTWIzZGxja0Z5YlNjc1hHNGdJRkpwWjJoMFNHRnVaRG9nSjNKcFoyaDBTR0Z1WkNjc1hHNTlJR0Z6SUdOdmJuTjBPMXh1WEc1bGVIQnZjblFnZEhsd1pTQldVazFTWlhGMWFYSmxaRWgxYldGdVFtOXVaVTVoYldVZ1BTQjBlWEJsYjJZZ1ZsSk5VbVZ4ZFdseVpXUklkVzFoYmtKdmJtVk9ZVzFsVzJ0bGVXOW1JSFI1Y0dWdlppQldVazFTWlhGMWFYSmxaRWgxYldGdVFtOXVaVTVoYldWZE8xeHVJaXdpYVcxd2IzSjBJSFI1Y0dVZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1cGJYQnZjblFnZEhsd1pTQXFJR0Z6SUZZd1ZsSk5JR1p5YjIwZ0owQndhWGhwZGk5MGVYQmxjeTEyY20wdE1DNHdKenRjYm1sdGNHOXlkQ0IwZVhCbElDb2dZWE1nVmpGV1VrMVRZMmhsYldFZ1puSnZiU0FuUUhCcGVHbDJMM1I1Y0dWekxYWnliV010ZG5KdExURXVNQ2M3WEc1cGJYQnZjblFnZEhsd1pTQjdJRWRNVkVZc0lFZE1WRVpNYjJGa1pYSlFiSFZuYVc0c0lFZE1WRVpRWVhKelpYSWdmU0JtY205dElDZDBhSEpsWlM5bGVHRnRjR3hsY3k5cWMyMHZiRzloWkdWeWN5OUhURlJHVEc5aFpHVnlMbXB6Snp0Y2JtbHRjRzl5ZENCN0lGWlNUVWgxYldGdWIybGtJSDBnWm5KdmJTQW5MaTlXVWsxSWRXMWhibTlwWkNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVaDFiV0Z1UW05dVpYTWdmU0JtY205dElDY3VMMVpTVFVoMWJXRnVRbTl1WlhNbk8xeHVhVzF3YjNKMElIc2dWbEpOVW1WeGRXbHlaV1JJZFcxaGJrSnZibVZPWVcxbElIMGdabkp2YlNBbkxpOVdVazFTWlhGMWFYSmxaRWgxYldGdVFtOXVaVTVoYldVbk8xeHVhVzF3YjNKMElIc2dSMHhVUmlCaGN5QkhURlJHVTJOb1pXMWhJSDBnWm5KdmJTQW5RR2RzZEdZdGRISmhibk5tYjNKdEwyTnZjbVVuTzF4dWFXMXdiM0owSUhzZ1ZsSk5TSFZ0WVc1dmFXUklaV3h3WlhJZ2ZTQm1jbTl0SUNjdUwyaGxiSEJsY25NdlZsSk5TSFZ0WVc1dmFXUklaV3h3WlhJbk8xeHVhVzF3YjNKMElIc2dWbEpOU0hWdFlXNXZhV1JNYjJGa1pYSlFiSFZuYVc1UGNIUnBiMjV6SUgwZ1puSnZiU0FuTGk5V1VrMUlkVzFoYm05cFpFeHZZV1JsY2xCc2RXZHBiazl3ZEdsdmJuTW5PMXh1WEc0dktpcGNiaUFxSUZCdmMzTnBZbXhsSUhOd1pXTWdkbVZ5YzJsdmJuTWdhWFFnY21WamIyZHVhWHBsY3k1Y2JpQXFMMXh1WTI5dWMzUWdVRTlUVTBsQ1RFVmZVMUJGUTE5V1JWSlRTVTlPVXlBOUlHNWxkeUJUWlhRb1d5Y3hMakFuTENBbk1TNHdMV0psZEdFblhTazdYRzVjYmk4cUtseHVJQ29nUVNCdFlYQWdabkp2YlNCdmJHUWdkR2gxYldJZ1ltOXVaU0J1WVcxbGN5QjBieUJ1WlhjZ2RHaDFiV0lnWW05dVpTQnVZVzFsYzF4dUlDb3ZYRzVqYjI1emRDQjBhSFZ0WWtKdmJtVk9ZVzFsVFdGd09pQjdJRnRyWlhrNklITjBjbWx1WjEwNklGWXhWbEpOVTJOb1pXMWhMa2gxYldGdWIybGtTSFZ0WVc1Q2IyNWxUbUZ0WlNCOElIVnVaR1ZtYVc1bFpDQjlJRDBnZTF4dUlDQnNaV1owVkdoMWJXSlFjbTk0YVcxaGJEb2dKMnhsWm5SVWFIVnRZazFsZEdGallYSndZV3duTEZ4dUlDQnNaV1owVkdoMWJXSkpiblJsY20xbFpHbGhkR1U2SUNkc1pXWjBWR2gxYldKUWNtOTRhVzFoYkNjc1hHNGdJSEpwWjJoMFZHaDFiV0pRY205NGFXMWhiRG9nSjNKcFoyaDBWR2gxYldKTlpYUmhZMkZ5Y0dGc0p5eGNiaUFnY21sbmFIUlVhSFZ0WWtsdWRHVnliV1ZrYVdGMFpUb2dKM0pwWjJoMFZHaDFiV0pRY205NGFXMWhiQ2NzWEc1OU8xeHVYRzR2S2lwY2JpQXFJRUVnY0d4MVoybHVJRzltSUVkTVZFWk1iMkZrWlhJZ2RHaGhkQ0JwYlhCdmNuUnpJR0VnZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrZlNCbWNtOXRJR0VnVmxKTklHVjRkR1Z1YzJsdmJpQnZaaUJoSUVkTVZFWXVYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxSWRXMWhibTlwWkV4dllXUmxjbEJzZFdkcGJpQnBiWEJzWlcxbGJuUnpJRWRNVkVaTWIyRmtaWEpRYkhWbmFXNGdlMXh1SUNBdktpcGNiaUFnSUNvZ1UzQmxZMmxtZVNCaGJpQlBZbXBsWTNRelJDQjBieUJoWkdRZ2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa1NHVnNjR1Z5ZlM1Y2JpQWdJQ29nU1dZZ2JtOTBJSE53WldOcFptbGxaQ3dnYUdWc2NHVnlJSGRwYkd3Z2JtOTBJR0psSUdOeVpXRjBaV1F1WEc0Z0lDQXFJRWxtSUdCeVpXNWtaWEpQY21SbGNtQWdhWE1nYzJWMElIUnZJSFJvWlNCeWIyOTBMQ0IwYUdVZ2FHVnNjR1Z5SUhkcGJHd2dZMjl3ZVNCMGFHVWdjMkZ0WlNCZ2NtVnVaR1Z5VDNKa1pYSmdJQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJvWld4d1pYSlNiMjkwUHpvZ1ZFaFNSVVV1VDJKcVpXTjBNMFE3WEc1Y2JpQWdjSFZpYkdsaklHRjFkRzlWY0dSaGRHVklkVzFoYmtKdmJtVnpQem9nWW05dmJHVmhianRjYmx4dUlDQndkV0pzYVdNZ2NtVmhaRzl1YkhrZ2NHRnljMlZ5T2lCSFRGUkdVR0Z5YzJWeU8xeHVYRzRnSUhCMVlteHBZeUJuWlhRZ2JtRnRaU2dwT2lCemRISnBibWNnZTF4dUlDQWdJQzh2SUZkbElITm9iM1ZzWkNCMWMyVWdkR2hsSUdWNGRHVnVjMmx2YmlCdVlXMWxJR2x1YzNSbFlXUWdZblYwSUhkbElHaGhkbVVnYlhWc2RHbHdiR1VnY0d4MVoybHVjeUJtYjNJZ1lXNGdaWGgwWlc1emFXOXVMaTR1WEc0Z0lDQWdjbVYwZFhKdUlDZFdVazFJZFcxaGJtOXBaRXh2WVdSbGNsQnNkV2RwYmljN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9jR0Z5YzJWeU9pQkhURlJHVUdGeWMyVnlMQ0J2Y0hScGIyNXpQem9nVmxKTlNIVnRZVzV2YVdSTWIyRmtaWEpRYkhWbmFXNVBjSFJwYjI1ektTQjdYRzRnSUNBZ2RHaHBjeTV3WVhKelpYSWdQU0J3WVhKelpYSTdYRzVjYmlBZ0lDQjBhR2x6TG1obGJIQmxjbEp2YjNRZ1BTQnZjSFJwYjI1elB5NW9aV3h3WlhKU2IyOTBPMXh1SUNBZ0lIUm9hWE11WVhWMGIxVndaR0YwWlVoMWJXRnVRbTl1WlhNZ1BTQnZjSFJwYjI1elB5NWhkWFJ2VlhCa1lYUmxTSFZ0WVc1Q2IyNWxjenRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJoYzNsdVl5QmhablJsY2xKdmIzUW9aMngwWmpvZ1IweFVSaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHZHNkR1l1ZFhObGNrUmhkR0V1ZG5KdFNIVnRZVzV2YVdRZ1BTQmhkMkZwZENCMGFHbHpMbDlwYlhCdmNuUW9aMngwWmlrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTVzF3YjNKMElHRWdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtmU0JtY205dElHRWdWbEpOTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ1oyeDBaaUJCSUhCaGNuTmxaQ0J5WlhOMWJIUWdiMllnUjB4VVJpQjBZV3RsYmlCbWNtOXRJRWRNVkVaTWIyRmtaWEpjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdYMmx0Y0c5eWRDaG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHhXVWsxSWRXMWhibTlwWkNCOElHNTFiR3crSUh0Y2JpQWdJQ0JqYjI1emRDQjJNVkpsYzNWc2RDQTlJR0YzWVdsMElIUm9hWE11WDNZeFNXMXdiM0owS0dkc2RHWXBPMXh1SUNBZ0lHbG1JQ2gyTVZKbGMzVnNkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFl4VW1WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhZd1VtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NWZkakJKYlhCdmNuUW9aMngwWmlrN1hHNGdJQ0FnYVdZZ0tIWXdVbVZ6ZFd4MEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RqQlNaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUY5Mk1VbHRjRzl5ZENobmJIUm1PaUJIVEZSR0tUb2dVSEp2YldselpUeFdVazFJZFcxaGJtOXBaQ0I4SUc1MWJHdytJSHRjYmlBZ0lDQmpiMjV6ZENCcWMyOXVJRDBnZEdocGN5NXdZWEp6WlhJdWFuTnZiaUJoY3lCSFRGUkdVMk5vWlcxaExrbEhURlJHTzF4dVhHNGdJQ0FnTHk4Z1pXRnliSGtnWVdKdmNuUWdhV1lnYVhRZ1pHOWxjMjRuZENCMWMyVWdkbkp0WEc0Z0lDQWdZMjl1YzNRZ2FYTldVazFWYzJWa0lEMGdhbk52Ymk1bGVIUmxibk5wYjI1elZYTmxaRDh1YVc1a1pYaFBaaWduVmxKTlExOTJjbTBuS1NBaFBUMGdMVEU3WEc0Z0lDQWdhV1lnS0NGcGMxWlNUVlZ6WldRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdWNGRHVnVjMmx2YmlBOUlHcHpiMjR1WlhoMFpXNXphVzl1Y3o4dVd5ZFdVazFEWDNaeWJTZGRJR0Z6SUZZeFZsSk5VMk5vWlcxaExsWlNUVU5XVWswZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLQ0ZsZUhSbGJuTnBiMjRwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE53WldOV1pYSnphVzl1SUQwZ1pYaDBaVzV6YVc5dUxuTndaV05XWlhKemFXOXVPMXh1SUNBZ0lHbG1JQ2doVUU5VFUwbENURVZmVTFCRlExOVdSVkpUU1U5T1V5NW9ZWE1vYzNCbFkxWmxjbk5wYjI0cEtTQjdYRzRnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWUZaU1RVaDFiV0Z1YjJsa1RHOWhaR1Z5VUd4MVoybHVPaUJWYm10dWIzZHVJRlpTVFVOZmRuSnRJSE53WldOV1pYSnphVzl1SUZ3aUpIdHpjR1ZqVm1WeWMybHZibjFjSW1BcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYzJOb1pXMWhTSFZ0WVc1dmFXUWdQU0JsZUhSbGJuTnBiMjR1YUhWdFlXNXZhV1E3WEc0Z0lDQWdhV1lnS0NGelkyaGxiV0ZJZFcxaGJtOXBaQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1kyOXRjR0YwT2lBeExqQXRZbVYwWVNCMGFIVnRZaUJpYjI1bElHNWhiV1Z6WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJnZEhKMVpXQWdhV1lnWUd4bFpuUlVhSFZ0WWtsdWRHVnliV1ZrYVdGMFpXQWdiM0lnWUhKcFoyaDBWR2gxYldKSmJuUmxjbTFsWkdsaGRHVmdJR1Y0YVhOMGMxeHVJQ0FnSUNBcUwxeHVJQ0FnSUdOdmJuTjBJR1Y0YVhOMGMxQnlaWFpwYjNWelZHaDFiV0pPWVcxbElEMWNiaUFnSUNBZ0lDaHpZMmhsYldGSWRXMWhibTlwWkM1b2RXMWhia0p2Ym1WeklHRnpJR0Z1ZVNrdWJHVm1kRlJvZFcxaVNXNTBaWEp0WldScFlYUmxJQ0U5SUc1MWJHd2dmSHhjYmlBZ0lDQWdJQ2h6WTJobGJXRklkVzFoYm05cFpDNW9kVzFoYmtKdmJtVnpJR0Z6SUdGdWVTa3VjbWxuYUhSVWFIVnRZa2x1ZEdWeWJXVmthV0YwWlNBaFBTQnVkV3hzTzF4dVhHNGdJQ0FnWTI5dWMzUWdhSFZ0WVc1Q2IyNWxjem9nVUdGeWRHbGhiRHhXVWsxSWRXMWhia0p2Ym1WelBpQTlJSHQ5TzF4dUlDQWdJR2xtSUNoelkyaGxiV0ZJZFcxaGJtOXBaQzVvZFcxaGJrSnZibVZ6SUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0Z4dUlDQWdJQ0FnSUNCUFltcGxZM1F1Wlc1MGNtbGxjeWh6WTJobGJXRklkVzFoYm05cFpDNW9kVzFoYmtKdmJtVnpLUzV0WVhBb1lYTjVibU1nS0Z0aWIyNWxUbUZ0WlZOMGNtbHVaeXdnYzJOb1pXMWhTSFZ0WVc1Q2IyNWxYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR3hsZENCaWIyNWxUbUZ0WlNBOUlHSnZibVZPWVcxbFUzUnlhVzVuSUdGeklGWXhWbEpOVTJOb1pXMWhMa2gxYldGdWIybGtTSFZ0WVc1Q2IyNWxUbUZ0WlR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcGJtUmxlQ0E5SUhOamFHVnRZVWgxYldGdVFtOXVaUzV1YjJSbE8xeHVYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1kyOXRjR0YwT2lBeExqQXRZbVYwWVNCd2NtVjJhVzkxY3lCMGFIVnRZaUJpYjI1bElHNWhiV1Z6WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR1Y0YVhOMGMxQnlaWFpwYjNWelZHaDFiV0pPWVcxbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IwYUhWdFlrSnZibVZPWVcxbElEMGdkR2gxYldKQ2IyNWxUbUZ0WlUxaGNGdGliMjVsVG1GdFpWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kR2gxYldKQ2IyNWxUbUZ0WlNBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdKdmJtVk9ZVzFsSUQwZ2RHaDFiV0pDYjI1bFRtRnRaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdWIyUmxJRDBnWVhkaGFYUWdkR2hwY3k1d1lYSnpaWEl1WjJWMFJHVndaVzVrWlc1amVTZ25ibTlrWlNjc0lHbHVaR1Y0S1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQzh2SUdsbUlIUm9aU0J6Y0dWamFXWnBaV1FnYm05a1pTQmtiMlZ6SUc1dmRDQmxlR2x6ZEN3Z1pXMXBkQ0JoSUhkaGNtNXBibWRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9ibTlrWlNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b1lFRWdaMnhVUmlCdWIyUmxJR0p2ZFc1a0lIUnZJSFJvWlNCb2RXMWhibTlwWkNCaWIyNWxJQ1I3WW05dVpVNWhiV1Y5SUNocGJtUmxlQ0E5SUNSN2FXNWtaWGg5S1NCa2IyVnpJRzV2ZENCbGVHbHpkR0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJSE5sZENCMGJ5QjBhR1VnWUdoMWJXRnVRbTl1WlhOZ1hHNGdJQ0FnSUNBZ0lDQWdhSFZ0WVc1Q2IyNWxjMXRpYjI1bFRtRnRaVjBnUFNCN0lHNXZaR1VnZlR0Y2JpQWdJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdoMWJXRnViMmxrSUQwZ2JtVjNJRlpTVFVoMWJXRnViMmxrS0hSb2FYTXVYMlZ1YzNWeVpWSmxjWFZwY21Wa1FtOXVaWE5GZUdsemRDaG9kVzFoYmtKdmJtVnpLU3dnZTF4dUlDQWdJQ0FnWVhWMGIxVndaR0YwWlVoMWJXRnVRbTl1WlhNNklIUm9hWE11WVhWMGIxVndaR0YwWlVoMWJXRnVRbTl1WlhNc1hHNGdJQ0FnZlNrN1hHNGdJQ0FnWjJ4MFppNXpZMlZ1WlM1aFpHUW9hSFZ0WVc1dmFXUXVibTl5YldGc2FYcGxaRWgxYldGdVFtOXVaWE5TYjI5MEtUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtaGxiSEJsY2xKdmIzUXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHaGxiSEJsY2lBOUlHNWxkeUJXVWsxSWRXMWhibTlwWkVobGJIQmxjaWhvZFcxaGJtOXBaQ2s3WEc0Z0lDQWdJQ0IwYUdsekxtaGxiSEJsY2xKdmIzUXVZV1JrS0dobGJIQmxjaWs3WEc0Z0lDQWdJQ0JvWld4d1pYSXVjbVZ1WkdWeVQzSmtaWElnUFNCMGFHbHpMbWhsYkhCbGNsSnZiM1F1Y21WdVpHVnlUM0prWlhJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJR2gxYldGdWIybGtPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QmZkakJKYlhCdmNuUW9aMngwWmpvZ1IweFVSaWs2SUZCeWIyMXBjMlU4VmxKTlNIVnRZVzV2YVdRZ2ZDQnVkV3hzUGlCN1hHNGdJQ0FnWTI5dWMzUWdhbk52YmlBOUlIUm9hWE11Y0dGeWMyVnlMbXB6YjI0Z1lYTWdSMHhVUmxOamFHVnRZUzVKUjB4VVJqdGNibHh1SUNBZ0lHTnZibk4wSUhaeWJVVjRkQ0E5SUdwemIyNHVaWGgwWlc1emFXOXVjejh1VmxKTklHRnpJRll3VmxKTkxsWlNUU0I4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb0lYWnliVVY0ZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYzJOb1pXMWhTSFZ0WVc1dmFXUTZJRll3VmxKTkxraDFiV0Z1YjJsa0lId2dkVzVrWldacGJtVmtJRDBnZG5KdFJYaDBMbWgxYldGdWIybGtPMXh1SUNBZ0lHbG1JQ2doYzJOb1pXMWhTSFZ0WVc1dmFXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHaDFiV0Z1UW05dVpYTTZJRkJoY25ScFlXdzhWbEpOU0hWdFlXNUNiMjVsY3o0Z1BTQjdmVHRjYmlBZ0lDQnBaaUFvYzJOb1pXMWhTSFZ0WVc1dmFXUXVhSFZ0WVc1Q2IyNWxjeUFoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2hjYmlBZ0lDQWdJQ0FnYzJOb1pXMWhTSFZ0WVc1dmFXUXVhSFZ0WVc1Q2IyNWxjeTV0WVhBb1lYTjVibU1nS0dKdmJtVXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCaWIyNWxUbUZ0WlNBOUlHSnZibVV1WW05dVpUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnBibVJsZUNBOUlHSnZibVV1Ym05a1pUdGNibHh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGliMjVsVG1GdFpTQTlQU0J1ZFd4c0lIeDhJR2x1WkdWNElEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ1lYZGhhWFFnZEdocGN5NXdZWEp6WlhJdVoyVjBSR1Z3Wlc1a1pXNWplU2duYm05a1pTY3NJR2x1WkdWNEtUdGNibHh1SUNBZ0lDQWdJQ0FnSUM4dklHbG1JSFJvWlNCemNHVmphV1pwWldRZ2JtOWtaU0JrYjJWeklHNXZkQ0JsZUdsemRDd2daVzFwZENCaElIZGhjbTVwYm1kY2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYm05a1pTQTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9ZRUVnWjJ4VVJpQnViMlJsSUdKdmRXNWtJSFJ2SUhSb1pTQm9kVzFoYm05cFpDQmliMjVsSUNSN1ltOXVaVTVoYldWOUlDaHBibVJsZUNBOUlDUjdhVzVrWlhoOUtTQmtiMlZ6SUc1dmRDQmxlR2x6ZEdBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQzh2SUcxaGNDQjBieUJ1WlhjZ1ltOXVaU0J1WVcxbFhHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RHaDFiV0pDYjI1bFRtRnRaU0E5SUhSb2RXMWlRbTl1WlU1aGJXVk5ZWEJiWW05dVpVNWhiV1ZkTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUc1bGQwSnZibVZPWVcxbElEMGdLSFJvZFcxaVFtOXVaVTVoYldVZ1B6OGdZbTl1WlU1aGJXVXBJR0Z6SUZZeFZsSk5VMk5vWlcxaExraDFiV0Z1YjJsa1NIVnRZVzVDYjI1bFRtRnRaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJSFl3SUZaU1RYTWdiV2xuYUhRZ2FHRjJaU0JoSUcxMWJIUnBjR3hsSUc1dlpHVnpJR0YwZEdGamFHVmtJSFJ2SUdFZ2MybHVaMnhsSUdKdmJtVXVMaTVjYmlBZ0lDQWdJQ0FnSUNBdkx5QnpieUJwWmlCMGFHVnlaU0JoYkhKbFlXUjVJR2x6SUdGdUlHVnVkSEo1SUdsdUlIUm9aU0JnYUhWdFlXNUNiMjVsYzJBc0lITm9iM2NnWVNCM1lYSnVhVzVuSUdGdVpDQnBaMjV2Y21VZ2FYUmNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2FIVnRZVzVDYjI1bGMxdHVaWGRDYjI1bFRtRnRaVjBnSVQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JnVFhWc2RHbHdiR1VnWW05dVpTQmxiblJ5YVdWeklHWnZjaUFrZTI1bGQwSnZibVZPWVcxbGZTQmtaWFJsWTNSbFpDQW9hVzVrWlhnZ1BTQWtlMmx1WkdWNGZTa3NJR2xuYm05eWFXNW5JR1IxY0d4cFkyRjBaV1FnWlc1MGNtbGxjeTVnTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnSUNBdkx5QnpaWFFnZEc4Z2RHaGxJR0JvZFcxaGJrSnZibVZ6WUZ4dUlDQWdJQ0FnSUNBZ0lHaDFiV0Z1UW05dVpYTmJibVYzUW05dVpVNWhiV1ZkSUQwZ2V5QnViMlJsSUgwN1hHNGdJQ0FnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCb2RXMWhibTlwWkNBOUlHNWxkeUJXVWsxSWRXMWhibTlwWkNoMGFHbHpMbDlsYm5OMWNtVlNaWEYxYVhKbFpFSnZibVZ6UlhocGMzUW9hSFZ0WVc1Q2IyNWxjeWtzSUh0Y2JpQWdJQ0FnSUdGMWRHOVZjR1JoZEdWSWRXMWhia0p2Ym1Wek9pQjBhR2x6TG1GMWRHOVZjR1JoZEdWSWRXMWhia0p2Ym1WekxGeHVJQ0FnSUgwcE8xeHVJQ0FnSUdkc2RHWXVjMk5sYm1VdVlXUmtLR2gxYldGdWIybGtMbTV2Y20xaGJHbDZaV1JJZFcxaGJrSnZibVZ6VW05dmRDazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NW9aV3h3WlhKU2IyOTBLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h3WlhJZ1BTQnVaWGNnVmxKTlNIVnRZVzV2YVdSSVpXeHdaWElvYUhWdFlXNXZhV1FwTzF4dUlDQWdJQ0FnZEdocGN5NW9aV3h3WlhKU2IyOTBMbUZrWkNob1pXeHdaWElwTzF4dUlDQWdJQ0FnYUdWc2NHVnlMbkpsYm1SbGNrOXlaR1Z5SUQwZ2RHaHBjeTVvWld4d1pYSlNiMjkwTG5KbGJtUmxjazl5WkdWeU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJvZFcxaGJtOXBaRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRmJuTjFjbVVnY21WeGRXbHlaV1FnWW05dVpYTWdaWGhwYzNRZ2FXNGdaMmwyWlc0Z2FIVnRZVzRnWW05dVpYTXVYRzRnSUNBcUlFQndZWEpoYlNCb2RXMWhia0p2Ym1WeklFaDFiV0Z1SUdKdmJtVnpYRzRnSUNBcUlFQnlaWFIxY201eklFaDFiV0Z1SUdKdmJtVnpMQ0J1YnlCc2IyNW5aWElnY0dGeWRHbGhiQ0ZjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJWdWMzVnlaVkpsY1hWcGNtVmtRbTl1WlhORmVHbHpkQ2hvZFcxaGJrSnZibVZ6T2lCUVlYSjBhV0ZzUEZaU1RVaDFiV0Z1UW05dVpYTStLVG9nVmxKTlNIVnRZVzVDYjI1bGN5QjdYRzRnSUNBZ0x5OGdaVzV6ZFhKbElISmxjWFZwY21Wa0lHSnZibVZ6SUdWNGFYTjBYRzRnSUNBZ1kyOXVjM1FnYldsemMybHVaMUpsY1hWcGNtVmtRbTl1WlhNZ1BTQlBZbXBsWTNRdWRtRnNkV1Z6S0ZaU1RWSmxjWFZwY21Wa1NIVnRZVzVDYjI1bFRtRnRaU2t1Wm1sc2RHVnlLRnh1SUNBZ0lDQWdLSEpsY1hWcGNtVmtRbTl1WlU1aGJXVXBJRDArSUdoMWJXRnVRbTl1WlhOYmNtVnhkV2x5WldSQ2IyNWxUbUZ0WlYwZ1BUMGdiblZzYkN4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnTHk4Z2RHaHliM2NnWVc0Z1pYSnliM0lnYVdZZ2RHaGxjbVVnWVhKbElHMXBjM05wYm1jZ1ltOXVaWE5jYmlBZ0lDQnBaaUFvYldsemMybHVaMUpsY1hWcGNtVmtRbTl1WlhNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmdWbEpOU0hWdFlXNXZhV1JNYjJGa1pYSlFiSFZuYVc0NklGUm9aWE5sSUdoMWJXRnViMmxrSUdKdmJtVnpJR0Z5WlNCeVpYRjFhWEpsWkNCaWRYUWdibTkwSUdWNGFYTjBPaUFrZTIxcGMzTnBibWRTWlhGMWFYSmxaRUp2Ym1WekxtcHZhVzRvSnl3Z0p5bDlZQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHaDFiV0Z1UW05dVpYTWdZWE1nVmxKTlNIVnRZVzVDYjI1bGN6dGNiaUFnZlZ4dWZWeHVJaXdpYVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1JtRnVRblZtWm1WeVIyVnZiV1YwY25rZ1pYaDBaVzVrY3lCVVNGSkZSUzVDZFdabVpYSkhaVzl0WlhSeWVTQjdYRzRnSUhCMVlteHBZeUIwYUdWMFlUb2diblZ0WW1WeU8xeHVJQ0J3ZFdKc2FXTWdjbUZrYVhWek9pQnVkVzFpWlhJN1hHNGdJSEJ5YVhaaGRHVWdYMk4xY25KbGJuUlVhR1YwWVNBOUlEQTdYRzRnSUhCeWFYWmhkR1VnWDJOMWNuSmxiblJTWVdScGRYTWdQU0F3TzF4dUlDQndjbWwyWVhSbElISmxZV1J2Ym14NUlGOWhkSFJ5VUc5ek9pQlVTRkpGUlM1Q2RXWm1aWEpCZEhSeWFXSjFkR1U3WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1gyRjBkSEpKYm1SbGVEb2dWRWhTUlVVdVFuVm1abVZ5UVhSMGNtbGlkWFJsTzF4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWdwSUh0Y2JpQWdJQ0J6ZFhCbGNpZ3BPMXh1WEc0Z0lDQWdkR2hwY3k1MGFHVjBZU0E5SURBdU1EdGNiaUFnSUNCMGFHbHpMbkpoWkdsMWN5QTlJREF1TUR0Y2JpQWdJQ0IwYUdsekxsOWpkWEp5Wlc1MFZHaGxkR0VnUFNBd0xqQTdYRzRnSUNBZ2RHaHBjeTVmWTNWeWNtVnVkRkpoWkdsMWN5QTlJREF1TUR0Y2JseHVJQ0FnSUhSb2FYTXVYMkYwZEhKUWIzTWdQU0J1WlhjZ1ZFaFNSVVV1UW5WbVptVnlRWFIwY21saWRYUmxLRzVsZHlCR2JHOWhkRE15UVhKeVlYa29OalVnS2lBektTd2dNeWs3WEc0Z0lDQWdkR2hwY3k1elpYUkJkSFJ5YVdKMWRHVW9KM0J2YzJsMGFXOXVKeXdnZEdocGN5NWZZWFIwY2xCdmN5azdYRzVjYmlBZ0lDQjBhR2x6TGw5aGRIUnlTVzVrWlhnZ1BTQnVaWGNnVkVoU1JVVXVRblZtWm1WeVFYUjBjbWxpZFhSbEtHNWxkeUJWYVc1ME1UWkJjbkpoZVNneklDb2dOak1wTENBeEtUdGNiaUFnSUNCMGFHbHpMbk5sZEVsdVpHVjRLSFJvYVhNdVgyRjBkSEpKYm1SbGVDazdYRzVjYmlBZ0lDQjBhR2x6TGw5aWRXbHNaRWx1WkdWNEtDazdYRzRnSUNBZ2RHaHBjeTUxY0dSaGRHVW9LVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUIxY0dSaGRHVW9LVG9nZG05cFpDQjdYRzRnSUNBZ2JHVjBJSE5vYjNWc1pGVndaR0YwWlVkbGIyMWxkSEo1SUQwZ1ptRnNjMlU3WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmWTNWeWNtVnVkRlJvWlhSaElDRTlQU0IwYUdsekxuUm9aWFJoS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbDlqZFhKeVpXNTBWR2hsZEdFZ1BTQjBhR2x6TG5Sb1pYUmhPMXh1SUNBZ0lDQWdjMmh2ZFd4a1ZYQmtZWFJsUjJWdmJXVjBjbmtnUFNCMGNuVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxsOWpkWEp5Wlc1MFVtRmthWFZ6SUNFOVBTQjBhR2x6TG5KaFpHbDFjeWtnZTF4dUlDQWdJQ0FnZEdocGN5NWZZM1Z5Y21WdWRGSmhaR2wxY3lBOUlIUm9hWE11Y21Ga2FYVnpPMXh1SUNBZ0lDQWdjMmh2ZFd4a1ZYQmtZWFJsUjJWdmJXVjBjbmtnUFNCMGNuVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h6YUc5MWJHUlZjR1JoZEdWSFpXOXRaWFJ5ZVNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWW5WcGJHUlFiM05wZEdsdmJpZ3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMkoxYVd4a1VHOXphWFJwYjI0b0tUb2dkbTlwWkNCN1hHNGdJQ0FnZEdocGN5NWZZWFIwY2xCdmN5NXpaWFJZV1Zvb01Dd2dNQzR3TENBd0xqQXNJREF1TUNrN1hHNWNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElEWTBPeUJwS3lzcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhRZ1BTQW9hU0F2SURZekxqQXBJQ29nZEdocGN5NWZZM1Z5Y21WdWRGUm9aWFJoTzF4dVhHNGdJQ0FnSUNCMGFHbHpMbDloZEhSeVVHOXpMbk5sZEZoWldpaHBJQ3NnTVN3Z2RHaHBjeTVmWTNWeWNtVnVkRkpoWkdsMWN5QXFJRTFoZEdndWMybHVLSFFwTENBd0xqQXNJSFJvYVhNdVgyTjFjbkpsYm5SU1lXUnBkWE1nS2lCTllYUm9MbU52Y3loMEtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjeTV1WldWa2MxVndaR0YwWlNBOUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUY5aWRXbHNaRWx1WkdWNEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z05qTTdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWVhSMGNrbHVaR1Y0TG5ObGRGaFpXaWhwSUNvZ015d2dNQ3dnYVNBcklERXNJR2tnS3lBeUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbDloZEhSeVNXNWtaWGd1Ym1WbFpITlZjR1JoZEdVZ1BTQjBjblZsTzF4dUlDQjlYRzU5WEc0aUxDSnBiWEJ2Y25RZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJNYVc1bFFXNWtVM0JvWlhKbFFuVm1abVZ5UjJWdmJXVjBjbmtnWlhoMFpXNWtjeUJVU0ZKRlJTNUNkV1ptWlhKSFpXOXRaWFJ5ZVNCN1hHNGdJSEIxWW14cFl5QnlZV1JwZFhNNklHNTFiV0psY2p0Y2JpQWdjSFZpYkdsaklIUmhhV3c2SUZSSVVrVkZMbFpsWTNSdmNqTTdYRzRnSUhCeWFYWmhkR1VnWDJOMWNuSmxiblJTWVdScGRYTTZJRzUxYldKbGNqdGNiaUFnY0hKcGRtRjBaU0JmWTNWeWNtVnVkRlJoYVd3NklGUklVa1ZGTGxabFkzUnZjak03WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1gyRjBkSEpRYjNNNklGUklVa1ZGTGtKMVptWmxja0YwZEhKcFluVjBaVHRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCZllYUjBja2x1WkdWNE9pQlVTRkpGUlM1Q2RXWm1aWEpCZEhSeWFXSjFkR1U3WEc1Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLQ2tnZTF4dUlDQWdJSE4xY0dWeUtDazdYRzVjYmlBZ0lDQjBhR2x6TG5KaFpHbDFjeUE5SURBdU1EdGNiaUFnSUNCMGFHbHpMbDlqZFhKeVpXNTBVbUZrYVhWeklEMGdNQzR3TzF4dVhHNGdJQ0FnZEdocGN5NTBZV2xzSUQwZ2JtVjNJRlJJVWtWRkxsWmxZM1J2Y2pNb0tUdGNiaUFnSUNCMGFHbHpMbDlqZFhKeVpXNTBWR0ZwYkNBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVjYmlBZ0lDQjBhR2x6TGw5aGRIUnlVRzl6SUQwZ2JtVjNJRlJJVWtWRkxrSjFabVpsY2tGMGRISnBZblYwWlNodVpYY2dSbXh2WVhRek1rRnljbUY1S0RJNU5Da3NJRE1wTzF4dUlDQWdJSFJvYVhNdWMyVjBRWFIwY21saWRYUmxLQ2R3YjNOcGRHbHZiaWNzSUhSb2FYTXVYMkYwZEhKUWIzTXBPMXh1WEc0Z0lDQWdkR2hwY3k1ZllYUjBja2x1WkdWNElEMGdibVYzSUZSSVVrVkZMa0oxWm1abGNrRjBkSEpwWW5WMFpTaHVaWGNnVldsdWRERTJRWEp5WVhrb01UazBLU3dnTVNrN1hHNGdJQ0FnZEdocGN5NXpaWFJKYm1SbGVDaDBhR2x6TGw5aGRIUnlTVzVrWlhncE8xeHVYRzRnSUNBZ2RHaHBjeTVmWW5WcGJHUkpibVJsZUNncE8xeHVJQ0FnSUhSb2FYTXVkWEJrWVhSbEtDazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdkWEJrWVhSbEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUd4bGRDQnphRzkxYkdSVmNHUmhkR1ZIWlc5dFpYUnllU0E5SUdaaGJITmxPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVYMk4xY25KbGJuUlNZV1JwZFhNZ0lUMDlJSFJvYVhNdWNtRmthWFZ6S1NCN1hHNGdJQ0FnSUNCMGFHbHpMbDlqZFhKeVpXNTBVbUZrYVhWeklEMGdkR2hwY3k1eVlXUnBkWE03WEc0Z0lDQWdJQ0J6YUc5MWJHUlZjR1JoZEdWSFpXOXRaWFJ5ZVNBOUlIUnlkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbDlqZFhKeVpXNTBWR0ZwYkM1bGNYVmhiSE1vZEdocGN5NTBZV2xzS1NrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWTNWeWNtVnVkRlJoYVd3dVkyOXdlU2gwYUdsekxuUmhhV3dwTzF4dUlDQWdJQ0FnYzJodmRXeGtWWEJrWVhSbFIyVnZiV1YwY25rZ1BTQjBjblZsTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoemFHOTFiR1JWY0dSaGRHVkhaVzl0WlhSeWVTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZlluVnBiR1JRYjNOcGRHbHZiaWdwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJKMWFXeGtVRzl6YVhScGIyNG9LVG9nZG05cFpDQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQXpNanNnYVNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMElEMGdLR2tnTHlBeE5pNHdLU0FxSUUxaGRHZ3VVRWs3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVYMkYwZEhKUWIzTXVjMlYwV0ZsYUtHa3NJRTFoZEdndVkyOXpLSFFwTENCTllYUm9Mbk5wYmloMEtTd2dNQzR3S1R0Y2JpQWdJQ0FnSUhSb2FYTXVYMkYwZEhKUWIzTXVjMlYwV0ZsYUtETXlJQ3NnYVN3Z01DNHdMQ0JOWVhSb0xtTnZjeWgwS1N3Z1RXRjBhQzV6YVc0b2RDa3BPMXh1SUNBZ0lDQWdkR2hwY3k1ZllYUjBjbEJ2Y3k1elpYUllXVm9vTmpRZ0t5QnBMQ0JOWVhSb0xuTnBiaWgwS1N3Z01DNHdMQ0JOWVhSb0xtTnZjeWgwS1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NXpZMkZzWlNoMGFHbHpMbDlqZFhKeVpXNTBVbUZrYVhWekxDQjBhR2x6TGw5amRYSnlaVzUwVW1Ga2FYVnpMQ0IwYUdsekxsOWpkWEp5Wlc1MFVtRmthWFZ6S1R0Y2JpQWdJQ0IwYUdsekxuUnlZVzV6YkdGMFpTaDBhR2x6TGw5amRYSnlaVzUwVkdGcGJDNTRMQ0IwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQzU1TENCMGFHbHpMbDlqZFhKeVpXNTBWR0ZwYkM1NktUdGNibHh1SUNBZ0lIUm9hWE11WDJGMGRISlFiM011YzJWMFdGbGFLRGsyTENBd0xDQXdMQ0F3S1R0Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5VUc5ekxuTmxkRmhaV2lnNU55d2dkR2hwY3k1ZlkzVnljbVZ1ZEZSaGFXd3VlQ3dnZEdocGN5NWZZM1Z5Y21WdWRGUmhhV3d1ZVN3Z2RHaHBjeTVmWTNWeWNtVnVkRlJoYVd3dWVpazdYRzVjYmlBZ0lDQjBhR2x6TGw5aGRIUnlVRzl6TG01bFpXUnpWWEJrWVhSbElEMGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gySjFhV3hrU1c1a1pYZ29LVG9nZG05cFpDQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQXpNanNnYVNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCcE1TQTlJQ2hwSUNzZ01Ta2dKU0F6TWp0Y2JseHVJQ0FnSUNBZ2RHaHBjeTVmWVhSMGNrbHVaR1Y0TG5ObGRGaFpLR2tnS2lBeUxDQnBMQ0JwTVNrN1hHNGdJQ0FnSUNCMGFHbHpMbDloZEhSeVNXNWtaWGd1YzJWMFdGa29OalFnS3lCcElDb2dNaXdnTXpJZ0t5QnBMQ0F6TWlBcklHa3hLVHRjYmlBZ0lDQWdJSFJvYVhNdVgyRjBkSEpKYm1SbGVDNXpaWFJZV1NneE1qZ2dLeUJwSUNvZ01pd2dOalFnS3lCcExDQTJOQ0FySUdreEtUdGNiaUFnSUNCOVhHNGdJQ0FnZEdocGN5NWZZWFIwY2tsdVpHVjRMbk5sZEZoWktERTVNaXdnT1RZc0lEazNLVHRjYmx4dUlDQWdJSFJvYVhNdVgyRjBkSEpKYm1SbGVDNXVaV1ZrYzFWd1pHRjBaU0E5SUhSeWRXVTdYRzRnSUgxY2JuMWNiaUlzSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjdJRlpTVFV4dmIydEJkQ0I5SUdaeWIyMGdKeTR1TDFaU1RVeHZiMnRCZENjN1hHNXBiWEJ2Y25RZ2V5QkdZVzVDZFdabVpYSkhaVzl0WlhSeWVTQjlJR1p5YjIwZ0p5NHZkWFJwYkhNdlJtRnVRblZtWm1WeVIyVnZiV1YwY25rbk8xeHVhVzF3YjNKMElIc2dUR2x1WlVGdVpGTndhR1Z5WlVKMVptWmxja2RsYjIxbGRISjVJSDBnWm5KdmJTQW5MaTkxZEdsc2N5OU1hVzVsUVc1a1UzQm9aWEpsUW5WbVptVnlSMlZ2YldWMGNua25PMXh1WEc1amIyNXpkQ0JmY1hWaGRFRWdQU0J1WlhjZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlncE8xeHVZMjl1YzNRZ1gzRjFZWFJDSUQwZ2JtVjNJRlJJVWtWRkxsRjFZWFJsY201cGIyNG9LVHRjYm1OdmJuTjBJRjkyTTBFZ1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WTI5dWMzUWdYM1l6UWlBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVjYm1OdmJuTjBJRk5SVWxSZk1sOVBWa1ZTWHpJZ1BTQk5ZWFJvTG5OeGNuUW9NaTR3S1NBdklESXVNRHRjYm1OdmJuTjBJRkZWUVZSZldGbGZRMWM1TUNBOUlHNWxkeUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVLREFzSURBc0lDMVRVVkpVWHpKZlQxWkZVbDh5TENCVFVWSlVYekpmVDFaRlVsOHlLVHRjYm1OdmJuTjBJRlpGUXpOZlVFOVRTVlJKVmtWZldTQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLREF1TUN3Z01TNHdMQ0F3TGpBcE8xeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5URzl2YTBGMFNHVnNjR1Z5SUdWNGRHVnVaSE1nVkVoU1JVVXVSM0p2ZFhBZ2UxeHVJQ0J3ZFdKc2FXTWdjbVZoWkc5dWJIa2dkbkp0VEc5dmEwRjBPaUJXVWsxTWIyOXJRWFE3WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1gyMWxjMmhaWVhjNklGUklVa1ZGTGsxbGMyZzhSbUZ1UW5WbVptVnlSMlZ2YldWMGNua3NJRlJJVWtWRkxrMWxjMmhDWVhOcFkwMWhkR1Z5YVdGc1BqdGNiaUFnY0hKcGRtRjBaU0J5WldGa2IyNXNlU0JmYldWemFGQnBkR05vT2lCVVNGSkZSUzVOWlhOb1BFWmhia0oxWm1abGNrZGxiMjFsZEhKNUxDQlVTRkpGUlM1TlpYTm9RbUZ6YVdOTllYUmxjbWxoYkQ0N1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYMnhwYm1WVVlYSm5aWFE2SUZSSVVrVkZMa3hwYm1WVFpXZHRaVzUwY3p4TWFXNWxRVzVrVTNCb1pYSmxRblZtWm1WeVIyVnZiV1YwY25rc0lGUklVa1ZGTGt4cGJtVkNZWE5wWTAxaGRHVnlhV0ZzUGp0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvYkc5dmEwRjBPaUJXVWsxTWIyOXJRWFFwSUh0Y2JpQWdJQ0J6ZFhCbGNpZ3BPMXh1SUNBZ0lIUm9hWE11YldGMGNtbDRRWFYwYjFWd1pHRjBaU0E5SUdaaGJITmxPMXh1WEc0Z0lDQWdkR2hwY3k1MmNtMU1iMjlyUVhRZ1BTQnNiMjlyUVhRN1hHNWNiaUFnSUNCN1hHNGdJQ0FnSUNCamIyNXpkQ0JuWlc5dFpYUnllU0E5SUc1bGR5QkdZVzVDZFdabVpYSkhaVzl0WlhSeWVTZ3BPMXh1SUNBZ0lDQWdaMlZ2YldWMGNua3VjbUZrYVhWeklEMGdNQzQxTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0J0WVhSbGNtbGhiQ0E5SUc1bGR5QlVTRkpGUlM1TlpYTm9RbUZ6YVdOTllYUmxjbWxoYkNoN1hHNGdJQ0FnSUNBZ0lHTnZiRzl5T2lBd2VEQXdabVl3TUN4Y2JpQWdJQ0FnSUNBZ2RISmhibk53WVhKbGJuUTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lHOXdZV05wZEhrNklEQXVOU3hjYmlBZ0lDQWdJQ0FnYzJsa1pUb2dWRWhTUlVVdVJHOTFZbXhsVTJsa1pTeGNiaUFnSUNBZ0lDQWdaR1Z3ZEdoVVpYTjBPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdaR1Z3ZEdoWGNtbDBaVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnZEdocGN5NWZiV1Z6YUZCcGRHTm9JRDBnYm1WM0lGUklVa1ZGTGsxbGMyZ29aMlZ2YldWMGNua3NJRzFoZEdWeWFXRnNLVHRjYmlBZ0lDQWdJSFJvYVhNdVlXUmtLSFJvYVhNdVgyMWxjMmhRYVhSamFDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWjJWdmJXVjBjbmtnUFNCdVpYY2dSbUZ1UW5WbVptVnlSMlZ2YldWMGNua29LVHRjYmlBZ0lDQWdJR2RsYjIxbGRISjVMbkpoWkdsMWN5QTlJREF1TlR0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYldGMFpYSnBZV3dnUFNCdVpYY2dWRWhTUlVVdVRXVnphRUpoYzJsalRXRjBaWEpwWVd3b2UxeHVJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ01IaG1aakF3TURBc1hHNGdJQ0FnSUNBZ0lIUnlZVzV6Y0dGeVpXNTBPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQnZjR0ZqYVhSNU9pQXdMalVzWEc0Z0lDQWdJQ0FnSUhOcFpHVTZJRlJJVWtWRkxrUnZkV0pzWlZOcFpHVXNYRzRnSUNBZ0lDQWdJR1JsY0hSb1ZHVnpkRG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJR1JsY0hSb1YzSnBkR1U2SUdaaGJITmxMRnh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVYMjFsYzJoWllYY2dQU0J1WlhjZ1ZFaFNSVVV1VFdWemFDaG5aVzl0WlhSeWVTd2diV0YwWlhKcFlXd3BPMXh1SUNBZ0lDQWdkR2hwY3k1aFpHUW9kR2hwY3k1ZmJXVnphRmxoZHlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZTF4dUlDQWdJQ0FnWTI5dWMzUWdaMlZ2YldWMGNua2dQU0J1WlhjZ1RHbHVaVUZ1WkZOd2FHVnlaVUoxWm1abGNrZGxiMjFsZEhKNUtDazdYRzRnSUNBZ0lDQm5aVzl0WlhSeWVTNXlZV1JwZFhNZ1BTQXdMakU3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzFoZEdWeWFXRnNJRDBnYm1WM0lGUklVa1ZGTGt4cGJtVkNZWE5wWTAxaGRHVnlhV0ZzS0h0Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SURCNFptWm1abVptTEZ4dUlDQWdJQ0FnSUNCa1pYQjBhRlJsYzNRNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNCa1pYQjBhRmR5YVhSbE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQjBhR2x6TGw5c2FXNWxWR0Z5WjJWMElEMGdibVYzSUZSSVVrVkZMa3hwYm1WVFpXZHRaVzUwY3loblpXOXRaWFJ5ZVN3Z2JXRjBaWEpwWVd3cE8xeHVJQ0FnSUNBZ2RHaHBjeTVmYkdsdVpWUmhjbWRsZEM1bWNuVnpkSFZ0UTNWc2JHVmtJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQjBhR2x6TG1Ga1pDaDBhR2x6TGw5c2FXNWxWR0Z5WjJWMEtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1pHbHpjRzl6WlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxsOXRaWE5vV1dGM0xtZGxiMjFsZEhKNUxtUnBjM0J2YzJVb0tUdGNiaUFnSUNCMGFHbHpMbDl0WlhOb1dXRjNMbTFoZEdWeWFXRnNMbVJwYzNCdmMyVW9LVHRjYmx4dUlDQWdJSFJvYVhNdVgyMWxjMmhRYVhSamFDNW5aVzl0WlhSeWVTNWthWE53YjNObEtDazdYRzRnSUNBZ2RHaHBjeTVmYldWemFGQnBkR05vTG0xaGRHVnlhV0ZzTG1ScGMzQnZjMlVvS1R0Y2JseHVJQ0FnSUhSb2FYTXVYMnhwYm1WVVlYSm5aWFF1WjJWdmJXVjBjbmt1WkdsemNHOXpaU2dwTzF4dUlDQWdJSFJvYVhNdVgyeHBibVZVWVhKblpYUXViV0YwWlhKcFlXd3VaR2x6Y0c5elpTZ3BPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSFZ3WkdGMFpVMWhkSEpwZUZkdmNteGtLR1p2Y21ObE9pQmliMjlzWldGdUtUb2dkbTlwWkNCN1hHNGdJQ0FnTHk4Z2RYQmtZWFJsSUdkbGIyMWxkSEpwWlhOY2JpQWdJQ0JqYjI1emRDQjVZWGNnUFNCVVNGSkZSUzVOWVhSb1ZYUnBiSE11UkVWSE1sSkJSQ0FxSUhSb2FYTXVkbkp0VEc5dmEwRjBMbmxoZHp0Y2JpQWdJQ0IwYUdsekxsOXRaWE5vV1dGM0xtZGxiMjFsZEhKNUxuUm9aWFJoSUQwZ2VXRjNPMXh1SUNBZ0lIUm9hWE11WDIxbGMyaFpZWGN1WjJWdmJXVjBjbmt1ZFhCa1lYUmxLQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQndhWFJqYUNBOUlGUklVa1ZGTGsxaGRHaFZkR2xzY3k1RVJVY3lVa0ZFSUNvZ2RHaHBjeTUyY20xTWIyOXJRWFF1Y0dsMFkyZzdYRzRnSUNBZ2RHaHBjeTVmYldWemFGQnBkR05vTG1kbGIyMWxkSEo1TG5Sb1pYUmhJRDBnY0dsMFkyZzdYRzRnSUNBZ2RHaHBjeTVmYldWemFGQnBkR05vTG1kbGIyMWxkSEo1TG5Wd1pHRjBaU2dwTzF4dVhHNGdJQ0FnTHk4Z1oyVjBJSGR2Y214a0lIQnZjMmwwYVc5dUlHRnVaQ0J4ZFdGMFpYSnVhVzl1WEc0Z0lDQWdkR2hwY3k1MmNtMU1iMjlyUVhRdVoyVjBURzl2YTBGMFYyOXliR1JRYjNOcGRHbHZiaWhmZGpOQktUdGNiaUFnSUNCMGFHbHpMblp5YlV4dmIydEJkQzVuWlhSTWIyOXJRWFJYYjNKc1pGRjFZWFJsY201cGIyNG9YM0YxWVhSQktUdGNibHh1SUNBZ0lDOHZJR05oYkdOMWJHRjBaU0J5YjNSaGRHbHZiaUIxYzJsdVp5Qm1ZV05sUm5KdmJuUmNiaUFnSUNCZmNYVmhkRUV1YlhWc2RHbHdiSGtvZEdocGN5NTJjbTFNYjI5clFYUXVaMlYwUm1GalpVWnliMjUwVVhWaGRHVnlibWx2YmloZmNYVmhkRUlwS1R0Y2JseHVJQ0FnSUM4dklITmxkQ0IwY21GdWMyWnZjbTBnZEc4Z2JXVnphR1Z6WEc0Z0lDQWdkR2hwY3k1ZmJXVnphRmxoZHk1d2IzTnBkR2x2Ymk1amIzQjVLRjkyTTBFcE8xeHVJQ0FnSUhSb2FYTXVYMjFsYzJoWllYY3VjWFZoZEdWeWJtbHZiaTVqYjNCNUtGOXhkV0YwUVNrN1hHNWNiaUFnSUNCMGFHbHpMbDl0WlhOb1VHbDBZMmd1Y0c5emFYUnBiMjR1WTI5d2VTaGZkak5CS1R0Y2JpQWdJQ0IwYUdsekxsOXRaWE5vVUdsMFkyZ3VjWFZoZEdWeWJtbHZiaTVqYjNCNUtGOXhkV0YwUVNrN1hHNGdJQ0FnZEdocGN5NWZiV1Z6YUZCcGRHTm9MbkYxWVhSbGNtNXBiMjR1YlhWc2RHbHdiSGtvWDNGMVlYUkNMbk5sZEVaeWIyMUJlR2x6UVc1bmJHVW9Wa1ZETTE5UVQxTkpWRWxXUlY5WkxDQjVZWGNwS1R0Y2JpQWdJQ0IwYUdsekxsOXRaWE5vVUdsMFkyZ3VjWFZoZEdWeWJtbHZiaTV0ZFd4MGFYQnNlU2hSVlVGVVgxaFpYME5YT1RBcE8xeHVYRzRnSUNBZ0x5OGdkWEJrWVhSbElIUmhjbWRsZENCc2FXNWxJR0Z1WkNCemNHaGxjbVZjYmlBZ0lDQmpiMjV6ZENCN0lIUmhjbWRsZEN3Z1lYVjBiMVZ3WkdGMFpTQjlJRDBnZEdocGN5NTJjbTFNYjI5clFYUTdYRzRnSUNBZ2FXWWdLSFJoY21kbGRDQWhQU0J1ZFd4c0lDWW1JR0YxZEc5VmNHUmhkR1VwSUh0Y2JpQWdJQ0FnSUhSaGNtZGxkQzVuWlhSWGIzSnNaRkJ2YzJsMGFXOXVLRjkyTTBJcExuTjFZaWhmZGpOQktUdGNiaUFnSUNBZ0lIUm9hWE11WDJ4cGJtVlVZWEpuWlhRdVoyVnZiV1YwY25rdWRHRnBiQzVqYjNCNUtGOTJNMElwTzF4dUlDQWdJQ0FnZEdocGN5NWZiR2x1WlZSaGNtZGxkQzVuWlc5dFpYUnllUzUxY0dSaGRHVW9LVHRjYmlBZ0lDQWdJSFJvYVhNdVgyeHBibVZVWVhKblpYUXVjRzl6YVhScGIyNHVZMjl3ZVNoZmRqTkJLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJoY0hCc2VTQjBjbUZ1YzJadmNtMGdkRzhnYldWemFHVnpYRzRnSUNBZ2MzVndaWEl1ZFhCa1lYUmxUV0YwY21sNFYyOXliR1FvWm05eVkyVXBPMXh1SUNCOVhHNTlYRzRpTENKcGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVjYm1OdmJuTjBJRjl3YjNOcGRHbHZiaUE5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNWpiMjV6ZENCZmMyTmhiR1VnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVYRzR2S2lwY2JpQXFJRUVnY21Wd2JHRmpaVzFsYm5RZ2IyWWdZRTlpYW1WamRETkVMbWRsZEZkdmNteGtVWFZoZEdWeWJtbHZibUF1WEc0Z0tpQkZlSFJ5WVdOMElIUm9aU0IzYjNKc1pDQnhkV0YwWlhKdWFXOXVJRzltSUdGdUlHOWlhbVZqZENCbWNtOXRJR2wwY3lCM2IzSnNaQ0J6Y0dGalpTQnRZWFJ5YVhnc0lIZHBkR2h2ZFhRZ1kyRnNiR2x1WnlCZ1QySnFaV04wTTBRdWRYQmtZWFJsVjI5eWJHUk5ZWFJ5YVhoZ0xseHVJQ29nVlhObElIUm9hWE1nZDJobGJpQjViM1VuY21VZ2MzVnlaU0IwYUdGMElIUm9aU0IzYjNKc1pDQnRZWFJ5YVhnZ2FYTWdkWEF0ZEc4dFpHRjBaUzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUmNiaUFxSUVCd1lYSmhiU0J2ZFhRZ1FTQjBZWEpuWlhRZ2NYVmhkR1Z5Ym1sdmJseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFYyOXliR1JSZFdGMFpYSnVhVzl1VEdsMFpTaHZZbXBsWTNRNklGUklVa1ZGTGs5aWFtVmpkRE5FTENCdmRYUTZJRlJJVWtWRkxsRjFZWFJsY201cGIyNHBPaUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVJSHRjYmlBZ2IySnFaV04wTG0xaGRISnBlRmR2Y214a0xtUmxZMjl0Y0c5elpTaGZjRzl6YVhScGIyNHNJRzkxZEN3Z1gzTmpZV3hsS1R0Y2JpQWdjbVYwZFhKdUlHOTFkRHRjYm4xY2JpSXNJbWx0Y0c5eWRDQXFJR0Z6SUZSSVVrVkZJR1p5YjIwZ0ozUm9jbVZsSnp0Y2JseHVMeW9xWEc0Z0tpQkRZV3hqZFd4aGRHVWdZWHBwYlhWMGFDQXZJR0ZzZEdsMGRXUmxJR0Z1WjJ4bGN5Qm1jbTl0SUdFZ2RtVmpkRzl5TGx4dUlDcGNiaUFxSUZSb2FYTWdjbVYwZFhKdWN5QmhJR1JwWm1abGNtVnVZMlVnYjJZZ1lXNW5iR1Z6SUdaeWIyMGdLREVzSURBc0lEQXBMbHh1SUNvZ1FYcHBiWFYwYUNCeVpYQnlaWE5sYm5SeklHRnVJR0Z1WjJ4bElHRnliM1Z1WkNCWklHRjRhWE11WEc0Z0tpQkJiSFJwZEhWa1pTQnlaWEJ5WlhObGJuUnpJR0Z1SUdGdVoyeGxJR0Z5YjNWdVpDQmFJR0Y0YVhNdVhHNGdLaUJKZENCcGN5QnliM1JoZEdWa0lHbHVJR2x1ZEhKcGJuTnBZeUJaTFZvZ2IzSmtaWEl1WEc0Z0tseHVJQ29nUUhCaGNtRnRJSFpsWTNSdmNpQlVhR1VnZG1WamRHOXlYRzRnS2lCQWNtVjBkWEp1Y3lCQklIUjFjR3hsSUdOdmJuUmhhVzV6SUhSM2J5QmhibWRzWlhNc0lHQmJJR0Y2YVcxMWRHZ3NJR0ZzZEdsMGRXUmxJRjFnWEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmpZV3hqUVhwcGJYVjBhRUZzZEdsMGRXUmxLSFpsWTNSdmNqb2dWRWhTUlVVdVZtVmpkRzl5TXlrNklGdGhlbWx0ZFhSb09pQnVkVzFpWlhJc0lHRnNkR2wwZFdSbE9pQnVkVzFpWlhKZElIdGNiaUFnY21WMGRYSnVJRnROWVhSb0xtRjBZVzR5S0MxMlpXTjBiM0l1ZWl3Z2RtVmpkRzl5TG5ncExDQk5ZWFJvTG1GMFlXNHlLSFpsWTNSdmNpNTVMQ0JOWVhSb0xuTnhjblFvZG1WamRHOXlMbmdnS2lCMlpXTjBiM0l1ZUNBcklIWmxZM1J2Y2k1NklDb2dkbVZqZEc5eUxub3BLVjA3WEc1OVhHNGlMQ0l2S2lwY2JpQXFJRTFoYTJVZ2MzVnlaU0IwYUdVZ1lXNW5iR1VnYVhNZ2QybDBhR2x1SUMxUVNTQjBieUJRU1M1Y2JpQXFYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dZR0JnYW5OY2JpQXFJSE5oYm1sMGFYcGxRVzVuYkdVb01TNDFJQ29nVFdGMGFDNVFTU2tnTHk4Z0xUQXVOU0FxSUZCSlhHNGdLaUJnWUdCY2JpQXFYRzRnS2lCQWNHRnlZVzBnWVc1bmJHVWdRVzRnYVc1d2RYUWdZVzVuYkdWY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5oYm1sMGFYcGxRVzVuYkdVb1lXNW5iR1U2SUc1MWJXSmxjaWs2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhKdmRXNWtWSFZ5YmlBOUlFMWhkR2d1Y205MWJtUW9ZVzVuYkdVZ0x5QXlMakFnTHlCTllYUm9MbEJKS1R0Y2JpQWdjbVYwZFhKdUlHRnVaMnhsSUMwZ01pNHdJQ29nVFdGMGFDNVFTU0FxSUhKdmRXNWtWSFZ5Ymp0Y2JuMWNiaUlzSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjdJRlpTVFVoMWJXRnViMmxrSUgwZ1puSnZiU0FuTGk0dmFIVnRZVzV2YVdRbk8xeHVhVzF3YjNKMElIc2daMlYwVjI5eWJHUlJkV0YwWlhKdWFXOXVUR2wwWlNCOUlHWnliMjBnSnk0dUwzVjBhV3h6TDJkbGRGZHZjbXhrVVhWaGRHVnlibWx2Ymt4cGRHVW5PMXh1YVcxd2IzSjBJSHNnY1hWaGRFbHVkbVZ5ZEVOdmJYQmhkQ0I5SUdaeWIyMGdKeTR1TDNWMGFXeHpMM0YxWVhSSmJuWmxjblJEYjIxd1lYUW5PMXh1YVcxd2IzSjBJSHNnWTJGc1kwRjZhVzExZEdoQmJIUnBkSFZrWlNCOUlHWnliMjBnSnk0dmRYUnBiSE12WTJGc1kwRjZhVzExZEdoQmJIUnBkSFZrWlNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVeHZiMnRCZEVGd2NHeHBaWElnZlNCbWNtOXRJQ2N1TDFaU1RVeHZiMnRCZEVGd2NHeHBaWEluTzF4dWFXMXdiM0owSUhzZ2MyRnVhWFJwZW1WQmJtZHNaU0I5SUdaeWIyMGdKeTR2ZFhScGJITXZjMkZ1YVhScGVtVkJibWRzWlNjN1hHNWNibU52Ym5OMElGWkZRek5mVUU5VFNWUkpWa1ZmV2lBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektEQXVNQ3dnTUM0d0xDQXhMakFwTzF4dVhHNWpiMjV6ZENCZmRqTkJJRDBnYm1WM0lGUklVa1ZGTGxabFkzUnZjak1vS1R0Y2JtTnZibk4wSUY5Mk0wSWdQU0J1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWdwTzF4dVkyOXVjM1FnWDNZelF5QTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLQ2s3WEc1amIyNXpkQ0JmY1hWaGRFRWdQU0J1WlhjZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlncE8xeHVZMjl1YzNRZ1gzRjFZWFJDSUQwZ2JtVjNJRlJJVWtWRkxsRjFZWFJsY201cGIyNG9LVHRjYm1OdmJuTjBJRjl4ZFdGMFF5QTlJRzVsZHlCVVNGSkZSUzVSZFdGMFpYSnVhVzl1S0NrN1hHNWpiMjV6ZENCZmNYVmhkRVFnUFNCdVpYY2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpZ3BPMXh1WTI5dWMzUWdYMlYxYkdWeVFTQTlJRzVsZHlCVVNGSkZSUzVGZFd4bGNpZ3BPMXh1WEc0dktpcGNiaUFxSUVFZ1kyeGhjM01nWTI5dWRISnZiSE1nWlhsbElHZGhlbVVnYlc5MlpXMWxiblJ6SUc5bUlHRWdWbEpOTGx4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5URzl2YTBGMElIdGNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQkZWVXhGVWw5UFVrUkZVaUE5SUNkWldGb25PeUF2THlCNVlYY3RjR2wwWTJndGNtOXNiRnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnYjNKcFoybHVJRzltSUV4dmIydEJkQzRnVUc5emFYUnBiMjRnYjJabWMyVjBJR1p5YjIwZ2RHaGxJR2hsWVdRZ1ltOXVaUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ2Wm1aelpYUkdjbTl0U0dWaFpFSnZibVVnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCSmRITWdZWE56YjJOcFlYUmxaQ0I3UUd4cGJtc2dWbEpOU0hWdFlXNXZhV1I5TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUdoMWJXRnViMmxrT2lCV1VrMUlkVzFoYm05cFpEdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSHRBYkdsdWF5QldVazFNYjI5clFYUkJjSEJzYVdWeWZTQnZaaUIwYUdVZ1RHOXZhMEYwTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdGd2NHeHBaWEk2SUZaU1RVeHZiMnRCZEVGd2NHeHBaWEk3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWxtSUhSb2FYTWdhWE1nZEhKMVpTd2dkR2hsSUV4dmIydEJkQ0IzYVd4c0lHSmxJSFZ3WkdGMFpXUWdZWFYwYjIxaGRHbGpZV3hzZVNCaWVTQmpZV3hzYVc1bklIdEFiR2x1YXlCMWNHUmhkR1Y5TENCMGIzZGhjbVJwYm1jZ2RHaGxJR1JwY21WamRHbHZiaUIwYnlCMGFHVWdlMEJzYVc1cklIUmhjbWRsZEgwdVhHNGdJQ0FxSUdCMGNuVmxZQ0JpZVNCa1pXWmhkV3gwTGx4dUlDQWdLbHh1SUNBZ0tpQlRaV1VnWVd4emJ6b2dlMEJzYVc1cklIUmhjbWRsZEgxY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCaGRYUnZWWEJrWVhSbElEMGdkSEoxWlR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElIUmhjbWRsZENCdlltcGxZM1FnYjJZZ2RHaGxJRXh2YjJ0QmRDNWNiaUFnSUNvZ1RtOTBaU0IwYUdGMElHbDBJR1J2WlhNZ2JtOTBJRzFoYTJVZ1lXNTVJSE5sYm5ObElHbG1JSHRBYkdsdWF5QmhkWFJ2VlhCa1lYUmxmU0JwY3lCa2FYTmhZbXhsWkM1Y2JpQWdJQ3BjYmlBZ0lDb2dVMlZsSUdGc2MyODZJSHRBYkdsdWF5QmhkWFJ2VlhCa1lYUmxmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSFJoY21kbGREODZJRlJJVWtWRkxrOWlhbVZqZERORUlId2diblZzYkR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElHWnliMjUwSUdScGNtVmpkR2x2YmlCdlppQjBhR1VnWm1GalpTNWNiaUFnSUNvZ1NXNTBaVzVrWldRZ2RHOGdZbVVnZFhObFpDQm1iM0lnVmxKTklEQXVNQ0JqYjIxd1lYUWdLRlpTVFNBd0xqQWdiVzlrWld4eklHRnlaU0JtWVdOcGJtY2dXaTBnYVc1emRHVmhaQ0J2WmlCYUt5a3VYRzRnSUNBcUlGbHZkU0IxYzNWaGJHeDVJR1J2YmlkMElIZGhiblFnZEc4Z2RHOTFZMmdnZEdocGN5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm1ZV05sUm5KdmJuUWdQU0J1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWd3TGpBc0lEQXVNQ3dnTVM0d0tUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1NYUnpJR04xY25KbGJuUWdZVzVuYkdVZ1lYSnZkVzVrSUZrZ1lYaHBjeXdnYVc0Z1pHVm5jbVZsTGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lGOTVZWGM2SUc1MWJXSmxjanRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTWFJ6SUdOMWNuSmxiblFnWVc1bmJHVWdZWEp2ZFc1a0lGa2dZWGhwY3l3Z2FXNGdaR1ZuY21WbExseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkQ0I1WVhjb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWZlV0YzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFbDBjeUJqZFhKeVpXNTBJR0Z1WjJ4bElHRnliM1Z1WkNCWklHRjRhWE1zSUdsdUlHUmxaM0psWlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCelpYUWdlV0YzS0haaGJIVmxPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQjBhR2x6TGw5NVlYY2dQU0IyWVd4MVpUdGNiaUFnSUNCMGFHbHpMbDl1WldWa2MxVndaR0YwWlNBOUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1NYUnpJR04xY25KbGJuUWdZVzVuYkdVZ1lYSnZkVzVrSUZnZ1lYaHBjeXdnYVc0Z1pHVm5jbVZsTGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lGOXdhWFJqYURvZ2JuVnRZbVZ5TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJKZEhNZ1kzVnljbVZ1ZENCaGJtZHNaU0JoY205MWJtUWdXQ0JoZUdsekxDQnBiaUJrWldkeVpXVXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwSUhCcGRHTm9LQ2s2SUc1MWJXSmxjaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNCcGRHTm9PMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVsMGN5QmpkWEp5Wlc1MElHRnVaMnhsSUdGeWIzVnVaQ0JZSUdGNGFYTXNJR2x1SUdSbFozSmxaUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6WlhRZ2NHbDBZMmdvZG1Gc2RXVTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lIUm9hWE11WDNCcGRHTm9JRDBnZG1Gc2RXVTdYRzRnSUNBZ2RHaHBjeTVmYm1WbFpITlZjR1JoZEdVZ1BTQjBjblZsTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGTndaV05wWm1sbGN5QjBhR0YwSUdGdVoyeGxjeUJ1WldWa0lIUnZJR0psSUdGd2NHeHBaV1FnZEc4Z2FYUnpJRnRBYkdsdWF5QmhjSEJzYVdWeVhTNWNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JmYm1WbFpITlZjR1JoZEdVNklHSnZiMnhsWVc0N1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZkdmNteGtJSEp2ZEdGMGFXOXVJRzltSUhSb1pTQm9aV0ZrSUdsdUlHbDBjeUJ5WlhOMElIQnZjMlV1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5eVpYTjBTR1ZoWkZkdmNteGtVWFZoZEdWeWJtbHZiam9nVkVoU1JVVXVVWFZoZEdWeWJtbHZianRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsY0hKbFkyRjBaV1FnVlhObElIdEFiR2x1YXlCblpYUkZkV3hsY24wZ2FXNXpkR1ZoWkM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUWdaWFZzWlhJb0tUb2dWRWhTUlVVdVJYVnNaWElnZTF4dUlDQWdJR052Ym5OdmJHVXVkMkZ5YmlnblZsSk5URzl2YTBGME9pQmxkV3hsY2lCcGN5QmtaWEJ5WldOaGRHVmtMaUIxYzJVZ1oyVjBSWFZzWlhJb0tTQnBibk4wWldGa0xpY3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWMFJYVnNaWElvYm1WM0lGUklVa1ZGTGtWMWJHVnlLQ2twTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElHNWxkeUI3UUd4cGJtc2dWbEpOVEc5dmEwRjBmUzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUdoMWJXRnViMmxrSUVFZ2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa2ZWeHVJQ0FnS2lCQWNHRnlZVzBnWVhCd2JHbGxjaUJCSUh0QWJHbHVheUJXVWsxTWIyOXJRWFJCY0hCc2FXVnlmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0doMWJXRnViMmxrT2lCV1VrMUlkVzFoYm05cFpDd2dZWEJ3YkdsbGNqb2dWbEpOVEc5dmEwRjBRWEJ3YkdsbGNpa2dlMXh1SUNBZ0lIUm9hWE11YUhWdFlXNXZhV1FnUFNCb2RXMWhibTlwWkR0Y2JpQWdJQ0IwYUdsekxtRndjR3hwWlhJZ1BTQmhjSEJzYVdWeU8xeHVYRzRnSUNBZ2RHaHBjeTVmZVdGM0lEMGdNQzR3TzF4dUlDQWdJSFJvYVhNdVgzQnBkR05vSUQwZ01DNHdPMXh1SUNBZ0lIUm9hWE11WDI1bFpXUnpWWEJrWVhSbElEMGdkSEoxWlR0Y2JseHVJQ0FnSUhSb2FYTXVYM0psYzNSSVpXRmtWMjl5YkdSUmRXRjBaWEp1YVc5dUlEMGdkR2hwY3k1blpYUk1iMjlyUVhSWGIzSnNaRkYxWVhSbGNtNXBiMjRvYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tTazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElHbDBjeUI1WVhjdGNHbDBZMmdnWVc1bmJHVnpJR0Z6SUdGdUlHQkZkV3hsY21BdVhHNGdJQ0FxSUVSdlpYTWdUazlVSUdOdmJuTnBaR1Z5SUh0QWJHbHVheUJtWVdObFJuSnZiblI5T3lCcGRDQnlaWFIxY201eklHQkZkV3hsY2lnd0xDQXdMQ0F3T3lCY0lsbFlXbHdpS1dBZ1lua2daR1ZtWVhWc2RDQnlaV2RoY21Sc1pYTnpJRzltSUhSb1pTQm1ZV05sUm5KdmJuUWdkbUZzZFdVdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjBZWEpuWlhRZ1ZHaGxJSFJoY21kbGRDQmxkV3hsY2x4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRFVjFiR1Z5S0hSaGNtZGxkRG9nVkVoU1JVVXVSWFZzWlhJcE9pQlVTRkpGUlM1RmRXeGxjaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUmhjbWRsZEM1elpYUW9WRWhTUlVVdVRXRjBhRlYwYVd4ekxrUkZSekpTUVVRZ0tpQjBhR2x6TGw5d2FYUmphQ3dnVkVoU1JVVXVUV0YwYUZWMGFXeHpMa1JGUnpKU1FVUWdLaUIwYUdsekxsOTVZWGNzSURBdU1Dd2dKMWxZV2ljcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Y0hrZ2RHaGxJR2RwZG1WdUlIdEFiR2x1YXlCV1VrMU1iMjlyUVhSOUlHbHVkRzhnZEdocGN5QnZibVV1WEc0Z0lDQXFJSHRBYkdsdWF5Qm9kVzFoYm05cFpIMGdiWFZ6ZENCaVpTQnpZVzFsSUdGeklIUm9aU0J6YjNWeVkyVWdiMjVsTGx4dUlDQWdLaUI3UUd4cGJtc2dZWEJ3YkdsbGNuMGdkMmxzYkNCeVpXWmxjbVZ1WTJVZ2RHaGxJSE5oYldVZ2FXNXpkR0Z1WTJVZ1lYTWdkR2hsSUhOdmRYSmpaU0J2Ym1VdVhHNGdJQ0FxSUVCd1lYSmhiU0J6YjNWeVkyVWdWR2hsSUh0QWJHbHVheUJXVWsxTWIyOXJRWFI5SUhsdmRTQjNZVzUwSUhSdklHTnZjSGxjYmlBZ0lDb2dRSEpsZEhWeWJuTWdkR2hwYzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmNIa29jMjkxY21ObE9pQldVazFNYjI5clFYUXBPaUIwYUdseklIdGNiaUFnSUNCcFppQW9kR2hwY3k1b2RXMWhibTlwWkNBaFBUMGdjMjkxY21ObExtaDFiV0Z1YjJsa0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0oxWlNUVXh2YjJ0QmREb2dhSFZ0WVc1dmFXUWdiWFZ6ZENCaVpTQnpZVzFsSUdsdUlHOXlaR1Z5SUhSdklHTnZjSGtuS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxtOW1abk5sZEVaeWIyMUlaV0ZrUW05dVpTNWpiM0I1S0hOdmRYSmpaUzV2Wm1aelpYUkdjbTl0U0dWaFpFSnZibVVwTzF4dUlDQWdJSFJvYVhNdVlYQndiR2xsY2lBOUlITnZkWEpqWlM1aGNIQnNhV1Z5TzF4dUlDQWdJSFJvYVhNdVlYVjBiMVZ3WkdGMFpTQTlJSE52ZFhKalpTNWhkWFJ2VlhCa1lYUmxPMXh1SUNBZ0lIUm9hWE11ZEdGeVoyVjBJRDBnYzI5MWNtTmxMblJoY21kbGREdGNiaUFnSUNCMGFHbHpMbVpoWTJWR2NtOXVkQzVqYjNCNUtITnZkWEpqWlM1bVlXTmxSbkp2Ym5RcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUJoSUdOc2IyNWxJRzltSUhSb2FYTWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRIMHVYRzRnSUNBcUlFNXZkR1VnZEdoaGRDQjdRR3hwYm1zZ2FIVnRZVzV2YVdSOUlHRnVaQ0I3UUd4cGJtc2dZWEJ3YkdsbGNuMGdkMmxzYkNCeVpXWmxjbVZ1WTJVZ2RHaGxJSE5oYldVZ2FXNXpkR0Z1WTJVZ1lYTWdkR2hwY3lCdmJtVXVYRzRnSUNBcUlFQnlaWFIxY201eklFTnZjR2xsWkNCN1FHeHBibXNnVmxKTlRHOXZhMEYwZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOc2IyNWxLQ2s2SUZaU1RVeHZiMnRCZENCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCV1VrMU1iMjlyUVhRb2RHaHBjeTVvZFcxaGJtOXBaQ3dnZEdocGN5NWhjSEJzYVdWeUtTNWpiM0I1S0hSb2FYTXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGMyVjBJSFJvWlNCc2IyOXJRWFFnWkdseVpXTjBhVzl1SUNoNVlYY2dZVzVrSUhCcGRHTm9LU0IwYnlCMGFHVWdhVzVwZEdsaGJDQmthWEpsWTNScGIyNHVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbVZ6WlhRb0tUb2dkbTlwWkNCN1hHNGdJQ0FnZEdocGN5NWZlV0YzSUQwZ01DNHdPMXh1SUNBZ0lIUm9hWE11WDNCcGRHTm9JRDBnTUM0d08xeHVJQ0FnSUhSb2FYTXVYMjVsWldSelZYQmtZWFJsSUQwZ2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdhWFJ6SUd4dmIydEJkQ0J3YjNOcGRHbHZiaUJwYmlCM2IzSnNaQ0JqYjI5eVpHbHVZWFJsTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2RHRnlaMlYwSUVFZ2RHRnlaMlYwSUdCVVNGSkZSUzVXWldOMGIzSXpZRnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZEV4dmIydEJkRmR2Y214a1VHOXphWFJwYjI0b2RHRnlaMlYwT2lCVVNGSkZSUzVXWldOMGIzSXpLVG9nVkVoU1JVVXVWbVZqZEc5eU15QjdYRzRnSUNBZ1kyOXVjM1FnYUdWaFpDQTlJSFJvYVhNdWFIVnRZVzV2YVdRdVoyVjBVbUYzUW05dVpVNXZaR1VvSjJobFlXUW5LU0U3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR0Z5WjJWMExtTnZjSGtvZEdocGN5NXZabVp6WlhSR2NtOXRTR1ZoWkVKdmJtVXBMbUZ3Y0d4NVRXRjBjbWw0TkNob1pXRmtMbTFoZEhKcGVGZHZjbXhrS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnYVhSeklHeHZiMnRCZENCeWIzUmhkR2x2YmlCcGJpQjNiM0pzWkNCamIyOXlaR2x1WVhSbExseHVJQ0FnS2lCRWIyVnpJRTVQVkNCamIyNXphV1JsY2lCN1FHeHBibXNnWm1GalpVWnliMjUwZlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIUmhjbWRsZENCQklIUmhjbWRsZENCZ1ZFaFNSVVV1VVhWaGRHVnlibWx2Ym1CY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUk1iMjlyUVhSWGIzSnNaRkYxWVhSbGNtNXBiMjRvZEdGeVoyVjBPaUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVLVG9nVkVoU1JVVXVVWFZoZEdWeWJtbHZiaUI3WEc0Z0lDQWdZMjl1YzNRZ2FHVmhaQ0E5SUhSb2FYTXVhSFZ0WVc1dmFXUXVaMlYwVW1GM1FtOXVaVTV2WkdVb0oyaGxZV1FuS1NFN1hHNWNiaUFnSUNCeVpYUjFjbTRnWjJWMFYyOXliR1JSZFdGMFpYSnVhVzl1VEdsMFpTaG9aV0ZrTENCMFlYSm5aWFFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0JoSUhGMVlYUmxjbTVwYjI0Z2RHaGhkQ0J5YjNSaGRHVnpJSFJvWlNBcldpQjFibWwwSUhabFkzUnZjaUJ2WmlCMGFHVWdhSFZ0WVc1dmFXUWdTR1ZoWkNCMGJ5QjBhR1VnZTBCc2FXNXJJR1poWTJWR2NtOXVkSDBnWkdseVpXTjBhVzl1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2RHRnlaMlYwSUVFZ2RHRnlaMlYwSUdCVVNGSkZSUzVSZFdGMFpYSnVhVzl1WUZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRFWmhZMlZHY205dWRGRjFZWFJsY201cGIyNG9kR0Z5WjJWME9pQlVTRkpGUlM1UmRXRjBaWEp1YVc5dUtUb2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVptRmpaVVp5YjI1MExtUnBjM1JoYm1ObFZHOVRjWFZoY21Wa0tGWkZRek5mVUU5VFNWUkpWa1ZmV2lrZ1BDQXdMakF4S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdGeVoyVjBMbU52Y0hrb2RHaHBjeTVmY21WemRFaGxZV1JYYjNKc1pGRjFZWFJsY201cGIyNHBMbWx1ZG1WeWRDZ3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUZ0bVlXTmxSbkp2Ym5SQmVtbHRkWFJvTENCbVlXTmxSbkp2Ym5SQmJIUnBkSFZrWlYwZ1BTQmpZV3hqUVhwcGJYVjBhRUZzZEdsMGRXUmxLSFJvYVhNdVptRmpaVVp5YjI1MEtUdGNiaUFnSUNCZlpYVnNaWEpCTG5ObGRDZ3dMakFzSURBdU5TQXFJRTFoZEdndVVFa2dLeUJtWVdObFJuSnZiblJCZW1sdGRYUm9MQ0JtWVdObFJuSnZiblJCYkhScGRIVmtaU3dnSjFsYVdDY3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUmhjbWRsZEM1elpYUkdjbTl0UlhWc1pYSW9YMlYxYkdWeVFTa3VjSEpsYlhWc2RHbHdiSGtvWDNGMVlYUkVMbU52Y0hrb2RHaHBjeTVmY21WemRFaGxZV1JYYjNKc1pGRjFZWFJsY201cGIyNHBMbWx1ZG1WeWRDZ3BLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSFpYUWdhWFJ6SUV4dmIydEJkQ0JrYVhKbFkzUnBiMjRnYVc0Z2QyOXliR1FnWTI5dmNtUnBibUYwWlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIUmhjbWRsZENCQklIUmhjbWRsZENCZ1ZFaFNSVVV1Vm1WamRHOXlNMkJjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhSTWIyOXJRWFJYYjNKc1pFUnBjbVZqZEdsdmJpaDBZWEpuWlhRNklGUklVa1ZGTGxabFkzUnZjak1wT2lCVVNGSkZSUzVXWldOMGIzSXpJSHRjYmlBZ0lDQjBhR2x6TG1kbGRFeHZiMnRCZEZkdmNteGtVWFZoZEdWeWJtbHZiaWhmY1hWaGRFSXBPMXh1SUNBZ0lIUm9hWE11WjJWMFJtRmpaVVp5YjI1MFVYVmhkR1Z5Ym1sdmJpaGZjWFZoZEVNcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSaGNtZGxkRnh1SUNBZ0lDQWdMbU52Y0hrb1ZrVkRNMTlRVDFOSlZFbFdSVjlhS1Z4dUlDQWdJQ0FnTG1Gd2NHeDVVWFZoZEdWeWJtbHZiaWhmY1hWaGRFSXBYRzRnSUNBZ0lDQXVZWEJ3YkhsUmRXRjBaWEp1YVc5dUtGOXhkV0YwUXlsY2JpQWdJQ0FnSUM1aGNIQnNlVVYxYkdWeUtIUm9hWE11WjJWMFJYVnNaWElvWDJWMWJHVnlRU2twTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGTmxkQ0JwZEhNZ2JHOXZhMEYwSUhSaGNtZGxkQ0J3YjNOcGRHbHZiaTVjYmlBZ0lDcGNiaUFnSUNvZ1RtOTBaU0IwYUdGMElHbDBjeUJ5WlhOMWJIUWdkMmxzYkNCaVpTQnBibk4wWVc1MGJIa2diM1psY25keWFYUjBaVzRnYVdZZ2UwQnNhVzVySUZaU1RVeHZiMnRCZEVobFlXUXVZWFYwYjFWd1pHRjBaWDBnYVhNZ1pXNWhZbXhsWkM1Y2JpQWdJQ3BjYmlBZ0lDb2dTV1lnZVc5MUlIZGhiblFnZEc4Z2RISmhZMnNnWVc0Z2IySnFaV04wSUdOdmJuUnBiblZ2ZFhOc2VTd2dlVzkxSUcxcFoyaDBJSGRoYm5RZ2RHOGdkWE5sSUh0QWJHbHVheUIwWVhKblpYUjlJR2x1YzNSbFlXUXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0J3YjNOcGRHbHZiaUJCSUhSaGNtZGxkQ0J3YjNOcGRHbHZiaXdnYVc0Z2QyOXliR1FnYzNCaFkyVmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnNiMjlyUVhRb2NHOXphWFJwYjI0NklGUklVa1ZGTGxabFkzUnZjak1wT2lCMmIybGtJSHRjYmlBZ0lDQXZMeUJNYjI5cklHRjBJR1JwY21WamRHbHZiaUJwYmlCc2IyTmhiQ0JqYjI5eVpHbHVZWFJsWEc0Z0lDQWdZMjl1YzNRZ2FHVmhaRkp2ZEVScFptWkpibllnUFNCZmNYVmhkRUZjYmlBZ0lDQWdJQzVqYjNCNUtIUm9hWE11WDNKbGMzUklaV0ZrVjI5eWJHUlJkV0YwWlhKdWFXOXVLVnh1SUNBZ0lDQWdMbTExYkhScGNHeDVLSEYxWVhSSmJuWmxjblJEYjIxd1lYUW9kR2hwY3k1blpYUk1iMjlyUVhSWGIzSnNaRkYxWVhSbGNtNXBiMjRvWDNGMVlYUkNLU2twTzF4dUlDQWdJR052Ym5OMElHaGxZV1JRYjNNZ1BTQjBhR2x6TG1kbGRFeHZiMnRCZEZkdmNteGtVRzl6YVhScGIyNG9YM1l6UWlrN1hHNGdJQ0FnWTI5dWMzUWdiRzl2YTBGMFJHbHlJRDBnWDNZelF5NWpiM0I1S0hCdmMybDBhVzl1S1M1emRXSW9hR1ZoWkZCdmN5a3VZWEJ3YkhsUmRXRjBaWEp1YVc5dUtHaGxZV1JTYjNSRWFXWm1TVzUyS1M1dWIzSnRZV3hwZW1Vb0tUdGNibHh1SUNBZ0lDOHZJR05oYkdOMWJHRjBaU0JoYm1kc1pYTmNiaUFnSUNCamIyNXpkQ0JiWVhwcGJYVjBhRVp5YjIwc0lHRnNkR2wwZFdSbFJuSnZiVjBnUFNCallXeGpRWHBwYlhWMGFFRnNkR2wwZFdSbEtIUm9hWE11Wm1GalpVWnliMjUwS1R0Y2JpQWdJQ0JqYjI1emRDQmJZWHBwYlhWMGFGUnZMQ0JoYkhScGRIVmtaVlJ2WFNBOUlHTmhiR05CZW1sdGRYUm9RV3gwYVhSMVpHVW9iRzl2YTBGMFJHbHlLVHRjYmlBZ0lDQmpiMjV6ZENCNVlYY2dQU0J6WVc1cGRHbDZaVUZ1WjJ4bEtHRjZhVzExZEdoVWJ5QXRJR0Y2YVcxMWRHaEdjbTl0S1R0Y2JpQWdJQ0JqYjI1emRDQndhWFJqYUNBOUlITmhibWwwYVhwbFFXNW5iR1VvWVd4MGFYUjFaR1ZHY205dElDMGdZV3gwYVhSMVpHVlVieWs3SUM4dklITndhVzV1YVc1bklDZ3hMQ0F3TENBd0tTQkRRMWNnWVhKdmRXNWtJRm9nWVhocGN5QnRZV3RsY3lCMGFHVWdkbVZqZEc5eUlHeHZiMnNnZFhBc0lIZG9hV3hsSUhOd2FXNXVhVzVuSUNnd0xDQXdMQ0F4S1NCRFExY2dZWEp2ZFc1a0lGZ2dZWGhwY3lCdFlXdGxjeUIwYUdVZ2RtVmpkRzl5SUd4dmIyc2daRzkzYmx4dVhHNGdJQ0FnTHk4Z1lYQndiSGtnWVc1bmJHVnpYRzRnSUNBZ2RHaHBjeTVmZVdGM0lEMGdWRWhTUlVVdVRXRjBhRlYwYVd4ekxsSkJSREpFUlVjZ0tpQjVZWGM3WEc0Z0lDQWdkR2hwY3k1ZmNHbDBZMmdnUFNCVVNGSkZSUzVOWVhSb1ZYUnBiSE11VWtGRU1rUkZSeUFxSUhCcGRHTm9PMXh1WEc0Z0lDQWdkR2hwY3k1ZmJtVmxaSE5WY0dSaGRHVWdQU0IwY25WbE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlZ3WkdGMFpTQjBhR1VnVmxKTlRHOXZhMEYwU0dWaFpDNWNiaUFnSUNvZ1NXWWdlMEJzYVc1cklHRjFkRzlWY0dSaGRHVjlJR2x6SUdWdVlXSnNaV1FzSUhSb2FYTWdkMmxzYkNCdFlXdGxJR2wwSUd4dmIyc2dZWFFnZEdobElIdEFiR2x1YXlCMFlYSm5aWFI5TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ1pHVnNkR0VnWkdWc2RHRlVhVzFsTENCcGRDQnBjMjRuZENCMWMyVmtJSFJvYjNWbmFDNGdXVzkxSUdOaGJpQjFjMlVnZEdobElIQmhjbUZ0WlhSbGNpQnBaaUI1YjNVZ2QyRnVkQ0IwYnlCMWMyVWdkR2hwY3lCcGJpQjViM1Z5SUc5M2JpQmxlSFJsYm1SbFpDQjdRR3hwYm1zZ1ZsSk5URzl2YTBGMGZTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QjFjR1JoZEdVb1pHVnNkR0U2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuUmhjbWRsZENBaFBTQnVkV3hzSUNZbUlIUm9hWE11WVhWMGIxVndaR0YwWlNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVzYjI5clFYUW9kR2hwY3k1MFlYSm5aWFF1WjJWMFYyOXliR1JRYjNOcGRHbHZiaWhmZGpOQktTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdVgyNWxaV1J6VlhCa1lYUmxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxsOXVaV1ZrYzFWd1pHRjBaU0E5SUdaaGJITmxPMXh1WEc0Z0lDQWdJQ0IwYUdsekxtRndjR3hwWlhJdVlYQndiSGxaWVhkUWFYUmphQ2gwYUdsekxsOTVZWGNzSUhSb2FYTXVYM0JwZEdOb0tUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JpSXNJbWx0Y0c5eWRDQjdJRlpTVFVoMWJXRnViMmxrSUgwZ1puSnZiU0FuTGk0dmFIVnRZVzV2YVdRbk8xeHVhVzF3YjNKMElDb2dZWE1nVkVoU1JVVWdabkp2YlNBbmRHaHlaV1VuTzF4dWFXMXdiM0owSUhSNWNHVWdleUJXVWsxTWIyOXJRWFJCY0hCc2FXVnlJSDBnWm5KdmJTQW5MaTlXVWsxTWIyOXJRWFJCY0hCc2FXVnlKenRjYm1sdGNHOXlkQ0I3SUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3SUgwZ1puSnZiU0FuTGk5V1VrMU1iMjlyUVhSU1lXNW5aVTFoY0NjN1hHNXBiWEJ2Y25RZ2V5QmpZV3hqUVhwcGJYVjBhRUZzZEdsMGRXUmxJSDBnWm5KdmJTQW5MaTkxZEdsc2N5OWpZV3hqUVhwcGJYVjBhRUZzZEdsMGRXUmxKenRjYm1sdGNHOXlkQ0I3SUdkbGRGZHZjbXhrVVhWaGRHVnlibWx2Ymt4cGRHVWdmU0JtY205dElDY3VMaTkxZEdsc2N5OW5aWFJYYjNKc1pGRjFZWFJsY201cGIyNU1hWFJsSnp0Y2JseHVZMjl1YzNRZ1ZrVkRNMTlRVDFOSlZFbFdSVjlhSUQwZ2JtVjNJRlJJVWtWRkxsWmxZM1J2Y2pNb01DNHdMQ0F3TGpBc0lERXVNQ2s3WEc1Y2JtTnZibk4wSUY5eGRXRjBRU0E5SUc1bGR5QlVTRkpGUlM1UmRXRjBaWEp1YVc5dUtDazdYRzVqYjI1emRDQmZjWFZoZEVJZ1BTQnVaWGNnVkVoU1JVVXVVWFZoZEdWeWJtbHZiaWdwTzF4dVkyOXVjM1FnWDJWMWJHVnlRU0E5SUc1bGR5QlVTRkpGUlM1RmRXeGxjaWd3TGpBc0lEQXVNQ3dnTUM0d0xDQW5XVmhhSnlrN1hHNWNiaThxS2x4dUlDb2dRU0JqYkdGemN5QjBhR0YwSUdGd2NHeHBaWE1nWlhsbElHZGhlbVVnWkdseVpXTjBhVzl1Y3lCMGJ5QmhJRlpTVFM1Y2JpQXFJRWwwSUhkcGJHd2dZbVVnZFhObFpDQmllU0I3UUd4cGJtc2dWbEpOVEc5dmEwRjBmUzVjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZaU1RVeHZiMnRCZEVKdmJtVkJjSEJzYVdWeUlHbHRjR3hsYldWdWRITWdWbEpOVEc5dmEwRjBRWEJ3YkdsbGNpQjdYRzRnSUM4cUtseHVJQ0FnS2lCU1pYQnlaWE5sYm5RZ2FYUnpJSFI1Y0dVZ2IyWWdZWEJ3YkdsbGNpNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ2RIbHdaU0E5SUNkaWIyNWxKenRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTWFJ6SUdGemMyOWphV0YwWldRZ2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa2ZTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQm9kVzFoYm05cFpEb2dWbEpOU0hWdFlXNXZhV1E3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnZTBCc2FXNXJJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndmU0JtYjNJZ2FHOXlhWHB2Ym5SaGJDQnBibmRoY21RZ2JXOTJaVzFsYm5RdUlGUm9aU0JzWldaMElHVjVaU0J0YjNabGN5QnlhV2RvZEM0Z1ZHaGxJSEpwWjJoMElHVjVaU0J0YjNabGN5QnNaV1owTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkVsdWJtVnlPaUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0I3UUd4cGJtc2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQjlJR1p2Y2lCb2IzSnBlbTl1ZEdGc0lHOTFkSGRoY21RZ2JXOTJaVzFsYm5RdUlGUm9aU0JzWldaMElHVjVaU0J0YjNabGN5QnNaV1owTGlCVWFHVWdjbWxuYUhRZ1pYbGxJRzF2ZG1WeklISnBaMmgwTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkU5MWRHVnlPaUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0I3UUd4cGJtc2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQjlJR1p2Y2lCMlpYSjBhV05oYkNCa2IzZHVkMkZ5WkNCdGIzWmxiV1Z1ZEM0Z1FtOTBhQ0JsZVdWeklHMXZkbVVnZFhCM1lYSmtjeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WVc1blpVMWhjRlpsY25ScFkyRnNSRzkzYmpvZ1ZsSk5URzl2YTBGMFVtRnVaMlZOWVhBN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2UwQnNhVzVySUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3ZlNCbWIzSWdkbVZ5ZEdsallXd2dkWEIzWVhKa0lHMXZkbVZ0Wlc1MExpQkNiM1JvSUdWNVpYTWdiVzkyWlNCa2IzZHVkMkZ5WkhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtRnVaMlZOWVhCV1pYSjBhV05oYkZWd09pQldVazFNYjI5clFYUlNZVzVuWlUxaGNEdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJR1p5YjI1MElHUnBjbVZqZEdsdmJpQnZaaUIwYUdVZ1ptRmpaUzVjYmlBZ0lDb2dTVzUwWlc1a1pXUWdkRzhnWW1VZ2RYTmxaQ0JtYjNJZ1ZsSk5JREF1TUNCamIyMXdZWFFnS0ZaU1RTQXdMakFnYlc5a1pXeHpJR0Z5WlNCbVlXTnBibWNnV2kwZ2FXNXpkR1ZoWkNCdlppQmFLeWt1WEc0Z0lDQXFJRmx2ZFNCMWMzVmhiR3g1SUdSdmJpZDBJSGRoYm5RZ2RHOGdkRzkxWTJnZ2RHaHBjeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJtWVdObFJuSnZiblE2SUZSSVVrVkZMbFpsWTNSdmNqTTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0J5WlhOMElIRjFZWFJsY201cGIyNGdiMllnVEdWbWRFVjVaU0JpYjI1bExseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmZjbVZ6ZEZGMVlYUk1aV1owUlhsbE9pQlVTRkpGUlM1UmRXRjBaWEp1YVc5dU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdjbVZ6ZENCeGRXRjBaWEp1YVc5dUlHOW1JRkpwWjJoMFJYbGxJR0p2Ym1VdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXlaWE4wVVhWaGRGSnBaMmgwUlhsbE9pQlVTRkpGUlM1UmRXRjBaWEp1YVc5dU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdkMjl5YkdRdGMzQmhZMlVnY21WemRDQnhkV0YwWlhKdWFXOXVJRzltSUhSb1pTQndZWEpsYm5RZ2IyWWdkR2hsSUdoMWJXRnViMmxrSUV4bFpuUkZlV1V1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5eVpYTjBUR1ZtZEVWNVpWQmhjbVZ1ZEZkdmNteGtVWFZoZERvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2Ymp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElIZHZjbXhrTFhOd1lXTmxJSEpsYzNRZ2NYVmhkR1Z5Ym1sdmJpQnZaaUIwYUdVZ2NHRnlaVzUwSUc5bUlIUm9aU0JvZFcxaGJtOXBaQ0JTYVdkb2RFVjVaUzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDNKbGMzUlNhV2RvZEVWNVpWQmhjbVZ1ZEZkdmNteGtVWFZoZERvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2Ymp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lIdEFiR2x1YXlCV1VrMU1iMjlyUVhSQ2IyNWxRWEJ3YkdsbGNuMHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JvZFcxaGJtOXBaQ0JCSUh0QWJHbHVheUJXVWsxSWRXMWhibTlwWkgxY2JpQWdJQ29nUUhCaGNtRnRJSEpoYm1kbFRXRndTRzl5YVhwdmJuUmhiRWx1Ym1WeUlFRWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd2ZTQjFjMlZrSUdadmNpQnBibTVsY2lCMGNtRnVjM1psY25ObElHUnBjbVZqZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnY21GdVoyVk5ZWEJJYjNKcGVtOXVkR0ZzVDNWMFpYSWdRU0I3UUd4cGJtc2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQjlJSFZ6WldRZ1ptOXlJRzkxZEdWeUlIUnlZVzV6ZG1WeWMyVWdaR2x5WldOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCeVlXNW5aVTFoY0ZabGNuUnBZMkZzUkc5M2JpQkJJSHRBYkdsdWF5QldVazFNYjI5clFYUlNZVzVuWlUxaGNIMGdkWE5sWkNCbWIzSWdaRzkzYmlCa2FYSmxZM1JwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSEpoYm1kbFRXRndWbVZ5ZEdsallXeFZjQ0JCSUh0QWJHbHVheUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjSDBnZFhObFpDQm1iM0lnZFhBZ1pHbHlaV04wYVc5dVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9YRzRnSUNBZ2FIVnRZVzV2YVdRNklGWlNUVWgxYldGdWIybGtMRnh1SUNBZ0lISmhibWRsVFdGd1NHOXlhWHB2Ym5SaGJFbHVibVZ5T2lCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0N4Y2JpQWdJQ0J5WVc1blpVMWhjRWh2Y21sNmIyNTBZV3hQZFhSbGNqb2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQXNYRzRnSUNBZ2NtRnVaMlZOWVhCV1pYSjBhV05oYkVSdmQyNDZJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndMRnh1SUNBZ0lISmhibWRsVFdGd1ZtVnlkR2xqWVd4VmNEb2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQXNYRzRnSUNrZ2UxeHVJQ0FnSUhSb2FYTXVhSFZ0WVc1dmFXUWdQU0JvZFcxaGJtOXBaRHRjYmx4dUlDQWdJSFJvYVhNdWNtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1NXNXVaWElnUFNCeVlXNW5aVTFoY0VodmNtbDZiMjUwWVd4SmJtNWxjanRjYmlBZ0lDQjBhR2x6TG5KaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkU5MWRHVnlJRDBnY21GdVoyVk5ZWEJJYjNKcGVtOXVkR0ZzVDNWMFpYSTdYRzRnSUNBZ2RHaHBjeTV5WVc1blpVMWhjRlpsY25ScFkyRnNSRzkzYmlBOUlISmhibWRsVFdGd1ZtVnlkR2xqWVd4RWIzZHVPMXh1SUNBZ0lIUm9hWE11Y21GdVoyVk5ZWEJXWlhKMGFXTmhiRlZ3SUQwZ2NtRnVaMlZOWVhCV1pYSjBhV05oYkZWd08xeHVYRzRnSUNBZ2RHaHBjeTVtWVdObFJuSnZiblFnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlnd0xqQXNJREF1TUN3Z01TNHdLVHRjYmx4dUlDQWdJQzh2SUhObGRDQnlaWE4wSUhGMVlYUmxjbTVwYjI1elhHNGdJQ0FnZEdocGN5NWZjbVZ6ZEZGMVlYUk1aV1owUlhsbElEMGdibVYzSUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRvS1R0Y2JpQWdJQ0IwYUdsekxsOXlaWE4wVVhWaGRGSnBaMmgwUlhsbElEMGdibVYzSUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRvS1R0Y2JpQWdJQ0IwYUdsekxsOXlaWE4wVEdWbWRFVjVaVkJoY21WdWRGZHZjbXhrVVhWaGRDQTlJRzVsZHlCVVNGSkZSUzVSZFdGMFpYSnVhVzl1S0NrN1hHNGdJQ0FnZEdocGN5NWZjbVZ6ZEZKcFoyaDBSWGxsVUdGeVpXNTBWMjl5YkdSUmRXRjBJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNibHh1SUNBZ0lHTnZibk4wSUd4bFpuUkZlV1VnUFNCMGFHbHpMbWgxYldGdWIybGtMbWRsZEZKaGQwSnZibVZPYjJSbEtDZHNaV1owUlhsbEp5azdYRzRnSUNBZ1kyOXVjM1FnY21sbmFIUkZlV1VnUFNCMGFHbHpMbWgxYldGdWIybGtMbWRsZEZKaGQwSnZibVZPYjJSbEtDZHlhV2RvZEVWNVpTY3BPMXh1WEc0Z0lDQWdhV1lnS0d4bFpuUkZlV1VwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYM0psYzNSUmRXRjBUR1ZtZEVWNVpTNWpiM0I1S0d4bFpuUkZlV1V1Y1hWaGRHVnlibWx2YmlrN1hHNGdJQ0FnSUNCblpYUlhiM0pzWkZGMVlYUmxjbTVwYjI1TWFYUmxLR3hsWm5SRmVXVXVjR0Z5Wlc1MElTd2dkR2hwY3k1ZmNtVnpkRXhsWm5SRmVXVlFZWEpsYm5SWGIzSnNaRkYxWVhRcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHlhV2RvZEVWNVpTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZmNtVnpkRkYxWVhSU2FXZG9kRVY1WlM1amIzQjVLSEpwWjJoMFJYbGxMbkYxWVhSbGNtNXBiMjRwTzF4dUlDQWdJQ0FnWjJWMFYyOXliR1JSZFdGMFpYSnVhVzl1VEdsMFpTaHlhV2RvZEVWNVpTNXdZWEpsYm5RaExDQjBhR2x6TGw5eVpYTjBVbWxuYUhSRmVXVlFZWEpsYm5SWGIzSnNaRkYxWVhRcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJjSEJzZVNCMGFHVWdhVzV3ZFhRZ1lXNW5iR1VnZEc4Z2FYUnpJR0Z6YzI5amFXRjBaV1FnVmxKTklHMXZaR1ZzTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2VXRjNJRkp2ZEdGMGFXOXVJR0Z5YjNWdVpDQlpJR0Y0YVhNc0lHbHVJR1JsWjNKbFpWeHVJQ0FnS2lCQWNHRnlZVzBnY0dsMFkyZ2dVbTkwWVhScGIyNGdZWEp2ZFc1a0lGZ2dZWGhwY3l3Z2FXNGdaR1ZuY21WbFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1lYQndiSGxaWVhkUWFYUmphQ2g1WVhjNklHNTFiV0psY2l3Z2NHbDBZMmc2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUd4bFpuUkZlV1VnUFNCMGFHbHpMbWgxYldGdWIybGtMbWRsZEZKaGQwSnZibVZPYjJSbEtDZHNaV1owUlhsbEp5azdYRzRnSUNBZ1kyOXVjM1FnY21sbmFIUkZlV1VnUFNCMGFHbHpMbWgxYldGdWIybGtMbWRsZEZKaGQwSnZibVZPYjJSbEtDZHlhV2RvZEVWNVpTY3BPMXh1SUNBZ0lHTnZibk4wSUd4bFpuUkZlV1ZPYjNKdFlXeHBlbVZrSUQwZ2RHaHBjeTVvZFcxaGJtOXBaQzVuWlhST2IzSnRZV3hwZW1Wa1FtOXVaVTV2WkdVb0oyeGxablJGZVdVbktUdGNiaUFnSUNCamIyNXpkQ0J5YVdkb2RFVjVaVTV2Y20xaGJHbDZaV1FnUFNCMGFHbHpMbWgxYldGdWIybGtMbWRsZEU1dmNtMWhiR2w2WldSQ2IyNWxUbTlrWlNnbmNtbG5hSFJGZVdVbktUdGNiaUFnSUNBdkx5QnNaV1owWEc0Z0lDQWdhV1lnS0d4bFpuUkZlV1VwSUh0Y2JpQWdJQ0FnSUdsbUlDaHdhWFJqYUNBOElEQXVNQ2tnZTF4dUlDQWdJQ0FnSUNCZlpYVnNaWEpCTG5nZ1BTQXRWRWhTUlVVdVRXRjBhRlYwYVd4ekxrUkZSekpTUVVRZ0tpQjBhR2x6TG5KaGJtZGxUV0Z3Vm1WeWRHbGpZV3hFYjNkdUxtMWhjQ2d0Y0dsMFkyZ3BPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdYMlYxYkdWeVFTNTRJRDBnVkVoU1JVVXVUV0YwYUZWMGFXeHpMa1JGUnpKU1FVUWdLaUIwYUdsekxuSmhibWRsVFdGd1ZtVnlkR2xqWVd4VmNDNXRZWEFvY0dsMFkyZ3BPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2VXRjNJRHdnTUM0d0tTQjdYRzRnSUNBZ0lDQWdJRjlsZFd4bGNrRXVlU0E5SUMxVVNGSkZSUzVOWVhSb1ZYUnBiSE11UkVWSE1sSkJSQ0FxSUhSb2FYTXVjbUZ1WjJWTllYQkliM0pwZW05dWRHRnNTVzV1WlhJdWJXRndLQzE1WVhjcE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ1gyVjFiR1Z5UVM1NUlEMGdWRWhTUlVVdVRXRjBhRlYwYVd4ekxrUkZSekpTUVVRZ0tpQjBhR2x6TG5KaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkU5MWRHVnlMbTFoY0NoNVlYY3BPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JmY1hWaGRFRXVjMlYwUm5KdmJVVjFiR1Z5S0Y5bGRXeGxja0VwTzF4dUlDQWdJQ0FnZEdocGN5NWZaMlYwVjI5eWJHUkdZV05sUm5KdmJuUlJkV0YwS0Y5eGRXRjBRaWs3WEc1Y2JpQWdJQ0FnSUM4dklGOXhkV0YwUWlBcUlGOXhkV0YwUVNBcUlGOXhkV0YwUWw0dE1WeHVJQ0FnSUNBZ0x5OGdkMmhsY21VZ1gzRjFZWFJCSUdseklFeHZiMnRCZENCeWIzUmhkR2x2Ymx4dUlDQWdJQ0FnTHk4Z1lXNWtJRjl4ZFdGMFFpQnBjeUIzYjNKc1pFWmhZMlZHY205dWRGRjFZWFJjYmlBZ0lDQWdJR3hsWm5SRmVXVk9iM0p0WVd4cGVtVmtJUzV4ZFdGMFpYSnVhVzl1TG1OdmNIa29YM0YxWVhSQ0tTNXRkV3gwYVhCc2VTaGZjWFZoZEVFcExtMTFiSFJwY0d4NUtGOXhkV0YwUWk1cGJuWmxjblFvS1NrN1hHNWNiaUFnSUNBZ0lGOXhkV0YwUVM1amIzQjVLSFJvYVhNdVgzSmxjM1JNWldaMFJYbGxVR0Z5Wlc1MFYyOXliR1JSZFdGMEtUdGNibHh1SUNBZ0lDQWdMeThnWDNGMVlYUkJYaTB4SUNvZ2JHVm1kRVY1WlU1dmNtMWhiR2w2WldRdWNYVmhkR1Z5Ym1sdmJpQXFJRjl4ZFdGMFFTQXFJSEpsYzNSUmRXRjBUR1ZtZEVWNVpWeHVJQ0FnSUNBZ0x5OGdkMmhsY21VZ1gzRjFZWFJCSUdseklISmxjM1JNWldaMFJYbGxVR0Z5Wlc1MFYyOXliR1JSZFdGMFhHNGdJQ0FnSUNCc1pXWjBSWGxsTG5GMVlYUmxjbTVwYjI1Y2JpQWdJQ0FnSUNBZ0xtTnZjSGtvYkdWbWRFVjVaVTV2Y20xaGJHbDZaV1FoTG5GMVlYUmxjbTVwYjI0cFhHNGdJQ0FnSUNBZ0lDNXRkV3gwYVhCc2VTaGZjWFZoZEVFcFhHNGdJQ0FnSUNBZ0lDNXdjbVZ0ZFd4MGFYQnNlU2hmY1hWaGRFRXVhVzUyWlhKMEtDa3BYRzRnSUNBZ0lDQWdJQzV0ZFd4MGFYQnNlU2gwYUdsekxsOXlaWE4wVVhWaGRFeGxablJGZVdVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklISnBaMmgwWEc0Z0lDQWdhV1lnS0hKcFoyaDBSWGxsS1NCN1hHNGdJQ0FnSUNCcFppQW9jR2wwWTJnZ1BDQXdMakFwSUh0Y2JpQWdJQ0FnSUNBZ1gyVjFiR1Z5UVM1NElEMGdMVlJJVWtWRkxrMWhkR2hWZEdsc2N5NUVSVWN5VWtGRUlDb2dkR2hwY3k1eVlXNW5aVTFoY0ZabGNuUnBZMkZzUkc5M2JpNXRZWEFvTFhCcGRHTm9LVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJRjlsZFd4bGNrRXVlQ0E5SUZSSVVrVkZMazFoZEdoVmRHbHNjeTVFUlVjeVVrRkVJQ29nZEdocGN5NXlZVzVuWlUxaGNGWmxjblJwWTJGc1ZYQXViV0Z3S0hCcGRHTm9LVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYVdZZ0tIbGhkeUE4SURBdU1Da2dlMXh1SUNBZ0lDQWdJQ0JmWlhWc1pYSkJMbmtnUFNBdFZFaFNSVVV1VFdGMGFGVjBhV3h6TGtSRlJ6SlNRVVFnS2lCMGFHbHpMbkpoYm1kbFRXRndTRzl5YVhwdmJuUmhiRTkxZEdWeUxtMWhjQ2d0ZVdGM0tUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lGOWxkV3hsY2tFdWVTQTlJRlJJVWtWRkxrMWhkR2hWZEdsc2N5NUVSVWN5VWtGRUlDb2dkR2hwY3k1eVlXNW5aVTFoY0VodmNtbDZiMjUwWVd4SmJtNWxjaTV0WVhBb2VXRjNLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWDNGMVlYUkJMbk5sZEVaeWIyMUZkV3hsY2loZlpYVnNaWEpCS1R0Y2JpQWdJQ0FnSUhSb2FYTXVYMmRsZEZkdmNteGtSbUZqWlVaeWIyNTBVWFZoZENoZmNYVmhkRUlwTzF4dVhHNGdJQ0FnSUNBdkx5QmZjWFZoZEVJZ0tpQmZjWFZoZEVFZ0tpQmZjWFZoZEVKZUxURmNiaUFnSUNBZ0lDOHZJSGRvWlhKbElGOXhkV0YwUVNCcGN5Qk1iMjlyUVhRZ2NtOTBZWFJwYjI1Y2JpQWdJQ0FnSUM4dklHRnVaQ0JmY1hWaGRFSWdhWE1nZDI5eWJHUkdZV05sUm5KdmJuUlJkV0YwWEc0Z0lDQWdJQ0J5YVdkb2RFVjVaVTV2Y20xaGJHbDZaV1FoTG5GMVlYUmxjbTVwYjI0dVkyOXdlU2hmY1hWaGRFSXBMbTExYkhScGNHeDVLRjl4ZFdGMFFTa3ViWFZzZEdsd2JIa29YM0YxWVhSQ0xtbHVkbVZ5ZENncEtUdGNibHh1SUNBZ0lDQWdYM0YxWVhSQkxtTnZjSGtvZEdocGN5NWZjbVZ6ZEZKcFoyaDBSWGxsVUdGeVpXNTBWMjl5YkdSUmRXRjBLVHRjYmx4dUlDQWdJQ0FnTHk4Z1gzRjFZWFJCWGkweElDb2djbWxuYUhSRmVXVk9iM0p0WVd4cGVtVmtMbkYxWVhSbGNtNXBiMjRnS2lCZmNYVmhkRUVnS2lCeVpYTjBVWFZoZEZKcFoyaDBSWGxsWEc0Z0lDQWdJQ0F2THlCM2FHVnlaU0JmY1hWaGRFRWdhWE1nY21WemRGSnBaMmgwUlhsbFVHRnlaVzUwVjI5eWJHUlJkV0YwWEc0Z0lDQWdJQ0J5YVdkb2RFVjVaUzV4ZFdGMFpYSnVhVzl1WEc0Z0lDQWdJQ0FnSUM1amIzQjVLSEpwWjJoMFJYbGxUbTl5YldGc2FYcGxaQ0V1Y1hWaGRHVnlibWx2YmlsY2JpQWdJQ0FnSUNBZ0xtMTFiSFJwY0d4NUtGOXhkV0YwUVNsY2JpQWdJQ0FnSUNBZ0xuQnlaVzExYkhScGNHeDVLRjl4ZFdGMFFTNXBiblpsY25Rb0tTbGNiaUFnSUNBZ0lDQWdMbTExYkhScGNHeDVLSFJvYVhNdVgzSmxjM1JSZFdGMFVtbG5hSFJGZVdVcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z3Y21WallYUmxaQ0JWYzJVZ2UwQnNhVzVySUdGd2NHeDVXV0YzVUdsMFkyaDlJR2x1YzNSbFlXUXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdiRzl2YTBGMEtHVjFiR1Z5T2lCVVNGSkZSUzVGZFd4bGNpazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpZ25WbEpOVEc5dmEwRjBRbTl1WlVGd2NHeHBaWEk2SUd4dmIydEJkQ2dwSUdseklHUmxjSEpsWTJGMFpXUXVJSFZ6WlNCaGNIQnNlU2dwSUdsdWMzUmxZV1F1SnlrN1hHNWNiaUFnSUNCamIyNXpkQ0I1WVhjZ1BTQlVTRkpGUlM1TllYUm9WWFJwYkhNdVVrRkVNa1JGUnlBcUlHVjFiR1Z5TG5rN1hHNGdJQ0FnWTI5dWMzUWdjR2wwWTJnZ1BTQlVTRkpGUlM1TllYUm9WWFJwYkhNdVVrRkVNa1JGUnlBcUlHVjFiR1Z5TG5nN1hHNWNiaUFnSUNCMGFHbHpMbUZ3Y0d4NVdXRjNVR2wwWTJnb2VXRjNMQ0J3YVhSamFDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUjJWMElHRWdjWFZoZEdWeWJtbHZiaUIwYUdGMElISnZkR0YwWlhNZ2RHaGxJSGR2Y214a0xYTndZV05sSUN0YUlIVnVhWFFnZG1WamRHOXlJSFJ2SUhSb1pTQjdRR3hwYm1zZ1ptRmpaVVp5YjI1MGZTQmthWEpsWTNScGIyNHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0IwWVhKblpYUWdRU0IwWVhKblpYUWdZRlJJVWtWRkxsRjFZWFJsY201cGIyNWdYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjluWlhSWGIzSnNaRVpoWTJWR2NtOXVkRkYxWVhRb2RHRnlaMlYwT2lCVVNGSkZSUzVSZFdGMFpYSnVhVzl1S1RvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11Wm1GalpVWnliMjUwTG1ScGMzUmhibU5sVkc5VGNYVmhjbVZrS0ZaRlF6TmZVRTlUU1ZSSlZrVmZXaWtnUENBd0xqQXhLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR0Z5WjJWMExtbGtaVzUwYVhSNUtDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnVzJaaFkyVkdjbTl1ZEVGNmFXMTFkR2dzSUdaaFkyVkdjbTl1ZEVGc2RHbDBkV1JsWFNBOUlHTmhiR05CZW1sdGRYUm9RV3gwYVhSMVpHVW9kR2hwY3k1bVlXTmxSbkp2Ym5RcE8xeHVJQ0FnSUY5bGRXeGxja0V1YzJWMEtEQXVNQ3dnTUM0MUlDb2dUV0YwYUM1UVNTQXJJR1poWTJWR2NtOXVkRUY2YVcxMWRHZ3NJR1poWTJWR2NtOXVkRUZzZEdsMGRXUmxMQ0FuV1ZwWUp5azdYRzVjYmlBZ0lDQnlaWFIxY200Z2RHRnlaMlYwTG5ObGRFWnliMjFGZFd4bGNpaGZaWFZzWlhKQktUdGNiaUFnZlZ4dWZWeHVJaXdpYVcxd2IzSjBJSHNnVmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJZ2ZTQm1jbTl0SUNjdUxpOWxlSEJ5WlhOemFXOXVjeWM3WEc1cGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVXh2YjJ0QmRFRndjR3hwWlhJZ2ZTQm1jbTl0SUNjdUwxWlNUVXh2YjJ0QmRFRndjR3hwWlhJbk8xeHVhVzF3YjNKMElIc2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQWdmU0JtY205dElDY3VMMVpTVFV4dmIydEJkRkpoYm1kbFRXRndKenRjYmx4dUx5b3FYRzRnS2lCQklHTnNZWE56SUhSb1lYUWdZWEJ3YkdsbGN5QmxlV1VnWjJGNlpTQmthWEpsWTNScGIyNXpJSFJ2SUdFZ1ZsSk5MbHh1SUNvZ1NYUWdkMmxzYkNCaVpTQjFjMlZrSUdKNUlIdEFiR2x1YXlCV1VrMU1iMjlyUVhSOUxseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOVEc5dmEwRjBSWGh3Y21WemMybHZia0Z3Y0d4cFpYSWdhVzF3YkdWdFpXNTBjeUJXVWsxTWIyOXJRWFJCY0hCc2FXVnlJSHRjYmlBZ0x5b3FYRzRnSUNBcUlGSmxjSEpsYzJWdWRDQnBkSE1nZEhsd1pTQnZaaUJoY0hCc2FXVnlMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQjBlWEJsSUQwZ0oyVjRjSEpsYzNOcGIyNG5PMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkpkSE1nWVhOemIyTnBZWFJsWkNCN1FHeHBibXNnVmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhKOUxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlHVjRjSEpsYzNOcGIyNXpPaUJXVWsxRmVIQnlaWE56YVc5dVRXRnVZV2RsY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nU1hRZ2QyOXVKM1FnWW1VZ2RYTmxaQ0JwYmlCbGVIQnlaWE56YVc5dUlHRndjR3hwWlhJdVhHNGdJQ0FxSUZObFpTQmhiSE52T2lCN1FHeHBibXNnY21GdVoyVk5ZWEJJYjNKcGVtOXVkR0ZzVDNWMFpYSjlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbUZ1WjJWTllYQkliM0pwZW05dWRHRnNTVzV1WlhJNklGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd08xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklIdEFiR2x1YXlCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0gwZ1ptOXlJR2h2Y21sNmIyNTBZV3dnYlc5MlpXMWxiblF1SUVKdmRHZ2daWGxsY3lCdGIzWmxJR3hsWm5RZ2IzSWdjbWxuYUhRdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1QzVjBaWEk2SUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJCSUh0QWJHbHVheUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjSDBnWm05eUlIWmxjblJwWTJGc0lHUnZkMjUzWVhKa0lHMXZkbVZ0Wlc1MExpQkNiM1JvSUdWNVpYTWdiVzkyWlNCMWNIZGhjbVJ6TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKaGJtZGxUV0Z3Vm1WeWRHbGpZV3hFYjNkdU9pQldVazFNYjI5clFYUlNZVzVuWlUxaGNEdGNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQjdRR3hwYm1zZ1ZsSk5URzl2YTBGMFVtRnVaMlZOWVhCOUlHWnZjaUIyWlhKMGFXTmhiQ0IxY0hkaGNtUWdiVzkyWlcxbGJuUXVJRUp2ZEdnZ1pYbGxjeUJ0YjNabElHUnZkMjUzWVhKa2N5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlZVzVuWlUxaGNGWmxjblJwWTJGc1ZYQTZJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdVZ1lTQnVaWGNnZTBCc2FXNXJJRlpTVFV4dmIydEJkRVY0Y0hKbGMzTnBiMjVCY0hCc2FXVnlmUzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUdWNGNISmxjM05wYjI1eklFRWdlMEJzYVc1cklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlmVnh1SUNBZ0tpQkFjR0Z5WVcwZ2NtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1NXNXVaWElnUVNCN1FHeHBibXNnVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEI5SUhWelpXUWdabTl5SUdsdWJtVnlJSFJ5WVc1emRtVnljMlVnWkdseVpXTjBhVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQnlZVzVuWlUxaGNFaHZjbWw2YjI1MFlXeFBkWFJsY2lCQklIdEFiR2x1YXlCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0gwZ2RYTmxaQ0JtYjNJZ2IzVjBaWElnZEhKaGJuTjJaWEp6WlNCa2FYSmxZM1JwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSEpoYm1kbFRXRndWbVZ5ZEdsallXeEViM2R1SUVFZ2UwQnNhVzVySUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3ZlNCMWMyVmtJR1p2Y2lCa2IzZHVJR1JwY21WamRHbHZibHh1SUNBZ0tpQkFjR0Z5WVcwZ2NtRnVaMlZOWVhCV1pYSjBhV05oYkZWd0lFRWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd2ZTQjFjMlZrSUdadmNpQjFjQ0JrYVhKbFkzUnBiMjVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loY2JpQWdJQ0JsZUhCeVpYTnphVzl1Y3pvZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSXNYRzRnSUNBZ2NtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1NXNXVaWEk2SUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3TEZ4dUlDQWdJSEpoYm1kbFRXRndTRzl5YVhwdmJuUmhiRTkxZEdWeU9pQldVazFNYjI5clFYUlNZVzVuWlUxaGNDeGNiaUFnSUNCeVlXNW5aVTFoY0ZabGNuUnBZMkZzUkc5M2Jqb2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQXNYRzRnSUNBZ2NtRnVaMlZOWVhCV1pYSjBhV05oYkZWd09pQldVazFNYjI5clFYUlNZVzVuWlUxaGNDeGNiaUFnS1NCN1hHNGdJQ0FnZEdocGN5NWxlSEJ5WlhOemFXOXVjeUE5SUdWNGNISmxjM05wYjI1ek8xeHVYRzRnSUNBZ2RHaHBjeTV5WVc1blpVMWhjRWh2Y21sNmIyNTBZV3hKYm01bGNpQTlJSEpoYm1kbFRXRndTRzl5YVhwdmJuUmhiRWx1Ym1WeU8xeHVJQ0FnSUhSb2FYTXVjbUZ1WjJWTllYQkliM0pwZW05dWRHRnNUM1YwWlhJZ1BTQnlZVzVuWlUxaGNFaHZjbWw2YjI1MFlXeFBkWFJsY2p0Y2JpQWdJQ0IwYUdsekxuSmhibWRsVFdGd1ZtVnlkR2xqWVd4RWIzZHVJRDBnY21GdVoyVk5ZWEJXWlhKMGFXTmhiRVJ2ZDI0N1hHNGdJQ0FnZEdocGN5NXlZVzVuWlUxaGNGWmxjblJwWTJGc1ZYQWdQU0J5WVc1blpVMWhjRlpsY25ScFkyRnNWWEE3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FYQndiSGtnZEdobElHbHVjSFYwSUdGdVoyeGxJSFJ2SUdsMGN5QmhjM052WTJsaGRHVmtJRlpTVFNCdGIyUmxiQzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUhsaGR5QlNiM1JoZEdsdmJpQmhjbTkxYm1RZ1dTQmhlR2x6TENCcGJpQmtaV2R5WldWY2JpQWdJQ29nUUhCaGNtRnRJSEJwZEdOb0lGSnZkR0YwYVc5dUlHRnliM1Z1WkNCWUlHRjRhWE1zSUdsdUlHUmxaM0psWlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdGd2NHeDVXV0YzVUdsMFkyZ29lV0YzT2lCdWRXMWlaWElzSUhCcGRHTm9PaUJ1ZFcxaVpYSXBPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9jR2wwWTJnZ1BDQXdMakFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVaWGh3Y21WemMybHZibk11YzJWMFZtRnNkV1VvSjJ4dmIydEViM2R1Snl3Z01DNHdLVHRjYmlBZ0lDQWdJSFJvYVhNdVpYaHdjbVZ6YzJsdmJuTXVjMlYwVm1Gc2RXVW9KMnh2YjJ0VmNDY3NJSFJvYVhNdWNtRnVaMlZOWVhCV1pYSjBhV05oYkZWd0xtMWhjQ2d0Y0dsMFkyZ3BLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVsZUhCeVpYTnphVzl1Y3k1elpYUldZV3gxWlNnbmJHOXZhMVZ3Snl3Z01DNHdLVHRjYmlBZ0lDQWdJSFJvYVhNdVpYaHdjbVZ6YzJsdmJuTXVjMlYwVm1Gc2RXVW9KMnh2YjJ0RWIzZHVKeXdnZEdocGN5NXlZVzVuWlUxaGNGWmxjblJwWTJGc1JHOTNiaTV0WVhBb2NHbDBZMmdwS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2VXRjNJRHdnTUM0d0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG1WNGNISmxjM05wYjI1ekxuTmxkRlpoYkhWbEtDZHNiMjlyVEdWbWRDY3NJREF1TUNrN1hHNGdJQ0FnSUNCMGFHbHpMbVY0Y0hKbGMzTnBiMjV6TG5ObGRGWmhiSFZsS0Nkc2IyOXJVbWxuYUhRbkxDQjBhR2x6TG5KaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkU5MWRHVnlMbTFoY0NndGVXRjNLU2s3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lIUm9hWE11Wlhod2NtVnpjMmx2Ym5NdWMyVjBWbUZzZFdVb0oyeHZiMnRTYVdkb2RDY3NJREF1TUNrN1hHNGdJQ0FnSUNCMGFHbHpMbVY0Y0hKbGMzTnBiMjV6TG5ObGRGWmhiSFZsS0Nkc2IyOXJUR1ZtZENjc0lIUm9hWE11Y21GdVoyVk5ZWEJJYjNKcGVtOXVkR0ZzVDNWMFpYSXViV0Z3S0hsaGR5a3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWd2NtVmpZWFJsWkNCVmMyVWdlMEJzYVc1cklHRndjR3g1V1dGM1VHbDBZMmg5SUdsdWMzUmxZV1F1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYkc5dmEwRjBLR1YxYkdWeU9pQlVTRkpGUlM1RmRXeGxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk52YkdVdWQyRnliaWduVmxKTlRHOXZhMEYwUW05dVpVRndjR3hwWlhJNklHeHZiMnRCZENncElHbHpJR1JsY0hKbFkyRjBaV1F1SUhWelpTQmhjSEJzZVNncElHbHVjM1JsWVdRdUp5azdYRzVjYmlBZ0lDQmpiMjV6ZENCNVlYY2dQU0JVU0ZKRlJTNU5ZWFJvVlhScGJITXVVa0ZFTWtSRlJ5QXFJR1YxYkdWeUxuazdYRzRnSUNBZ1kyOXVjM1FnY0dsMFkyZ2dQU0JVU0ZKRlJTNU5ZWFJvVlhScGJITXVVa0ZFTWtSRlJ5QXFJR1YxYkdWeUxuZzdYRzVjYmlBZ0lDQjBhR2x6TG1Gd2NHeDVXV0YzVUdsMFkyZ29lV0YzTENCd2FYUmphQ2s3WEc0Z0lIMWNibjFjYmlJc0ltbHRjRzl5ZENCN0lITmhkSFZ5WVhSbElIMGdabkp2YlNBbkxpNHZkWFJwYkhNdmMyRjBkWEpoZEdVbk8xeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5URzl2YTBGMFVtRnVaMlZOWVhBZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nVEdsdGFYUnpJSFJvWlNCdFlYaHBiWFZ0SUdGdVoyeGxJRzltSUhSb1pTQnBibkIxZENCaGJtZHNaU0J2WmlCMGFHVWdURzl2YTBGMElIWmxZM1J2Y2lCbWNtOXRJSFJvWlNCbWNtOXVkQ0J2WmlCMGFHVWdhR1ZoWkNBb2RHaGxJSEJ2YzJsMGFYWmxJSG9nWVhocGN5a3VYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdhVzV3ZFhSTllYaFdZV3gxWlRvZ2JuVnRZbVZ5TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhCeVpYTmxiblJ6SUdGdUlHRnVaMnhsSUNocGJpQmtaV2R5WldWektTQm1iM0lnWW05dVpTQjBlWEJsSUc5bUlFeHZiMnRCZENCaGNIQnNhV1Z5Y3l3Z2IzSWdZU0IzWldsbmFIUWdabTl5SUdWNGNISmxjM05wYjI0Z2RIbHdaU0J2WmlCTWIyOXJRWFFnWVhCd2JHbGxjbk11WEc0Z0lDQXFJRlJvWlNCcGJuQjFkQ0IyWVd4MVpTQjNhV3hzSUhSaGEyVWdZREV1TUdBZ2QyaGxiaUIwYUdVZ2FXNXdkWFFnWVc1bmJHVWdaWEYxWVd4eklDaHZjaUJuY21WaGRHVnlLU0IwYnlCN1FHeHBibXNnYVc1d2RYUk5ZWGhXWVd4MVpYMHVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdiM1YwY0hWMFUyTmhiR1U2SUc1MWJXSmxjanRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdibVYzSUh0QWJHbHVheUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjSDB1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCcGJuQjFkRTFoZUZaaGJIVmxJRlJvWlNCN1FHeHBibXNnYVc1d2RYUk5ZWGhXWVd4MVpYMGdiMllnZEdobElHMWhjRnh1SUNBZ0tpQkFjR0Z5WVcwZ2IzVjBjSFYwVTJOaGJHVWdWR2hsSUh0QWJHbHVheUJ2ZFhSd2RYUlRZMkZzWlgwZ2IyWWdkR2hsSUcxaGNGeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLR2x1Y0hWMFRXRjRWbUZzZFdVNklHNTFiV0psY2l3Z2IzVjBjSFYwVTJOaGJHVTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lIUm9hWE11YVc1d2RYUk5ZWGhXWVd4MVpTQTlJR2x1Y0hWMFRXRjRWbUZzZFdVN1hHNGdJQ0FnZEdocGN5NXZkWFJ3ZFhSVFkyRnNaU0E5SUc5MWRIQjFkRk5qWVd4bE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRVYyWVd4MVlYUmxJR0Z1SUdsdWNIVjBJSFpoYkhWbElHRnVaQ0J2ZFhSd2RYUWdZU0J0WVhCd1pXUWdkbUZzZFdVdVhHNGdJQ0FxSUVCd1lYSmhiU0J6Y21NZ1ZHaGxJR2x1Y0hWMElIWmhiSFZsWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYldGd0tITnlZem9nYm5WdFltVnlLVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV2ZFhSd2RYUlRZMkZzWlNBcUlITmhkSFZ5WVhSbEtITnlZeUF2SUhSb2FYTXVhVzV3ZFhSTllYaFdZV3gxWlNrN1hHNGdJSDFjYm4xY2JpSXNJbWx0Y0c5eWRDQjBlWEJsSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ0tpQmhjeUJXTUZaU1RTQm1jbTl0SUNkQWNHbDRhWFl2ZEhsd1pYTXRkbkp0TFRBdU1DYzdYRzVwYlhCdmNuUWdkSGx3WlNBcUlHRnpJRll4VmxKTlUyTm9aVzFoSUdaeWIyMGdKMEJ3YVhocGRpOTBlWEJsY3kxMmNtMWpMWFp5YlMweExqQW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkhURlJHTENCSFRGUkdURzloWkdWeVVHeDFaMmx1TENCSFRGUkdVR0Z5YzJWeUlIMGdabkp2YlNBbmRHaHlaV1V2WlhoaGJYQnNaWE12YW5OdEwyeHZZV1JsY25NdlIweFVSa3h2WVdSbGNpNXFjeWM3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5SUgwZ1puSnZiU0FuTGk0dlpYaHdjbVZ6YzJsdmJuTXZWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWEluTzF4dWFXMXdiM0owSUhSNWNHVWdleUJXVWsxSWRXMWhibTlwWkNCOUlHWnliMjBnSnk0dUwyaDFiV0Z1YjJsa0wxWlNUVWgxYldGdWIybGtKenRjYm1sdGNHOXlkQ0I3SUZaU1RVeHZiMnRCZEVobGJIQmxjaUI5SUdaeWIyMGdKeTR2YUdWc2NHVnljeTlXVWsxTWIyOXJRWFJJWld4d1pYSW5PMXh1YVcxd2IzSjBJSHNnVmxKTlRHOXZhMEYwSUgwZ1puSnZiU0FuTGk5V1VrMU1iMjlyUVhRbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCV1VrMU1iMjlyUVhSQmNIQnNhV1Z5SUgwZ1puSnZiU0FuTGk5V1VrMU1iMjlyUVhSQmNIQnNhV1Z5Snp0Y2JtbHRjRzl5ZENCN0lGWlNUVXh2YjJ0QmRFSnZibVZCY0hCc2FXVnlJSDBnWm5KdmJTQW5MaTlXVWsxTWIyOXJRWFJDYjI1bFFYQndiR2xsY2ljN1hHNXBiWEJ2Y25RZ2V5QldVazFNYjI5clFYUkZlSEJ5WlhOemFXOXVRWEJ3YkdsbGNpQjlJR1p5YjIwZ0p5NHZWbEpOVEc5dmEwRjBSWGh3Y21WemMybHZia0Z3Y0d4cFpYSW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QldVazFNYjI5clFYUk1iMkZrWlhKUWJIVm5hVzVQY0hScGIyNXpJSDBnWm5KdmJTQW5MaTlXVWsxTWIyOXJRWFJNYjJGa1pYSlFiSFZuYVc1UGNIUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN0lGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd0lIMGdabkp2YlNBbkxpOVdVazFNYjI5clFYUlNZVzVuWlUxaGNDYzdYRzVwYlhCdmNuUWdleUJIVEZSR0lHRnpJRWRNVkVaVFkyaGxiV0VnZlNCbWNtOXRJQ2RBWjJ4MFppMTBjbUZ1YzJadmNtMHZZMjl5WlNjN1hHNWNiaThxS2x4dUlDb2dVRzl6YzJsaWJHVWdjM0JsWXlCMlpYSnphVzl1Y3lCcGRDQnlaV052WjI1cGVtVnpMbHh1SUNvdlhHNWpiMjV6ZENCUVQxTlRTVUpNUlY5VFVFVkRYMVpGVWxOSlQwNVRJRDBnYm1WM0lGTmxkQ2hiSnpFdU1DY3NJQ2N4TGpBdFltVjBZU2RkS1R0Y2JseHVMeW9xWEc0Z0tpQlVhR1VnYldsdWFXMTFiU0J3WlhKdGFYUjBaV1FnZG1Gc2RXVWdabTl5SUh0QWJHbHVheUJXTVZaU1RWTmphR1Z0WVM1TWIyOXJRWFJTWVc1blpVMWhjQzVwYm5CMWRFMWhlRlpoYkhWbGZTNWNiaUFxSUVsbUlIUm9aU0JuYVhabGJpQjJZV3gxWlNCcGN5QnpiV0ZzYkdWeUlIUm9ZVzRnZEdocGN5d2dkR2hsSUd4dllXUmxjaUJ6YUc5M2N5QmhJSGRoY201cGJtY2dZVzVrSUdOc1lXMXdjeUIxY0NCMGFHVWdkbUZzZFdVdVhHNGdLaTljYm1OdmJuTjBJRWxPVUZWVVgwMUJXRjlXUVV4VlJWOU5TVTVKVFZWTklEMGdNQzR3TVR0Y2JseHVMeW9xWEc0Z0tpQkJJSEJzZFdkcGJpQnZaaUJIVEZSR1RHOWhaR1Z5SUhSb1lYUWdhVzF3YjNKMGN5QmhJSHRBYkdsdWF5QldVazFNYjI5clFYUjlJR1p5YjIwZ1lTQldVazBnWlhoMFpXNXphVzl1SUc5bUlHRWdSMHhVUmk1Y2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWlNUVXh2YjJ0QmRFeHZZV1JsY2xCc2RXZHBiaUJwYlhCc1pXMWxiblJ6SUVkTVZFWk1iMkZrWlhKUWJIVm5hVzRnZTF4dUlDQXZLaXBjYmlBZ0lDb2dVM0JsWTJsbWVTQmhiaUJQWW1wbFkzUXpSQ0IwYnlCaFpHUWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRFaGxiSEJsY24wZ2N5NWNiaUFnSUNvZ1NXWWdibTkwSUhOd1pXTnBabWxsWkN3Z2FHVnNjR1Z5SUhkcGJHd2dibTkwSUdKbElHTnlaV0YwWldRdVhHNGdJQ0FxSUVsbUlHQnlaVzVrWlhKUGNtUmxjbUFnYVhNZ2MyVjBJSFJ2SUhSb1pTQnliMjkwTENCb1pXeHdaWEp6SUhkcGJHd2dZMjl3ZVNCMGFHVWdjMkZ0WlNCZ2NtVnVaR1Z5VDNKa1pYSmdJQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJvWld4d1pYSlNiMjkwUHpvZ1ZFaFNSVVV1VDJKcVpXTjBNMFE3WEc1Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlIQmhjbk5sY2pvZ1IweFVSbEJoY25ObGNqdGNibHh1SUNCd2RXSnNhV01nWjJWMElHNWhiV1VvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0F2THlCWFpTQnphRzkxYkdRZ2RYTmxJSFJvWlNCbGVIUmxibk5wYjI0Z2JtRnRaU0JwYm5OMFpXRmtJR0oxZENCM1pTQm9ZWFpsSUcxMWJIUnBjR3hsSUhCc2RXZHBibk1nWm05eUlHRnVJR1Y0ZEdWdWMybHZiaTR1TGx4dUlDQWdJSEpsZEhWeWJpQW5WbEpOVEc5dmEwRjBURzloWkdWeVVHeDFaMmx1Snp0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaHdZWEp6WlhJNklFZE1WRVpRWVhKelpYSXNJRzl3ZEdsdmJuTS9PaUJXVWsxTWIyOXJRWFJNYjJGa1pYSlFiSFZuYVc1UGNIUnBiMjV6S1NCN1hHNGdJQ0FnZEdocGN5NXdZWEp6WlhJZ1BTQndZWEp6WlhJN1hHNWNiaUFnSUNCMGFHbHpMbWhsYkhCbGNsSnZiM1FnUFNCdmNIUnBiMjV6UHk1b1pXeHdaWEpTYjI5ME8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHRnplVzVqSUdGbWRHVnlVbTl2ZENobmJIUm1PaUJIVEZSR0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdkbkp0U0hWdFlXNXZhV1FnUFNCbmJIUm1MblZ6WlhKRVlYUmhMblp5YlVoMWJXRnViMmxrSUdGeklGWlNUVWgxYldGdWIybGtJSHdnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnTHk4Z1pYaHdiR2xqYVhSc2VTQmthWE4wYVc1bmRXbHphQ0J1ZFd4c0lHRnVaQ0IxYm1SbFptbHVaV1JjYmlBZ0lDQXZMeUJ6YVc1alpTQjJjbTFJZFcxaGJtOXBaQ0J0YVdkb2RDQmlaU0J1ZFd4c0lHRnpJR0VnY21WemRXeDBYRzRnSUNBZ2FXWWdLSFp5YlVoMWJXRnViMmxrSUQwOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2gyY20xSWRXMWhibTlwWkNBOVBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMVpTVFV4dmIydEJkRXh2WVdSbGNsQnNkV2RwYmpvZ2RuSnRTSFZ0WVc1dmFXUWdhWE1nZFc1a1pXWnBibVZrTGlCV1VrMUlkVzFoYm05cFpFeHZZV1JsY2xCc2RXZHBiaUJvWVhabElIUnZJR0psSUhWelpXUWdabWx5YzNRbktUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0IyY20xRmVIQnlaWE56YVc5dVRXRnVZV2RsY2lBOUlHZHNkR1l1ZFhObGNrUmhkR0V1ZG5KdFJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJZ1lYTWdWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWElnZkNCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNCcFppQW9kbkp0Ulhod2NtVnpjMmx2YmsxaGJtRm5aWElnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLSFp5YlVWNGNISmxjM05wYjI1TllXNWhaMlZ5SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNiaUFnSUNBZ0lDQWdKMVpTVFV4dmIydEJkRXh2WVdSbGNsQnNkV2RwYmpvZ2RuSnRSWGh3Y21WemMybHZiazFoYm1GblpYSWdhWE1nZFc1a1pXWnBibVZrTGlCV1VrMUZlSEJ5WlhOemFXOXVURzloWkdWeVVHeDFaMmx1SUdoaGRtVWdkRzhnWW1VZ2RYTmxaQ0JtYVhKemRDY3NYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHZHNkR1l1ZFhObGNrUmhkR0V1ZG5KdFRHOXZhMEYwSUQwZ1lYZGhhWFFnZEdocGN5NWZhVzF3YjNKMEtHZHNkR1lzSUhaeWJVaDFiV0Z1YjJsa0xDQjJjbTFGZUhCeVpYTnphVzl1VFdGdVlXZGxjaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1NXMXdiM0owSUdFZ2UwQnNhVzVySUZaU1RVeHZiMnRCZEgwZ1puSnZiU0JoSUZaU1RTNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJR2RzZEdZZ1FTQndZWEp6WldRZ2NtVnpkV3gwSUc5bUlFZE1WRVlnZEdGclpXNGdabkp2YlNCSFRGUkdURzloWkdWeVhHNGdJQ0FxSUVCd1lYSmhiU0JvZFcxaGJtOXBaQ0JCSUh0QWJHbHVheUJXVWsxSWRXMWhibTlwWkgwZ2FXNXpkR0Z1WTJVZ2RHaGhkQ0J5WlhCeVpYTmxiblJ6SUhSb1pTQldVazFjYmlBZ0lDb2dRSEJoY21GdElHVjRjSEpsYzNOcGIyNXpJRUVnZTBCc2FXNXJJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5ZlNCcGJuTjBZVzVqWlNCMGFHRjBJSEpsY0hKbGMyVnVkSE1nZEdobElGWlNUVnh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QmZhVzF3YjNKMEtGeHVJQ0FnSUdkc2RHWTZJRWRNVkVZc1hHNGdJQ0FnYUhWdFlXNXZhV1E2SUZaU1RVaDFiV0Z1YjJsa0lId2diblZzYkN4Y2JpQWdJQ0JsZUhCeVpYTnphVzl1Y3pvZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSWdmQ0J1ZFd4c0xGeHVJQ0FwT2lCUWNtOXRhWE5sUEZaU1RVeHZiMnRCZENCOElHNTFiR3crSUh0Y2JpQWdJQ0JwWmlBb2FIVnRZVzV2YVdRZ1BUMGdiblZzYkNCOGZDQmxlSEJ5WlhOemFXOXVjeUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQjJNVkpsYzNWc2RDQTlJR0YzWVdsMElIUm9hWE11WDNZeFNXMXdiM0owS0dkc2RHWXNJR2gxYldGdWIybGtMQ0JsZUhCeVpYTnphVzl1Y3lrN1hHNGdJQ0FnYVdZZ0tIWXhVbVZ6ZFd4MEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RqRlNaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdkakJTWlhOMWJIUWdQU0JoZDJGcGRDQjBhR2x6TGw5Mk1FbHRjRzl5ZENobmJIUm1MQ0JvZFcxaGJtOXBaQ3dnWlhod2NtVnpjMmx2Ym5NcE8xeHVJQ0FnSUdsbUlDaDJNRkpsYzNWc2RDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIWXdVbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCZmRqRkpiWEJ2Y25Rb1hHNGdJQ0FnWjJ4MFpqb2dSMHhVUml4Y2JpQWdJQ0JvZFcxaGJtOXBaRG9nVmxKTlNIVnRZVzV2YVdRc1hHNGdJQ0FnWlhod2NtVnpjMmx2Ym5NNklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlMRnh1SUNBcE9pQlFjbTl0YVhObFBGWlNUVXh2YjJ0QmRDQjhJRzUxYkd3K0lIdGNiaUFnSUNCamIyNXpkQ0JxYzI5dUlEMGdkR2hwY3k1d1lYSnpaWEl1YW5OdmJpQmhjeUJIVEZSR1UyTm9aVzFoTGtsSFRGUkdPMXh1WEc0Z0lDQWdMeThnWldGeWJIa2dZV0p2Y25RZ2FXWWdhWFFnWkc5bGMyNG5kQ0IxYzJVZ2RuSnRYRzRnSUNBZ1kyOXVjM1FnYVhOV1VrMVZjMlZrSUQwZ2FuTnZiaTVsZUhSbGJuTnBiMjV6VlhObFpEOHVhVzVrWlhoUFppZ25WbEpOUTE5MmNtMG5LU0FoUFQwZ0xURTdYRzRnSUNBZ2FXWWdLQ0ZwYzFaU1RWVnpaV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1Y0ZEdWdWMybHZiaUE5SUdwemIyNHVaWGgwWlc1emFXOXVjejh1V3lkV1VrMURYM1p5YlNkZElHRnpJRll4VmxKTlUyTm9aVzFoTGxaU1RVTldVazBnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tDRmxlSFJsYm5OcGIyNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElITndaV05XWlhKemFXOXVJRDBnWlhoMFpXNXphVzl1TG5Od1pXTldaWEp6YVc5dU8xeHVJQ0FnSUdsbUlDZ2hVRTlUVTBsQ1RFVmZVMUJGUTE5V1JWSlRTVTlPVXk1b1lYTW9jM0JsWTFabGNuTnBiMjRwS1NCN1hHNGdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9ZRlpTVFV4dmIydEJkRXh2WVdSbGNsQnNkV2RwYmpvZ1ZXNXJibTkzYmlCV1VrMURYM1p5YlNCemNHVmpWbVZ5YzJsdmJpQmNJaVI3YzNCbFkxWmxjbk5wYjI1OVhDSmdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElITmphR1Z0WVV4dmIydEJkQ0E5SUdWNGRHVnVjMmx2Ymk1c2IyOXJRWFE3WEc0Z0lDQWdhV1lnS0NGelkyaGxiV0ZNYjI5clFYUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHUmxabUYxYkhSUGRYUndkWFJUWTJGc1pTQTlJSE5qYUdWdFlVeHZiMnRCZEM1MGVYQmxJRDA5UFNBblpYaHdjbVZ6YzJsdmJpY2dQeUF4TGpBZ09pQXhNQzR3TzF4dVhHNGdJQ0FnWTI5dWMzUWdiV0Z3U0VrZ1BTQjBhR2x6TGw5Mk1VbHRjRzl5ZEZKaGJtZGxUV0Z3S0hOamFHVnRZVXh2YjJ0QmRDNXlZVzVuWlUxaGNFaHZjbWw2YjI1MFlXeEpibTVsY2l3Z1pHVm1ZWFZzZEU5MWRIQjFkRk5qWVd4bEtUdGNiaUFnSUNCamIyNXpkQ0J0WVhCSVR5QTlJSFJvYVhNdVgzWXhTVzF3YjNKMFVtRnVaMlZOWVhBb2MyTm9aVzFoVEc5dmEwRjBMbkpoYm1kbFRXRndTRzl5YVhwdmJuUmhiRTkxZEdWeUxDQmtaV1poZFd4MFQzVjBjSFYwVTJOaGJHVXBPMXh1SUNBZ0lHTnZibk4wSUcxaGNGWkVJRDBnZEdocGN5NWZkakZKYlhCdmNuUlNZVzVuWlUxaGNDaHpZMmhsYldGTWIyOXJRWFF1Y21GdVoyVk5ZWEJXWlhKMGFXTmhiRVJ2ZDI0c0lHUmxabUYxYkhSUGRYUndkWFJUWTJGc1pTazdYRzRnSUNBZ1kyOXVjM1FnYldGd1ZsVWdQU0IwYUdsekxsOTJNVWx0Y0c5eWRGSmhibWRsVFdGd0tITmphR1Z0WVV4dmIydEJkQzV5WVc1blpVMWhjRlpsY25ScFkyRnNWWEFzSUdSbFptRjFiSFJQZFhSd2RYUlRZMkZzWlNrN1hHNWNiaUFnSUNCc1pYUWdZWEJ3YkdsbGNqdGNibHh1SUNBZ0lHbG1JQ2h6WTJobGJXRk1iMjlyUVhRdWRIbHdaU0E5UFQwZ0oyVjRjSEpsYzNOcGIyNG5LU0I3WEc0Z0lDQWdJQ0JoY0hCc2FXVnlJRDBnYm1WM0lGWlNUVXh2YjJ0QmRFVjRjSEpsYzNOcGIyNUJjSEJzYVdWeUtHVjRjSEpsYzNOcGIyNXpMQ0J0WVhCSVNTd2diV0Z3U0U4c0lHMWhjRlpFTENCdFlYQldWU2s3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHRndjR3hwWlhJZ1BTQnVaWGNnVmxKTlRHOXZhMEYwUW05dVpVRndjR3hwWlhJb2FIVnRZVzV2YVdRc0lHMWhjRWhKTENCdFlYQklUeXdnYldGd1ZrUXNJRzFoY0ZaVktUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JzYjI5clFYUWdQU0IwYUdsekxsOXBiWEJ2Y25STWIyOXJRWFFvYUhWdFlXNXZhV1FzSUdGd2NHeHBaWElwTzF4dVhHNGdJQ0FnYkc5dmEwRjBMbTltWm5ObGRFWnliMjFJWldGa1FtOXVaUzVtY205dFFYSnlZWGtvYzJOb1pXMWhURzl2YTBGMExtOW1abk5sZEVaeWIyMUlaV0ZrUW05dVpTQS9QeUJiTUM0d0xDQXdMakEyTENBd0xqQmRLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnNiMjlyUVhRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOTJNVWx0Y0c5eWRGSmhibWRsVFdGd0tGeHVJQ0FnSUhOamFHVnRZVkpoYm1kbFRXRndPaUJXTVZaU1RWTmphR1Z0WVM1TWIyOXJRWFJTWVc1blpVMWhjQ0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0JrWldaaGRXeDBUM1YwY0hWMFUyTmhiR1U2SUc1MWJXSmxjaXhjYmlBZ0tUb2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQWdlMXh1SUNBZ0lHeGxkQ0JwYm5CMWRFMWhlRlpoYkhWbElEMGdjMk5vWlcxaFVtRnVaMlZOWVhBL0xtbHVjSFYwVFdGNFZtRnNkV1VnUHo4Z09UQXVNRHRjYmlBZ0lDQmpiMjV6ZENCdmRYUndkWFJUWTJGc1pTQTlJSE5qYUdWdFlWSmhibWRsVFdGd1B5NXZkWFJ3ZFhSVFkyRnNaU0EvUHlCa1pXWmhkV3gwVDNWMGNIVjBVMk5oYkdVN1hHNWNiaUFnSUNBdkx5QkpkQ0J0YVdkb2RDQmpZWFZ6WlNCT1lVNGdkMmhsYmlCZ2FXNXdkWFJOWVhoV1lXeDFaV0FnYVhNZ2RHOXZJSE50WVd4c1hHNGdJQ0FnTHk4Z2QyaHBZMmdnYldGclpYTWdkR2hsSUcxbGMyZ2diMllnZEdobElHaGxZV1FnWkdsellYQndaV0Z5WEc0Z0lDQWdMeThnVTJWbE9pQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZjR2w0YVhZdmRHaHlaV1V0ZG5KdEwybHpjM1ZsY3k4eE1qQXhYRzRnSUNBZ2FXWWdLR2x1Y0hWMFRXRjRWbUZzZFdVZ1BDQkpUbEJWVkY5TlFWaGZWa0ZNVlVWZlRVbE9TVTFWVFNrZ2UxeHVJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0FuVmxKTlRHOXZhMEYwVEc5aFpHVnlVR3gxWjJsdU9pQnBibkIxZEUxaGVGWmhiSFZsSUc5bUlHRWdjbUZ1WjJVZ2JXRndJR2x6SUhSdmJ5QnpiV0ZzYkM0Z1EyOXVjMmxrWlhJZ2NtVjJhV1YzYVc1bklIUm9aU0J5WVc1blpTQnRZWEFoSnl4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCcGJuQjFkRTFoZUZaaGJIVmxJRDBnU1U1UVZWUmZUVUZZWDFaQlRGVkZYMDFKVGtsTlZVMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QldVazFNYjI5clFYUlNZVzVuWlUxaGNDaHBibkIxZEUxaGVGWmhiSFZsTENCdmRYUndkWFJUWTJGc1pTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklGOTJNRWx0Y0c5eWRDaGNiaUFnSUNCbmJIUm1PaUJIVEZSR0xGeHVJQ0FnSUdoMWJXRnViMmxrT2lCV1VrMUlkVzFoYm05cFpDeGNiaUFnSUNCbGVIQnlaWE56YVc5dWN6b2dWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWElzWEc0Z0lDazZJRkJ5YjIxcGMyVThWbEpOVEc5dmEwRjBJSHdnYm5Wc2JENGdlMXh1SUNBZ0lHTnZibk4wSUdwemIyNGdQU0IwYUdsekxuQmhjbk5sY2k1cWMyOXVJR0Z6SUVkTVZFWlRZMmhsYldFdVNVZE1WRVk3WEc1Y2JpQWdJQ0F2THlCbFlYSnNlU0JoWW05eWRDQnBaaUJwZENCa2IyVnpiaWQwSUhWelpTQjJjbTFjYmlBZ0lDQmpiMjV6ZENCMmNtMUZlSFFnUFNCcWMyOXVMbVY0ZEdWdWMybHZibk0vTGxaU1RTQmhjeUJXTUZaU1RTNVdVazBnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tDRjJjbTFGZUhRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhOamFHVnRZVVpwY25OMFVHVnljMjl1SUQwZ2RuSnRSWGgwTG1acGNuTjBVR1Z5YzI5dU8xeHVJQ0FnSUdsbUlDZ2hjMk5vWlcxaFJtbHljM1JRWlhKemIyNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHUmxabUYxYkhSUGRYUndkWFJUWTJGc1pTQTlJSE5qYUdWdFlVWnBjbk4wVUdWeWMyOXVMbXh2YjJ0QmRGUjVjR1ZPWVcxbElEMDlQU0FuUW14bGJtUlRhR0Z3WlNjZ1B5QXhMakFnT2lBeE1DNHdPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXRndTRWtnUFNCMGFHbHpMbDkyTUVsdGNHOXlkRVJsWjNKbFpVMWhjQ2h6WTJobGJXRkdhWEp6ZEZCbGNuTnZiaTVzYjI5clFYUkliM0pwZW05dWRHRnNTVzV1WlhJc0lHUmxabUYxYkhSUGRYUndkWFJUWTJGc1pTazdYRzRnSUNBZ1kyOXVjM1FnYldGd1NFOGdQU0IwYUdsekxsOTJNRWx0Y0c5eWRFUmxaM0psWlUxaGNDaHpZMmhsYldGR2FYSnpkRkJsY25OdmJpNXNiMjlyUVhSSWIzSnBlbTl1ZEdGc1QzVjBaWElzSUdSbFptRjFiSFJQZFhSd2RYUlRZMkZzWlNrN1hHNGdJQ0FnWTI5dWMzUWdiV0Z3VmtRZ1BTQjBhR2x6TGw5Mk1FbHRjRzl5ZEVSbFozSmxaVTFoY0NoelkyaGxiV0ZHYVhKemRGQmxjbk52Ymk1c2IyOXJRWFJXWlhKMGFXTmhiRVJ2ZDI0c0lHUmxabUYxYkhSUGRYUndkWFJUWTJGc1pTazdYRzRnSUNBZ1kyOXVjM1FnYldGd1ZsVWdQU0IwYUdsekxsOTJNRWx0Y0c5eWRFUmxaM0psWlUxaGNDaHpZMmhsYldGR2FYSnpkRkJsY25OdmJpNXNiMjlyUVhSV1pYSjBhV05oYkZWd0xDQmtaV1poZFd4MFQzVjBjSFYwVTJOaGJHVXBPMXh1WEc0Z0lDQWdiR1YwSUdGd2NHeHBaWEk3WEc1Y2JpQWdJQ0JwWmlBb2MyTm9aVzFoUm1seWMzUlFaWEp6YjI0dWJHOXZhMEYwVkhsd1pVNWhiV1VnUFQwOUlDZENiR1Z1WkZOb1lYQmxKeWtnZTF4dUlDQWdJQ0FnWVhCd2JHbGxjaUE5SUc1bGR5QldVazFNYjI5clFYUkZlSEJ5WlhOemFXOXVRWEJ3YkdsbGNpaGxlSEJ5WlhOemFXOXVjeXdnYldGd1NFa3NJRzFoY0VoUExDQnRZWEJXUkN3Z2JXRndWbFVwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQmhjSEJzYVdWeUlEMGdibVYzSUZaU1RVeHZiMnRCZEVKdmJtVkJjSEJzYVdWeUtHaDFiV0Z1YjJsa0xDQnRZWEJJU1N3Z2JXRndTRThzSUcxaGNGWkVMQ0J0WVhCV1ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYkc5dmEwRjBJRDBnZEdocGN5NWZhVzF3YjNKMFRHOXZhMEYwS0doMWJXRnViMmxrTENCaGNIQnNhV1Z5S1R0Y2JseHVJQ0FnSUdsbUlDaHpZMmhsYldGR2FYSnpkRkJsY25OdmJpNW1hWEp6ZEZCbGNuTnZia0p2Ym1WUFptWnpaWFFwSUh0Y2JpQWdJQ0FnSUd4dmIydEJkQzV2Wm1aelpYUkdjbTl0U0dWaFpFSnZibVV1YzJWMEtGeHVJQ0FnSUNBZ0lDQnpZMmhsYldGR2FYSnpkRkJsY25OdmJpNW1hWEp6ZEZCbGNuTnZia0p2Ym1WUFptWnpaWFF1ZUNBL1B5QXdMakFzWEc0Z0lDQWdJQ0FnSUhOamFHVnRZVVpwY25OMFVHVnljMjl1TG1acGNuTjBVR1Z5YzI5dVFtOXVaVTltWm5ObGRDNTVJRDgvSURBdU1EWXNYRzRnSUNBZ0lDQWdJQzBvYzJOb1pXMWhSbWx5YzNSUVpYSnpiMjR1Wm1seWMzUlFaWEp6YjI1Q2IyNWxUMlptYzJWMExub2dQejhnTUM0d0tTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUd4dmIydEJkQzV2Wm1aelpYUkdjbTl0U0dWaFpFSnZibVV1YzJWMEtEQXVNQ3dnTUM0d05pd2dNQzR3S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCV1VrMGdNQzR3SUdGeVpTQm1ZV05wYm1jZ1dpMGdhVzV6ZEdWaFpDQnZaaUJhSzF4dUlDQWdJR3h2YjJ0QmRDNW1ZV05sUm5KdmJuUXVjMlYwS0RBdU1Dd2dNQzR3TENBdE1TNHdLVHRjYmx4dUlDQWdJR2xtSUNoaGNIQnNhV1Z5SUdsdWMzUmhibU5sYjJZZ1ZsSk5URzl2YTBGMFFtOXVaVUZ3Y0d4cFpYSXBJSHRjYmlBZ0lDQWdJR0Z3Y0d4cFpYSXVabUZqWlVaeWIyNTBMbk5sZENnd0xqQXNJREF1TUN3Z0xURXVNQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHeHZiMnRCZER0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gzWXdTVzF3YjNKMFJHVm5jbVZsVFdGd0tGeHVJQ0FnSUhOamFHVnRZVVJsWjNKbFpVMWhjRG9nVmpCV1VrMHVSbWx5YzNSUVpYSnpiMjVFWldkeVpXVk5ZWEFnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnWkdWbVlYVnNkRTkxZEhCMWRGTmpZV3hsT2lCdWRXMWlaWElzWEc0Z0lDazZJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndJSHRjYmlBZ0lDQmpiMjV6ZENCamRYSjJaU0E5SUhOamFHVnRZVVJsWjNKbFpVMWhjRDh1WTNWeWRtVTdYRzRnSUNBZ2FXWWdLRXBUVDA0dWMzUnlhVzVuYVdaNUtHTjFjblpsS1NBaFBUMGdKMXN3TERBc01Dd3hMREVzTVN3eExEQmRKeWtnZTF4dUlDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtDZERkWEoyWlhNZ2IyWWdURzl2YTBGMFJHVm5jbVZsVFdGd0lHUmxabWx1WldRZ2FXNGdWbEpOSURBdU1DQmhjbVVnYm05MElITjFjSEJ2Y25SbFpDY3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0I0VW1GdVoyVWdQU0J6WTJobGJXRkVaV2R5WldWTllYQS9MbmhTWVc1blpTQS9QeUE1TUM0d08xeHVJQ0FnSUdOdmJuTjBJSGxTWVc1blpTQTlJSE5qYUdWdFlVUmxaM0psWlUxaGNEOHVlVkpoYm1kbElEOC9JR1JsWm1GMWJIUlBkWFJ3ZFhSVFkyRnNaVHRjYmx4dUlDQWdJQzh2SUVsMElHMXBaMmgwSUdOaGRYTmxJRTVoVGlCM2FHVnVJR0I0VW1GdVoyVmdJR2x6SUhSdmJ5QnpiV0ZzYkZ4dUlDQWdJQzh2SUhkb2FXTm9JRzFoYTJWeklIUm9aU0J0WlhOb0lHOW1JSFJvWlNCb1pXRmtJR1JwYzJGd2NHVmhjbHh1SUNBZ0lDOHZJRk5sWlRvZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwzQnBlR2wyTDNSb2NtVmxMWFp5YlM5cGMzTjFaWE12TVRJd01WeHVJQ0FnSUdsbUlDaDRVbUZ1WjJVZ1BDQkpUbEJWVkY5TlFWaGZWa0ZNVlVWZlRVbE9TVTFWVFNrZ2UxeHVJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLQ2RXVWsxTWIyOXJRWFJNYjJGa1pYSlFiSFZuYVc0NklIaFNZVzVuWlNCdlppQmhJR1JsWjNKbFpTQnRZWEFnYVhNZ2RHOXZJSE50WVd4c0xpQkRiMjV6YVdSbGNpQnlaWFpwWlhkcGJtY2dkR2hsSUdSbFozSmxaU0J0WVhBaEp5azdYRzRnSUNBZ0lDQjRVbUZ1WjJVZ1BTQkpUbEJWVkY5TlFWaGZWa0ZNVlVWZlRVbE9TVTFWVFR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdibVYzSUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3S0hoU1lXNW5aU3dnZVZKaGJtZGxLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJsdGNHOXlkRXh2YjJ0QmRDaG9kVzFoYm05cFpEb2dWbEpOU0hWdFlXNXZhV1FzSUdGd2NHeHBaWEk2SUZaU1RVeHZiMnRCZEVGd2NHeHBaWElwT2lCV1VrMU1iMjlyUVhRZ2UxeHVJQ0FnSUdOdmJuTjBJR3h2YjJ0QmRDQTlJRzVsZHlCV1VrMU1iMjlyUVhRb2FIVnRZVzV2YVdRc0lHRndjR3hwWlhJcE8xeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdWFHVnNjR1Z5VW05dmRDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FHVnNjR1Z5SUQwZ2JtVjNJRlpTVFV4dmIydEJkRWhsYkhCbGNpaHNiMjlyUVhRcE8xeHVJQ0FnSUNBZ2RHaHBjeTVvWld4d1pYSlNiMjkwTG1Ga1pDaG9aV3h3WlhJcE8xeHVJQ0FnSUNBZ2FHVnNjR1Z5TG5KbGJtUmxjazl5WkdWeUlEMGdkR2hwY3k1b1pXeHdaWEpTYjI5MExuSmxibVJsY2s5eVpHVnlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCc2IyOXJRWFE3WEc0Z0lIMWNibjFjYmlJc0lpOHFJR1Z6YkdsdWRDMWthWE5oWW14bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVZVzFwYm1jdFkyOXVkbVZ1ZEdsdmJpQXFMMXh1WEc0dktpcGNiaUFxSUZKbGNISmxjMlZ1ZEhNZ1lTQjBlWEJsSUc5bUlHRndjR3hwWlhJdVhHNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQldVazFNYjI5clFYUlVlWEJsVG1GdFpTQTlJSHRjYmlBZ1FtOXVaVG9nSjJKdmJtVW5MRnh1SUNCRmVIQnlaWE56YVc5dU9pQW5aWGh3Y21WemMybHZiaWNzWEc1OU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCV1VrMU1iMjlyUVhSVWVYQmxUbUZ0WlNBOUlIUjVjR1Z2WmlCV1VrMU1iMjlyUVhSVWVYQmxUbUZ0WlZ0clpYbHZaaUIwZVhCbGIyWWdWbEpOVEc5dmEwRjBWSGx3WlU1aGJXVmRPMXh1SWl3aUx5b3FYRzRnS2lCWmIybHVhMlZrSUdaeWIyMGdhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMjF5Wkc5dllpOTBhSEpsWlM1cWN5OWliRzlpTDIxaGMzUmxjaTlsZUdGdGNHeGxjeTlxYzIwdmJHOWhaR1Z5Y3k5SFRGUkdURzloWkdWeUxtcHpYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeVpYTnZiSFpsVlZKTUtIVnliRG9nYzNSeWFXNW5MQ0J3WVhSb09pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0F2THlCSmJuWmhiR2xrSUZWU1RGeHVJQ0JwWmlBb2RIbHdaVzltSUhWeWJDQWhQVDBnSjNOMGNtbHVaeWNnZkh3Z2RYSnNJRDA5UFNBbkp5a2djbVYwZFhKdUlDY25PMXh1WEc0Z0lDOHZJRWh2YzNRZ1VtVnNZWFJwZG1VZ1ZWSk1YRzRnSUdsbUlDZ3ZYbWgwZEhCelB6cGNYQzljWEM4dmFTNTBaWE4wS0hCaGRHZ3BJQ1ltSUM5ZVhGd3ZMeTUwWlhOMEtIVnliQ2twSUh0Y2JpQWdJQ0J3WVhSb0lEMGdjR0YwYUM1eVpYQnNZV05sS0M4b1htaDBkSEJ6UHpwY1hDOWNYQzliWGk5ZEt5a3VLaTlwTENBbkpERW5LVHRjYmlBZ2ZWeHVYRzRnSUM4dklFRmljMjlzZFhSbElGVlNUQ0JvZEhSd09pOHZMR2gwZEhCek9pOHZMQzh2WEc0Z0lHbG1JQ2d2WGlob2RIUndjejg2S1Q5Y1hDOWNYQzh2YVM1MFpYTjBLSFZ5YkNrcElISmxkSFZ5YmlCMWNtdzdYRzVjYmlBZ0x5OGdSR0YwWVNCVlVrbGNiaUFnYVdZZ0tDOWVaR0YwWVRvdUtpd3VLaVF2YVM1MFpYTjBLSFZ5YkNrcElISmxkSFZ5YmlCMWNtdzdYRzVjYmlBZ0x5OGdRbXh2WWlCVlVreGNiaUFnYVdZZ0tDOWVZbXh2WWpvdUtpUXZhUzUwWlhOMEtIVnliQ2twSUhKbGRIVnliaUIxY213N1hHNWNiaUFnTHk4Z1VtVnNZWFJwZG1VZ1ZWSk1YRzRnSUhKbGRIVnliaUJ3WVhSb0lDc2dkWEpzTzF4dWZWeHVJaXdpYVcxd2IzSjBJSFI1Y0dVZ2V5QkhURlJHTENCSFRGUkdURzloWkdWeVVHeDFaMmx1TENCSFRGUkdVR0Z5YzJWeUlIMGdabkp2YlNBbmRHaHlaV1V2WlhoaGJYQnNaWE12YW5OdEwyeHZZV1JsY25NdlIweFVSa3h2WVdSbGNpNXFjeWM3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFRCTlpYUmhJSDBnWm5KdmJTQW5MaTlXVWswd1RXVjBZU2M3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFRGTlpYUmhJSDBnWm5KdmJTQW5MaTlXVWsweFRXVjBZU2M3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFUxbGRHRWdmU0JtY205dElDY3VMMVpTVFUxbGRHRW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QldVazFOWlhSaFRHOWhaR1Z5VUd4MVoybHVUM0IwYVc5dWN5QjlJR1p5YjIwZ0p5NHZWbEpOVFdWMFlVeHZZV1JsY2xCc2RXZHBiazl3ZEdsdmJuTW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ0tpQmhjeUJXTUZaU1RTQm1jbTl0SUNkQWNHbDRhWFl2ZEhsd1pYTXRkbkp0TFRBdU1DYzdYRzVwYlhCdmNuUWdkSGx3WlNBcUlHRnpJRll4VmxKTlUyTm9aVzFoSUdaeWIyMGdKMEJ3YVhocGRpOTBlWEJsY3kxMmNtMWpMWFp5YlMweExqQW5PMXh1YVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIc2djbVZ6YjJ4MlpWVlNUQ0I5SUdaeWIyMGdKeTR1TDNWMGFXeHpMM0psYzI5c2RtVlZVa3duTzF4dWFXMXdiM0owSUhzZ1IweFVSaUJoY3lCSFRGUkdVMk5vWlcxaElIMGdabkp2YlNBblFHZHNkR1l0ZEhKaGJuTm1iM0p0TDJOdmNtVW5PMXh1WEc0dktpcGNiaUFxSUZCdmMzTnBZbXhsSUhOd1pXTWdkbVZ5YzJsdmJuTWdhWFFnY21WamIyZHVhWHBsY3k1Y2JpQXFMMXh1WTI5dWMzUWdVRTlUVTBsQ1RFVmZVMUJGUTE5V1JWSlRTVTlPVXlBOUlHNWxkeUJUWlhRb1d5Y3hMakFuTENBbk1TNHdMV0psZEdFblhTazdYRzVjYmk4cUtseHVJQ29nUVNCd2JIVm5hVzRnYjJZZ1IweFVSa3h2WVdSbGNpQjBhR0YwSUdsdGNHOXlkSE1nWVNCN1FHeHBibXNnVmxKTk1VMWxkR0Y5SUdaeWIyMGdZU0JXVWswZ1pYaDBaVzV6YVc5dUlHOW1JR0VnUjB4VVJpNWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRlpTVFUxbGRHRk1iMkZrWlhKUWJIVm5hVzRnYVcxd2JHVnRaVzUwY3lCSFRGUkdURzloWkdWeVVHeDFaMmx1SUh0Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlIQmhjbk5sY2pvZ1IweFVSbEJoY25ObGNqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1NXWWdZR1poYkhObFlDd2dhWFFnZDI5dUozUWdiRzloWkNCcGRITWdkR2gxYldKdVlXbHNJR2x0WVdkbElDaDdRR3hwYm1zZ1ZsSk5NVTFsZEdFdWRHaDFiV0p1WVdsc1NXMWhaMlY5S1M1Y2JpQWdJQ29nWUhSeWRXVmdJR0o1SUdSbFptRjFiSFF1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYm1WbFpGUm9kVzFpYm1GcGJFbHRZV2RsT2lCaWIyOXNaV0Z1TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJCSUd4cGMzUWdiMllnYkdsalpXNXpaU0IxY214ekxseHVJQ0FnS2lCVWFHbHpJRzFsZEdFZ2JHOWhaR1Z5SUhkcGJHd2dZV05qWlhCMElIUm9aWE5sSUdCc2FXTmxibk5sVlhKc1lITXVYRzRnSUNBcUlFOTBhR1Z5ZDJselpTQnBkQ0IzYjI0bmRDQmlaU0JzYjJGa1pXUXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZV05qWlhCMFRHbGpaVzV6WlZWeWJITTZJSE4wY21sdVoxdGRPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlhhR1YwYUdWeUlHbDBJSE5vYjNWc1pDQmhZMk5sY0hRZ1ZsSk5NQzR3SUcxbGRHRWdiM0lnYm05MExseHVJQ0FnS2lCT2IzUmxJSFJvWVhRZ2FYUWdiV2xuYUhRZ2JHOWhaQ0I3UUd4cGJtc2dWbEpOTUUxbGRHRjlJR2x1YzNSbFlXUWdiMllnZTBCc2FXNXJJRlpTVFRGTlpYUmhmU0IzYUdWdUlIUm9hWE1nYVhNZ1lIUnlkV1ZnTGx4dUlDQWdLaUJnZEhKMVpXQWdZbmtnWkdWbVlYVnNkQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJoWTJObGNIUldNRTFsZEdFNklHSnZiMnhsWVc0N1hHNWNiaUFnY0hWaWJHbGpJR2RsZENCdVlXMWxLQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdMeThnVjJVZ2MyaHZkV3hrSUhWelpTQjBhR1VnWlhoMFpXNXphVzl1SUc1aGJXVWdhVzV6ZEdWaFpDQmlkWFFnZDJVZ2FHRjJaU0J0ZFd4MGFYQnNaU0J3YkhWbmFXNXpJR1p2Y2lCaGJpQmxlSFJsYm5OcGIyNHVMaTVjYmlBZ0lDQnlaWFIxY200Z0oxWlNUVTFsZEdGTWIyRmtaWEpRYkhWbmFXNG5PMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0hCaGNuTmxjam9nUjB4VVJsQmhjbk5sY2l3Z2IzQjBhVzl1Y3o4NklGWlNUVTFsZEdGTWIyRmtaWEpRYkhWbmFXNVBjSFJwYjI1ektTQjdYRzRnSUNBZ2RHaHBjeTV3WVhKelpYSWdQU0J3WVhKelpYSTdYRzVjYmlBZ0lDQjBhR2x6TG01bFpXUlVhSFZ0WW01aGFXeEpiV0ZuWlNBOUlHOXdkR2x2Ym5NL0xtNWxaV1JVYUhWdFltNWhhV3hKYldGblpTQS9QeUIwY25WbE8xeHVJQ0FnSUhSb2FYTXVZV05qWlhCMFRHbGpaVzV6WlZWeWJITWdQU0J2Y0hScGIyNXpQeTVoWTJObGNIUk1hV05sYm5ObFZYSnNjeUEvUHlCYkoyaDBkSEJ6T2k4dmRuSnRMbVJsZGk5c2FXTmxibk5sY3k4eExqQXZKMTA3WEc0Z0lDQWdkR2hwY3k1aFkyTmxjSFJXTUUxbGRHRWdQU0J2Y0hScGIyNXpQeTVoWTJObGNIUldNRTFsZEdFZ1B6OGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCaGMzbHVZeUJoWm5SbGNsSnZiM1FvWjJ4MFpqb2dSMHhVUmlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR2RzZEdZdWRYTmxja1JoZEdFdWRuSnRUV1YwWVNBOUlHRjNZV2wwSUhSb2FYTXVYMmx0Y0c5eWRDaG5iSFJtS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDJsdGNHOXlkQ2huYkhSbU9pQkhURlJHS1RvZ1VISnZiV2x6WlR4V1VrMU5aWFJoSUh3Z2JuVnNiRDRnZTF4dUlDQWdJR052Ym5OMElIWXhVbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTVmZGpGSmJYQnZjblFvWjJ4MFppazdYRzRnSUNBZ2FXWWdLSFl4VW1WemRXeDBJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjJNVkpsYzNWc2REdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0IyTUZKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdVgzWXdTVzF3YjNKMEtHZHNkR1lwTzF4dUlDQWdJR2xtSUNoMk1GSmxjM1ZzZENBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZGpCU1pYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJRjkyTVVsdGNHOXlkQ2huYkhSbU9pQkhURlJHS1RvZ1VISnZiV2x6WlR4V1VrMHhUV1YwWVNCOElHNTFiR3crSUh0Y2JpQWdJQ0JqYjI1emRDQnFjMjl1SUQwZ2RHaHBjeTV3WVhKelpYSXVhbk52YmlCaGN5QkhURlJHVTJOb1pXMWhMa2xIVEZSR08xeHVYRzRnSUNBZ0x5OGdaV0Z5YkhrZ1lXSnZjblFnYVdZZ2FYUWdaRzlsYzI0bmRDQjFjMlVnZG5KdFhHNGdJQ0FnWTI5dWMzUWdhWE5XVWsxVmMyVmtJRDBnYW5OdmJpNWxlSFJsYm5OcGIyNXpWWE5sWkQ4dWFXNWtaWGhQWmlnblZsSk5RMTkyY20wbktTQWhQVDBnTFRFN1hHNGdJQ0FnYVdZZ0tDRnBjMVpTVFZWelpXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHVjRkR1Z1YzJsdmJpQTlJR3B6YjI0dVpYaDBaVzV6YVc5dWN6OHVXeWRXVWsxRFgzWnliU2RkSUdGeklGWXhWbEpOVTJOb1pXMWhMbFpTVFVOV1VrMGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdhV1lnS0dWNGRHVnVjMmx2YmlBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J6Y0dWalZtVnljMmx2YmlBOUlHVjRkR1Z1YzJsdmJpNXpjR1ZqVm1WeWMybHZianRjYmlBZ0lDQnBaaUFvSVZCUFUxTkpRa3hGWDFOUVJVTmZWa1ZTVTBsUFRsTXVhR0Z6S0hOd1pXTldaWEp6YVc5dUtTa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0dCV1VrMU5aWFJoVEc5aFpHVnlVR3gxWjJsdU9pQlZibXR1YjNkdUlGWlNUVU5mZG5KdElITndaV05XWlhKemFXOXVJRndpSkh0emNHVmpWbVZ5YzJsdmJuMWNJbUFwTzF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjMk5vWlcxaFRXVjBZU0E5SUdWNGRHVnVjMmx2Ymk1dFpYUmhPMXh1SUNBZ0lHbG1JQ2doYzJOb1pXMWhUV1YwWVNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdkR2h5YjNjZ1lXNGdaWEp5YjNJZ2FXWWdZV05qWlhCMFZqQk5aWFJoSUdseklHWmhiSE5sWEc0Z0lDQWdZMjl1YzNRZ2JHbGpaVzV6WlZWeWJDQTlJSE5qYUdWdFlVMWxkR0V1YkdsalpXNXpaVlZ5YkR0Y2JpQWdJQ0JqYjI1emRDQmhZMk5sY0hSTWFXTmxibk5sVlhKc2MxTmxkQ0E5SUc1bGR5QlRaWFFvZEdocGN5NWhZMk5sY0hSTWFXTmxibk5sVlhKc2N5azdYRzRnSUNBZ2FXWWdLQ0ZoWTJObGNIUk1hV05sYm5ObFZYSnNjMU5sZEM1b1lYTW9iR2xqWlc1elpWVnliQ2twSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnVmxKTlRXVjBZVXh2WVdSbGNsQnNkV2RwYmpvZ1ZHaGxJR3hwWTJWdWMyVWdkWEpzSUZ3aUpIdHNhV05sYm5ObFZYSnNmVndpSUdseklHNXZkQ0JoWTJObGNIUmxaR0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR3hsZENCMGFIVnRZbTVoYVd4SmJXRm5aVG9nU0ZSTlRFbHRZV2RsUld4bGJXVnVkQ0I4SUhWdVpHVm1hVzVsWkNBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9kR2hwY3k1dVpXVmtWR2gxYldKdVlXbHNTVzFoWjJVZ0ppWWdjMk5vWlcxaFRXVjBZUzUwYUhWdFltNWhhV3hKYldGblpTQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQjBhSFZ0WW01aGFXeEpiV0ZuWlNBOUlDaGhkMkZwZENCMGFHbHpMbDlsZUhSeVlXTjBSMHhVUmtsdFlXZGxLSE5qYUdWdFlVMWxkR0V1ZEdoMWJXSnVZV2xzU1cxaFoyVXBLU0EvUHlCMWJtUmxabWx1WldRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJRzFsZEdGV1pYSnphVzl1T2lBbk1TY3NYRzRnSUNBZ0lDQnVZVzFsT2lCelkyaGxiV0ZOWlhSaExtNWhiV1VzWEc0Z0lDQWdJQ0IyWlhKemFXOXVPaUJ6WTJobGJXRk5aWFJoTG5abGNuTnBiMjRzWEc0Z0lDQWdJQ0JoZFhSb2IzSnpPaUJ6WTJobGJXRk5aWFJoTG1GMWRHaHZjbk1zWEc0Z0lDQWdJQ0JqYjNCNWNtbG5hSFJKYm1admNtMWhkR2x2YmpvZ2MyTm9aVzFoVFdWMFlTNWpiM0I1Y21sbmFIUkpibVp2Y20xaGRHbHZiaXhjYmlBZ0lDQWdJR052Ym5SaFkzUkpibVp2Y20xaGRHbHZiam9nYzJOb1pXMWhUV1YwWVM1amIyNTBZV04wU1c1bWIzSnRZWFJwYjI0c1hHNGdJQ0FnSUNCeVpXWmxjbVZ1WTJWek9pQnpZMmhsYldGTlpYUmhMbkpsWm1WeVpXNWpaWE1zWEc0Z0lDQWdJQ0IwYUdseVpGQmhjblI1VEdsalpXNXpaWE02SUhOamFHVnRZVTFsZEdFdWRHaHBjbVJRWVhKMGVVeHBZMlZ1YzJWekxGeHVJQ0FnSUNBZ2RHaDFiV0p1WVdsc1NXMWhaMlVzWEc0Z0lDQWdJQ0JzYVdObGJuTmxWWEpzT2lCelkyaGxiV0ZOWlhSaExteHBZMlZ1YzJWVmNtd3NYRzRnSUNBZ0lDQmhkbUYwWVhKUVpYSnRhWE56YVc5dU9pQnpZMmhsYldGTlpYUmhMbUYyWVhSaGNsQmxjbTFwYzNOcGIyNHNYRzRnSUNBZ0lDQmhiR3h2ZDBWNFkyVnpjMmwyWld4NVZtbHZiR1Z1ZEZWellXZGxPaUJ6WTJobGJXRk5aWFJoTG1Gc2JHOTNSWGhqWlhOemFYWmxiSGxXYVc5c1pXNTBWWE5oWjJVc1hHNGdJQ0FnSUNCaGJHeHZkMFY0WTJWemMybDJaV3g1VTJWNGRXRnNWWE5oWjJVNklITmphR1Z0WVUxbGRHRXVZV3hzYjNkRmVHTmxjM05wZG1Wc2VWTmxlSFZoYkZWellXZGxMRnh1SUNBZ0lDQWdZMjl0YldWeVkybGhiRlZ6WVdkbE9pQnpZMmhsYldGTlpYUmhMbU52YlcxbGNtTnBZV3hWYzJGblpTeGNiaUFnSUNBZ0lHRnNiRzkzVUc5c2FYUnBZMkZzVDNKU1pXeHBaMmx2ZFhOVmMyRm5aVG9nYzJOb1pXMWhUV1YwWVM1aGJHeHZkMUJ2YkdsMGFXTmhiRTl5VW1Wc2FXZHBiM1Z6VlhOaFoyVXNYRzRnSUNBZ0lDQmhiR3h2ZDBGdWRHbHpiMk5wWVd4UGNraGhkR1ZWYzJGblpUb2djMk5vWlcxaFRXVjBZUzVoYkd4dmQwRnVkR2x6YjJOcFlXeFBja2hoZEdWVmMyRm5aU3hjYmlBZ0lDQWdJR055WldScGRFNXZkR0YwYVc5dU9pQnpZMmhsYldGTlpYUmhMbU55WldScGRFNXZkR0YwYVc5dUxGeHVJQ0FnSUNBZ1lXeHNiM2RTWldScGMzUnlhV0oxZEdsdmJqb2djMk5vWlcxaFRXVjBZUzVoYkd4dmQxSmxaR2x6ZEhKcFluVjBhVzl1TEZ4dUlDQWdJQ0FnYlc5a2FXWnBZMkYwYVc5dU9pQnpZMmhsYldGTlpYUmhMbTF2WkdsbWFXTmhkR2x2Yml4Y2JpQWdJQ0FnSUc5MGFHVnlUR2xqWlc1elpWVnliRG9nYzJOb1pXMWhUV1YwWVM1dmRHaGxja3hwWTJWdWMyVlZjbXdzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdYM1l3U1cxd2IzSjBLR2RzZEdZNklFZE1WRVlwT2lCUWNtOXRhWE5sUEZaU1RUQk5aWFJoSUh3Z2JuVnNiRDRnZTF4dUlDQWdJR052Ym5OMElHcHpiMjRnUFNCMGFHbHpMbkJoY25ObGNpNXFjMjl1SUdGeklFZE1WRVpUWTJobGJXRXVTVWRNVkVZN1hHNWNiaUFnSUNBdkx5QmxZWEpzZVNCaFltOXlkQ0JwWmlCcGRDQmtiMlZ6YmlkMElIVnpaU0IyY20xY2JpQWdJQ0JqYjI1emRDQjJjbTFGZUhRZ1BTQnFjMjl1TG1WNGRHVnVjMmx2Ym5NL0xsWlNUU0JoY3lCV01GWlNUUzVXVWswZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLQ0YyY20xRmVIUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElITmphR1Z0WVUxbGRHRWdQU0IyY20xRmVIUXViV1YwWVR0Y2JpQWdJQ0JwWmlBb0lYTmphR1Z0WVUxbGRHRXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUhSb2NtOTNJR0Z1SUdWeWNtOXlJR2xtSUdGalkyVndkRll3VFdWMFlTQnBjeUJtWVd4elpWeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1aFkyTmxjSFJXTUUxbGRHRXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25WbEpOVFdWMFlVeHZZV1JsY2xCc2RXZHBiam9nUVhSMFpXMXdkR1ZrSUhSdklHeHZZV1FnVmxKTk1DNHdJRzFsZEdFZ1luVjBJR0ZqWTJWd2RGWXdUV1YwWVNCcGN5Qm1ZV3h6WlNjcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklHeHZZV1FnZEdoMWJXSnVZV2xzSUhSbGVIUjFjbVZjYmlBZ0lDQnNaWFFnZEdWNGRIVnlaVG9nVkVoU1JVVXVWR1Y0ZEhWeVpTQjhJRzUxYkd3Z2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLSFJvYVhNdWJtVmxaRlJvZFcxaWJtRnBiRWx0WVdkbElDWW1JSE5qYUdWdFlVMWxkR0V1ZEdWNGRIVnlaU0FoUFNCdWRXeHNJQ1ltSUhOamFHVnRZVTFsZEdFdWRHVjRkSFZ5WlNBaFBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUhSbGVIUjFjbVVnUFNCaGQyRnBkQ0IwYUdsekxuQmhjbk5sY2k1blpYUkVaWEJsYm1SbGJtTjVLQ2QwWlhoMGRYSmxKeXdnYzJOb1pXMWhUV1YwWVM1MFpYaDBkWEpsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdiV1YwWVZabGNuTnBiMjQ2SUNjd0p5eGNiaUFnSUNBZ0lHRnNiRzkzWldSVmMyVnlUbUZ0WlRvZ2MyTm9aVzFoVFdWMFlTNWhiR3h2ZDJWa1ZYTmxjazVoYldVc1hHNGdJQ0FnSUNCaGRYUm9iM0k2SUhOamFHVnRZVTFsZEdFdVlYVjBhRzl5TEZ4dUlDQWdJQ0FnWTI5dGJXVnlZMmxoYkZWemMyRm5aVTVoYldVNklITmphR1Z0WVUxbGRHRXVZMjl0YldWeVkybGhiRlZ6YzJGblpVNWhiV1VzWEc0Z0lDQWdJQ0JqYjI1MFlXTjBTVzVtYjNKdFlYUnBiMjQ2SUhOamFHVnRZVTFsZEdFdVkyOXVkR0ZqZEVsdVptOXliV0YwYVc5dUxGeHVJQ0FnSUNBZ2JHbGpaVzV6WlU1aGJXVTZJSE5qYUdWdFlVMWxkR0V1YkdsalpXNXpaVTVoYldVc1hHNGdJQ0FnSUNCdmRHaGxja3hwWTJWdWMyVlZjbXc2SUhOamFHVnRZVTFsZEdFdWIzUm9aWEpNYVdObGJuTmxWWEpzTEZ4dUlDQWdJQ0FnYjNSb1pYSlFaWEp0YVhOemFXOXVWWEpzT2lCelkyaGxiV0ZOWlhSaExtOTBhR1Z5VUdWeWJXbHpjMmx2YmxWeWJDeGNiaUFnSUNBZ0lISmxabVZ5Wlc1alpUb2djMk5vWlcxaFRXVjBZUzV5WldabGNtVnVZMlVzWEc0Z0lDQWdJQ0J6WlhoMVlXeFZjM05oWjJWT1lXMWxPaUJ6WTJobGJXRk5aWFJoTG5ObGVIVmhiRlZ6YzJGblpVNWhiV1VzWEc0Z0lDQWdJQ0IwWlhoMGRYSmxPaUIwWlhoMGRYSmxJRDgvSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUhScGRHeGxPaUJ6WTJobGJXRk5aWFJoTG5ScGRHeGxMRnh1SUNBZ0lDQWdkbVZ5YzJsdmJqb2djMk5vWlcxaFRXVjBZUzUyWlhKemFXOXVMRnh1SUNBZ0lDQWdkbWx2YkdWdWRGVnpjMkZuWlU1aGJXVTZJSE5qYUdWdFlVMWxkR0V1ZG1sdmJHVnVkRlZ6YzJGblpVNWhiV1VzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdYMlY0ZEhKaFkzUkhURlJHU1cxaFoyVW9hVzVrWlhnNklHNTFiV0psY2lrNklGQnliMjFwYzJVOFNGUk5URWx0WVdkbFJXeGxiV1Z1ZENCOElHNTFiR3crSUh0Y2JpQWdJQ0JqYjI1emRDQnFjMjl1SUQwZ2RHaHBjeTV3WVhKelpYSXVhbk52YmlCaGN5QkhURlJHVTJOb1pXMWhMa2xIVEZSR08xeHVYRzRnSUNBZ1kyOXVjM1FnYzI5MWNtTmxJRDBnYW5OdmJpNXBiV0ZuWlhNL0xsdHBibVJsZUYwN1hHNWNiaUFnSUNCcFppQW9jMjkxY21ObElEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhjYmlBZ0lDQWdJQ0FnWUZaU1RVMWxkR0ZNYjJGa1pYSlFiSFZuYVc0NklFRjBkR1Z0Y0hRZ2RHOGdkWE5sSUdsdFlXZGxjMXNrZTJsdVpHVjRmVjBnYjJZZ1oyeFVSaUJoY3lCaElIUm9kVzFpYm1GcGJDQmlkWFFnZEdobElHbHRZV2RsSUdSdlpYTnVKM1FnWlhocGMzUmdMRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZKbFpqb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMjF5Wkc5dllpOTBhSEpsWlM1cWN5OWliRzlpTDNJeE1qUXZaWGhoYlhCc1pYTXZhbk50TDJ4dllXUmxjbk12UjB4VVJreHZZV1JsY2k1cWN5Tk1NalEyTjF4dVhHNGdJQ0FnTHk4Z1lITnZkWEpqWlM1MWNtbGdJRzFwWjJoMElHSmxJR0VnY21WbVpYSmxibU5sSUhSdklHRWdabWxzWlZ4dUlDQWdJR3hsZENCemIzVnlZMlZWVWtrNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDQTlJSE52ZFhKalpTNTFjbWs3WEc1Y2JpQWdJQ0F2THlCTWIyRmtJSFJvWlNCaWFXNWhjbmtnWVhNZ1lTQmliRzlpWEc0Z0lDQWdhV1lnS0hOdmRYSmpaUzVpZFdabVpYSldhV1YzSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR0oxWm1abGNsWnBaWGNnUFNCaGQyRnBkQ0IwYUdsekxuQmhjbk5sY2k1blpYUkVaWEJsYm1SbGJtTjVLQ2RpZFdabVpYSldhV1YzSnl3Z2MyOTFjbU5sTG1KMVptWmxjbFpwWlhjcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWW14dllpQTlJRzVsZHlCQ2JHOWlLRnRpZFdabVpYSldhV1YzWFN3Z2V5QjBlWEJsT2lCemIzVnlZMlV1YldsdFpWUjVjR1VnZlNrN1hHNGdJQ0FnSUNCemIzVnlZMlZWVWtrZ1BTQlZVa3d1WTNKbFlYUmxUMkpxWldOMFZWSk1LR0pzYjJJcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHpiM1Z5WTJWVlVra2dQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0Z4dUlDQWdJQ0FnSUNCZ1ZsSk5UV1YwWVV4dllXUmxjbEJzZFdkcGJqb2dRWFIwWlcxd2RDQjBieUIxYzJVZ2FXMWhaMlZ6V3lSN2FXNWtaWGg5WFNCdlppQm5iRlJHSUdGeklHRWdkR2gxYldKdVlXbHNJR0oxZENCMGFHVWdhVzFoWjJVZ1kyOTFiR1J1SjNRZ2JHOWhaQ0J3Y205d1pYSnNlV0FzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdiRzloWkdWeUlEMGdibVYzSUZSSVVrVkZMa2x0WVdkbFRHOWhaR1Z5S0NrN1hHNGdJQ0FnY21WMGRYSnVJR0YzWVdsMElHeHZZV1JsY2k1c2IyRmtRWE41Ym1Nb2NtVnpiMngyWlZWU1RDaHpiM1Z5WTJWVlVra3NJQ2gwYUdsekxuQmhjbk5sY2lCaGN5QmhibmtwTG05d2RHbHZibk11Y0dGMGFDa3BMbU5oZEdOb0tDaGxjbkp2Y2lrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lobGNuSnZjaWs3WEc0Z0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b0oxWlNUVTFsZEdGTWIyRmtaWEpRYkhWbmFXNDZJRVpoYVd4bFpDQjBieUJzYjJGa0lHRWdkR2gxYldKdVlXbHNJR2x0WVdkbEp5azdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSHNnVmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJZ2ZTQm1jbTl0SUNjdUwyVjRjSEpsYzNOcGIyNXpMMVpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5Snp0Y2JtbHRjRzl5ZENCN0lGWlNUVVpwY25OMFVHVnljMjl1SUgwZ1puSnZiU0FuTGk5bWFYSnpkRkJsY25OdmJpOVdVazFHYVhKemRGQmxjbk52YmljN1hHNXBiWEJ2Y25RZ2V5QldVazFJZFcxaGJtOXBaQ0I5SUdaeWIyMGdKeTR2YUhWdFlXNXZhV1F2VmxKTlNIVnRZVzV2YVdRbk8xeHVhVzF3YjNKMElIc2dWbEpOVEc5dmEwRjBJSDBnWm5KdmJTQW5MaTlzYjI5clFYUXZWbEpOVEc5dmEwRjBKenRjYm1sdGNHOXlkQ0I3SUZaU1RVMWxkR0VnZlNCbWNtOXRJQ2N1TDIxbGRHRXZWbEpOVFdWMFlTYzdYRzVwYlhCdmNuUWdleUJXVWsxRGIzSmxVR0Z5WVcxbGRHVnljeUI5SUdaeWIyMGdKeTR2VmxKTlEyOXlaVkJoY21GdFpYUmxjbk1uTzF4dVhHNHZLaXBjYmlBcUlFRWdZMnhoYzNNZ2RHaGhkQ0J5WlhCeVpYTmxiblJ6SUdFZ2MybHVaMnhsSUZaU1RTQnRiMlJsYkM1Y2JpQXFJRlJvYVhNZ1kyeGhjM01nYjI1c2VTQnBibU5zZFdSbGN5QmpiM0psSUhOd1pXTWdiMllnZEdobElGWlNUU0FvWUZaU1RVTmZkbkp0WUNrdVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QldVazFEYjNKbElIdGNiaUFnTHlvcVhHNGdJQ0FxSUdCVVNGSkZSUzVIY205MWNHQWdkR2hoZENCamIyNTBZV2x1Y3lCMGFHVWdaVzUwYVhKbElGWlNUUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0J6WTJWdVpUb2dWRWhTUlVVdVIzSnZkWEE3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5SaGFXNXpJRzFsZEdFZ1ptbGxiR1J6SUc5bUlIUm9aU0JXVWswdVhHNGdJQ0FxSUZsdmRTQnRhV2RvZENCM1lXNTBJSFJ2SUhKbFptVnlJSFJvWlhObElHeHBZMlZ1YzJVZ1ptbGxiR1J6SUdKbFptOXlaU0IxYzJVZ2VXOTFjaUJXVWsxekxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlHMWxkR0U2SUZaU1RVMWxkR0U3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5SaGFXNXpJSHRBYkdsdWF5QldVazFJZFcxaGJtOXBaSDBnYjJZZ2RHaGxJRlpTVFM1Y2JpQWdJQ29nV1c5MUlHTmhiaUJqYjI1MGNtOXNJR1ZoWTJnZ1ltOXVaWE1nZFhOcGJtY2dlMEJzYVc1cklGWlNUVWgxYldGdWIybGtMbWRsZEU1dmNtMWhiR2w2WldSQ2IyNWxUbTlrWlgwZ2IzSWdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtMbWRsZEZKaGQwSnZibVZPYjJSbGZTNWNiaUFnSUNwY2JpQWdJQ29nUUZSUFJFOGdRV1JrSUdFZ2JHbHVheUIwYnlCV1VrMGdjM0JsWTF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUdoMWJXRnViMmxrT2lCV1VrMUlkVzFoYm05cFpEdGNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkR0ZwYm5NZ2UwQnNhVzVySUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeWZTQnZaaUIwYUdVZ1ZsSk5MbHh1SUNBZ0tpQlpiM1VnYldsbmFIUWdkMkZ1ZENCMGJ5QmpiMjUwY205c0lIUm9aWE5sSUdaaFkybGhiQ0JsZUhCeVpYTnphVzl1Y3lCMmFXRWdlMEJzYVc1cklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlMbk5sZEZaaGJIVmxmUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0JsZUhCeVpYTnphVzl1VFdGdVlXZGxjajg2SUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGIyNTBZV2x1Y3lCN1FHeHBibXNnVmxKTlJtbHljM1JRWlhKemIyNTlJRzltSUhSb1pTQldVazB1WEc0Z0lDQXFJRlpTVFVacGNuTjBVR1Z5YzI5dUlHbHpJRzF2YzNSc2VTQjFjMlZrSUdadmNpQnRaWE5vSUdOMWJHeHBibWNnWm05eUlHWnBjbk4wSUhCbGNuTnZiaUIyYVdWM0xseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlHWnBjbk4wVUdWeWMyOXVQem9nVmxKTlJtbHljM1JRWlhKemIyNDdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZiblJoYVc1eklIdEFiR2x1YXlCV1VrMU1iMjlyUVhSOUlHOW1JSFJvWlNCV1VrMHVYRzRnSUNBcUlGbHZkU0J0YVdkb2RDQjNZVzUwSUhSdklIVnpaU0I3UUd4cGJtc2dWbEpOVEc5dmEwRjBMblJoY21kbGRIMGdkRzhnWTI5dWRISnZiQ0IwYUdVZ1pYbGxJR1JwY21WamRHbHZiaUJ2WmlCNWIzVnlJRlpTVFhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtVmhaRzl1YkhrZ2JHOXZhMEYwUHpvZ1ZsSk5URzl2YTBGME8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGNtVmhkR1VnWVNCdVpYY2dWbEpOSUdsdWMzUmhibU5sTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2NHRnlZVzF6SUZ0YlZsSk5VR0Z5WVcxbGRHVnljMTFkSUhSb1lYUWdjbVZ3Y21WelpXNTBjeUJqYjIxd2IyNWxiblJ6SUc5bUlIUm9aU0JXVWsxY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaHdZWEpoYlhNNklGWlNUVU52Y21WUVlYSmhiV1YwWlhKektTQjdYRzRnSUNBZ2RHaHBjeTV6WTJWdVpTQTlJSEJoY21GdGN5NXpZMlZ1WlR0Y2JpQWdJQ0IwYUdsekxtMWxkR0VnUFNCd1lYSmhiWE11YldWMFlUdGNiaUFnSUNCMGFHbHpMbWgxYldGdWIybGtJRDBnY0dGeVlXMXpMbWgxYldGdWIybGtPMXh1SUNBZ0lIUm9hWE11Wlhod2NtVnpjMmx2YmsxaGJtRm5aWElnUFNCd1lYSmhiWE11Wlhod2NtVnpjMmx2YmsxaGJtRm5aWEk3WEc0Z0lDQWdkR2hwY3k1bWFYSnpkRkJsY25OdmJpQTlJSEJoY21GdGN5NW1hWEp6ZEZCbGNuTnZianRjYmlBZ0lDQjBhR2x6TG14dmIydEJkQ0E5SUhCaGNtRnRjeTVzYjI5clFYUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nS2lwWmIzVWdibVZsWkNCMGJ5QmpZV3hzSUhSb2FYTWdiMjRnZVc5MWNpQjFjR1JoZEdVZ2JHOXZjQzRxS2x4dUlDQWdLbHh1SUNBZ0tpQlVhR2x6SUdaMWJtTjBhVzl1SUhWd1pHRjBaWE1nWlhabGNua2dWbEpOSUdOdmJYQnZibVZ1ZEhNdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQmtaV3gwWVNCa1pXeDBZVlJwYldWY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCMWNHUmhkR1VvWkdWc2RHRTZJRzUxYldKbGNpazZJSFp2YVdRZ2UxeHVJQ0FnSUhSb2FYTXVhSFZ0WVc1dmFXUXVkWEJrWVhSbEtDazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NXNiMjlyUVhRcElIdGNiaUFnSUNBZ0lIUm9hWE11Ykc5dmEwRjBMblZ3WkdGMFpTaGtaV3gwWVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11Wlhod2NtVnpjMmx2YmsxaGJtRm5aWElwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVaWGh3Y21WemMybHZiazFoYm1GblpYSXVkWEJrWVhSbEtDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1OVhHNGlMQ0pwYlhCdmNuUWdleUJIVEZSR0xDQkhURlJHVEc5aFpHVnlVR3gxWjJsdUxDQkhURlJHVUdGeWMyVnlJSDBnWm5KdmJTQW5kR2h5WldVdlpYaGhiWEJzWlhNdmFuTnRMMnh2WVdSbGNuTXZSMHhVUmt4dllXUmxjaTVxY3ljN1hHNXBiWEJ2Y25RZ2V5QldVazFEYjNKbFRHOWhaR1Z5VUd4MVoybHVUM0IwYVc5dWN5QjlJR1p5YjIwZ0p5NHZWbEpOUTI5eVpVeHZZV1JsY2xCc2RXZHBiazl3ZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHNnVmxKTlEyOXlaU0I5SUdaeWIyMGdKeTR2VmxKTlEyOXlaU2M3WEc1cGJYQnZjblFnZXlCV1VrMUZlSEJ5WlhOemFXOXVURzloWkdWeVVHeDFaMmx1SUgwZ1puSnZiU0FuTGk5bGVIQnlaWE56YVc5dWN5OVdVazFGZUhCeVpYTnphVzl1VEc5aFpHVnlVR3gxWjJsdUp6dGNibWx0Y0c5eWRDQjdJRlpTVFVacGNuTjBVR1Z5YzI5dVRHOWhaR1Z5VUd4MVoybHVJSDBnWm5KdmJTQW5MaTltYVhKemRGQmxjbk52Ymk5V1VrMUdhWEp6ZEZCbGNuTnZia3h2WVdSbGNsQnNkV2RwYmljN1hHNXBiWEJ2Y25RZ2V5QldVazFJZFcxaGJtOXBaRXh2WVdSbGNsQnNkV2RwYmlCOUlHWnliMjBnSnk0dmFIVnRZVzV2YVdRdlZsSk5TSFZ0WVc1dmFXUk1iMkZrWlhKUWJIVm5hVzRuTzF4dWFXMXdiM0owSUhzZ1ZsSk5UV1YwWVV4dllXUmxjbEJzZFdkcGJpQjlJR1p5YjIwZ0p5NHZiV1YwWVM5V1VrMU5aWFJoVEc5aFpHVnlVR3gxWjJsdUp6dGNibWx0Y0c5eWRDQjdJRlpTVFV4dmIydEJkRXh2WVdSbGNsQnNkV2RwYmlCOUlHWnliMjBnSnk0dmJHOXZhMEYwTDFaU1RVeHZiMnRCZEV4dllXUmxjbEJzZFdkcGJpYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVWgxYldGdWIybGtJSDBnWm5KdmJTQW5MaTlvZFcxaGJtOXBaQ2M3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFUxbGRHRWdmU0JtY205dElDY3VMMjFsZEdFbk8xeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5RMjl5WlV4dllXUmxjbEJzZFdkcGJpQnBiWEJzWlcxbGJuUnpJRWRNVkVaTWIyRmtaWEpRYkhWbmFXNGdlMXh1SUNCd2RXSnNhV01nWjJWMElHNWhiV1VvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0F2THlCWFpTQnphRzkxYkdRZ2RYTmxJSFJvWlNCbGVIUmxibk5wYjI0Z2JtRnRaU0JwYm5OMFpXRmtJR0oxZENCM1pTQm9ZWFpsSUcxMWJIUnBjR3hsSUhCc2RXZHBibk1nWm05eUlHRnVJR1Y0ZEdWdWMybHZiaTR1TGx4dUlDQWdJSEpsZEhWeWJpQW5WbEpOUTE5MmNtMG5PMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJSEJoY25ObGNqb2dSMHhVUmxCaGNuTmxjanRjYmx4dUlDQndkV0pzYVdNZ2NtVmhaRzl1YkhrZ1pYaHdjbVZ6YzJsdmJsQnNkV2RwYmpvZ1ZsSk5SWGh3Y21WemMybHZia3h2WVdSbGNsQnNkV2RwYmp0Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlHWnBjbk4wVUdWeWMyOXVVR3gxWjJsdU9pQldVazFHYVhKemRGQmxjbk52Ymt4dllXUmxjbEJzZFdkcGJqdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJR2gxYldGdWIybGtVR3gxWjJsdU9pQldVazFJZFcxaGJtOXBaRXh2WVdSbGNsQnNkV2RwYmp0Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlHeHZiMnRCZEZCc2RXZHBiam9nVmxKTlRHOXZhMEYwVEc5aFpHVnlVR3gxWjJsdU8xeHVJQ0J3ZFdKc2FXTWdjbVZoWkc5dWJIa2diV1YwWVZCc2RXZHBiam9nVmxKTlRXVjBZVXh2WVdSbGNsQnNkV2RwYmp0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvY0dGeWMyVnlPaUJIVEZSR1VHRnljMlZ5TENCdmNIUnBiMjV6UHpvZ1ZsSk5RMjl5WlV4dllXUmxjbEJzZFdkcGJrOXdkR2x2Ym5NcElIdGNiaUFnSUNCMGFHbHpMbkJoY25ObGNpQTlJSEJoY25ObGNqdGNibHh1SUNBZ0lHTnZibk4wSUdobGJIQmxjbEp2YjNRZ1BTQnZjSFJwYjI1elB5NW9aV3h3WlhKU2IyOTBPMXh1SUNBZ0lHTnZibk4wSUdGMWRHOVZjR1JoZEdWSWRXMWhia0p2Ym1WeklEMGdiM0IwYVc5dWN6OHVZWFYwYjFWd1pHRjBaVWgxYldGdVFtOXVaWE03WEc1Y2JpQWdJQ0IwYUdsekxtVjRjSEpsYzNOcGIyNVFiSFZuYVc0Z1BTQnZjSFJwYjI1elB5NWxlSEJ5WlhOemFXOXVVR3gxWjJsdUlEOC9JRzVsZHlCV1VrMUZlSEJ5WlhOemFXOXVURzloWkdWeVVHeDFaMmx1S0hCaGNuTmxjaWs3WEc0Z0lDQWdkR2hwY3k1bWFYSnpkRkJsY25OdmJsQnNkV2RwYmlBOUlHOXdkR2x2Ym5NL0xtWnBjbk4wVUdWeWMyOXVVR3gxWjJsdUlEOC9JRzVsZHlCV1VrMUdhWEp6ZEZCbGNuTnZia3h2WVdSbGNsQnNkV2RwYmlod1lYSnpaWElwTzF4dUlDQWdJSFJvYVhNdWFIVnRZVzV2YVdSUWJIVm5hVzRnUFZ4dUlDQWdJQ0FnYjNCMGFXOXVjejh1YUhWdFlXNXZhV1JRYkhWbmFXNGdQejhnYm1WM0lGWlNUVWgxYldGdWIybGtURzloWkdWeVVHeDFaMmx1S0hCaGNuTmxjaXdnZXlCb1pXeHdaWEpTYjI5MExDQmhkWFJ2VlhCa1lYUmxTSFZ0WVc1Q2IyNWxjeUI5S1R0Y2JpQWdJQ0IwYUdsekxteHZiMnRCZEZCc2RXZHBiaUE5SUc5d2RHbHZibk0vTG14dmIydEJkRkJzZFdkcGJpQS9QeUJ1WlhjZ1ZsSk5URzl2YTBGMFRHOWhaR1Z5VUd4MVoybHVLSEJoY25ObGNpd2dleUJvWld4d1pYSlNiMjkwSUgwcE8xeHVJQ0FnSUhSb2FYTXViV1YwWVZCc2RXZHBiaUE5SUc5d2RHbHZibk0vTG0xbGRHRlFiSFZuYVc0Z1B6OGdibVYzSUZaU1RVMWxkR0ZNYjJGa1pYSlFiSFZuYVc0b2NHRnljMlZ5S1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCaGMzbHVZeUJoWm5SbGNsSnZiM1FvWjJ4MFpqb2dSMHhVUmlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR0YzWVdsMElIUm9hWE11YldWMFlWQnNkV2RwYmk1aFpuUmxjbEp2YjNRb1oyeDBaaWs3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVvZFcxaGJtOXBaRkJzZFdkcGJpNWhablJsY2xKdmIzUW9aMngwWmlrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bGVIQnlaWE56YVc5dVVHeDFaMmx1TG1GbWRHVnlVbTl2ZENobmJIUm1LVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbXh2YjJ0QmRGQnNkV2RwYmk1aFpuUmxjbEp2YjNRb1oyeDBaaWs3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVtYVhKemRGQmxjbk52YmxCc2RXZHBiaTVoWm5SbGNsSnZiM1FvWjJ4MFppazdYRzVjYmlBZ0lDQmpiMjV6ZENCdFpYUmhJRDBnWjJ4MFppNTFjMlZ5UkdGMFlTNTJjbTFOWlhSaElHRnpJRlpTVFUxbGRHRWdmQ0J1ZFd4c08xeHVJQ0FnSUdOdmJuTjBJR2gxYldGdWIybGtJRDBnWjJ4MFppNTFjMlZ5UkdGMFlTNTJjbTFJZFcxaGJtOXBaQ0JoY3lCV1VrMUlkVzFoYm05cFpDQjhJRzUxYkd3N1hHNWNiaUFnSUNBdkx5QnRaWFJoSUdGdVpDQm9kVzFoYm05cFpDQmhjbVVnY21WeGRXbHlaV1FnZEc4Z1ltVWdZU0JXVWswdVhHNGdJQ0FnTHk4Z1JHOXVKM1FnWTNKbFlYUmxJRlpTVFNCcFppQjBhR1Y1SUdGeVpTQnVkV3hzWEc0Z0lDQWdhV1lnS0cxbGRHRWdKaVlnYUhWdFlXNXZhV1FwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFp5YlVOdmNtVWdQU0J1WlhjZ1ZsSk5RMjl5WlNoN1hHNGdJQ0FnSUNBZ0lITmpaVzVsT2lCbmJIUm1Mbk5qWlc1bExGeHVJQ0FnSUNBZ0lDQmxlSEJ5WlhOemFXOXVUV0Z1WVdkbGNqb2daMngwWmk1MWMyVnlSR0YwWVM1MmNtMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpeGNiaUFnSUNBZ0lDQWdabWx5YzNSUVpYSnpiMjQ2SUdkc2RHWXVkWE5sY2tSaGRHRXVkbkp0Um1seWMzUlFaWEp6YjI0c1hHNGdJQ0FnSUNBZ0lHaDFiV0Z1YjJsa0xGeHVJQ0FnSUNBZ0lDQnNiMjlyUVhRNklHZHNkR1l1ZFhObGNrUmhkR0V1ZG5KdFRHOXZhMEYwTEZ4dUlDQWdJQ0FnSUNCdFpYUmhMRnh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUdkc2RHWXVkWE5sY2tSaGRHRXVkbkp0UTI5eVpTQTlJSFp5YlVOdmNtVTdYRzRnSUNBZ2ZWeHVJQ0I5WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHNpVUU5VFUwbENURVZmVTFCRlExOVdSVkpUU1U5T1V5SXNJbDkyTTBFaUxDSmZkak5DSWl3aVgzRjFZWFJCSWl3aVgzRjFZWFJDSWl3aVZrVkRNMTlRVDFOSlZFbFdSVjlhSWl3aVgyVjFiR1Z5UVNKZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenRCUVVsQk8wRkJRMEU3UVVGRFlTeE5RVUZCTEdGQlFXTXNVMEZCVVN4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGQk8wRkJiME12UXpzN08wRkJSMGM3UVVGRFNDeEpRVUZCTEVsQlFWY3NiVUpCUVcxQ0xFZEJRVUU3UVVGRE5VSXNVVUZCUVN4SlFVRkpMRWxCUVVrc1EwRkJReXhoUVVGaExFdEJRVXNzVDBGQlR5eEZRVUZGTzBGQlEyeERMRmxCUVVFc1QwRkJUeXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRE8wRkJRM1JETEZOQlFVRTdRVUZCVFN4aFFVRkJMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0VzUzBGQlN5eFBRVUZQTEVWQlFVVTdXVUZEZWtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEzQkNMRk5CUVVFN1FVRkJUU3hoUVVGQk8wRkJRMHdzV1VGQlFTeFBRVUZQTEVkQlFVY3NRMEZCUXp0QlFVTmFMRk5CUVVFN1MwRkRSanRCUVVWRU96czdRVUZIUnp0QlFVTklMRWxCUVVFc1NVRkJWeXh2UWtGQmIwSXNSMEZCUVR0QlFVTTNRaXhSUVVGQkxFbEJRVWtzU1VGQlNTeERRVUZETEdOQlFXTXNTMEZCU3l4UFFVRlBMRVZCUVVVN1FVRkRia01zV1VGQlFTeFBRVUZQTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZEZEVNc1UwRkJRVHRCUVVGTkxHRkJRVUVzU1VGQlNTeEpRVUZKTEVOQlFVTXNZMEZCWXl4TFFVRkxMRTlCUVU4c1JVRkJSVHRaUVVNeFF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRjRUlzVTBGQlFUdEJRVUZOTEdGQlFVRTdRVUZEVEN4WlFVRkJMRTlCUVU4c1IwRkJSeXhEUVVGRE8wRkJRMW9zVTBGQlFUdExRVU5HTzBGQlJVUTdPenRCUVVkSE8wRkJRMGdzU1VGQlFTeEpRVUZYTEcxQ1FVRnRRaXhIUVVGQk8wRkJRelZDTEZGQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1lVRkJZU3hMUVVGTExFOUJRVThzUlVGQlJUdEJRVU5zUXl4WlFVRkJMRTlCUVU4c1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVOMFF5eFRRVUZCTzBGQlFVMHNZVUZCUVN4SlFVRkpMRWxCUVVrc1EwRkJReXhoUVVGaExFdEJRVXNzVDBGQlR5eEZRVUZGTzFsQlEzcERMRTlCUVU4c1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU53UWl4VFFVRkJPMEZCUVUwc1lVRkJRVHRCUVVOTUxGbEJRVUVzVDBGQlR5eEhRVUZITEVOQlFVTTdRVUZEV2l4VFFVRkJPMHRCUTBZN1FVRkZSQ3hKUVVGQkxGZEJRVUVzUTBGQldTeGpRVUZ6UWl4RlFVRkJPMEZCUTJoRExGRkJRVUVzUzBGQlN5eEZRVUZGTEVOQlFVTTdRVUY0UlZZN08wRkJSVWM3VVVGRFNTeEpRVUZOTEVOQlFVRXNUVUZCUVN4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVWd1FqczdRVUZGUnp0UlFVTkpMRWxCUVZFc1EwRkJRU3hSUVVGQkxFZEJRVWNzUzBGQlN5eERRVUZETzBGQlJYaENPenRCUVVWSE8xRkJRMGtzU1VGQllTeERRVUZCTEdGQlFVRXNSMEZCT0VJc1RVRkJUU3hEUVVGRE8wRkJSWHBFT3p0QlFVVkhPMUZCUTBrc1NVRkJZeXhEUVVGQkxHTkJRVUVzUjBGQk9FSXNUVUZCVFN4RFFVRkRPMEZCUlRGRU96dEJRVVZITzFGQlEwa3NTVUZCWVN4RFFVRkJMR0ZCUVVFc1IwRkJPRUlzVFVGQlRTeERRVUZETzFGQlJXcEVMRWxCUVUwc1EwRkJRU3hOUVVGQkxFZEJRWGRDTEVWQlFVVXNRMEZCUXp0QlFXbEVka01zVVVGQlFTeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVdsQ0xHTkJRVUVzUlVGQlFTeGpRVUZqTEVWQlFVVXNRMEZCUXp0QlFVTTVReXhSUVVGQkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NZMEZCWXl4RFFVRkRPenRCUVVkeVF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1pVRkJaU3hEUVVGRE96czdRVUZKTlVJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXp0TFFVTjBRanRCUVVWTkxFbEJRVUVzVDBGQlR5eERRVUZETEVsQlFYVkNMRVZCUVVFN1FVRkRjRU1zVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU40UWp0QlFVVkVPenM3UVVGSFJ6dEJRVU5KTEVsQlFVRXNWMEZCVnl4RFFVRkRMRTlCVDJ4Q0xFVkJRVUU3TzBGQlEwTXNVVUZCUVN4SlFVRkpMRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVOc1JpeFpRVUZaTEVsQlFVa3NRMEZCUVN4RlFVRkJMRWRCUVVFc1QwRkJUeXhMUVVGUUxFbEJRVUVzU1VGQlFTeFBRVUZQTEV0QlFWQXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzVDBGQlR5eERRVUZGTEZWQlFWVXNUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4SFFVRkhMRU5CUVVNN1FVRkZNME1zVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU03UzBGREwwUTdRVUZGUkRzN1FVRkZSenRKUVVOSkxHdENRVUZyUWl4SFFVRkJPMEZCUTNaQ0xGRkJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU1zUTBGQlF6dExRVU14UkR0QlFVTkdPenRCUXpsSVJEdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCYjBkQk8wRkJRMDhzVTBGQlV5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RlFVRkZMRlZCUVZVc1JVRkJSU3hEUVVGRExFVkJRVVVzVTBGQlV5eEZRVUZGTzBGQlF6ZEVMRWxCUVVrc1UwRkJVeXhMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNUMEZCVHl4TFFVRkxMRmxCUVZrc1EwRkJReXhIUVVGSExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4VlFVRlZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRk8wRkJRMmhJTEVsQlFVa3NUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVWQlFVVXNWVUZCVlN4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRk8wRkJReTlFTEZGQlFWRXNVMEZCVXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVOdVJ5eFJRVUZSTEZOQlFWTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVOMFJ5eFJRVUZSTEZOQlFWTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNc1JVRkJSVHRCUVVOMFNDeFJRVUZSTEVsQlFVa3NRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4VlFVRlZMRWxCUVVrc1JVRkJSU3hEUVVGRExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTTVSU3hMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU5RTEVOQlFVTTdRVUZuVFVRN1FVRkRkVUlzVDBGQlR5eGxRVUZsTEV0QlFVc3NWVUZCVlN4SFFVRkhMR1ZCUVdVc1IwRkJSeXhWUVVGVkxFdEJRVXNzUlVGQlJTeFZRVUZWTEVWQlFVVXNUMEZCVHl4RlFVRkZPMEZCUTNaSUxFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGREwwSXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzYVVKQlFXbENMRVZCUVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRlZCUVZVc1IwRkJSeXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzSkdPenRCUXpGVVFTeFRRVUZUTEhsQ1FVRjVRaXhEUVVGRExFbEJRVlVzUlVGQlJTeFRRVUZwUWl4RlFVRkZMRWxCUVc5Q0xFVkJRVUU3TzBGQlEzQkdMRWxCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRjNRaXhEUVVGRE8wRkJSV3hFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJhVVJIT3p0SlFVZElMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXl4TFFVRkxMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVWNzVTBGQlV5eERRVUZETEVOQlFVTTdTVUZETTBNc1NVRkJTU3hWUVVGVkxFbEJRVWtzU1VGQlNTeEZRVUZGTzBGQlEzUkNMRkZCUVVFc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eHRSRUZCYlVRc1UwRkJVeXhEUVVGQkxHOURRVUZCTEVOQlFYTkRMRU5CUVVNc1EwRkJRenRCUVVOcVNDeFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1MwRkJRVHRCUVVWRUxFbEJRVUVzVFVGQlRTeFRRVUZUTEVkQlFVY3NWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJRenRKUVVOc1F5eEpRVUZKTEZOQlFWTXNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRja0lzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMRXRCUVVFN08wbEJSMFFzVFVGQlRTeFZRVUZWTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3hEUVVGRExFMUJRVTBzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVNMVF5eEpRVUZKTEZWQlFWVXNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRkRUlzVVVGQlFTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzlFUVVGdlJDeFRRVUZUTEVOQlFVRXNiME5CUVVFc1EwRkJjME1zUTBGQlF5eERRVUZETzBGQlEyeElMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeExRVUZCTzBGQlJVUXNTVUZCUVN4TlFVRk5MR05CUVdNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXpzN1NVRkhjRVFzVFVGQlRTeFZRVUZWTEVkQlFXbENMRVZCUVVVc1EwRkJRenRCUVVOd1F5eEpRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhOUVVGTkxFdEJRVWs3UVVGRGRrSXNVVUZCUVN4SlFVRkpMRlZCUVZVc1EwRkJReXhOUVVGTkxFZEJRVWNzWTBGQll5eEZRVUZGTzFsQlEzUkRMRWxCUVVzc1RVRkJZeXhEUVVGRExFMUJRVTBzUlVGQlJUdEJRVU14UWl4blFrRkJRU3hWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFXOUNMRU5CUVVNc1EwRkJRenRCUVVOMlF5eGhRVUZCTzBGQlEwWXNVMEZCUVR0QlFVTklMRXRCUVVNc1EwRkJReXhEUVVGRE8wRkJSVWdzU1VGQlFTeFBRVUZQTEZWQlFWVXNRMEZCUXp0QlFVTndRaXhEUVVGRE8wRkJSVVE3T3pzN096czdPMEZCVVVjN1FVRkRiVUlzVTBGQlFTdzJRa0ZCTmtJc1EwRkJReXhKUVVGVkxFVkJRVVVzVTBGQmFVSXNSVUZCUVRzN1FVRkRMMFVzVVVGQlFTeE5RVUZOTEVsQlFVa3NSMEZCYlVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdGQlFXRXNRMEZCUXl4TlFVRk5MRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGFFWXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRM3BFTEVOQlFVRXNRMEZCUVR0QlFVRkJMRU5CUVVFN1FVRkZSRHM3T3pzN096czdRVUZSUnp0QlFVTkhMRk5CUVdkQ0xEaENRVUU0UWl4RFFVRkRMRWxCUVZVc1JVRkJRVHM3VVVGRE4wUXNUVUZCVFN4TFFVRkxMRWRCUVhGQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRE1VVXNVVUZCUVN4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQmQwSXNRMEZCUXp0UlFVVTFReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1MwRkJTVHRaUVVNMVFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4NVFrRkJlVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRelZFTEVsQlFVa3NUVUZCVFN4SlFVRkpMRWxCUVVrc1JVRkJSVHRCUVVOc1FpeG5Ra0ZCUVN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTjRRaXhoUVVGQk8wRkJRMGdzVTBGQlF5eERRVUZETEVOQlFVTTdRVUZGU0N4UlFVRkJMRTlCUVU4c1IwRkJSeXhEUVVGRE8wdEJRMW9zUTBGQlFTeERRVUZCTzBGQlFVRTdPMEZETlVoRU96czdPenM3UVVGTlJ6dEJRVU5oTEZOQlFVRXNPRUpCUVRoQ0xFTkJRVU1zVFVGQmEwSXNSVUZCUlN4UlFVRjNRaXhGUVVGQk96dEpRVU42Uml4TlFVRk5MR0ZCUVdFc1IwRkJSeXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVWdVJDeEpRVUZKTEV0QlFVc3NSMEZCYTBJc1NVRkJTU3hEUVVGRE8wbEJSV2hETEVsQlFVa3NZVUZCWVN4SlFVRkpMRWRCUVVjc1JVRkJSVHRCUVVONFFpeFJRVUZCTEV0QlFVc3NSMEZCUnl4RFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUlN4VFFVRlRMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVrc1NVRkJTU3hEUVVGRE8wRkJRemxFTEV0QlFVRTdRVUZCVFN4VFFVRkJPMEZCVjB3c1VVRkJRU3hOUVVGTkxGbEJRVmtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNXVUZCYzBNc1EwRkJRenRSUVVWdVJTeE5RVUZOTEZOQlFWTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlJUZERMRWxCUVVrc1EwRkJRU3hUUVVGVExFdEJRVUVzU1VGQlFTeEpRVUZVTEZOQlFWTXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlZDeFRRVUZUTEVOQlFVVXNTVUZCU1N4TlFVRkxMRmRCUVZjc1JVRkJSVHRCUVVOdVF5eFpRVUZCTEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRM3BDTEZOQlFVRTdRVUZEUml4TFFVRkJPMEZCUlVRc1NVRkJRU3hQUVVGUExFdEJRVXNzUTBGQlF6dEJRVU5tT3p0QlEzUkRRVHRCUVVWaExFMUJRVUVzZFVKQlFYVkNMRWRCUVVjN1FVRkRja01zU1VGQlFTeEZRVUZGTEVWQlFVVXNTVUZCU1R0QlFVTlNMRWxCUVVFc1JVRkJSU3hGUVVGRkxFbEJRVWs3UVVGRFVpeEpRVUZCTEVWQlFVVXNSVUZCUlN4SlFVRkpPMEZCUTFJc1NVRkJRU3hGUVVGRkxFVkJRVVVzU1VGQlNUdEJRVU5TTEVsQlFVRXNSVUZCUlN4RlFVRkZMRWxCUVVrN1FVRkRVaXhKUVVGQkxFdEJRVXNzUlVGQlJTeFBRVUZQTzBGQlEyUXNTVUZCUVN4TFFVRkxMRVZCUVVVc1QwRkJUenRCUVVOa0xFbEJRVUVzUzBGQlN5eEZRVUZGTEU5QlFVODdRVUZEWkN4SlFVRkJMRWRCUVVjc1JVRkJSU3hMUVVGTE8wRkJRMVlzU1VGQlFTeFBRVUZQTEVWQlFVVXNVMEZCVXp0QlFVTnNRaXhKUVVGQkxFMUJRVTBzUlVGQlJTeFJRVUZSTzBGQlEyaENMRWxCUVVFc1UwRkJVeXhGUVVGRkxGZEJRVmM3UVVGRGRFSXNTVUZCUVN4UlFVRlJMRVZCUVVVc1ZVRkJWVHRCUVVOd1FpeEpRVUZCTEZGQlFWRXNSVUZCUlN4VlFVRlZPMEZCUTNCQ0xFbEJRVUVzVTBGQlV5eEZRVUZGTEZkQlFWYzdRVUZEZEVJc1NVRkJRU3hUUVVGVExFVkJRVVVzVjBGQlZ6dEJRVU4wUWl4SlFVRkJMRlZCUVZVc1JVRkJSU3haUVVGWk8wRkJRM2hDTEVsQlFVRXNUMEZCVHl4RlFVRkZMRk5CUVZNN096dEJRM0JDY0VJN096czdRVUZKUnp0QlFVTkhMRk5CUVZVc1VVRkJVU3hEUVVGRExFdEJRV0VzUlVGQlFUdEJRVU53UXl4SlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTTNRenM3VFVOSVlTeHZRa0ZCYjBJc1EwRkJRVHRCUVhGQ0wwSXNTVUZCUVN4SlFVRlhMRmRCUVZjc1IwRkJRVHRCUVVOd1FpeFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dExRVU51UXp0QlFVMUVMRWxCUVVFc1NVRkJWeXhoUVVGaExFZEJRVUU3VVVGRGRFSXNUMEZCVHl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1MwRkRMME03UVVGRlJEczdRVUZGUnp0QlFVTklMRWxCUVVFc1NVRkJWeXh0UWtGQmJVSXNSMEZCUVR0UlFVTTFRaXhOUVVGTkxFMUJRVTBzUjBGQk1FUXNSVUZCUlN4RFFVRkRPMEZCUlhwRkxGRkJRVUVzVFVGQlRTeGhRVUZoTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVZNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRk9VVXNVVUZCUVN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeFZRVUZWTEVOQlFVTXNTMEZCU1R0QlFVTnFSU3haUVVGQkxFbEJRVWtzWVVGQllTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSVHRCUVVNelFpeG5Ra0ZCUVN4TlFVRk5MRU5CUVVNc1NVRkJLMElzUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXp0QlFVTjBSQ3hoUVVGQk8wRkJRMGdzVTBGQlF5eERRVUZETEVOQlFVTTdRVUZGU0N4UlFVRkJMRTlCUVU4c1RVRkJUU3hEUVVGRE8wdEJRMlk3UVVGRlJEczdRVUZGUnp0QlFVTklMRWxCUVVFc1NVRkJWeXh0UWtGQmJVSXNSMEZCUVR0UlFVTTFRaXhOUVVGTkxFMUJRVTBzUjBGQmMwTXNSVUZCUlN4RFFVRkRPMEZCUlhKRUxGRkJRVUVzVFVGQlRTeGhRVUZoTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVZNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRk9VVXNVVUZCUVN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeFZRVUZWTEVOQlFVTXNTMEZCU1R0QlFVTnFSU3haUVVGQkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRk8wRkJRelZDTEdkQ1FVRkJMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTTdRVUZETTBJc1lVRkJRVHRCUVVOSUxGTkJRVU1zUTBGQlF5eERRVUZETzBGQlJVZ3NVVUZCUVN4UFFVRlBMRTFCUVUwc1EwRkJRenRMUVVObU8wRkJSVVE3TzBGQlJVYzdRVUZEU0N4SlFVRkJMRmRCUVVFc1IwRkJRVHRCUVhKRlFUczdRVUZGUnp0UlFVTkpMRWxCUVc5Q0xFTkJRVUVzYjBKQlFVRXNSMEZCUnl4RFFVRkRMRTlCUVU4c1JVRkJSU3hYUVVGWExFVkJRVVVzV1VGQldTeERRVUZETEVOQlFVTTdRVUZGYmtVN08wRkJSVWM3VVVGRFNTeEpRVUZ4UWl4RFFVRkJMSEZDUVVGQkxFZEJRVWNzUTBGQlF5eFZRVUZWTEVWQlFVVXNWMEZCVnl4RlFVRkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dEJRVVV2UlRzN1FVRkZSenRCUVVOSkxGRkJRVUVzU1VGQlFTeERRVUZCTEc5Q1FVRnZRaXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBGQlJUZEVPenM3UVVGSFJ6dFJRVU5MTEVsQlFWa3NRMEZCUVN4WlFVRkJMRWRCUVc5Q0xFVkJRVVVzUTBGQlF6dEJRVXN6UXpzN1FVRkZSenRSUVVOTExFbEJRV01zUTBGQlFTeGpRVUZCTEVkQlFYTkRMRVZCUVVVc1EwRkJRenM3UzBFMFF6bEVPMEZCUlVRN096czdRVUZKUnp0QlFVTkpMRWxCUVVFc1NVRkJTU3hEUVVGRExFMUJRVFJDTEVWQlFVRTdPMUZCUlhSRExFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03UVVGREwwTXNVVUZCUVN4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVlVGQlZTeExRVUZKTzBGQlEycERMRmxCUVVFc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRM2hETEZOQlFVTXNRMEZCUXl4RFFVRkRPenRSUVVkSUxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hMUVVGSk8wRkJRM3BETEZsQlFVRXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUTNSRExGTkJRVU1zUTBGQlF5eERRVUZET3p0UlFVZElMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNSMEZCUnl4TlFVRk5MRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1VVRkRha1VzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhIUVVGSExFMUJRVTBzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFJRVU51UlN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVkQlFVY3NUVUZCVFN4RFFVRkRMRzlDUVVGdlFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMEZCUldwRkxGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWp0QlFVVkVPenM3UVVGSFJ6dEpRVU5KTEV0QlFVc3NSMEZCUVR0UlFVTldMRTlCUVU4c1NVRkJTU3h2UWtGQmIwSXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU01UXp0QlFVVkVPenM3T3p0QlFVdEhPMEZCUTBrc1NVRkJRU3hoUVVGaExFTkJRVU1zU1VGQmMwTXNSVUZCUVRzN1VVRkRla1FzVDBGQlR5eERRVUZCTEVWQlFVRXNSMEZCUVN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZKTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXp0TFFVTXhRenRCUVVWRU96czdPMEZCU1VjN1FVRkRTU3hKUVVGQkxHdENRVUZyUWl4RFFVRkRMRlZCUVhsQ0xFVkJRVUU3UVVGRGFrUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTnVReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZWQlFWVXNRMEZCUXl4alFVRmpMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU03UzBGRE4wUTdRVUZGUkRzN096dEJRVWxITzBGQlEwa3NTVUZCUVN4dlFrRkJiMElzUTBGQlF5eFZRVUY1UWl4RlFVRkJPMUZCUTI1RUxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlEzQkVMRkZCUVVFc1NVRkJTU3hMUVVGTExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVTdRVUZEYUVJc1dVRkJRU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEcxRlFVRnRSU3hEUVVGRExFTkJRVU03UVVGRGJrWXNVMEZCUVR0UlFVVkVMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzB0QlEzWkVPMEZCUlVRN096czdPMEZCUzBjN1FVRkRTU3hKUVVGQkxGRkJRVkVzUTBGQlF5eEpRVUZ6UXl4RlFVRkJPenRSUVVOd1JDeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6VkRMRTlCUVU4c1EwRkJRU3hGUVVGQkxFZEJRVUVzVlVGQlZTeExRVUZCTEVsQlFVRXNTVUZCVml4VlFVRlZMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFWWXNWVUZCVlN4RFFVRkZMRTFCUVUwc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU03UzBGRGJrTTdRVUZGUkRzN096czdRVUZMUnp0SlFVTkpMRkZCUVZFc1EwRkJReXhKUVVGelF5eEZRVUZGTEUxQlFXTXNSVUZCUVR0UlFVTndSU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRelZETEZGQlFVRXNTVUZCU1N4VlFVRlZMRVZCUVVVN1FVRkRaQ3haUVVGQkxGVkJRVlVzUTBGQlF5eE5RVUZOTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRM1JETEZOQlFVRTdTMEZEUmp0QlFVVkVPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJlVUpITzBGQlEwa3NTVUZCUVN4elFrRkJjMElzUTBGQlF5eEpRVUZ6UXl4RlFVRkJPMUZCUTJ4RkxFMUJRVTBzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE5VTXNVVUZCUVN4UFFVRlBMRlZCUVZVc1IwRkJSeXhEUVVGSExFVkJRVUVzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCVXl4UFFVRkJMRU5CUVVFc1IwRkJSeXhKUVVGSkxFTkJRVU03UzBGRGVFUTdRVUZGUkRzN1FVRkZSenRKUVVOSkxFMUJRVTBzUjBGQlFUczdRVUZGV0N4UlFVRkJMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NTVUZCU1N4RFFVRkRMREpDUVVFeVFpeEZRVUZGTEVOQlFVTTdPMUZCUnpkRUxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hMUVVGSk8xbEJRM1pETEZWQlFWVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzBGQlEyeERMRk5CUVVNc1EwRkJReXhEUVVGRE96dFJRVWRJTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVlVGQlZTeExRVUZKTzFsQlEzWkRMRWxCUVVrc1ZVRkJWU3hIUVVGSExFZEJRVWNzUTBGQlF6dEJRVU55UWl4WlFVRkJMRTFCUVUwc1NVRkJTU3hIUVVGSExGVkJRVlVzUTBGQlF5eGpRVUZqTEVOQlFVTTdXVUZGZGtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMEZCUTJ4RUxHZENRVUZCTEZWQlFWVXNTVUZCU1N4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZEZGtNc1lVRkJRVHRaUVVWRUxFbEJRVWtzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHRCUVVOdVJDeG5Ra0ZCUVN4VlFVRlZMRWxCUVVrc2FVSkJRV2xDTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTNoRExHRkJRVUU3V1VGRlJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3UVVGRGJFUXNaMEpCUVVFc1ZVRkJWU3hKUVVGSkxHbENRVUZwUWl4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVOMlF5eGhRVUZCTzBGQlJVUXNXVUZCUVN4VlFVRlZMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjZReXhUUVVGRExFTkJRVU1zUTBGQlF6dExRVU5LTzBGQlJVUTdPMEZCUlVjN1NVRkRTeXd5UWtGQk1rSXNSMEZCUVR0UlFVdHFReXhKUVVGSkxFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlEycENMRWxCUVVrc1MwRkJTeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVVZvUWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZWQlFWVXNTMEZCU1R0QlFVTjJReXhaUVVGQkxFdEJRVXNzU1VGQlNTeFZRVUZWTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU03UVVGRGVFTXNXVUZCUVN4TlFVRk5MRWxCUVVrc1ZVRkJWU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMEZCUXpGRExGbEJRVUVzUzBGQlN5eEpRVUZKTEZWQlFWVXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF6dEJRVU14UXl4VFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU0zUWl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRMMElzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlJUZENMRkZCUVVFc1QwRkJUeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNN1MwRkRha003UVVGRFJqczdRVU5zVVVRN1FVRkZZU3hOUVVGQkxEaENRVUU0UWl4SFFVRkhPMEZCUXpWRExFbEJRVUVzUzBGQlN5eEZRVUZGTEU5QlFVODdRVUZEWkN4SlFVRkJMR0ZCUVdFc1JVRkJSU3hsUVVGbE8wRkJRemxDTEVsQlFVRXNWVUZCVlN4RlFVRkZMRmxCUVZrN1FVRkRlRUlzU1VGQlFTeFhRVUZYTEVWQlFVVXNZVUZCWVR0QlFVTXhRaXhKUVVGQkxGRkJRVkVzUlVGQlJTeFZRVUZWTzBGQlEzQkNMRWxCUVVFc1dVRkJXU3hGUVVGRkxHTkJRV003UlVGRGJrSTdRVUZMU2l4TlFVRk5MRFJDUVVFMFFpeEhRVUZyUlR0SlFVTjZSeXhOUVVGTkxFVkJRVVVzT0VKQlFUaENMRU5CUVVNc1MwRkJTenRKUVVNMVF5eGpRVUZqTEVWQlFVVXNPRUpCUVRoQ0xFTkJRVU1zWVVGQllUdEpRVU0xUkN4WFFVRlhMRVZCUVVVc09FSkJRVGhDTEVOQlFVTXNWVUZCVlR0SlFVTjBSQ3hUUVVGVExFVkJRVVVzT0VKQlFUaENMRU5CUVVNc1VVRkJVVHRKUVVOc1JDeGhRVUZoTEVWQlFVVXNPRUpCUVRoQ0xFTkJRVU1zV1VGQldUdERRVU16UkRzN1FVTm9Ra1FzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03UVVGdFFtcERPenRCUVVWSE8wMUJRMVVzT0VKQlFUaENMRU5CUVVFN1NVRnpSSHBETEZkQlFXMUNMRU5CUVVFc1JVRkRha0lzVVVGQlVTeEZRVU5TTEVsQlFVa3NSVUZEU2l4WFFVRlhMRVZCUTFnc1YwRkJWeXhIUVhGQ1dpeEZRVUZCTzBGQlEwTXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF6dEJRVU42UWl4UlFVRkJMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETzBGQlEycENMRkZCUVVFc1NVRkJTU3hEUVVGRExGZEJRVmNzUjBGQlJ5eFhRVUZYTEVOQlFVTTdVVUZETDBJc1NVRkJTU3hEUVVGRExGZEJRVmNzUjBGQlJ5eFhRVUZYTEV0QlFVRXNTVUZCUVN4SlFVRllMRmRCUVZjc1MwRkJXQ3hMUVVGQkxFTkJRVUVzUjBGQlFTeFhRVUZYTEVkQlFVa3NSMEZCUnl4RFFVRkRPenRCUVVkMFF5eFJRVUZCTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMEZCUTNwRExGRkJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZEZWtNc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJRenRMUVVOb1F6dEJRVVZOTEVsQlFVRXNWMEZCVnl4RFFVRkRMRTFCUVdNc1JVRkJRVHRSUVVNdlFpeE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZGY2tNc1NVRkJTU3hMUVVGTExFbEJRVWtzU1VGQlNTeEZRVUZGTzBGQlEycENMRmxCUVVFc1RVRkJUU3hGUVVGRkxGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkZNME1zVFVGQlRTeE5RVUZOTEVkQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVdkQ0xFTkJRVU1zV1VGQldTeERRVUZuUWl4RFFVRkRPMWxCUTI1RkxFbEJRVWtzVFVGQlRTeEpRVUZKTEZOQlFWTXNSVUZCUlR0QlFVTjJRaXhuUWtGQlFTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE5VUXNZVUZCUVR0QlFVTkdMRk5CUVVFN1VVRkZSQ3hKUVVGSkxFdEJRVXNzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYWtJc1dVRkJRU3hOUVVGTkxFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJRenRaUVVVelF5eE5RVUZOTEUxQlFVMHNSMEZCU1N4SlFVRkpMRU5CUVVNc1VVRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFWY3NRMEZCUXp0WlFVTTVSQ3hKUVVGSkxFMUJRVTBzU1VGQlNTeFRRVUZUTEVWQlFVVTdaMEpCUTNKQ0xFbEJRVWtzUTBGQlF5eFJRVUZuUWl4RFFVRkRMRmxCUVZrc1EwRkJXU3hKUVVGSkxGVkJRVlVzUjBGQlJ5eE5RVUZOTEVOQlFVTTdRVUZEZWtVc1lVRkJRVHRCUVVOR0xGTkJRVUU3UzBGRFJqdEpRVVZOTEd0Q1FVRnJRaXhIUVVGQk8xRkJRM1pDTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVVnlReXhKUVVGSkxFdEJRVXNzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYWtJc1dVRkJRU3hOUVVGTkxFVkJRVVVzV1VGQldTeEZRVUZGTEZsQlFWa3NSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJRenRaUVVVM1F5eE5RVUZOTEUxQlFVMHNSMEZCU1N4SlFVRkpMRU5CUVVNc1VVRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFXZENMRU5CUVVNN1dVRkRia1VzU1VGQlNTeE5RVUZOTEVsQlFVa3NVMEZCVXl4RlFVRkZPMEZCUTNaQ0xHZENRVUZCTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03UVVGRE0wSXNZVUZCUVR0QlFVTkdMRk5CUVVFN1VVRkZSQ3hKUVVGSkxFdEJRVXNzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYWtJc1dVRkJRU3hOUVVGTkxFVkJRVVVzV1VGQldTeEZRVUZGTEZsQlFWa3NSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJRenRaUVVVM1F5eE5RVUZOTEUxQlFVMHNSMEZCU1N4SlFVRkpMRU5CUVVNc1VVRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFWY3NRMEZCUXp0WlFVTTVSQ3hKUVVGSkxFMUJRVTBzU1VGQlNTeFRRVUZUTEVWQlFVVTdRVUZEY2tJc1owSkJRVUVzU1VGQlNTeERRVUZETEZGQlFXZENMRU5CUVVNc1dVRkJXU3hEUVVGWkxFZEJRVWNzV1VGQldTeERRVUZETzBGQlEycEZMR0ZCUVVFN1FVRkRSaXhUUVVGQk8wdEJRMFk3U1VGRlR5eHRRa0ZCYlVJc1IwRkJRVHM3VVVGRGVrSXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUlRkRExGRkJRVUVzVFVGQlRTeGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTTdRVUZEYmtRc1VVRkJRU3hOUVVGTkxGbEJRVmtzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hsUVVGbExHRkJRV1lzWlVGQlpTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGbUxHVkJRV1VzUTBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhEUVVGRExFTkJRVU1zVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlNTeEpRVUZKTEVOQlFVTTdVVUZGTVVRc1NVRkJTU3haUVVGWkxFbEJRVWtzU1VGQlNTeEZRVUZGTzBGQlEzaENMRmxCUVVFc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGRFZpeERRVUZCTEcxRVFVRkJMRVZCUTBVc1RVRkJRU3hSUVVGUkxFTkJRVU1zU1VGQlNTeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZKTEZkQlEyNUNMRU5CUVVFc1YwRkJRU3hGUVVGakxFbEJRVWtzUTBGQlFTd3JRMEZCUVN4RFFVRnBSQ3hEUVVOd1JTeERRVUZETzBGQlJVWXNXVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOaUxGTkJRVUU3UVVGRlJDeFJRVUZCTEUxQlFVMHNUVUZCVFN4SFFVRkpMRkZCUVdkQ0xFTkJRVU1zV1VGQldTeERRVUZuUWl4RFFVRkRPMEZCUlRsRUxGRkJRVUVzVFVGQlRTeFpRVUZaTEVkQlFVY3NUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE96dEJRVWR3UXl4UlFVRkJMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEYUVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RlFVTTVRaXhYUVVGWExFTkJRVU1zUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRVZCUXpsQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkRMMElzUTBGQlF6dEJRVVZHTEZGQlFVRXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVOQlFVTTdTMEZEYmtRN1NVRkZUeXh0UWtGQmJVSXNSMEZCUVRzN1VVRkRla0lzVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRVZCUVVVc1YwRkJWeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETzBGQlJUZERMRkZCUVVFc1RVRkJUU3hsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03UVVGRGJrUXNVVUZCUVN4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4bFFVRmxMR0ZCUVdZc1pVRkJaU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRm1MR1ZCUVdVc1EwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJTU3hKUVVGSkxFTkJRVU03UVVGRk1VUXNVVUZCUVN4SlFVRkpMRmxCUVZrc1NVRkJTU3hKUVVGSkxFbEJRVWtzVjBGQlZ5eExRVUZMTEVkQlFVY3NSVUZCUlR0QlFVTXZReXhaUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlExWXNRMEZCUVN4dFJFRkJRU3hGUVVORkxFMUJRVUVzVVVGQlVTeERRVUZETEVsQlFVa3NUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCU1N4WFFVTnVRaXhEUVVGQkxGZEJRVUVzUlVGQll5eEpRVUZKTEVOQlFVRXNjVVJCUVVFc1EwRkJkVVFzUTBGRE1VVXNRMEZCUXp0QlFVVkdMRmxCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeFRRVUZCTzFGQlJVUXNTVUZCU1N4WlFVRlpMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRM2hDTEZsQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhUUVVGQk8wRkJSVVFzVVVGQlFTeE5RVUZOTEZsQlFWa3NSMEZCU1N4UlFVRm5RaXhEUVVGRExGbEJRVmtzUTBGQlZ5eERRVUZETzBGQlJTOUVMRkZCUVVFc1RVRkJUU3hWUVVGVkxFZEJRVWNzVjBGQlZ5eEhRVUZITEZsQlFWa3NRMEZCUXp0QlFVVTVReXhSUVVGQkxFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRlZCUVZVc1JVRkJSU3hEUVVGRE8wdEJRMjVFTzBsQlJVOHNiVUpCUVcxQ0xFZEJRVUU3TzBGQlIzcENMRkZCUVVFc1VVRkRSU3hEUVVGQkxFVkJRVUVzUjBGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExEaENRVUU0UWl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhoUVVGaExFTkJRVU1zUzBGQlNUdFpRVU14Uml4UFFVRlJMRWxCUVVrc1EwRkJReXhSUVVGblFpeERRVUZETEdGQlFXRXNRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJRenRCUVVONFJDeFRRVUZETEVOQlFVTXNUVUZCUnl4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJRU3hEUVVGRExFTkJRVU1zVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVWQlEyWTdTMEZEU0RzN1FVRjJUVVE3T3pzN1FVRkpSenRCUVVOSU8wRkJRMEU3UVVGRFpTdzRRa0ZCUVN4RFFVRkJMRzFDUVVGdFFpeEhRVVU1UWp0QlFVTkdMRWxCUVVFc2MwSkJRWE5DTEVWQlFVVTdRVUZEZEVJc1VVRkJRU3hMUVVGTExFVkJRVVVzUTBGQlF5eFBRVUZQTEVWQlFVVXNVMEZCVXl4RFFVRkRPMEZCUXpOQ0xGRkJRVUVzWVVGQllTeEZRVUZGTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJRenRCUVVOc1F5eExRVUZCTzBGQlEwUXNTVUZCUVN4dFFrRkJiVUlzUlVGQlJUdEJRVU51UWl4UlFVRkJMRXRCUVVzc1JVRkJSU3hEUVVGRExFOUJRVThzUlVGQlJTeFRRVUZUTEVOQlFVTTdRVUZETlVJc1MwRkJRVHRCUVVORUxFbEJRVUVzWlVGQlpTeEZRVUZGTzBGQlEyWXNVVUZCUVN4TFFVRkxMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVVVzVTBGQlV5eERRVUZETzBGQlF6TkNMRkZCUVVFc1lVRkJZU3hGUVVGRkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXp0QlFVTnFReXhSUVVGQkxGbEJRVmtzUlVGQlJTeERRVUZETEc5Q1FVRnZRaXhGUVVGRkxFbEJRVWtzUTBGQlF6dEJRVU14UXl4UlFVRkJMRmRCUVZjc1JVRkJSU3hEUVVGRExHTkJRV01zUlVGQlJTeEpRVUZKTEVOQlFVTTdRVUZEYmtNc1VVRkJRU3hSUVVGUkxFVkJRVVVzUTBGQlF5d3dRa0ZCTUVJc1JVRkJSU3hKUVVGSkxFTkJRVU03UVVGRE5VTXNVVUZCUVN4VlFVRlZMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4SlFVRkpMRU5CUVVNN1FVRkRka01zUzBGQlFUdERRVU5HT3p0QlEycEVTRHM3UVVGRlJ6dE5RVU5WTERSQ1FVRTBRaXhEUVVGQk8wRkJaMEoyUXl4SlFVRkJMRmRCUVVFc1EwRkJiVUlzUlVGRGFrSXNWVUZCVlN4RlFVTldMRXRCUVVzc1JVRkRUQ3hOUVVGTkxFZEJaMEpRTEVWQlFVRTdRVUZEUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzVlVGQlZTeERRVUZETzBGQlF6ZENMRkZCUVVFc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZEYmtJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0TFFVTjBRanRCUVVWTkxFbEJRVUVzVjBGQlZ5eERRVUZETEUxQlFXTXNSVUZCUVR0UlFVTXZRaXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTVHM3UVVGREwwSXNXVUZCUVN4SlFVRkpMRU5CUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGNFUXNaMEpCUVVFc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRCUVVOb1JTeGhRVUZCTzBGQlEwZ3NVMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRTanRKUVVWTkxHdENRVUZyUWl4SFFVRkJPMUZCUTNaQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1NVRkJTU3hMUVVGSk96dEJRVU12UWl4WlFVRkJMRWxCUVVrc1EwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGSkxFbEJRVWtzUlVGQlJUdG5Ra0ZEY0VRc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZET1VNc1lVRkJRVHRCUVVOSUxGTkJRVU1zUTBGQlF5eERRVUZETzB0QlEwbzdRVUZEUmpzN1FVTXpSRVFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRmFFTTdPMEZCUlVjN1RVRkRWU3hwUTBGQmFVTXNRMEZCUVR0QlFXdEVOVU1zU1VGQlFTeFhRVUZCTEVOQlFXMUNMRVZCUTJwQ0xGRkJRVkVzUlVGRFVpeExRVUZMTEVWQlEwd3NUVUZCVFN4SFFXZENVQ3hGUVVGQk96dEJRVU5ETEZGQlFVRXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhSUVVGUkxFTkJRVU03UVVGRGVrSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dEJRVU51UWl4UlFVRkJMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzBGQlJYSkNMRkZCUVVFc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhwUTBGQmFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZETlVZc1EwRkJReXhEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZKTzBGQlEyeENMRmxCUVVFc1QwRkJVU3hSUVVGblFpeERRVUZETEdGQlFXRXNRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJRenRCUVVOdVJDeFRRVUZETEVOQlEwWXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZRTEVsQlFVa3NZVUZCWVN4SlFVRkpMRWxCUVVrc1JVRkJSVHRCUVVONlFpeFpRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUTFZc1EwRkJRU3h6UkVGQlFTeEZRVU5GTEVOQlFVRXNSVUZCUVN4SFFVRkJMRkZCUVZFc1EwRkJReXhKUVVGSkxFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzVjBGRGJrSXNRMEZCY1VNc2JVTkJRVUVzUTBGQlFTeERRVU4wUXl4RFFVRkRPMEZCUlVZc1dVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVTjJRaXhUUVVGQk8wRkJRVTBzWVVGQlFUdEJRVU5NTEZsQlFVRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhGUVVGRkxFTkJRVU03UVVGRmRFSXNXVUZCUVN4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zV1VGQldTeExRVUZKT3p0blFrRkRja01zVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVVc1VVRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFTdENMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTTdaMEpCUTNoR0xFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdRVUZEV2l4dlFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdsQ1FVRkJPMEZCUlVFc1owSkJRVUVzVVVGQlowSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU03WjBKQlJURkRMRTFCUVUwc1lVRkJZU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1owSkJRemRETEUxQlFVMHNXVUZCV1N4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdaMEpCUXpWRExFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdaMEpCUTNSRUxFMUJRVTBzVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdRVUZGYmtRc1owSkJRVUVzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRjRUlzYjBKQlFVRXNTVUZCU1N4RlFVRkZMRmxCUVZrN2IwSkJRMnhDTEdGQlFXRTdiMEpCUTJJc1YwRkJWenR2UWtGRFdDeFpRVUZaTzI5Q1FVTmFMRlZCUVZVN1FVRkRXQ3hwUWtGQlFTeERRVUZETEVOQlFVTTdRVUZEVEN4aFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xGTkJRVUU3UzBGRFJqdEJRVVZOTEVsQlFVRXNWMEZCVnl4RFFVRkRMRTFCUVdNc1JVRkJRVHRSUVVNdlFpeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExGRkJRVkVzUzBGQlNUdFpRVU53UXl4TlFVRk5MRTFCUVUwc1IwRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlowSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGclFpeERRVUZETzFsQlEzUkZMRWxCUVVrc1RVRkJUU3hMUVVGTExGTkJRVk1zUlVGQlJUdG5Ra0ZEZUVJc1QwRkJUenRCUVVOU0xHRkJRVUU3UVVGRlJDeFpRVUZCTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNwRkxGbEJRVUVzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETVVVc1UwRkJReXhEUVVGRExFTkJRVU03UzBGRFNqdEpRVVZOTEd0Q1FVRnJRaXhIUVVGQk8xRkJRM1pDTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVVVGQlVTeExRVUZKTzFsQlEzQkRMRTFCUVUwc1RVRkJUU3hIUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZuUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRV3RDTEVOQlFVTTdXVUZEZEVVc1NVRkJTU3hOUVVGTkxFdEJRVXNzVTBGQlV5eEZRVUZGTzJkQ1FVTjRRaXhQUVVGUE8wRkJRMUlzWVVGQlFUdFpRVVZFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0WlFVTXpReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03UVVGRE5VTXNVMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRTanM3UVVGNFNXTXNhVU5CUVVFc1EwRkJRU3hwUWtGQmFVSXNSMEZCTUVNN1FVRkRlRVVzU1VGQlFTeHpRa0ZCYzBJc1JVRkJSVHRSUVVOMFFpeExRVUZMTzFGQlEwd3NZVUZCWVR0UlFVTmlMRk5CUVZNN1VVRkRWQ3hYUVVGWE8xRkJRMWdzYVVKQlFXbENPMUZCUTJwQ0xHTkJRV003VVVGRFpDeGpRVUZqTzFGQlEyUXNWVUZCVlR0QlFVTllMRXRCUVVFN1FVRkRSQ3hKUVVGQkxHMUNRVUZ0UWl4RlFVRkZMRU5CUVVNc1MwRkJTeXhGUVVGRkxHRkJRV0VzUlVGQlJTeFZRVUZWTEVOQlFVTTdRVUZEZGtRc1NVRkJRU3hsUVVGbExFVkJRVVU3VVVGRFppeExRVUZMTzFGQlEwd3NWMEZCVnp0UlFVTllMR0ZCUVdFN1VVRkRZaXh6UWtGQmMwSTdVVUZEZEVJc2IwSkJRVzlDTzFGQlEzQkNMRFpDUVVFMlFqdFJRVU0zUWl4M1FrRkJkMEk3UVVGRGVrSXNTMEZCUVR0RFFVTkdPenRCUTJaSU96dEJRVVZITzBGQlEwZ3NUVUZCVFVFc2QwSkJRWE5DTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVTFSRHM3UVVGRlJ6dE5RVU5WTEhsQ1FVRjVRaXhEUVVGQk8wRkJlVUp3UXl4SlFVRkJMRWxCUVZjc1NVRkJTU3hIUVVGQk96dEJRVVZpTEZGQlFVRXNUMEZCVHl3eVFrRkJNa0lzUTBGQlF6dExRVU53UXp0QlFVVkVMRWxCUVVFc1YwRkJRU3hEUVVGdFFpeE5RVUZyUWl4RlFVRkJPMEZCUTI1RExGRkJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNN1MwRkRkRUk3UVVGRldTeEpRVUZCTEZOQlFWTXNRMEZCUXl4SlFVRlZMRVZCUVVFN08wRkJReTlDTEZsQlFVRXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVMEZETDBRc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGQlFUdEJRVVZFT3pzN08wRkJTVWM3UVVGRFZ5eEpRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRlZMRVZCUVVFN08xbEJRemxDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTTFReXhaUVVGQkxFbEJRVWtzVVVGQlVTeEZRVUZGTzBGQlExb3NaMEpCUVVFc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGFrSXNZVUZCUVR0WlFVVkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNMVF5eFpRVUZCTEVsQlFVa3NVVUZCVVN4RlFVRkZPMEZCUTFvc1owSkJRVUVzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYWtJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdVMEZEWWl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVGQk8wRkJSV0VzU1VGQlFTeFRRVUZUTEVOQlFVTXNTVUZCVlN4RlFVRkJPenM3UVVGRGFFTXNXVUZCUVN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFYZENMRU5CUVVNN08wRkJSMnhFTEZsQlFVRXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4TlFVRkZMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOc1JTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZPMEZCUTJRc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMWxCUlVRc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eFZRVUZWTEVOQlFXOURMRU5CUVVNN1dVRkRia1lzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlR0QlFVTmtMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVMRmxCUVVFc1RVRkJUU3hYUVVGWExFZEJRVWNzVTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXp0QlFVTXhReXhaUVVGQkxFbEJRVWtzUTBGQlEwRXNkMEpCUVhOQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkZPMEZCUXpWRExHZENRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc05FUkJRVFJFTEZkQlFWY3NRMEZCUVN4RFFVRkJMRU5CUVVjc1EwRkJReXhEUVVGRE8wRkJRM3BHTEdkQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMklzWVVGQlFUdEJRVVZFTEZsQlFVRXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RFFVRkRPMWxCUTJoRUxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSVHRCUVVOMFFpeG5Ra0ZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOaUxHRkJRVUU3TzBGQlIwUXNXVUZCUVN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlV5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVSU3haUVVGQkxFMUJRVTBzZFVKQlFYVkNMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRV3RETEVOQlFVTTdRVUZGTVVVc1dVRkJRU3hKUVVGSkxHbENRVUZwUWl4RFFVRkRMRTFCUVUwc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGNFTXNaMEpCUVVFc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4TFFVRkpPMjlDUVVNMVJTeEpRVUZKTEdkQ1FVRm5RaXhKUVVGSkxFbEJRVWtzUlVGQlJUdDNRa0ZETlVJc1QwRkJUenRCUVVOU0xIRkNRVUZCTzBGQlJVUXNiMEpCUVVFc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1FVRkROVUlzZDBKQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXh0UkVGQmJVUXNTVUZCU1N4RFFVRkJMRzFEUVVGQkxFTkJRWEZETEVOQlFVTXNRMEZCUXp0M1FrRkRNMGNzVDBGQlR6dEJRVU5TTEhGQ1FVRkJPMEZCUlVRc2IwSkJRVUVzZFVKQlFYVkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8wRkJRM1JFTEdsQ1FVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xHRkJRVUU3UVVGRlJDeFpRVUZCTEVsQlFVa3NhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTndReXhuUWtGQlFTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFdEJRVWs3UVVGRE5VVXNiMEpCUVVFc1NVRkJTU3hoUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZPMEZCUXpOQ0xIZENRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUTFZc2VVVkJRWGxGTEVsQlFVa3NRMEZCUVN3d1FrRkJRU3hEUVVFMFFpeERRVU14Unl4RFFVRkRPM2RDUVVOR0xFOUJRVTg3UVVGRFVpeHhRa0ZCUVR0QlFVVkVMRzlDUVVGQkxIVkNRVUYxUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1EwRkJRenRCUVVOMFJDeHBRa0ZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhoUVVGQk96dEJRVWRFTEZsQlFVRXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3h2UWtGQmIwSXNSVUZCUlN4RFFVRkRPenRaUVVjelF5eE5RVUZOTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUTJZc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRXRCUVVrc1UwRkJRU3hEUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4TFFVRkJMRU5CUVVFc1JVRkJRU3hoUVVGQk96dEJRVU51Uml4blFrRkJRU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNelF5eG5Ra0ZCUVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0blFrRkZNMElzVlVGQlZTeERRVUZETEZGQlFWRXNSMEZCUnl4RFFVRkJMRVZCUVVFc1IwRkJRU3huUWtGQlowSXNRMEZCUXl4UlFVRlJMRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1MwRkJTeXhEUVVGRE8yZENRVU42UkN4VlFVRlZMRU5CUVVNc1lVRkJZU3hIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEdkQ1FVRm5RaXhEUVVGRExHRkJRV0VzVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeE5RVUZOTEVOQlFVTTdaMEpCUTNCRkxGVkJRVlVzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1owSkJRV2RDTEVOQlFVTXNZMEZCWXl4TlFVRkpMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkJMRTFCUVUwc1EwRkJRenRuUWtGRGRFVXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeG5Ra0ZCWjBJc1EwRkJReXhoUVVGaExFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzVFVGQlRTeERRVUZETzJkQ1FVVndSU3hEUVVGQkxFVkJRVUVzUjBGQlFTeG5Ra0ZCWjBJc1EwRkJReXhuUWtGQlowSXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSU3hQUVVGUExFTkJRVU1zUTBGQlR5eEpRVUZKTEV0QlFVa3NVMEZCUVN4RFFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFTkJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4aFFVRkJPenR2UWtGRGVFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExGTkJRVk1zU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4TFFVRkxMRk5CUVZNc1JVRkJSVHQzUWtGRGRrUXNUMEZCVHp0QlFVTlNMSEZDUVVGQk8wRkJSVVFzYjBKQlFVRXNUVUZCVFN4VlFVRlZMRWxCUVVrc1RVRkJUU3cyUWtGQk5rSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZGTEVOQlFVTTdRVUZETTBVc2IwSkJRVUVzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZET3p0QlFVZHdReXh2UWtGQlFTeEpRVU5GTEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkRaaXhEUVVGRExGTkJRVk1zUzBGRFVpeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXh4UWtGQmNVSXNRMEZCUXp0QlFVTTVReXgzUWtGQlFTeG5Ra0ZCWjBJc1IwRkJSeXhUUVVGVExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1RVRkJUU3hEUVVNMVJDeEZRVU5FTzNkQ1FVTkJMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRMVlzUTBGQk9FSXNNa0pCUVVFc1JVRkJRU3huUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVRaQ0xEQkNRVUZCTEVWQlFVRXNaMEpCUVdkQ0xFTkJRV2xDTEdWQlFVRXNRMEZCUVN4RFFVTnNTQ3hEUVVGRE8zZENRVU5HTEU5QlFVODdRVUZEVWl4eFFrRkJRVHRCUVVWRUxHOUNRVUZCTEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUTJoQ0xFbEJRVWtzTkVKQlFUUkNMRU5CUVVNN2QwSkJReTlDTEZWQlFWVTdRVUZEVml4M1FrRkJRU3hMUVVGTExFVkJRVVVzWjBKQlFXZENPMEZCUTNaQ0xIZENRVUZCTEUxQlFVMHNSVUZCUlN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeHRRMEZCU1N4SFFVRkhPMEZCUXpOQ0xIRkNRVUZCTEVOQlFVTXNRMEZEU0N4RFFVRkRPMmxDUVVOSUxFTkJRVUVzUTBGQlF5eERRVUZETzBGQlJVZ3NaMEpCUVVFc1NVRkJTU3huUWtGQlowSXNRMEZCUXl4clFrRkJhMElzU1VGQlNTeG5Ra0ZCWjBJc1EwRkJReXh4UWtGQmNVSXNSVUZCUlRzN2IwSkJSV3BHTEUxQlFVMHNZVUZCWVN4SFFVRnhRaXhGUVVGRkxFTkJRVU03YjBKQlF6TkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkpPMEZCUXpkQ0xIZENRVUZCTEUxQlFVMHNVVUZCVVN4SFFVRkpMRTFCUVdNc1EwRkJReXhSUVVGelF5eERRVUZETzBGQlEzaEZMSGRDUVVGQkxFbEJRVWtzVVVGQlVTeEZRVUZGTzBGQlExb3NORUpCUVVFc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTTVRaXg1UWtGQlFUdEJRVU5JTEhGQ1FVRkRMRU5CUVVNc1EwRkJRenR2UWtGRlNDeERRVUZCTEVWQlFVRXNSMEZCUVN4blFrRkJaMElzUTBGQlF5eHJRa0ZCYTBJc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJTeFBRVUZQTEVOQlFVTXNRMEZCVHl4SlFVRkpMRXRCUVVrc1UwRkJRU3hEUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4TFFVRkJMRU5CUVVFc1JVRkJRU3hoUVVGQk8zZENRVU14UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNVVUZCVVN4TFFVRkpPelJDUVVOc1JDeE5RVUZOTEdGQlFXRXNSMEZCUnl3NFFrRkJPRUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRelZGTERSQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUzBGQlN5eGhRVUZoTEVOQlFVTTdRVUZEZWtNc2VVSkJRVU1zUTBGQlF5eERRVUZETzBGQlJVZ3NkMEpCUVVFc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZGQlFWRXNTMEZCU1R0QlFVTTNRaXcwUWtGQlFTeFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhKUVVGSkxEaENRVUU0UWl4RFFVRkRPMmREUVVOcVF5eFJRVUZSTzJkRFFVTlNMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zU1VGQlNUdEJRVU5tTEdkRFFVRkJMRmRCUVZjc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF6dEJRVU14UkN4blEwRkJRU3hYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRha01zTmtKQlFVRXNRMEZCUXl4RFFVTklMRU5CUVVNN1FVRkRTaXg1UWtGQlF5eERRVUZETEVOQlFVTTdjVUpCUTBvc1EwRkJRU3hEUVVGRExFTkJRVU03YjBKQlJVZ3NRMEZCUVN4RlFVRkJMRWRCUVVFc1owSkJRV2RDTEVOQlFVTXNjVUpCUVhGQ0xFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVU4c1NVRkJTU3hMUVVGSkxGTkJRVUVzUTBGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4RFFVRkJMRVZCUVVFc1MwRkJRU3hEUVVGQkxFVkJRVUVzWVVGQlFUdDNRa0ZETjBRc1RVRkJUU3hUUVVGVExFZEJRVWNzWVVGQllTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRkZCUVZFc1MwRkJTVHMwUWtGRGJFUXNUVUZCVFN4aFFVRmhMRWRCUVVjc09FSkJRVGhDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU0xUlN3MFFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEV0QlFVc3NZVUZCWVN4RFFVRkRPMEZCUTNwRExIbENRVUZETEVOQlFVTXNRMEZCUXp0QlFVVklMSGRDUVVGQkxGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UlFVRlJMRXRCUVVrN08wRkJRemRDTERSQ1FVRkJMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRMmhDTEVsQlFVa3NhVU5CUVdsRExFTkJRVU03WjBOQlEzQkRMRkZCUVZFN1FVRkRVaXhuUTBGQlFTeE5RVUZOTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTm9SU3huUTBGQlFTeExRVUZMTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVRXNTVUZCU1N4RFFVRkRMRXRCUVVzc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3cyUWtGQlFTeERRVUZETEVOQlEwZ3NRMEZCUXp0QlFVTktMSGxDUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZEU2l4RFFVRkJMRU5CUVVNc1EwRkJRenRCUVVOS0xHbENRVUZCTzBGQlJVUXNaMEpCUVVFc1QwRkJUeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8yRkJRM2hETEVOQlFVRXNRMEZCUXl4RFFVTklMRU5CUVVNN1FVRkZSaXhaUVVGQkxFOUJRVThzVDBGQlR5eERRVUZET3p0QlFVTm9RaXhMUVVGQk8wRkJSV0VzU1VGQlFTeFRRVUZUTEVOQlFVTXNTVUZCVlN4RlFVRkJPenM3UVVGRGFFTXNXVUZCUVN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFYZENMRU5CUVVNN08xbEJSMnhFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVVc1IwRkJORUlzUTBGQlF6dFpRVU0zUkN4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRk8wRkJRMWdzWjBKQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhoUVVGQk8wRkJSVVFzV1VGQlFTeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRaUVVOcVJDeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVU3UVVGRGNrSXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzBGQlJVUXNXVUZCUVN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNN1FVRkZNME1zV1VGQlFTeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSExHZENRVUZuUWl4RFFVRkRMR2RDUVVGblFpeERRVUZETzFsQlEycEZMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNSVUZCUlR0QlFVTXpRaXhuUWtGQlFTeFBRVUZQTEU5QlFVOHNRMEZCUXp0QlFVTm9RaXhoUVVGQk8wRkJSVVFzV1VGQlFTeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eEZRVUZWTEVOQlFVTTdXVUZGTlVNc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU5tTEhOQ1FVRnpRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZQTEZkQlFWY3NTMEZCU1N4VFFVRkJMRU5CUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUTBGQlFTeEZRVUZCTEV0QlFVRXNRMEZCUVN4RlFVRkJMR0ZCUVVFN08wRkJReTlETEdkQ1FVRkJMRTFCUVUwc1dVRkJXU3hIUVVGSExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTTdRVUZETlVNc1owSkJRVUVzVFVGQlRTeFpRVUZaTEVkQlEyaENMRU5CUVVNc1dVRkJXU3hKUVVGSkxFbEJRVWtzU1VGQlNTeDVRa0ZCZVVJc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFTkJRVU03WjBKQlF6bEdMRTFCUVUwc1NVRkJTU3hIUVVGSExGbEJRVmtzUzBGQldpeEpRVUZCTEVsQlFVRXNXVUZCV1N4TFFVRmFMRXRCUVVFc1EwRkJRU3hIUVVGQkxGbEJRVmtzUjBGQlNTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRPMmRDUVVVNVF5eEpRVUZKTEVsQlFVa3NTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRhRUlzYjBKQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXd5UmtGQk1rWXNRMEZCUXl4RFFVRkRPMjlDUVVNeFJ5eFBRVUZQTzBGQlExSXNhVUpCUVVFN08wRkJSMFFzWjBKQlFVRXNTVUZCU1N4cFFrRkJhVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1FVRkRMMElzYjBKQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRWaXh0UkVGQmJVUXNXVUZCV1N4RFFVRkJMR2RFUVVGQkxFTkJRV3RFTEVOQlEyeElMRU5CUVVNN2IwSkJRMFlzVDBGQlR6dEJRVU5TTEdsQ1FVRkJPMEZCUlVRc1owSkJRVUVzYVVKQlFXbENMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlJUVkNMR2RDUVVGQkxFMUJRVTBzVlVGQlZTeEhRVUZITEVsQlFVa3NZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJRek5ETEdkQ1FVRkJMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMmRDUVVVelFpeFZRVUZWTEVOQlFVTXNVVUZCVVN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxGZEJRVmNzUTBGQlF5eFJRVUZSTEUxQlFVa3NTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVRXNTMEZCU3l4RFFVRkRPenM3WjBKQlNYQkVMRWxCUVVrc1YwRkJWeXhEUVVGRExFdEJRVXNzUlVGQlJUdHZRa0ZEY2tJc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCVHl4SlFVRkpMRXRCUVVrc1UwRkJRU3hEUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4TFFVRkJMRU5CUVVFc1JVRkJRU3hoUVVGQk96dDNRa0ZEZGtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zU1VGQlNTeExRVUZMTEZOQlFWTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhMUVVGTExGTkJRVk1zUlVGQlJUczBRa0ZEZGtRc1QwRkJUenRCUVVOU0xIbENRVUZCTzNkQ1FVVkVMRTFCUVUwc1kwRkJZeXhIUVVGaExFVkJRVVVzUTBGQlF6dDNRa0ZEY0VNc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEV0QlFVc3NUVUZCUlN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4TFFVRkpPMEZCUXpsQ0xEUkNRVUZCTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTzBGQlF6TkNMR2REUVVGQkxHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRUlzTmtKQlFVRTdRVUZEU0N4NVFrRkJReXhEUVVGRExFTkJRVU03UVVGRlNDeDNRa0ZCUVN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNN2QwSkJSWEJETEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkRaaXhqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVOHNVMEZCVXl4TFFVRkpMRk5CUVVFc1EwRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeERRVUZCTEVWQlFVRXNTMEZCUVN4RFFVRkJMRVZCUVVFc1lVRkJRVHM3TkVKQlEzSkRMRTFCUVUwc1ZVRkJWU3hKUVVGSkxFMUJRVTBzTmtKQlFUWkNMRU5CUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZGTEVOQlFVTTdPMEZCUnpORkxEUkNRVUZCTEVsQlEwVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVObUxFTkJRVU1zVTBGQlV5eExRVU5TTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRPMEZCUXpsRExHZERRVUZCTEdkQ1FVRm5RaXhIUVVGSExGTkJRVk1zUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhOUVVGTkxFTkJRelZFTEVWQlEwUTdaME5CUTBFc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGRFZpeERRVUU0UWl3eVFrRkJRU3hGUVVGQkxGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFYTkNMRzFDUVVGQkxFVkJRVUVzWjBKQlFXZENMRU5CUVhsQ0xIVkNRVUZCTEVOQlFVRXNRMEZET1Vjc1EwRkJRenRuUTBGRFJpeFBRVUZQTzBGQlExSXNOa0pCUVVFN1FVRkZSQ3cwUWtGQlFTeFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhKUVVGSkxEUkNRVUUwUWl4RFFVRkRPMmREUVVNdlFpeFZRVUZWTzBGQlExWXNaME5CUVVFc1MwRkJTeXhGUVVGRkxHZENRVUZuUWp0QlFVTjJRaXhuUTBGQlFTeE5RVUZOTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUVVFc1JVRkJRU3hIUVVGQkxFbEJRVWtzUTBGQlF5eE5RVUZOTEUxQlFVa3NTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVRXNSMEZCUnl4RFFVRkRPMEZCUTNCRExEWkNRVUZCTEVOQlFVTXNRMEZEU0N4RFFVRkRPM2xDUVVOSUxFTkJRVUVzUTBGQlF5eERRVU5JTEVOQlFVTTdjVUpCUTBnc1EwRkJRU3hEUVVGRExFTkJRVU03UVVGRFNpeHBRa0ZCUVRzN1FVRkhSQ3huUWtGQlFTeE5RVUZOTEdOQlFXTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1kwRkJZeXhEUVVGRE8wRkJRMnhFTEdkQ1FVRkJMRWxCUVVrc1kwRkJZeXhKUVVGSkxHTkJRV01zUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4RlFVRkZPMEZCUTJwRUxHOUNRVUZCTEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFdEJRVWs3UVVGRGRrTXNkMEpCUVVFc1NVRkRSU3hoUVVGaExFTkJRVU1zV1VGQldTeExRVUZMTEZOQlFWTTdORUpCUTNoRExHRkJRV0VzUTBGQlF5eFpRVUZaTEV0QlFVc3NVMEZCVXp0QlFVTjRReXcwUWtGQlFTeGhRVUZoTEVOQlFVTXNWMEZCVnl4TFFVRkxMRk5CUVZNc1JVRkRka003TkVKQlEwRXNUMEZCVHp0QlFVTlNMSGxDUVVGQk8wRkJSVVE3T3pzN096dEJRVTFITzNkQ1FVTklMRTFCUVUwc1UwRkJVeXhIUVVGeFFpeEZRVUZGTEVOQlFVTTdkMEpCUTNaRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1RVRkJUU3hMUVVGSk96UkNRVU0zUWl4SlFVRkxMRTFCUVdNc1EwRkJReXhSUVVGUkxFVkJRVVU3UVVGRE5VSXNaME5CUVVFc1RVRkJUU3hSUVVGUkxFZEJRWFZETEUxQlFXTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkROMFVzWjBOQlFVRXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTzI5RFFVTXpRaXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVU5hTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkRhRUlzUTBGQlF5eEhRVUZITEV0QlEwWXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hMUVVGTExHRkJRV0VzUTBGQlF5eFpRVUZoTzNkRFFVTjJReXhIUVVGSExFTkJRVU1zU1VGQlNTeExRVUZMTEdGQlFXRXNRMEZCUXl4WlFVRmhMRWRCUVVjc1dVRkJXVHQzUTBGRGVrUXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZEYUVNc1EwRkRSaXhEUVVGRE8wRkJRMGdzYVVOQlFVRTdRVUZCVFN4eFEwRkJRU3hKUVVGSkxGRkJRVkVzUTBGQlF5eEpRVUZKTEV0QlFVc3NZVUZCWVN4RFFVRkRMRmxCUVZrc1NVRkJTU3hUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRk8wRkJRemRHTEc5RFFVRkJMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZETVVJc2FVTkJRVUU3UVVGRFJpdzJRa0ZCUVR0QlFVTklMSGxDUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZJTEhkQ1FVRkJMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NZVUZCWVN4RFFVRkRMRmxCUVZrc1EwRkJRenRCUVVONFJDeDNRa0ZCUVN4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVVVGQlVTeExRVUZKT3pzMFFrRkZOMElzU1VGQlNTeHZRa0ZCYjBJc1MwRkJTeXhoUVVGaExFVkJRVVU3WjBOQlF6RkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNc1YwRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEdGQlFXRXNRMEZCUXl4WFFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5RMEZET1VZc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJReXhYUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNZVUZCWVN4RFFVRkRMRmRCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlJTOUdMR2REUVVGQkxFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVndReXhuUTBGQlFTeFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhKUVVGSkxHbERRVUZwUXl4RFFVRkRPMjlEUVVOd1F5eFJRVUZSTzI5RFFVTlNMRXRCUVVzN2IwTkJRMHdzVFVGQlRUdEJRVU5RTEdsRFFVRkJMRU5CUVVNc1EwRkRTQ3hEUVVGRE8yZERRVVZHTEU5QlFVODdRVUZEVWl3MlFrRkJRVHM3UVVGSFJDdzBRa0ZCUVN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITERSQ1FVRTBRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNN1FVRkROMFVzTkVKQlFVRXNTVUZCU1N4cFFrRkJhVUlzUlVGQlJUdEJRVU55UWl4blEwRkJRU3hWUVVGVkxFTkJRVU1zVDBGQlR5eERRVU5vUWl4SlFVRkpMRGhDUVVFNFFpeERRVUZETzI5RFFVTnFReXhSUVVGUk8wRkJRMUlzYjBOQlFVRXNTVUZCU1N4RlFVRkZMR2xDUVVGcFFqdEJRVU4yUWl4dlEwRkJRU3hYUVVGWExFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExHRkJRV0VzUTBGQlF5eFhRVUZaTEVOQlFVTTdRVUZEY0VVc2IwTkJRVUVzVjBGQlZ5eEZRVUZGTEdGQlFXRXNRMEZCUXl4WFFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRek5ETEdsRFFVRkJMRU5CUVVNc1EwRkRTQ3hEUVVGRE8yZERRVVZHTEU5QlFVODdRVUZEVWl3MlFrRkJRVHRCUVVWRUxEUkNRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEJRVU16UkN4NVFrRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeHhRa0ZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhwUWtGQlFUdEJRVVZFTEdkQ1FVRkJMRTlCUVU4c1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRoUVVONFF5eERRVUZCTEVOQlFVTXNRMEZEU0N4RFFVRkRPMEZCUlVZc1dVRkJRU3hQUVVGUExFOUJRVThzUTBGQlF6czdRVUZEYUVJc1MwRkJRVHM3UVVGMldYTkNMSGxDUVVGQkxFTkJRVUVzYVVKQlFXbENMRWRCUVhsRk8wRkJReTlITEVsQlFVRXNRMEZCUXl4RlFVRkZMRWxCUVVrN1FVRkRVQ3hKUVVGQkxFTkJRVU1zUlVGQlJTeEpRVUZKTzBGQlExQXNTVUZCUVN4RFFVRkRMRVZCUVVVc1NVRkJTVHRCUVVOUUxFbEJRVUVzUTBGQlF5eEZRVUZGTEVsQlFVazdRVUZEVUN4SlFVRkJMRU5CUVVNc1JVRkJSU3hKUVVGSk8wRkJRMUFzU1VGQlFTeExRVUZMTEVWQlFVVXNUMEZCVHp0QlFVTmtMRWxCUVVFc1IwRkJSeXhGUVVGRkxFOUJRVTg3UVVGRFdpeEpRVUZCTEV0QlFVc3NSVUZCUlN4UFFVRlBPMEZCUTJRc1NVRkJRU3hOUVVGTkxFVkJRVVVzUzBGQlN6dEJRVU5pTEVsQlFVRXNSMEZCUnl4RlFVRkZMRk5CUVZNN1FVRkRaQ3hKUVVGQkxFMUJRVTBzUlVGQlJTeFJRVUZSTzBGQlEyaENMRWxCUVVFc1VVRkJVU3hGUVVGRkxGVkJRVlU3UVVGRGNFSXNTVUZCUVN4UlFVRlJMRVZCUVVVc1ZVRkJWVHRCUVVOd1FpeEpRVUZCTEZOQlFWTXNSVUZCUlN4WFFVRlhPenRCUVVWMFFpeEpRVUZCTEU5QlFVOHNSVUZCUlN4WFFVRlhPenRCUVVWd1FpeEpRVUZCTEU5QlFVOHNSVUZCUlN4WlFVRlpPMEZCUTNKQ0xFbEJRVUVzVDBGQlR5eEZRVUZGTEZOQlFWTTdRMEZEYmtJN08wRkROVU5JTzBGQlJXRXNUVUZCUVN4NVFrRkJlVUlzUjBGQlJ6dEJRVU4yUXl4SlFVRkJMRWxCUVVrc1JVRkJSU3hOUVVGTk8wRkJRMW9zU1VGQlFTeExRVUZMTEVWQlFVVXNUMEZCVHp0QlFVTmtMRWxCUVVFc1MwRkJTeXhGUVVGRkxFOUJRVTg3T3p0TlEwUklMR05CUVdNc1EwRkJRVHRCUVRCQ2VrSTdPenM3TzBGQlMwYzdTVUZEU0N4WFFVRnRRaXhEUVVGQkxGRkJRWEZDTEVWQlFVVXNaVUZCSzBNc1JVRkJRVHRCUVZocVJpeFJRVUZCTEVsQlFVRXNRMEZCUVN4eFFrRkJjVUlzUjBGQlJ5eGpRVUZqTEVOQlFVTXNPRUpCUVRoQ0xFTkJRVU03UVVGRGRFVXNVVUZCUVN4SlFVRkJMRU5CUVVFc2NVSkJRWEZDTEVkQlFVY3NZMEZCWXl4RFFVRkRMRGhDUVVFNFFpeERRVUZETzFGQlJYUkZMRWxCUVd0Q0xFTkJRVUVzYTBKQlFVRXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRlRha01zVVVGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJRenRCUVVONlFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4bFFVRmxMRWRCUVVjc1pVRkJaU3hEUVVGRE8wdEJRM2hETzBGQlJVUTdPenM3TzBGQlMwYzdRVUZEU1N4SlFVRkJMRWxCUVVrc1EwRkJReXhOUVVGelFpeEZRVUZCTzBGQlEyaERMRkZCUVVFc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeExRVUZMTEUxQlFVMHNRMEZCUXl4UlFVRlJMRVZCUVVVN1FVRkRja01zV1VGQlFTeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSGRFUVVGM1JDeERRVUZETEVOQlFVTTdRVUZETTBVc1UwRkJRVHRCUVVWRUxGRkJRVUVzU1VGQlNTeERRVUZETEdWQlFXVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1pVRkJaU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZWQlFWVXNUVUZCVFR0QlFVTnFSU3haUVVGQkxFMUJRVTBzUlVGQlJTeFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSVHRaUVVOc1F5eEpRVUZKTEVWQlFVVXNWVUZCVlN4RFFVRkRMRWxCUVVrN1FVRkRkRUlzVTBGQlFTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVktMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UzBGRFlqdEJRVVZFT3pzN1FVRkhSenRKUVVOSkxFdEJRVXNzUjBGQlFUdEJRVU5XTEZGQlFVRXNUMEZCVHl4SlFVRkpMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZETTBVN1FVRkZSRHM3T3pzN096czdRVUZSUnp0QlFVTklMRWxCUVVFc1NVRkJWeXh2UWtGQmIwSXNSMEZCUVR0UlFVTTNRaXhQUVVGUExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJRenRMUVVOdVF6dEJRVVZFT3pzN096czdPenRCUVZGSE8wRkJRMGdzU1VGQlFTeEpRVUZYTEc5Q1FVRnZRaXhIUVVGQk8xRkJRemRDTEU5QlFVOHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETzB0QlEyNURPMEZCUlVRN096czdPenM3T3pzN08wRkJWMGM3UVVGRFNTeEpRVUZCTEV0QlFVc3NRMEZCUXl4RlFVTllMRzlDUVVGdlFpeEhRVUZITEdOQlFXTXNRMEZCUXl3NFFrRkJPRUlzUlVGRGNFVXNiMEpCUVc5Q0xFZEJRVWNzWTBGQll5eERRVUZETERoQ1FVRTRRaXhIUVVOeVJTeEhRVUZITEVWQlFVVXNSVUZCUVR0UlFVTktMRWxCUVVrc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RlFVRkZPMWxCUXpOQ0xFOUJRVTg3UVVGRFVpeFRRVUZCTzBGQlEwUXNVVUZCUVN4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU03UVVGRGJFUXNVVUZCUVN4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU03VVVGRmJFUXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEV0QlFVazdXVUZEY0VNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRXRCUVVrN1FVRkRNMElzWjBKQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExHbENRVUZwUWl4RlFVRkZPMjlDUVVOdVF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRCUVVNMVF5eHZRa0ZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUzBGQlN5eExRVUZMTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFVXNhVUpCUVVFN1FVRkJUU3h4UWtGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRXRCUVVzc2FVSkJRV2xDTEVWQlFVVTdiMEpCUXpGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMEZCUXpWRExHOUNRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhMUVVGTExFdEJRVXNzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONFJTeHBRa0ZCUVR0QlFVRk5MSEZDUVVGQkxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4TlFVRk5MRVZCUVVVN1FVRkRMMElzYjBKQlFVRXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTJwRExHbENRVUZCTzBGQlEwZ3NZVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hUUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZJTEZGQlFVRXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEhRVUZITEVsQlFVa3NRMEZCUXp0TFFVTm9RenRCUVVWUExFbEJRVUVzYVVKQlFXbENMRU5CUVVNc1UwRkJiVUlzUlVGQlJTeEhRVUZsTEVWQlFVVXNVMEZCY1VJc1JVRkJSU3hQUVVGcFFpeEZRVUZCTzFGQlEzUkhMRWxCUVVrc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5rTEVsQlFVa3NSMEZCUnl4SlFVRkpMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZCUlR0QlFVTnFReXhaUVVGQkxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1FVRkROVU1zWjBKQlFVRXNUVUZCVFN4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjJRaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU16UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpOQ0xHZENRVUZCTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU51UWl4blFrRkJRU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZNMElzWjBKQlFVRXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVRkZMRk5CUVZNN1FVRkRka1FzWjBKQlFVRXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVRkZMRk5CUVZNN1FVRkRka1FzWjBKQlFVRXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVRkZMRk5CUVZNN1FVRkRka1FzWjBKQlFVRXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVRkZMRk5CUVZNN1FVRkZka1FzWjBKQlFVRXNUVUZCVFN4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyNUNMR2RDUVVGQkxFMUJRVTBzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelFpeG5Ra0ZCUVN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUVVVc1UwRkJVenRCUVVOMlJDeG5Ra0ZCUVN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUVVVc1UwRkJVenRCUVVOMlJDeG5Ra0ZCUVN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUVVVc1UwRkJVenRCUVVOMlJDeG5Ra0ZCUVN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUVVVc1UwRkJVenRCUVVWMlJDeG5Ra0ZCUVN4TlFVRk5MRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYmtJc1owSkJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRek5DTEdkQ1FVRkJMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkJSU3hUUVVGVE8wRkJRM1pFTEdkQ1FVRkJMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkJSU3hUUVVGVE8wRkJRM1pFTEdkQ1FVRkJMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkJSU3hUUVVGVE8wRkJRM1pFTEdkQ1FVRkJMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkJSU3hUUVVGVE8wRkJSWFpFTEdkQ1FVRkJMRk5CUVZNc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTjJRaXhuUWtGQlFTeFRRVUZUTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRGRrSXNaMEpCUVVFc1UwRkJVeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNoQ0xHRkJRVUU3UVVGRFJpeFRRVUZCTzBGQlEwUXNVVUZCUVN4UFFVRlBMRXRCUVVzc1EwRkJRenRMUVVOa08wbEJSVThzYVVKQlFXbENMRU5CUVVNc1IwRkJjMElzUlVGQlJTeHBRa0ZCTWtJc1JVRkJRVHRCUVVNelJTeFJRVUZCTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTjBSU3hIUVVGSExFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVRXNSVUZCUnl4SFFVRkhMRU5CUVVNc1NVRkJTU3hUUVVGVExFTkJRVU03UVVGRGFFTXNVVUZCUVN4SFFVRkhMRU5CUVVNc1lVRkJZU3hIUVVGSExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTTdVVUZEZEVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdRVUZGTTBNc1VVRkJRU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUlRsQ0xFMUJRVTBzWVVGQllTeEhRVUZITEZGQlFWRXNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03UVVGRGVrUXNVVUZCUVN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEdGQlFXRXNXVUZCV1N4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NSVUZCUlN4SFFVRkhMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGRrY3NUVUZCVFN4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRM0pDTEZGQlFVRXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEd0Q1FVRnJRaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZPMWxCUTNKRUxGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTTdaMEpCUTJJc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKQ0xHZENRVUZCTEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEZWtJc1owSkJRVUVzYTBKQlFXdENMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU42UWl4blFrRkJRU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRekZDTEdGQlFVRXNRMEZCUXl4RFFVRkRPMEZCUTBvc1UwRkJRVHRSUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEZGQlFWRXNRMEZCUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03UVVGRE0wUXNVVUZCUVN4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEdOQlFXTXNXVUZCV1N4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NSVUZCUlN4SFFVRkhMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRE1VY3NUVUZCVFN4VlFVRlZMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRM1JDTEZGQlFVRXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZPMWxCUTNSRUxGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTTdaMEpCUTJRc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNSQ0xHZENRVUZCTEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZETVVJc1owSkJRVUVzYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU14UWl4blFrRkJRU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRek5DTEdGQlFVRXNRMEZCUXl4RFFVRkRPMEZCUTBvc1UwRkJRVHRCUVVWRUxGRkJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NVVUZCVVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xRkJRMnhETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVN1FVRkRWaXhaUVVGQkxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNNa05CUVRKRExFTkJRVU1zUTBGQlF6dEJRVU01UkN4VFFVRkJPMUZCUTBRc1RVRkJUU3haUVVGWkxFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRk4wTXNVVUZCUVN4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1dVRkJXU3hGUVVGRkxGVkJRVlVzUlVGQlJTeFRRVUZUTEVWQlFVVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFJRVU0zUml4TlFVRk5MRmRCUVZjc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRGFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVNNVFpeFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeERMRk5CUVVFN1FVRkRSQ3hSUVVGQkxGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN08xRkJSeTlDTEVsQlFVa3NSMEZCUnl4RFFVRkRMR05CUVdNc1JVRkJSVHRCUVVOMFFpeFpRVUZCTEVkQlFVY3NRMEZCUXl4alFVRmpMRWRCUVVjc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF6dEJRVU42UXl4VFFVRkJPMUZCUTBRc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhaUVVGWkxFTkJRVU1zUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMnBITEZGQlFVRXNUMEZCVHl4SFFVRkhMRU5CUVVNN1MwRkRXanRKUVVWUExHdERRVUZyUXl4RFFVRkRMRTFCUVhOQ0xFVkJRVVVzU1VGQmRVSXNSVUZCUVR0UlFVTjRSaXhOUVVGTkxHZENRVUZuUWl4SFFVRmhMRVZCUVVVc1EwRkJRenRCUVVOMFF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRXRCUVVrN1FVRkRNVU1zV1VGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRE8wRkJRVVVzWjBKQlFVRXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUXpsRUxGTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVZElMRkZCUVVFc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1JVRkJSVHRaUVVNMVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRaUVVNdlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRaUVVNdlF5eFBRVUZQTzBGQlExSXNVMEZCUVR0UlFVTkVMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETzFGQlF6VkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1EwRkJRenRCUVVNdlJDeFJRVUZCTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UzBGRGNrSTdRVUZGVHl4SlFVRkJMRzlDUVVGdlFpeERRVUZETEVsQlFXOUNMRVZCUVVFN1FVRkRMME1zVVVGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRXRCUVVzc1QwRkJUeXhGUVVGRk8xbEJRM3BDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8wRkJRelZETEZsQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzBGQlF6ZENMR2RDUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRXRCUVVzc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjRSU3hoUVVGQk8wRkJRVTBzYVVKQlFVRTdRVUZEVEN4blFrRkJRU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGQkxGVkJRVUVzUlVGQllTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1owSkJRM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8wRkJRemxETEdkQ1FVRkJMRWxCUVVrc1EwRkJReXhOUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTNwQ0xHZENRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJPM0ZDUVVOV0xFMUJRVTBzUTBGQlF5eERRVUZETEV0QlFVc3NTMEZCU3l4TFFVRkxMRU5CUVVNc1NVRkJTU3hMUVVGTExHRkJRV0VzUTBGQlF6dEJRVU12UXl4eFFrRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eExRVUZMTEV0QlFVazdiMEpCUTJwQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEV0QlFUQkNMRU5CUVVNN1FVRkRMME1zYjBKQlFVRXNTVUZCU1N4RFFVRkRMR3REUVVGclF5eERRVUZETEUxQlFVMHNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJRenRCUVVNdlJDeHBRa0ZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUaXhoUVVGQk8wRkJRMFlzVTBGQlFUdEJRVUZOTEdGQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExHRkJRV0VzUlVGQlJUdFpRVU4wUXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhKUVVGNVFpeERRVUZETzFsQlF6bERMRWxCUVVrc1EwRkJReXhyUTBGQmEwTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUeXhGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzBGQlEzQkZMRk5CUVVFN1FVRkJUU3hoUVVGQk8wRkJRMHdzV1VGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlF6ZENMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETzBGQlF6VkRMR2RDUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRXRCUVVzc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjRSU3hoUVVGQk8wRkJRMFlzVTBGQlFUdExRVU5HTzBGQlJVOHNTVUZCUVN4alFVRmpMRU5CUVVNc1NVRkJiMElzUlVGQlFUdFJRVU42UXl4SlFVRkpMRWxCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSVHRCUVVOcVJDeFpRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1UwRkJRVHRCUVVGTkxHRkJRVUVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRka0lzV1VGQlFTeFBRVUZQTEV0QlFVc3NRMEZCUXp0QlFVTmtMRk5CUVVFN1FVRkJUU3hoUVVGQk8xbEJRMHdzVDBGQlR5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU42UXl4VFFVRkJPMHRCUTBZN08wRkJMMUZFT3pzN08wRkJTVWM3UVVGRGIwSXNZMEZCT0VJc1EwRkJRU3c0UWtGQlFTeEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVVXhSRHM3T3p0QlFVbEhPMEZCUTI5Q0xHTkJRVGhDTEVOQlFVRXNPRUpCUVVFc1IwRkJSeXhGUVVGRk96dEJRMUExUkRzN1FVRkZSenRCUVVOSUxFMUJRVTFCTEhkQ1FVRnpRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRk5VUTdPMEZCUlVjN1RVRkRWU3d3UWtGQk1FSXNRMEZCUVR0QlFVZHlReXhKUVVGQkxFbEJRVmNzU1VGQlNTeEhRVUZCT3p0QlFVVmlMRkZCUVVFc1QwRkJUeXcwUWtGQk5FSXNRMEZCUXp0TFFVTnlRenRCUVVWRUxFbEJRVUVzVjBGQlFTeERRVUZ0UWl4TlFVRnJRaXhGUVVGQk8wRkJRMjVETEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03UzBGRGRFSTdRVUZGV1N4SlFVRkJMRk5CUVZNc1EwRkJReXhKUVVGVkxFVkJRVUU3TzBGQlF5OUNMRmxCUVVFc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRnpReXhEUVVGRE96czdXVUZKZWtVc1NVRkJTU3hYUVVGWExFdEJRVXNzU1VGQlNTeEZRVUZGTzJkQ1FVTjRRaXhQUVVGUE8wRkJRMUlzWVVGQlFUdHBRa0ZCVFN4SlFVRkpMRmRCUVZjc1MwRkJTeXhUUVVGVExFVkJRVVU3UVVGRGNFTXNaMEpCUVVFc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGRFlpeHhSMEZCY1Vjc1EwRkRkRWNzUTBGQlF6dEJRVU5JTEdGQlFVRTdRVUZGUkN4WlFVRkJMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdVMEZEZEVVc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGQlFUdEJRVVZFT3pzN096dEJRVXRITzBsQlJWY3NUMEZCVHl4RFFVRkRMRWxCUVZVc1JVRkJSU3hSUVVFMFFpeEZRVUZCT3p0WlFVTTFSQ3hKUVVGSkxGRkJRVkVzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEY0VJc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMWxCUlVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU4wUkN4WlFVRkJMRWxCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zWjBKQlFVRXNUMEZCVHl4UlFVRlJMRU5CUVVNN1FVRkRha0lzWVVGQlFUdFpRVVZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRkRVFzV1VGQlFTeEpRVUZKTEZGQlFWRXNSVUZCUlR0QlFVTmFMR2RDUVVGQkxFOUJRVThzVVVGQlVTeERRVUZETzBGQlEycENMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzFOQlEySXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkJRVHRKUVVWaExGTkJRVk1zUTBGQlF5eEpRVUZWTEVWQlFVVXNVVUZCY1VJc1JVRkJRVHM3TzBGQlEzWkVMRmxCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRjNRaXhEUVVGRE96dEJRVWRzUkN4WlFVRkJMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMR05CUVdNc1RVRkJSU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlFTeFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGJFVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSVHRCUVVOa0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRaUVVWRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVY3NWVUZCVlN4RFFVRnZReXhEUVVGRE8xbEJRMjVHTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1FVRkRaQ3huUWtGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFMUJRVTBzVjBGQlZ5eEhRVUZITEZOQlFWTXNRMEZCUXl4WFFVRlhMRU5CUVVNN1FVRkRNVU1zV1VGQlFTeEpRVUZKTEVOQlFVTkJMSGRDUVVGelFpeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSVHRCUVVNMVF5eG5Ra0ZCUVN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExEWkVRVUUyUkN4WFFVRlhMRU5CUVVFc1EwRkJRU3hEUVVGSExFTkJRVU1zUTBGQlF6dEJRVU14Uml4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdRVUZGUkN4WlFVRkJMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRaUVVOb1JDeEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVU3UVVGRGRFSXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzFsQlJVUXNUVUZCVFN4bFFVRmxMRWRCUVcxRExFVkJRVVVzUTBGQlF6dEJRVU16UkN4WlFVRkJMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NUVUZCVFN3NFFrRkJPRUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnlSU3haUVVGQkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeFZRVUZWTEVOQlFVTXNTMEZCU1RzN1FVRkRNVVVzWjBKQlFVRXNUVUZCVFN4VlFVRlZMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTXNaVUZCWlR0QlFVTnNSQ3h6UWtGQlJTeHBRa0ZCYVVJc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFdEJRVXNzVTBGQlV5eERRVUZETzNOQ1FVTnVSU3hUUVVGVExFTkJRVU03WjBKQlJXUXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVOdVFpeHZRa0ZCUVN4TlFVRk5MRVZCUVVVc1ZVRkJWVHR2UWtGRGJFSXNTVUZCU1N4RlFVRkZMRU5CUVVFc1JVRkJRU3hIUVVGQkxGVkJRVlVzUzBGQlZpeEpRVUZCTEVsQlFVRXNWVUZCVlN4MVFrRkJWaXhWUVVGVkxFTkJRVVVzU1VGQlNTeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZKTEUxQlFVMDdRVUZEYWtNc2FVSkJRVUVzUTBGQlF5eERRVUZETzBGQlEwd3NZVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkZTQ3haUVVGQkxFOUJRVThzU1VGQlNTeGpRVUZqTEVOQlFVTXNVVUZCVVN4RlFVRkZMR1ZCUVdVc1EwRkJReXhEUVVGRE96dEJRVU4wUkN4TFFVRkJPMGxCUldFc1UwRkJVeXhEUVVGRExFbEJRVlVzUlVGQlJTeFJRVUZ4UWl4RlFVRkJPenM3UVVGRGRrUXNXVUZCUVN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFYZENMRU5CUVVNN1dVRkZiRVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUlN4SFFVRTBRaXhEUVVGRE8xbEJRemRFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRXQ3huUWtGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFMUJRVTBzYVVKQlFXbENMRWRCUVd0RExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTTdXVUZETlVVc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RlFVRkZPMEZCUTNSQ0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRaUVVWRUxFMUJRVTBzWlVGQlpTeEhRVUZ0UXl4RlFVRkZMRU5CUVVNN1FVRkRNMFFzV1VGQlFTeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFMUJRVTBzT0VKQlFUaENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRmNrVXNXVUZCUVN4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1ZVRkJWU3hEUVVGRExFdEJRVWs3WjBKQlF6RkZMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1FVRkZNVU1zWjBKQlFVRXNUVUZCVFN4SlFVRkpMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTXNaVUZCWlR0QlFVTTFReXh6UWtGQlJTeHBRa0ZCYVVJc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFdEJRVXNzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXp0elFrRkRla1VzVTBGQlV5eERRVUZETzJkQ1FVVmtMR1ZCUVdVc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGJrSXNiMEpCUVVFc1RVRkJUU3hGUVVGRkxGVkJRVlU3UVVGRGJFSXNiMEpCUVVFc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFdEJRVW9zU1VGQlFTeEpRVUZCTEVsQlFVa3NTMEZCU2l4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVVXNaVUZCWlN4RFFVRkRPMEZCUTNwRUxHbENRVUZCTEVOQlFVTXNRMEZCUXp0QlFVTk1MR0ZCUVVNc1EwRkJReXhEUVVGRE8wRkJSVWdzV1VGQlFTeFBRVUZQTEVsQlFVa3NZMEZCWXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hsUVVGbExFTkJRVU1zUTBGQlF6czdRVUZEZEVRc1MwRkJRVHRCUVVWUExFbEJRVUVzYzBKQlFYTkNMRU5CUVVNc1NVRkJkMElzUlVGQlFUdFJRVU55UkN4SlFVRkpMRWxCUVVrc1MwRkJTeXhwUWtGQmFVSXNSVUZCUlR0QlFVTTVRaXhaUVVGQkxFOUJRVThzYVVKQlFXbENMRU5CUVVNN1FVRkRNVUlzVTBGQlFUdGhRVUZOTEVsQlFVa3NTVUZCU1N4TFFVRkxMR2xDUVVGcFFpeEZRVUZGTzBGQlEzSkRMRmxCUVVFc1QwRkJUeXhwUWtGQmFVSXNRMEZCUXp0QlFVTXhRaXhUUVVGQk8yRkJRVTBzU1VGQlNTeEpRVUZKTEV0QlFVc3NUVUZCVFN4RlFVRkZPMEZCUXpGQ0xGbEJRVUVzVDBGQlR5eE5RVUZOTEVOQlFVTTdRVUZEWml4VFFVRkJPMEZCUVUwc1lVRkJRVHRCUVVOTUxGbEJRVUVzVDBGQlR5eE5RVUZOTEVOQlFVTTdRVUZEWml4VFFVRkJPMHRCUTBZN1FVRkRSanM3UVVNelNrUTdRVUZGWVN4TlFVRkJMR2REUVVGblF5eEhRVUZITzBGQlF6bERMRWxCUVVFc1NVRkJTU3hGUVVGRkxFMUJRVTA3UVVGRFdpeEpRVUZCTEVsQlFVa3NSVUZCUlN4TlFVRk5PMEZCUTFvc1NVRkJRU3hsUVVGbExFVkJRVVVzYVVKQlFXbENPMEZCUTJ4RExFbEJRVUVzWlVGQlpTeEZRVUZGTEdsQ1FVRnBRanM3TzBGRFJuQkRMRTFCUVUxRExFMUJRVWtzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVOcVF5eE5RVUZOUXl4TlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYWtNc1RVRkJUVU1zVVVGQlRTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wRkJSWHBDTEUxQlFVRXNhVUpCUVd0Q0xGTkJRVkVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUVR0QlFVbG9SQ3hKUVVGQkxGZEJRVUVzUTBGQmJVSXNVVUZCY1VJc1JVRkJRVHRCUVVOMFF5eFJRVUZCTEV0QlFVc3NSVUZCUlN4RFFVRkRPMEZCUlZJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEZGQlFWRXNRMEZCUXp0QlFVVTFRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVVNVFpeFJRVUZCTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTVHRaUVVOc1JDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZGZWtNc1dVRkJRU3hOUVVGTkxFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1MwRkJTeXhEUVVGRE8wRkJSUzlDTEZsQlFVRXNUVUZCVFN4RFFVRkRMRkZCUVRKQ0xFTkJRVU1zVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTnlSQ3haUVVGQkxFMUJRVTBzUTBGQlF5eFJRVUV5UWl4RFFVRkRMRlZCUVZVc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRmRrUXNXVUZCUVN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFsQlJXcENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVOMFF5eFRRVUZETEVOQlFVTXNRMEZCUXp0TFFVTktPMGxCUlUwc1QwRkJUeXhIUVVGQk8wRkJRMW9zVVVGQlFTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFdEJRVWs3UVVGRGRFUXNXVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBGQlEzWkNMRmxCUVVFc1NVRkJTU3hEUVVGRExGRkJRVEpDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRPVU1zVTBGQlF5eERRVUZETEVOQlFVTTdTMEZEU2p0QlFVVk5MRWxCUVVFc2FVSkJRV2xDTEVOQlFVTXNTMEZCWXl4RlFVRkJPMUZCUTNKRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZKTzFsQlF5OUVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlJYcERMRmxCUVVFc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RFFVRkRSaXhOUVVGSkxFVkJRVVZGTEZGQlFVMHNSVUZCUlVRc1RVRkJTU3hEUVVGRExFTkJRVU03UVVGRmNFUXNXVUZCUVN4TlFVRk5MRXRCUVVzc1IwRkJSMFFzVFVGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUTBNc1RVRkJTU3hEUVVGRExFTkJRVU03UVVGRGJrUXNXVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTjJSQ3hUUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZJTEZGQlFVRXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMHRCUTJoRE8wRkJRMFk3TzBGRGNFUkVPMEZCU1VFN08wRkJSVWM3UVVGRFZTeE5RVUZCTEdkQ1FVRm5RaXhIUVVGMVFqdEpRVU5zUkN4TlFVRk5PMGxCUTA0c1QwRkJUenRKUVVOUUxFOUJRVTg3U1VGRFVDeFpRVUZaTzBsQlExb3NUVUZCVFR0SlFVVk9MRTFCUVUwN1NVRkRUaXhUUVVGVE8wbEJRMVFzVlVGQlZUdEpRVU5XTEV0QlFVczdTVUZGVEN4alFVRmpPMGxCUTJRc1kwRkJZenRKUVVOa0xGVkJRVlU3U1VGRFZpeFZRVUZWTzBsQlJWWXNaVUZCWlR0SlFVTm1MR1ZCUVdVN1NVRkRaaXhYUVVGWE8wbEJRMWdzVjBGQlZ6dEpRVVZZTEdOQlFXTTdTVUZEWkN4alFVRmpPMGxCUTJRc1kwRkJZenRKUVVOa0xGVkJRVlU3U1VGRlZpeGxRVUZsTzBsQlEyWXNaVUZCWlR0SlFVTm1MR1ZCUVdVN1NVRkRaaXhYUVVGWE8wbEJSVmdzY1VKQlFYRkNPMGxCUTNKQ0xHMUNRVUZ0UWp0SlFVTnVRaXhwUWtGQmFVSTdTVUZEYWtJc2JVSkJRVzFDTzBsQlEyNUNMSFZDUVVGMVFqdEpRVU4yUWl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEhkQ1FVRjNRanRKUVVONFFpeHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFXdENPMGxCUTJ4Q0xITkNRVUZ6UWp0SlFVTjBRaXhuUWtGQlowSTdTVUZEYUVJc2IwSkJRVzlDTzBsQlEzQkNMSGRDUVVGM1FqdEpRVU40UWl4clFrRkJhMEk3U1VGRmJFSXNjMEpCUVhOQ08wbEJRM1JDTEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCYTBJN1NVRkRiRUlzYjBKQlFXOUNPMGxCUTNCQ0xIZENRVUYzUWp0SlFVTjRRaXhyUWtGQmEwSTdTVUZEYkVJc2NVSkJRWEZDTzBsQlEzSkNMSGxDUVVGNVFqdEpRVU42UWl4dFFrRkJiVUk3U1VGRGJrSXNiVUpCUVcxQ08wbEJRMjVDTEhWQ1FVRjFRanRKUVVOMlFpeHBRa0ZCYVVJN1NVRkRha0lzY1VKQlFYRkNPMGxCUTNKQ0xIbENRVUY1UWp0SlFVTjZRaXh0UWtGQmJVSTdPenRCUTNKRmNrSTdRVUZGUVRzN096dEJRVWxITzBGQlExVXNUVUZCUVN4blFrRkJaMElzUjBGQlJ6dEJRVU01UWl4SlFVRkJMRWxCUVVrc1JVRkJSU3hOUVVGTk8wRkJRMW9zU1VGQlFTeExRVUZMTEVWQlFVVXNUMEZCVHp0QlFVTmtMRWxCUVVFc1MwRkJTeXhGUVVGRkxFOUJRVTg3UVVGRFpDeEpRVUZCTEZWQlFWVXNSVUZCUlN4WlFVRlpPMEZCUTNoQ0xFbEJRVUVzU1VGQlNTeEZRVUZGTEUxQlFVMDdRVUZGV2l4SlFVRkJMRWxCUVVrc1JVRkJSU3hOUVVGTk8wRkJRMW9zU1VGQlFTeFBRVUZQTEVWQlFVVXNVMEZCVXp0QlFVTnNRaXhKUVVGQkxGRkJRVkVzUlVGQlJTeFZRVUZWTzBGQlEzQkNMRWxCUVVFc1IwRkJSeXhGUVVGRkxFdEJRVXM3UVVGRlZpeEpRVUZCTEZsQlFWa3NSVUZCUlN4alFVRmpPMEZCUXpWQ0xFbEJRVUVzV1VGQldTeEZRVUZGTEdOQlFXTTdRVUZETlVJc1NVRkJRU3hSUVVGUkxFVkJRVVVzVlVGQlZUdEJRVU53UWl4SlFVRkJMRkZCUVZFc1JVRkJSU3hWUVVGVk8wRkJSWEJDTEVsQlFVRXNZVUZCWVN4RlFVRkZMR1ZCUVdVN1FVRkRPVUlzU1VGQlFTeGhRVUZoTEVWQlFVVXNaVUZCWlR0QlFVTTVRaXhKUVVGQkxGTkJRVk1zUlVGQlJTeFhRVUZYTzBGQlEzUkNMRWxCUVVFc1UwRkJVeXhGUVVGRkxGZEJRVmM3UVVGRmRFSXNTVUZCUVN4WlFVRlpMRVZCUVVVc1kwRkJZenRCUVVNMVFpeEpRVUZCTEZsQlFWa3NSVUZCUlN4alFVRmpPMEZCUXpWQ0xFbEJRVUVzV1VGQldTeEZRVUZGTEdOQlFXTTdRVUZETlVJc1NVRkJRU3hSUVVGUkxFVkJRVVVzVlVGQlZUdEJRVVZ3UWl4SlFVRkJMR0ZCUVdFc1JVRkJSU3hsUVVGbE8wRkJRemxDTEVsQlFVRXNZVUZCWVN4RlFVRkZMR1ZCUVdVN1FVRkRPVUlzU1VGQlFTeGhRVUZoTEVWQlFVVXNaVUZCWlR0QlFVTTVRaXhKUVVGQkxGTkJRVk1zUlVGQlJTeFhRVUZYTzBGQlJYUkNMRWxCUVVFc2JVSkJRVzFDTEVWQlFVVXNjVUpCUVhGQ08wRkJRekZETEVsQlFVRXNhVUpCUVdsQ0xFVkJRVVVzYlVKQlFXMUNPMEZCUTNSRExFbEJRVUVzWlVGQlpTeEZRVUZGTEdsQ1FVRnBRanRCUVVOc1F5eEpRVUZCTEdsQ1FVRnBRaXhGUVVGRkxHMUNRVUZ0UWp0QlFVTjBReXhKUVVGQkxIRkNRVUZ4UWl4RlFVRkZMSFZDUVVGMVFqdEJRVU01UXl4SlFVRkJMR1ZCUVdVc1JVRkJSU3hwUWtGQmFVSTdRVUZEYkVNc1NVRkJRU3hyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMEk3UVVGRGVFTXNTVUZCUVN4elFrRkJjMElzUlVGQlJTeDNRa0ZCZDBJN1FVRkRhRVFzU1VGQlFTeG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmEwSTdRVUZEY0VNc1NVRkJRU3huUWtGQlowSXNSVUZCUlN4clFrRkJhMEk3UVVGRGNFTXNTVUZCUVN4dlFrRkJiMElzUlVGQlJTeHpRa0ZCYzBJN1FVRkROVU1zU1VGQlFTeGpRVUZqTEVWQlFVVXNaMEpCUVdkQ08wRkJRMmhETEVsQlFVRXNhMEpCUVd0Q0xFVkJRVVVzYjBKQlFXOUNPMEZCUTNoRExFbEJRVUVzYzBKQlFYTkNMRVZCUVVVc2QwSkJRWGRDTzBGQlEyaEVMRWxCUVVFc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q08wRkJSWEJETEVsQlFVRXNiMEpCUVc5Q0xFVkJRVVVzYzBKQlFYTkNPMEZCUXpWRExFbEJRVUVzYTBKQlFXdENMRVZCUVVVc2IwSkJRVzlDTzBGQlEzaERMRWxCUVVFc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q08wRkJRM0JETEVsQlFVRXNhMEpCUVd0Q0xFVkJRVVVzYjBKQlFXOUNPMEZCUTNoRExFbEJRVUVzYzBKQlFYTkNMRVZCUVVVc2QwSkJRWGRDTzBGQlEyaEVMRWxCUVVFc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q08wRkJRM0JETEVsQlFVRXNiVUpCUVcxQ0xFVkJRVVVzY1VKQlFYRkNPMEZCUXpGRExFbEJRVUVzZFVKQlFYVkNMRVZCUVVVc2VVSkJRWGxDTzBGQlEyeEVMRWxCUVVFc2FVSkJRV2xDTEVWQlFVVXNiVUpCUVcxQ08wRkJRM1JETEVsQlFVRXNhVUpCUVdsQ0xFVkJRVVVzYlVKQlFXMUNPMEZCUTNSRExFbEJRVUVzY1VKQlFYRkNMRVZCUVVVc2RVSkJRWFZDTzBGQlF6bERMRWxCUVVFc1pVRkJaU3hGUVVGRkxHbENRVUZwUWp0QlFVTnNReXhKUVVGQkxHMUNRVUZ0UWl4RlFVRkZMSEZDUVVGeFFqdEJRVU14UXl4SlFVRkJMSFZDUVVGMVFpeEZRVUZGTEhsQ1FVRjVRanRCUVVOc1JDeEpRVUZCTEdsQ1FVRnBRaXhGUVVGRkxHMUNRVUZ0UWpzN08wRkRja1Y0UXp0QlFVbEJPenM3TzBGQlNVYzdRVUZEVlN4TlFVRkJMSEZDUVVGeFFpeEhRVUUwUkR0QlFVTTFSaXhKUVVGQkxFbEJRVWtzUlVGQlJTeEpRVUZKTzBGQlExWXNTVUZCUVN4TFFVRkxMRVZCUVVVc1RVRkJUVHRCUVVOaUxFbEJRVUVzUzBGQlN5eEZRVUZGTEU5QlFVODdRVUZEWkN4SlFVRkJMRlZCUVZVc1JVRkJSU3hQUVVGUE8wRkJRMjVDTEVsQlFVRXNTVUZCU1N4RlFVRkZMRmxCUVZrN1FVRkZiRUlzU1VGQlFTeEpRVUZKTEVWQlFVVXNUVUZCVFR0QlFVTmFMRWxCUVVFc1QwRkJUeXhGUVVGRkxFMUJRVTA3UVVGRFppeEpRVUZCTEZGQlFWRXNSVUZCUlN4TlFVRk5PMEZCUTJoQ0xFbEJRVUVzUjBGQlJ5eEZRVUZGTEUxQlFVMDdRVUZGV0N4SlFVRkJMRmxCUVZrc1JVRkJSU3hOUVVGTk8wRkJRM0JDTEVsQlFVRXNXVUZCV1N4RlFVRkZMR05CUVdNN1FVRkROVUlzU1VGQlFTeFJRVUZSTEVWQlFVVXNZMEZCWXp0QlFVTjRRaXhKUVVGQkxGRkJRVkVzUlVGQlJTeFZRVUZWTzBGQlJYQkNMRWxCUVVFc1lVRkJZU3hGUVVGRkxFMUJRVTA3UVVGRGNrSXNTVUZCUVN4aFFVRmhMRVZCUVVVc1pVRkJaVHRCUVVNNVFpeEpRVUZCTEZOQlFWTXNSVUZCUlN4bFFVRmxPMEZCUXpGQ0xFbEJRVUVzVTBGQlV5eEZRVUZGTEZkQlFWYzdRVUZGZEVJc1NVRkJRU3haUVVGWkxFVkJRVVVzV1VGQldUdEJRVU14UWl4SlFVRkJMRmxCUVZrc1JVRkJSU3hqUVVGak8wRkJRelZDTEVsQlFVRXNXVUZCV1N4RlFVRkZMR05CUVdNN1FVRkROVUlzU1VGQlFTeFJRVUZSTEVWQlFVVXNZMEZCWXp0QlFVVjRRaXhKUVVGQkxHRkJRV0VzUlVGQlJTeFpRVUZaTzBGQlF6TkNMRWxCUVVFc1lVRkJZU3hGUVVGRkxHVkJRV1U3UVVGRE9VSXNTVUZCUVN4aFFVRmhMRVZCUVVVc1pVRkJaVHRCUVVNNVFpeEpRVUZCTEZOQlFWTXNSVUZCUlN4bFFVRmxPMEZCUlRGQ0xFbEJRVUVzYlVKQlFXMUNMRVZCUVVVc1ZVRkJWVHRCUVVNdlFpeEpRVUZCTEdsQ1FVRnBRaXhGUVVGRkxIRkNRVUZ4UWp0QlFVTjRReXhKUVVGQkxHVkJRV1VzUlVGQlJTeHRRa0ZCYlVJN1FVRkRjRU1zU1VGQlFTeHBRa0ZCYVVJc1JVRkJSU3hWUVVGVk8wRkJRemRDTEVsQlFVRXNjVUpCUVhGQ0xFVkJRVVVzYlVKQlFXMUNPMEZCUXpGRExFbEJRVUVzWlVGQlpTeEZRVUZGTEhWQ1FVRjFRanRCUVVONFF5eEpRVUZCTEd0Q1FVRnJRaXhGUVVGRkxGVkJRVlU3UVVGRE9VSXNTVUZCUVN4elFrRkJjMElzUlVGQlJTeHZRa0ZCYjBJN1FVRkROVU1zU1VGQlFTeG5Ra0ZCWjBJc1JVRkJSU3gzUWtGQmQwSTdRVUZETVVNc1NVRkJRU3huUWtGQlowSXNSVUZCUlN4VlFVRlZPMEZCUXpWQ0xFbEJRVUVzYjBKQlFXOUNMRVZCUVVVc2EwSkJRV3RDTzBGQlEzaERMRWxCUVVFc1kwRkJZeXhGUVVGRkxITkNRVUZ6UWp0QlFVTjBReXhKUVVGQkxHdENRVUZyUWl4RlFVRkZMRlZCUVZVN1FVRkRPVUlzU1VGQlFTeHpRa0ZCYzBJc1JVRkJSU3h2UWtGQmIwSTdRVUZETlVNc1NVRkJRU3huUWtGQlowSXNSVUZCUlN4M1FrRkJkMEk3UVVGRk1VTXNTVUZCUVN4dlFrRkJiMElzUlVGQlJTeFhRVUZYTzBGQlEycERMRWxCUVVFc2EwSkJRV3RDTEVWQlFVVXNjMEpCUVhOQ08wRkJRekZETEVsQlFVRXNaMEpCUVdkQ0xFVkJRVVVzYjBKQlFXOUNPMEZCUTNSRExFbEJRVUVzYTBKQlFXdENMRVZCUVVVc1YwRkJWenRCUVVNdlFpeEpRVUZCTEhOQ1FVRnpRaXhGUVVGRkxHOUNRVUZ2UWp0QlFVTTFReXhKUVVGQkxHZENRVUZuUWl4RlFVRkZMSGRDUVVGM1FqdEJRVU14UXl4SlFVRkJMRzFDUVVGdFFpeEZRVUZGTEZkQlFWYzdRVUZEYUVNc1NVRkJRU3gxUWtGQmRVSXNSVUZCUlN4eFFrRkJjVUk3UVVGRE9VTXNTVUZCUVN4cFFrRkJhVUlzUlVGQlJTeDVRa0ZCZVVJN1FVRkROVU1zU1VGQlFTeHBRa0ZCYVVJc1JVRkJSU3hYUVVGWE8wRkJRemxDTEVsQlFVRXNjVUpCUVhGQ0xFVkJRVVVzYlVKQlFXMUNPMEZCUXpGRExFbEJRVUVzWlVGQlpTeEZRVUZGTEhWQ1FVRjFRanRCUVVONFF5eEpRVUZCTEcxQ1FVRnRRaXhGUVVGRkxGZEJRVmM3UVVGRGFFTXNTVUZCUVN4MVFrRkJkVUlzUlVGQlJTeHhRa0ZCY1VJN1FVRkRPVU1zU1VGQlFTeHBRa0ZCYVVJc1JVRkJSU3g1UWtGQmVVSTdPenRCUTNKRk9VTTdPenM3TzBGQlMwYzdRVUZEUnl4VFFVRlZMR2RDUVVGblFpeERRVUUyUWl4TlFVRlRMRVZCUVVFN1NVRkRjRVVzU1VGQlN5eE5RVUZqTEVOQlFVTXNUVUZCVFN4RlFVRkZPMUZCUXpGQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0QlFVTnFRaXhMUVVGQk8wRkJRVTBzVTBGQlFUdFJRVU5LTEUxQlFXTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVNelFpeExRVUZCTzBGQlJVUXNTVUZCUVN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FqczdRVU5VUVN4TlFVRk5SQ3hOUVVGSkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRha01zVFVGQlRVVXNVVUZCVFN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzBGQlJYUkRPenRCUVVWSE8wMUJRMVVzVFVGQlRTeERRVUZCTzBGQllXcENPenM3UVVGSFJ6dEJRVU5JTEVsQlFVRXNWMEZCUVN4RFFVRnRRaXhWUVVGNVFpeEZRVUZCTzBGQlF6RkRMRkZCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFZRVUZWTEVOQlFVTTdRVUZGTjBJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRMUVVONFF6dEJRVVZFT3pzN08wRkJTVWM3U1VGRFNTeGxRVUZsTEVkQlFVRTdVVUZEY0VJc1RVRkJUU3hKUVVGSkxFZEJRVWNzUlVGQllTeERRVUZETzBGQlJUTkNMRkZCUVVFc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zYVVKQlFXbENMRXRCUVVrN1dVRkRla1FzVFVGQlRTeFhRVUZYTEVkQlFVY3NhVUpCUVhGRExFTkJRVU03V1VGRE1VUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXpzN1dVRkhNME1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlR0blFrRkRWQ3hQUVVGUE8wRkJRMUlzWVVGQlFUczdRVUZIUkN4WlFVRkJSaXhOUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVONlFpeFpRVUZCUlN4UlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXpzN1dVRkhOMElzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhPMEZCUTJ4Q0xHZENRVUZCTEZGQlFWRXNSVUZCUlVZc1RVRkJTU3hEUVVGRExFOUJRVThzUlVGQk9FSTdRVUZEY0VRc1owSkJRVUVzVVVGQlVTeEZRVUZGUlN4UlFVRk5MRU5CUVVNc1QwRkJUeXhGUVVGelF6dGhRVU12UkN4RFFVRkRPMEZCUTBvc1UwRkJReXhEUVVGRExFTkJRVU03UVVGRlNDeFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1FVRkZSRHM3T3p0QlFVbEhPMGxCUTBrc1QwRkJUeXhIUVVGQk8xRkJRMW9zVFVGQlRTeEpRVUZKTEVkQlFVY3NSVUZCWVN4RFFVRkRPMEZCUlROQ0xGRkJRVUVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNZMEZCWXl4TFFVRkpPMWxCUTNSRUxFMUJRVTBzVVVGQlVTeEhRVUZITEdOQlFXdERMRU5CUVVNN1dVRkRjRVFzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6czdXVUZIZUVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJUdG5Ra0ZEVkN4UFFVRlBPMEZCUTFJc1lVRkJRVHM3V1VGSFJFWXNUVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJ4Q1JTeFJRVUZOTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1dVRkZiRUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU14UXl4WlFVRkJMRWxCUVVrc1UwRkJVeXhMUVVGVUxFbEJRVUVzU1VGQlFTeFRRVUZUTEhWQ1FVRlVMRk5CUVZNc1EwRkJSU3hSUVVGUkxFVkJRVVU3WjBKQlEzWkNSaXhOUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dEJRVU0zUXl4aFFVRkJPMEZCUTBRc1dVRkJRU3hKUVVGSkxGTkJRVk1zUzBGQlZDeEpRVUZCTEVsQlFVRXNVMEZCVXl4MVFrRkJWQ3hUUVVGVExFTkJRVVVzVVVGQlVTeEZRVUZGTzJkQ1FVTjJRaXhuUWtGQlowSXNRMEZCUTBVc1VVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONFJDeGhRVUZCT3p0QlFVZEVMRmxCUVVGR0xFMUJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM2hDTEZsQlFVRkZMRkZCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPenRaUVVkd1F5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjN1FVRkRaaXhuUWtGQlFTeFJRVUZSTEVWQlFVVkdMRTFCUVVrc1EwRkJReXhQUVVGUExFVkJRVGhDTzBGQlEzQkVMR2RDUVVGQkxGRkJRVkVzUlVGQlJVVXNVVUZCVFN4RFFVRkRMRTlCUVU4c1JVRkJjME03WVVGREwwUXNRMEZCUXp0QlFVTktMRk5CUVVNc1EwRkJReXhEUVVGRE8wRkJSVWdzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0TFFVTmlPMEZCUlVRN096czdPenM3UVVGUFJ6dEJRVU5KTEVsQlFVRXNUMEZCVHl4RFFVRkRMRlZCUVcxQ0xFVkJRVUU3UVVGRGFFTXNVVUZCUVN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1kwRkJZeXhGUVVGRkxFdEJRVXNzUTBGQlF5eExRVUZKTzFsQlF6ZEVMRTFCUVUwc1VVRkJVU3hIUVVGSExHTkJRV3RETEVOQlFVTTdXVUZEY0VRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenM3V1VGSGVFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSVHRuUWtGRFZDeFBRVUZQTzBGQlExSXNZVUZCUVR0WlFVVkVMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1dVRkRNVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlRzN1owSkJSV1FzVDBGQlR6dEJRVU5TTEdGQlFVRTdPMEZCUjBRc1dVRkJRU3hKUVVGSkxFdEJRVXNzUzBGQlRDeEpRVUZCTEVsQlFVRXNTMEZCU3l4MVFrRkJUQ3hMUVVGTExFTkJRVVVzVVVGQlVTeEZRVUZGTzJkQ1FVTnVRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03WjBKQlJYaERMRWxCUVVrc1UwRkJVeXhEUVVGRExGRkJRVkVzUlVGQlJUdEJRVU4wUWl4dlFrRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUTBZc1RVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOMlJDeHBRa0ZCUVR0QlFVTkdMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFbEJRVWtzUzBGQlN5eExRVUZNTEVsQlFVRXNTVUZCUVN4TFFVRkxMSFZDUVVGTUxFdEJRVXNzUTBGQlJTeFJRVUZSTEVWQlFVVTdaMEpCUTI1Q0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dG5Ra0ZGTVVNc1NVRkJTU3hUUVVGVExFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlEzUkNMRzlDUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRSU3hSUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMmhGTEdsQ1FVRkJPMEZCUTBZc1lVRkJRVHRCUVVOSUxGTkJRVU1zUTBGQlF5eERRVUZETzB0QlEwbzdRVUZGUkRzN1FVRkZSenRKUVVOSkxGTkJRVk1zUjBGQlFUdEJRVU5rTEZGQlFVRXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVazdXVUZEZWtRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRTBRaXhEUVVGRExFTkJRVU03V1VGRk5VUXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSVHRuUWtGRFZDeFBRVUZQTzBGQlExSXNZVUZCUVR0QlFVVkVMRmxCUVVFc1NVRkJTU3hKUVVGSkxFdEJRVW9zU1VGQlFTeEpRVUZCTEVsQlFVa3NkVUpCUVVvc1NVRkJTU3hEUVVGRkxGRkJRVkVzUlVGQlJUdG5Ra0ZEYkVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM2hETEdGQlFVRTdRVUZGUkN4WlFVRkJMRWxCUVVrc1NVRkJTU3hMUVVGS0xFbEJRVUVzU1VGQlFTeEpRVUZKTEhWQ1FVRktMRWxCUVVrc1EwRkJSU3hSUVVGUkxFVkJRVVU3WjBKQlEyeENMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNeFF5eGhRVUZCTzBGQlEwZ3NVMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRTanRCUVVWRU96czdPMEZCU1VjN1FVRkRTU3hKUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZ6UWl4RlFVRkJPenRSUVVOdVF5eFBRVUZQTEVOQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVa3NTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVRXNVMEZCVXl4RFFVRkRPMHRCUXpORE8wRkJSVVE3T3pzN1FVRkpSenRCUVVOSkxFbEJRVUVzVjBGQlZ5eERRVUZETEVsQlFYTkNMRVZCUVVFN08wRkJRM1pETEZGQlFVRXNUMEZCVHl4RFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGRkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZCTEVsQlFVa3NUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4SlFVRkpMRU5CUVVNN1MwRkROVU03UVVGRFJqczdRVU42VEVRc1RVRkJUVVlzVFVGQlNTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMnBETEUxQlFVMUZMRkZCUVUwc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0QlFVTjBReXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVVeFF6czdRVUZGUnp0QlFVTkhMRTFCUVU4c1kwRkJaU3hUUVVGUkxFMUJRVTBzUTBGQlFUdEpRVU01UWl4UFFVRlBMR2RDUVVGblFpeERRVUZETEZGQlFXZENMRVZCUVVFN1FVRk5hRVFzVVVGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dEJRVU5zUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNN08xRkJSemRDTEUxQlFVMHNhMEpCUVd0Q0xFZEJRWFZFTEVWQlFVVXNRMEZCUXp0UlFVVnNSaXhOUVVGTkxHRkJRV0VzUjBGQk1FUXNSVUZCUlN4RFFVRkRPMUZCUTJoR0xFMUJRVTBzYjBKQlFXOUNMRWRCUVRCRUxFVkJRVVVzUTBGQlF6dEJRVVYyUml4UlFVRkJMR2RDUVVGblFpeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRkZCUVZFc1MwRkJTVHM3V1VGRGNFTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1VVRkJVU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVVm9SQ3haUVVGQkxFbEJRVWtzVVVGQlVTeEZRVUZGTzBGQlExb3NaMEpCUVVFc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVU01UXl4blFrRkJRU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzBGQlJXcEVMR2RDUVVGQkxGRkJRVkVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUTNoRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEdsQ1FVRnBRaXhGUVVGRlJpeE5RVUZKTEVOQlFVTXNRMEZCUXp0QlFVVXpSU3huUWtGQlFTeHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRuUWtGRmFrUXNZVUZCWVN4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRkZkRVFzWjBKQlFVRXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVOdVJDeG5Ra0ZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hSUVVGUkxFTkJRVU1zVFVGQlRTeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkZMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU5CTEUxQlFVa3NSVUZCUlN4dFFrRkJiVUlzUlVGQlJVRXNUVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRlRVVzWjBKQlFVRXNiMEpCUVc5Q0xFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU03UVVGRGRFUXNZVUZCUVR0QlFVTklMRk5CUVVNc1EwRkJReXhEUVVGRE96dFJRVWRJTEUxQlFVMHNVVUZCVVN4SFFVRXlRaXhGUVVGRkxFTkJRVU03UVVGRE5VTXNVVUZCUVN4blFrRkJaMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UlFVRlJMRXRCUVVrN08xbEJRM0JETEUxQlFVMHNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZGYUVRc1dVRkJRU3hKUVVGSkxGRkJRVkVzUlVGQlJUdEJRVU5hTEdkQ1FVRkJMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zVVVGQlVTeERRVUZyUWl4RFFVRkRPenRuUWtGSGVFVXNTVUZCU1N4bFFVRmxMRWRCUVRSQ0xGRkJRVkVzUTBGQlF6dEJRVU40UkN4blFrRkJRU3hKUVVGSkxIVkNRVUZyUkN4RFFVRkRPMmRDUVVOMlJDeFBRVUZQTEhWQ1FVRjFRaXhKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU4wUXl4dlFrRkJRU3hsUVVGbExFZEJRVWNzY1VKQlFYRkNMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03YjBKQlEzcEVMRWxCUVVrc1pVRkJaU3hKUVVGSkxFbEJRVWtzUlVGQlJUdDNRa0ZETTBJc1RVRkJUVHRCUVVOUUxIRkNRVUZCTzBGQlEwUXNiMEpCUVVFc2RVSkJRWFZDTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdRVUZETDBRc2FVSkJRVUU3TzBGQlIwUXNaMEpCUVVFc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1owSkJRM3BETEZkQlFWY3NRMEZCUXl4SlFVRkpMRWRCUVVjc1lVRkJZU3hIUVVGSExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZGYWtRc1owSkJRVUVzVFVGQlRTeHBRa0ZCYVVJc1NVRkJTU3hsUVVGbExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNVVUZCVVN4RFFVRkRMR1ZCUVdVc1EwRkJReXd3UTBGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRnRRaXhEUVVGRE8wRkJSWFpITEdkQ1FVRkJMR2xDUVVGcFFpeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRCUVVOdVF5eG5Ra0ZCUVN4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8wRkJRemRETEdkQ1FVRkJMRWxCUVVrc2RVSkJRWFZDTEVWQlFVVTdRVUZETTBJc2IwSkJRVUVzVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXp0QlFVTnVSQ3hwUWtGQlFUdG5Ra0ZGUkN4UlFVRlJMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZMRU5CUVVNN1FVRkROVU1zWVVGQlFUdEJRVU5JTEZOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlVnc1QwRkJUenRCUVVOTUxGbEJRVUVzVVVGQlVTeEZRVUZGTEZGQlFYbENPMWxCUTI1RExFbEJRVWs3V1VGRFNpeHZRa0ZCYjBJN1dVRkRjRUlzWVVGQllUdFRRVU5rTEVOQlFVTTdTMEZEU0R0QlFVOUVMRWxCUVVFc1YwRkJRU3hEUVVGdFFpeFJRVUZuUWl4RlFVRkJPMEZCUTJwRExGRkJRVUVzVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNZVUZCWVN4RlFVRkZMRWRCUVVjc1kwRkJZeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJSVEZITEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVWb1FpeFJRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1VVRkJVU3hEUVVGRE8wRkJRM3BDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRGFrSXNVVUZCUVN4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU03UVVGRGJFUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExHRkJRV0VzUTBGQlF6dExRVU55UXp0QlFVVkVPenRCUVVWSE8wbEJRMGtzVFVGQlRTeEhRVUZCTzBGQlExZ3NVVUZCUVN4blFrRkJaMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UlFVRlJMRXRCUVVrN1dVRkRjRU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZGY2tRc1NVRkJTU3hSUVVGUkxFbEJRVWtzU1VGQlNTeEZRVUZGTzJkQ1FVTndRaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJSU3hEUVVGRE8yZENRVU5vUkN4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFJRVUZSTEVOQlFVVXNRMEZCUXp0blFrRkRiRVVzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSMFVzVVVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMmRDUVVONlJTeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGRkJRVkVzUTBGQlJTeERRVUZETzBGQlJYQkVMR2RDUVVGQkxGRkJRVkVzUTBGQlF5eFZRVUZWTzBGQlEyaENMSEZDUVVGQkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRPM0ZDUVVNMVFpeFJRVUZSTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU03Y1VKQlF6ZENMRmRCUVZjc1EwRkJReXh6UWtGQmMwSXNRMEZCUXp0eFFrRkRia01zVVVGQlVTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPenRuUWtGSE1VSXNTVUZCU1N4UlFVRlJMRXRCUVVzc1RVRkJUU3hGUVVGRk8yOUNRVU4yUWl4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEZkQlFWY3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0dlFrRkRkRVVzVVVGQlVTeERRVUZETEUxQlFVOHNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRhRVFzYjBKQlFVRXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVHl4RFFVRkRMRmRCUVZjc1EwRkJRenR2UWtGRGRrUXNUVUZCVFN4aFFVRmhMRWRCUVVjc2FVSkJRV2xDTEVOQlFVTXNXVUZCV1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRha1lzYjBKQlFVRXNVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdRVUZEZGtNc2FVSkJRVUU3UVVGRFJpeGhRVUZCTzBGQlEwZ3NVMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRTanRCUVVOR096dEJRMnhKUkRzN1FVRkZSenROUVVOVkxGZEJRVmNzUTBGQlFUdEJRVzFDZEVJN08wRkJSVWM3UVVGRFNDeEpRVUZCTEVsQlFWY3NVVUZCVVN4SFFVRkJPMEZCUTJwQ0xGRkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl3MFJrRkJORVlzUTBGQlF5eERRVUZETzFGQlJUTkhMRTlCUVU4c1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF6dExRVU42UWp0QlFVVkVPenM3UVVGSFJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4WFFVRlhMRWRCUVVFN1FVRkRjRUlzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1VVRkJVU3hEUVVGRE8wdEJRM0pETzBGQlJVUTdPenRCUVVkSE8wRkJRMGdzU1VGQlFTeEpRVUZYTEd0Q1FVRnJRaXhIUVVGQk8wRkJRek5DTEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNVVUZCVVN4RFFVRkRPMHRCUXpWRE8wRkJSVVE3TzBGQlJVYzdRVUZEU0N4SlFVRkJMRWxCUVZjc1ZVRkJWU3hIUVVGQk96dEJRVVZ1UWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFVTTdTMEZEZGtNN1FVRkZSRHM3UVVGRlJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4aFFVRmhMRWRCUVVFN1FVRkRkRUlzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wdEJRM1pETzBGQlJVUTdPMEZCUlVjN1FVRkRTQ3hKUVVGQkxFbEJRVmNzYjBKQlFXOUNMRWRCUVVFN1FVRkROMElzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTEVOQlFVTTdTMEZET1VNN1FVRkZSRHM3UVVGRlJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4M1FrRkJkMElzUjBGQlFUdEJRVU5xUXl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1EwRkJRenRMUVVONFF6dEJRVVZFT3pzN08wRkJTVWM3U1VGRFNDeFhRVUZ0UWl4RFFVRkJMRlZCUVhsQ0xFVkJRVVVzVDBGQk5FTXNSVUZCUVRzN1FVRkRlRVlzVVVGQlFTeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNUMEZCVHl4TFFVRkJMRWxCUVVFc1NVRkJVQ3hQUVVGUExFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVZBc1QwRkJUeXhEUVVGRkxHOUNRVUZ2UWl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkpMRWxCUVVrc1EwRkJRenRSUVVOc1JTeEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRWxCUVVrc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlF6ZERMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNSMEZCUnl4SlFVRkpMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdTMEZEZEVVN1FVRkZSRHM3T3p0QlFVbEhPMEZCUTBrc1NVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQmJVSXNSVUZCUVR0QlFVTTNRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1IwRkJSeXhOUVVGTkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNN1VVRkRlRVFzU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEY0VRc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4SFFVRkhMRWxCUVVrc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0QlFVVnlSU3hSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzB0QlEySTdRVUZGUkRzN08wRkJSMGM3U1VGRFNTeExRVUZMTEVkQlFVRTdVVUZEVml4UFFVRlBMRWxCUVVrc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVONlJ6dEJRVVZFT3p0QlFVVkhPMGxCUTBrc1pVRkJaU3hIUVVGQk8wRkJRM0JDTEZGQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRWaXgxU0VGQmRVZ3NRMEZEZUVnc1EwRkJRenRCUVVWR0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dExRVU5zUXp0QlFVVkVPenM3TzBGQlNVYzdTVUZEU1N4clFrRkJhMElzUjBGQlFUdEJRVU4yUWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0TFFVTTVRenRCUVVWRU96czdPMEZCU1VjN1NVRkRTU3g1UWtGQmVVSXNSMEZCUVR0QlFVTTVRaXhSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETzB0QlEzSkVPMEZCUlVRN08wRkJSVWM3U1VGRFNTeFBRVUZQTEVkQlFVRTdRVUZEV2l4UlFVRkJMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zSzBaQlFTdEdMRU5CUVVNc1EwRkJRenRCUVVVNVJ5eFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wdEJRekZDTzBGQlJVUTdPenM3UVVGSlJ6dEpRVU5KTEZWQlFWVXNSMEZCUVR0QlFVTm1MRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMHRCUTNSRE8wRkJSVVE3T3pzN1FVRkpSenRKUVVOSkxHbENRVUZwUWl4SFFVRkJPMEZCUTNSQ0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdTMEZETjBNN1FVRkZSRHM3UVVGRlJ6dEJRVU5KTEVsQlFVRXNUMEZCVHl4RFFVRkRMRlZCUVcxQ0xFVkJRVUU3UVVGRGFFTXNVVUZCUVN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExDdEdRVUVyUml4RFFVRkRMRU5CUVVNN1FVRkZPVWNzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UzBGRGNFTTdRVUZGUkRzN096czdPenM3TzBGQlUwYzdRVUZEU1N4SlFVRkJMRlZCUVZVc1EwRkJReXhWUVVGdFFpeEZRVUZCTzFGQlEyNURMRTlCUVU4c1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1MwRkRhRVE3UVVGRlJEczdPenM3T3p0QlFVOUhPMEZCUTBrc1NVRkJRU3hwUWtGQmFVSXNRMEZCUXl4VlFVRnRRaXhGUVVGQk8xRkJRekZETEU5QlFVOHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRMUVVOMlJEdEJRVVZFT3p0QlFVVkhPMGxCUTBrc1UwRkJVeXhIUVVGQk8wRkJRMlFzVVVGQlFTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMSEZIUVVGeFJ5eERRVUZETEVOQlFVTTdRVUZGY0Vnc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0TFFVTTFRanRCUVVWRU96czdPMEZCU1VjN1NVRkRTU3haUVVGWkxFZEJRVUU3UVVGRGFrSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTMEZEZUVNN1FVRkZSRHM3UVVGRlJ6dEpRVU5KTEcxQ1FVRnRRaXhIUVVGQk8wRkJRM2hDTEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1MwRkRMME03UVVGRlJEczdRVUZGUnp0QlFVTkpMRWxCUVVFc1QwRkJUeXhEUVVGRExFbEJRWE5DTEVWQlFVRTdRVUZEYmtNc1VVRkJRU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEN0R1FVRXJSaXhEUVVGRExFTkJRVU03UVVGRk9VY3NVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZET1VJN1FVRkZSRHM3T3p0QlFVbEhPMEZCUTBrc1NVRkJRU3hWUVVGVkxFTkJRVU1zU1VGQmMwSXNSVUZCUVR0UlFVTjBReXhQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRekZETzBGQlJVUTdPenM3UVVGSlJ6dEJRVU5KTEVsQlFVRXNhVUpCUVdsQ0xFTkJRVU1zU1VGQmMwSXNSVUZCUVR0UlFVTTNReXhQUVVGUExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZEYWtRN1FVRkZSRHM3UVVGRlJ6dEJRVU5KTEVsQlFVRXNWMEZCVnl4RFFVRkRMRWxCUVhOQ0xFVkJRVUU3UVVGRGRrTXNVVUZCUVN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVOV0xESkhRVUV5Unl4RFFVTTFSeXhEUVVGRE8wRkJSVVlzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRGJFTTdRVUZGUkRzN096dEJRVWxITzBGQlEwa3NTVUZCUVN4alFVRmpMRU5CUVVNc1NVRkJjMElzUlVGQlFUdFJRVU14UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUXpsRE8wRkJSVVE3T3pzN1FVRkpSenRCUVVOSkxFbEJRVUVzY1VKQlFYRkNMRU5CUVVNc1NVRkJjMElzUlVGQlFUdFJRVU5xUkN4UFFVRlBMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRGNrUTdRVUZGUkRzN096dEJRVWxITzBsQlEwa3NUVUZCVFN4SFFVRkJPMUZCUTFnc1NVRkJTU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVN1FVRkROMElzV1VGQlFTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdRVUZEY2tNc1UwRkJRVHRMUVVOR08wRkJRMFk3TzBGRE1WTkVPMEZCUldFc1RVRkJRU3gzUWtGQmQwSXNSMEZCUnp0QlFVTjBReXhKUVVGQkxFbEJRVWtzUlVGQlJTeE5RVUZOTzBGQlExb3NTVUZCUVN4TFFVRkxMRVZCUVVVc1QwRkJUenRCUVVOa0xFbEJRVUVzU1VGQlNTeEZRVUZGTEUxQlFVMDdRVUZEV2l4SlFVRkJMRmxCUVZrc1JVRkJSU3hqUVVGak8wRkJRelZDTEVsQlFVRXNXVUZCV1N4RlFVRkZMR05CUVdNN1FVRkROVUlzU1VGQlFTeFJRVUZSTEVWQlFVVXNWVUZCVlR0QlFVTndRaXhKUVVGQkxHRkJRV0VzUlVGQlJTeGxRVUZsTzBGQlF6bENMRWxCUVVFc1lVRkJZU3hGUVVGRkxHVkJRV1U3UVVGRE9VSXNTVUZCUVN4VFFVRlRMRVZCUVVVc1YwRkJWenRCUVVOMFFpeEpRVUZCTEZsQlFWa3NSVUZCUlN4alFVRmpPMEZCUXpWQ0xFbEJRVUVzV1VGQldTeEZRVUZGTEdOQlFXTTdRVUZETlVJc1NVRkJRU3hSUVVGUkxFVkJRVVVzVlVGQlZUdEJRVU53UWl4SlFVRkJMR0ZCUVdFc1JVRkJSU3hsUVVGbE8wRkJRemxDTEVsQlFVRXNZVUZCWVN4RlFVRkZMR1ZCUVdVN1FVRkRPVUlzU1VGQlFTeFRRVUZUTEVWQlFVVXNWMEZCVnpzN08wRkRUbmhDT3p0QlFVVkhPMEZCUTBnc1RVRkJUVWdzZDBKQlFYTkNMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVVMVJEczdRVUZGUnp0QlFVTklMRTFCUVUwc1owSkJRV2RDTEVkQlFYRkZPMEZCUTNwR0xFbEJRVUVzYVVKQlFXbENMRVZCUVVVc2NVSkJRWEZDTzBGQlEzaERMRWxCUVVFc2NVSkJRWEZDTEVWQlFVVXNiVUpCUVcxQ08wRkJRekZETEVsQlFVRXNhMEpCUVd0Q0xFVkJRVVVzYzBKQlFYTkNPMEZCUXpGRExFbEJRVUVzYzBKQlFYTkNMRVZCUVVVc2IwSkJRVzlDTzBOQlF6ZERMRU5CUVVNN1FVRkZSanM3UVVGRlJ6dE5RVU5WTEhWQ1FVRjFRaXhEUVVGQk8wRkJXV3hETEVsQlFVRXNTVUZCVnl4SlFVRkpMRWRCUVVFN08wRkJSV0lzVVVGQlFTeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRE8wdEJRMnhETzBsQlJVUXNWMEZCYlVJc1EwRkJRU3hOUVVGclFpeEZRVUZGTEU5QlFYZERMRVZCUVVFN1FVRkROMFVzVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVWeVFpeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRTlCUVU4c1MwRkJRU3hKUVVGQkxFbEJRVkFzVDBGQlR5eExRVUZRTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFOUJRVThzUTBGQlJTeFZRVUZWTEVOQlFVTTdVVUZEZEVNc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4SFFVRkhMRTlCUVU4c1MwRkJRU3hKUVVGQkxFbEJRVkFzVDBGQlR5eExRVUZRTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFOUJRVThzUTBGQlJTeHZRa0ZCYjBJc1EwRkJRenRMUVVNelJEdEJRVVZaTEVsQlFVRXNVMEZCVXl4RFFVRkRMRWxCUVZVc1JVRkJRVHM3UVVGREwwSXNXVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGZEJRVmNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRGRFUXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkJRVHRCUVVWRU96czdPMEZCU1VjN1FVRkRWeXhKUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZWTEVWQlFVRTdPMWxCUXpsQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU0xUXl4WlFVRkJMRWxCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zWjBKQlFVRXNUMEZCVHl4UlFVRlJMRU5CUVVNN1FVRkRha0lzWVVGQlFUdFpRVVZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTTFReXhaUVVGQkxFbEJRVWtzVVVGQlVTeEZRVUZGTzBGQlExb3NaMEpCUVVFc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGFrSXNZVUZCUVR0QlFVVkVMRmxCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03VTBGRFlpeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVRkJPMEZCUldFc1NVRkJRU3hUUVVGVExFTkJRVU1zU1VGQlZTeEZRVUZCT3pzN1FVRkRhRU1zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdPMEZCUjJ4RUxGbEJRVUVzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eE5RVUZGTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTzBGQlEyUXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzFsQlJVUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhWUVVGVkxFTkJRVzlETEVOQlFVTTdXVUZEYmtZc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJUdEJRVU5rTEdkQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMklzWVVGQlFUdEJRVVZFTEZsQlFVRXNUVUZCVFN4WFFVRlhMRWRCUVVjc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF6dEJRVU14UXl4WlFVRkJMRWxCUVVrc1EwRkJRMEVzZDBKQlFYTkNMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTzBGQlF6VkRMR2RDUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNNRVJCUVRCRUxGZEJRVmNzUTBGQlFTeERRVUZCTEVOQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNaR0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVFVGQlRTeGpRVUZqTEVkQlFVY3NVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJRenRaUVVNeFF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZPMEZCUTI1Q0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRU96czdPMEZCU1VjN1dVRkRTQ3hOUVVGTkxIVkNRVUYxUWl4SFFVTXhRaXhqUVVGakxFTkJRVU1zVlVGQmEwSXNRMEZCUXl4eFFrRkJjVUlzU1VGQlNTeEpRVUZKTzBGQlF5OUVMR2RDUVVGQkxHTkJRV01zUTBGQlF5eFZRVUZyUWl4RFFVRkRMSE5DUVVGelFpeEpRVUZKTEVsQlFVa3NRMEZCUXp0WlFVVndSU3hOUVVGTkxGVkJRVlVzUjBGQk1rSXNSVUZCUlN4RFFVRkRPMEZCUXpsRExGbEJRVUVzU1VGQlNTeGpRVUZqTEVOQlFVTXNWVUZCVlN4SlFVRkpMRWxCUVVrc1JVRkJSVHRuUWtGRGNrTXNUVUZCVFN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVObUxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZQTEVOQlFVTXNZMEZCWXl4RlFVRkZMR1ZCUVdVc1EwRkJReXhMUVVGSkxGTkJRVUVzUTBGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4RFFVRkJMRVZCUVVFc1MwRkJRU3hEUVVGQkxFVkJRVUVzWVVGQlFUdHZRa0ZEZUVZc1NVRkJTU3hSUVVGUkxFZEJRVWNzWTBGQmJVUXNRMEZCUXp0QlFVTnVSU3h2UWtGQlFTeE5RVUZOTEV0QlFVc3NSMEZCUnl4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRE96dEJRVWR1UXl4dlFrRkJRU3hKUVVGSkxIVkNRVUYxUWl4RlFVRkZPMEZCUXpOQ0xIZENRVUZCTEUxQlFVMHNZVUZCWVN4SFFVRkhMR2RDUVVGblFpeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPM2RDUVVOcVJDeEpRVUZKTEdGQlFXRXNTVUZCU1N4SlFVRkpMRVZCUVVVN05FSkJRM3BDTEZGQlFWRXNSMEZCUnl4aFFVRmhMRU5CUVVNN1FVRkRNVUlzZVVKQlFVRTdRVUZEUml4eFFrRkJRVHRCUVVWRUxHOUNRVUZCTEUxQlFVMHNTVUZCU1N4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE96dHZRa0ZITlVRc1NVRkJTU3hKUVVGSkxFbEJRVWtzU1VGQlNTeEZRVUZGTzNkQ1FVTm9RaXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVRXNkVU5CUVVFc1JVRkJNRU1zVVVGQlVTeERRVUZoTEZWQlFVRXNSVUZCUVN4TFFVRkxMRU5CUVd0Q0xHZENRVUZCTEVOQlFVRXNRMEZCUXl4RFFVRkRPM2RDUVVOeVJ5eFBRVUZQTzBGQlExSXNjVUpCUVVFN08wRkJSMFFzYjBKQlFVRXNWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTTdhVUpCUTJwRExFTkJRVUVzUTBGQlF5eERRVU5JTEVOQlFVTTdRVUZEU0N4aFFVRkJPMWxCUlVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZPMmRDUVVNelJTeHZRa0ZCYjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNPMEZCUTJoRUxHRkJRVUVzUTBGQlF5eERRVUZETzFsQlEwZ3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEhkQ1FVRjNRaXhEUVVGRExFTkJRVU03V1VGRmJFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRk8wRkJRMjVDTEdkQ1FVRkJMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzYVVKQlFXbENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGREwwTXNaMEpCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRelZDTEUxQlFVMHNRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFhRVUZYTEVOQlFVTTdRVUZEYkVRc1lVRkJRVHRCUVVWRUxGbEJRVUVzVDBGQlR5eFJRVUZSTEVOQlFVTTdPMEZCUTJwQ0xFdEJRVUU3UVVGRllTeEpRVUZCTEZOQlFWTXNRMEZCUXl4SlFVRlZMRVZCUVVFN096dEJRVU5vUXl4WlFVRkJMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCZDBJc1EwRkJRenRaUVVWc1JDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zVlVGQlZTeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkZMRWRCUVRSQ0xFTkJRVU03V1VGRE4wUXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHRCUVVOWUxHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVFVGQlRTeGpRVUZqTEVkQlFTdENMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU03V1VGRGJrVXNTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSVHRCUVVOdVFpeG5Ra0ZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOaUxHRkJRVUU3V1VGRlJDeE5RVUZOTEZWQlFWVXNSMEZCTWtJc1JVRkJSU3hEUVVGRE8wRkJRemxETEZsQlFVRXNTVUZCU1N4alFVRmpMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU55UXl4blFrRkJRU3hOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlEyWXNZMEZCWXl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlR5eEpRVUZKTEV0QlFVa3NVMEZCUVN4RFFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFTkJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4aFFVRkJPMEZCUXpORExHOUNRVUZCTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRE0wSXNiMEpCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0QlFVVjRRaXh2UWtGQlFTeEpRVUZKTEZGQlFWRXNTVUZCU1N4SlFVRkpMRWxCUVVrc1MwRkJTeXhKUVVGSkxFbEJRVWtzUlVGQlJUdDNRa0ZEY2tNc1QwRkJUenRCUVVOU0xIRkNRVUZCTzBGQlJVUXNiMEpCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhOUVVGTkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdPMjlDUVVjMVJDeEpRVUZKTEVsQlFVa3NTVUZCU1N4SlFVRkpMRVZCUVVVN2QwSkJRMmhDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRU3gxUTBGQlFTeEZRVUV3UXl4UlFVRlJMRU5CUVdFc1ZVRkJRU3hGUVVGQkxFdEJRVXNzUTBGQmEwSXNaMEpCUVVFc1EwRkJRU3hEUVVGRExFTkJRVU03ZDBKQlEzSkhMRTlCUVU4N1FVRkRVaXh4UWtGQlFUczdRVUZIUkN4dlFrRkJRU3hOUVVGTkxHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dHZRa0ZEYWtRc1RVRkJUU3hYUVVGWExFbEJRVWtzWVVGQllTeExRVUZCTEVsQlFVRXNTVUZCWWl4aFFVRmhMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRV0lzWVVGQllTeEhRVUZKTEZGQlFWRXNRMEZCYzBNc1EwRkJRenM3TzBGQlNYSkdMRzlDUVVGQkxFbEJRVWtzVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRWxCUVVrc1JVRkJSVHQzUWtGRGJrTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRWaXhEUVVGQkxEQkNRVUZCTEVWQlFUWkNMRmRCUVZjc1EwRkJjMElzYlVKQlFVRXNSVUZCUVN4TFFVRkxMRU5CUVdsRExDdENRVUZCTEVOQlFVRXNRMEZEY2tjc1EwRkJRenQzUWtGRFJpeFBRVUZQTzBGQlExSXNjVUpCUVVFN08wRkJSMFFzYjBKQlFVRXNWVUZCVlN4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTTdhVUpCUTNCRExFTkJRVUVzUTBGQlF5eERRVU5JTEVOQlFVTTdRVUZEU0N4aFFVRkJPMWxCUlVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMSGxDUVVGNVFpeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZPMmRDUVVNelJTeHZRa0ZCYjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNPMEZCUTJoRUxHRkJRVUVzUTBGQlF5eERRVUZETzFsQlEwZ3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEhkQ1FVRjNRaXhEUVVGRExFTkJRVU03V1VGRmJFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRk8wRkJRMjVDTEdkQ1FVRkJMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzYVVKQlFXbENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGREwwTXNaMEpCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJRelZDTEUxQlFVMHNRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFhRVUZYTEVOQlFVTTdRVUZEYkVRc1lVRkJRVHRCUVVWRUxGbEJRVUVzVDBGQlR5eFJRVUZSTEVOQlFVTTdPMEZCUTJwQ0xFdEJRVUU3UVVGRlJEczdPenRCUVVsSE8wRkJRMHNzU1VGQlFTeDVRa0ZCZVVJc1EwRkJReXhWUVVGclF5eEZRVUZCT3p0UlFVVnNSU3hOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRM3BGTEVOQlFVTXNaMEpCUVdkQ0xFdEJRVXNzVlVGQlZTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVU16UkN4RFFVRkRPenRCUVVkR0xGRkJRVUVzU1VGQlNTeHZRa0ZCYjBJc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzBGQlEyNURMRmxCUVVFc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGRFlpeERRVUZCTERCRlFVRkJMRVZCUVRaRkxHOUNRVUZ2UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlJTeERRVUZCTEVOQlF5OUhMRU5CUVVNN1FVRkRTQ3hUUVVGQk8wRkJSVVFzVVVGQlFTeFBRVUZQTEZWQlFUSkNMRU5CUVVNN1MwRkRjRU03UVVGRFJqczdRVU0xVDFrc1RVRkJRU3hwUWtGQmEwSXNVMEZCVVN4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGQk8wRkJVWHBFTEVsQlFVRXNWMEZCUVN4SFFVRkJPMEZCUTBVc1VVRkJRU3hMUVVGTExFVkJRVVVzUTBGQlF6dFJRVTVHTEVsQlFXRXNRMEZCUVN4aFFVRkJMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMnhDTEVsQlFXTXNRMEZCUVN4alFVRkJMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJUM3BDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGFrSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF6dEJRVU5zUWl4UlFVRkJMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUjBGQlJ5eERRVUZETzBGQlEzcENMRkZCUVVFc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZGTVVJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRrVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUlRkRExGRkJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeFhRVUZYTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzaEZMRkZCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkZMMElzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUTI1Q0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0TFFVTm1PMGxCUlUwc1RVRkJUU3hIUVVGQk8xRkJRMWdzU1VGQlNTeHZRa0ZCYjBJc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRmFrTXNVVUZCUVN4SlFVRkpMRWxCUVVrc1EwRkJReXhoUVVGaExFdEJRVXNzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlR0QlFVTnlReXhaUVVGQkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVOb1F5eHZRa0ZCYjBJc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRE4wSXNVMEZCUVR0QlFVVkVMRkZCUVVFc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRka01zV1VGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRGJFTXNiMEpCUVc5Q0xFZEJRVWNzU1VGQlNTeERRVUZETzBGQlF6ZENMRk5CUVVFN1FVRkZSQ3hSUVVGQkxFbEJRVWtzYjBKQlFXOUNMRVZCUVVVN1dVRkRlRUlzU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMEZCUTNaQ0xGTkJRVUU3UzBGRFJqdEpRVVZQTEdOQlFXTXNSMEZCUVR0QlFVTndRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUlhaRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZETTBJc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU03UVVGRk1VTXNXVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZUVjc1UwRkJRVHRCUVVWRUxGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRE8wdEJRMnhETzBsQlJVOHNWMEZCVnl4SFFVRkJPMUZCUTJwQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdRVUZETTBJc1dVRkJRU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5vUkN4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1MwRkRjRU03UVVGRFJqczdRVU12UkZrc1RVRkJRU3d5UWtGQk5FSXNVMEZCVVN4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGQk8wRkJVVzVGTEVsQlFVRXNWMEZCUVN4SFFVRkJPMEZCUTBVc1VVRkJRU3hMUVVGTExFVkJRVVVzUTBGQlF6dEJRVVZTTEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGJFSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVVV4UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUTJoRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRmVFTXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTndSU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRk4wTXNVVUZCUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnlSU3hSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJSUzlDTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOdVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1MwRkRaanRKUVVWTkxFMUJRVTBzUjBGQlFUdFJRVU5ZTEVsQlFVa3NiMEpCUVc5Q0xFZEJRVWNzUzBGQlN5eERRVUZETzBGQlJXcERMRkZCUVVFc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRka01zV1VGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRGJFTXNiMEpCUVc5Q0xFZEJRVWNzU1VGQlNTeERRVUZETzBGQlF6ZENMRk5CUVVFN1VVRkZSQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzFsQlEzaERMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOc1F5eHZRa0ZCYjBJc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRE4wSXNVMEZCUVR0QlFVVkVMRkZCUVVFc1NVRkJTU3h2UWtGQmIwSXNSVUZCUlR0WlFVTjRRaXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdRVUZEZGtJc1UwRkJRVHRMUVVOR08wbEJSVThzWTBGQll5eEhRVUZCTzFGQlEzQkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE0wSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkZMMElzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOMlJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU0xUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNSQ3hUUVVGQk8wRkJSVVFzVVVGQlFTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRVVVzU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRE1VVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJSVGxGTEZGQlFVRXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJFTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGZUVZc1VVRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1MwRkRiRU03U1VGRlR5eFhRVUZYTEVkQlFVRTdVVUZEYWtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU16UWl4TlFVRk5MRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUlhoQ0xGbEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRjRU1zV1VGQlFTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTnVSQ3haUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzSkVMRk5CUVVFN1VVRkRSQ3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlJXNURMRkZCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMHRCUTNCRE8wRkJRMFk3TzBGRGVFVkVMRTFCUVUxSExGRkJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVOMFF5eE5RVUZOUXl4UlFVRk5MRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdRVUZEZEVNc1RVRkJUVWdzVFVGQlNTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMnBETEUxQlFVMURMRTFCUVVrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVVnFReXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dEJRVU16UXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExHRkJRV0VzUlVGQlJTeGhRVUZoTEVOQlFVTXNRMEZCUXp0QlFVTXZSU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVVTFReXhOUVVGQkxHVkJRV2RDTEZOQlFWRXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRVHRCUVUwNVF5eEpRVUZCTEZkQlFVRXNRMEZCYlVJc1RVRkJhVUlzUlVGQlFUdEJRVU5zUXl4UlFVRkJMRXRCUVVzc1JVRkJSU3hEUVVGRE8wRkJRMUlzVVVGQlFTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFZEJRVWNzUzBGQlN5eERRVUZETzBGQlJUbENMRkZCUVVFc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTTdRVUZGZUVJc1VVRkJRVHRCUVVORkxGbEJRVUVzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4cFFrRkJhVUlzUlVGQlJTeERRVUZETzBGQlEzcERMRmxCUVVFc1VVRkJVU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZGZEVJc1dVRkJRU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dEJRVU16UXl4blFrRkJRU3hMUVVGTExFVkJRVVVzVVVGQlVUdEJRVU5tTEdkQ1FVRkJMRmRCUVZjc1JVRkJSU3hKUVVGSk8wRkJRMnBDTEdkQ1FVRkJMRTlCUVU4c1JVRkJSU3hIUVVGSE8yZENRVU5hTEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1ZVRkJWVHRCUVVOMFFpeG5Ra0ZCUVN4VFFVRlRMRVZCUVVVc1MwRkJTenRCUVVOb1FpeG5Ra0ZCUVN4VlFVRlZMRVZCUVVVc1MwRkJTenRCUVVOc1FpeGhRVUZCTEVOQlFVTXNRMEZCUXp0QlFVVklMRmxCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEzSkVMRmxCUVVFc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkRNMElzVTBGQlFUdEJRVVZFTEZGQlFVRTdRVUZEUlN4WlFVRkJMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzYVVKQlFXbENMRVZCUVVVc1EwRkJRenRCUVVONlF5eFpRVUZCTEZGQlFWRXNRMEZCUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRE8wRkJSWFJDTEZsQlFVRXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1FVRkRNME1zWjBKQlFVRXNTMEZCU3l4RlFVRkZMRkZCUVZFN1FVRkRaaXhuUWtGQlFTeFhRVUZYTEVWQlFVVXNTVUZCU1R0QlFVTnFRaXhuUWtGQlFTeFBRVUZQTEVWQlFVVXNSMEZCUnp0blFrRkRXaXhKUVVGSkxFVkJRVVVzUzBGQlN5eERRVUZETEZWQlFWVTdRVUZEZEVJc1owSkJRVUVzVTBGQlV5eEZRVUZGTEV0QlFVczdRVUZEYUVJc1owSkJRVUVzVlVGQlZTeEZRVUZGTEV0QlFVczdRVUZEYkVJc1lVRkJRU3hEUVVGRExFTkJRVU03UVVGRlNDeFpRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVOdVJDeFpRVUZCTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEzcENMRk5CUVVFN1FVRkZSQ3hSUVVGQk8wRkJRMFVzV1VGQlFTeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMREpDUVVFeVFpeEZRVUZGTEVOQlFVTTdRVUZEYmtRc1dVRkJRU3hSUVVGUkxFTkJRVU1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVVjBRaXhaUVVGQkxFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETzBGQlF6TkRMR2RDUVVGQkxFdEJRVXNzUlVGQlJTeFJRVUZSTzBGQlEyWXNaMEpCUVVFc1UwRkJVeXhGUVVGRkxFdEJRVXM3UVVGRGFFSXNaMEpCUVVFc1ZVRkJWU3hGUVVGRkxFdEJRVXM3UVVGRGJFSXNZVUZCUVN4RFFVRkRMRU5CUVVNN1FVRkZTQ3haUVVGQkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTTVSQ3haUVVGQkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVOMlF5eFpRVUZCTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzBGQlF6VkNMRk5CUVVFN1MwRkRSanRKUVVWTkxFOUJRVThzUjBGQlFUdEJRVU5hTEZGQlFVRXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYWtNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVWcVF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBGQlEyNURMRkZCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkZia01zVVVGQlFTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVU53UXl4UlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMHRCUTNKRE8wRkJSVTBzU1VGQlFTeHBRa0ZCYVVJc1EwRkJReXhMUVVGakxFVkJRVUU3TzBGQlJYSkRMRkZCUVVFc1RVRkJUU3hIUVVGSExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTTdVVUZEZWtRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVOdVF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlJXaERMRkZCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZETjBRc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVOMlF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZET3p0QlFVZHNReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU5FTEUxQlFVa3NRMEZCUXl4RFFVRkRPMEZCUXpWRExGRkJRVUVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4M1FrRkJkMElzUTBGQlEwVXNVVUZCVFN4RFFVRkRMRU5CUVVNN08wRkJSMmhFTEZGQlFVRkJMRkZCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4elFrRkJjMElzUTBGQlEwTXNVVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenM3VVVGSEwwUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZEU0N4TlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOc1F5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU5GTEZGQlFVMHNRMEZCUXl4RFFVRkRPMUZCUlhSRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJRMFlzVFVGQlNTeERRVUZETEVOQlFVTTdVVUZEY0VNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRSU3hSUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU40UXl4UlFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUTBNc1VVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNUdMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenM3VVVGSGJFUXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hWUVVGVkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMEZCUXpsRExGRkJRVUVzU1VGQlNTeE5RVUZOTEVsQlFVa3NTVUZCU1N4SlFVRkpMRlZCUVZVc1JVRkJSVHRaUVVOb1F5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU5HTEUxQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJRMFFzVFVGQlNTeERRVUZETEVOQlFVTTdXVUZEZUVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJRME1zVFVGQlNTeERRVUZETEVOQlFVTTdRVUZETVVNc1dVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOdVF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU5FTEUxQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNSRExGTkJRVUU3TzBGQlIwUXNVVUZCUVN4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRhRU03UVVGRFJqczdRVU16U0VRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRkRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRmJrTTdPenM3T3pzN1FVRlBSenRCUVVOaExGTkJRVUVzYzBKQlFYTkNMRU5CUVVNc1RVRkJjMElzUlVGQlJTeEhRVUZ4UWl4RlFVRkJPMGxCUTJ4R0xFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEY2tRc1NVRkJRU3hQUVVGUExFZEJRVWNzUTBGQlF6dEJRVU5pT3p0QlEyUkJPenM3T3pzN096czdPMEZCVlVjN1FVRkRSeXhUUVVGVkxHMUNRVUZ0UWl4RFFVRkRMRTFCUVhGQ0xFVkJRVUU3U1VGRGRrUXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNaSU96dEJRMlpCT3pzN096czdPenM3UVVGVFJ6dEJRVU5ITEZOQlFWVXNZVUZCWVN4RFFVRkRMRXRCUVdFc1JVRkJRVHRCUVVONlF5eEpRVUZCTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGNFUXNUMEZCVHl4TFFVRkxMRWRCUVVjc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NVMEZCVXl4RFFVRkRPMEZCUXpORE96dEJRMHhCTEUxQlFVMUpMR2xDUVVGbExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZGZWtRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRha01zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGFrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYWtNc1RVRkJUVVlzVVVGQlRTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wRkJRM1JETEUxQlFVMURMRkZCUVUwc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0QlFVTjBReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVOMFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVU4wUXl4TlFVRk5SU3hUUVVGUExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRkZiRU03TzBGQlJVYzdUVUZEVlN4VFFVRlRMRU5CUVVFN1FVRTRRM0JDT3p0QlFVVkhPMEZCUTBnc1NVRkJRU3hKUVVGWExFZEJRVWNzUjBGQlFUdFJRVU5hTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJRenRMUVVOc1FqdEJRVVZFT3p0QlFVVkhPMGxCUTBnc1NVRkJWeXhIUVVGSExFTkJRVU1zUzBGQllTeEZRVUZCTzBGQlF6RkNMRkZCUVVFc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZEYkVJc1VVRkJRU3hKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXp0TFFVTXhRanRCUVU5RU96dEJRVVZITzBGQlEwZ3NTVUZCUVN4SlFVRlhMRXRCUVVzc1IwRkJRVHRSUVVOa0xFOUJRVThzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0TFFVTndRanRCUVVWRU96dEJRVVZITzBsQlEwZ3NTVUZCVnl4TFFVRkxMRU5CUVVNc1MwRkJZU3hGUVVGQk8wRkJRelZDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRGNFSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF6dExRVU14UWp0QlFWbEVPenRCUVVWSE8wRkJRMGdzU1VGQlFTeEpRVUZYTEV0QlFVc3NSMEZCUVR0QlFVTmtMRkZCUVVFc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eDVSRUZCZVVRc1EwRkJReXhEUVVGRE8xRkJSWGhGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRPMHRCUTNwRE8wRkJSVVE3T3pzN08wRkJTMGM3U1VGRFNDeFhRVUZ0UWl4RFFVRkJMRkZCUVhGQ0xFVkJRVVVzVDBGQmVVSXNSVUZCUVR0QlFYWkhia1U3TzBGQlJVYzdRVUZEU1N4UlFVRkJMRWxCUVVFc1EwRkJRU3hyUWtGQmEwSXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVmxvUkRzN096czdRVUZMUnp0UlFVTkpMRWxCUVZVc1EwRkJRU3hWUVVGQkxFZEJRVWNzU1VGQlNTeERRVUZETzBGQlZYcENPenM3TzBGQlNVYzdRVUZEU1N4UlFVRkJMRWxCUVVFc1EwRkJRU3hUUVVGVExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZ2Uld4RUxGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4UlFVRlJMRU5CUVVNN1FVRkRla0lzVVVGQlFTeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJRenRCUVVWMlFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRE8wRkJRMmhDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGJFSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF6dEJRVVY2UWl4UlFVRkJMRWxCUVVrc1EwRkJReXgzUWtGQmQwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6dExRVU4yUmp0QlFVVkVPenM3T3p0QlFVdEhPMEZCUTBrc1NVRkJRU3hSUVVGUkxFTkJRVU1zVFVGQmJVSXNSVUZCUVR0QlFVTnFReXhSUVVGQkxFOUJRVThzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzB0QlF6TkhPMEZCUlVRN096czdPenRCUVUxSE8wRkJRMGtzU1VGQlFTeEpRVUZKTEVOQlFVTXNUVUZCYVVJc1JVRkJRVHRCUVVNelFpeFJRVUZCTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1MwRkJTeXhOUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlEzSkRMRmxCUVVFc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHRSRUZCYlVRc1EwRkJReXhEUVVGRE8wRkJRM1JGTEZOQlFVRTdVVUZGUkN4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMEZCUTNoRUxGRkJRVUVzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRE8wRkJRemxDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzBGQlEzQkRMRkZCUVVFc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEJRVVYwUXl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMkk3UVVGRlJEczdPenRCUVVsSE8wbEJRMGtzUzBGQlN5eEhRVUZCTzBGQlExWXNVVUZCUVN4UFFVRlBMRWxCUVVrc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTTVSRHRCUVVWRU96dEJRVVZITzBsQlEwa3NTMEZCU3l4SFFVRkJPMEZCUTFZc1VVRkJRU3hKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVTm9RaXhSUVVGQkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRPMEZCUTJ4Q0xGRkJRVUVzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1MwRkRNVUk3UVVGRlJEczdPenRCUVVsSE8wRkJRMGtzU1VGQlFTeHpRa0ZCYzBJc1EwRkJReXhOUVVGeFFpeEZRVUZCTzFGQlEycEVMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJSU3hEUVVGRE8wRkJSVzVFTEZGQlFVRXNUMEZCVHl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1MwRkROVVU3UVVGRlJEczdPenM3UVVGTFJ6dEJRVU5KTEVsQlFVRXNkMEpCUVhkQ0xFTkJRVU1zVFVGQmQwSXNSVUZCUVR0UlFVTjBSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR05CUVdNc1EwRkJReXhOUVVGTkxFTkJRVVVzUTBGQlF6dEJRVVZ1UkN4UlFVRkJMRTlCUVU4c2MwSkJRWE5DTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8wdEJRemRETzBGQlJVUTdPenM3UVVGSlJ6dEJRVU5KTEVsQlFVRXNjMEpCUVhOQ0xFTkJRVU1zVFVGQmQwSXNSVUZCUVR0UlFVTndSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU5FTEdsQ1FVRmxMRU5CUVVNc1IwRkJSeXhKUVVGSkxFVkJRVVU3V1VGRE5VUXNUMEZCVHl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlF6VkVMRk5CUVVFN1FVRkZSQ3hSUVVGQkxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRzFDUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVOc1JpeFJRVUZCUXl4VFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhuUWtGQlowSXNSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVVTNSU3hQUVVGUExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTkJMRk5CUVU4c1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU03UzBGRGRFYzdRVUZGUkRzN096dEJRVWxITzBGQlEwa3NTVUZCUVN4MVFrRkJkVUlzUTBGQlF5eE5RVUZ4UWl4RlFVRkJPMEZCUTJ4RUxGRkJRVUVzU1VGQlNTeERRVUZETEhkQ1FVRjNRaXhEUVVGRFJpeFJRVUZOTEVOQlFVTXNRMEZCUXp0QlFVTjBReXhSUVVGQkxFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVVZ3UXl4UlFVRkJMRTlCUVU4c1RVRkJUVHRoUVVOV0xFbEJRVWtzUTBGQlEwTXNhVUpCUVdVc1EwRkJRenRoUVVOeVFpeGxRVUZsTEVOQlFVTkVMRkZCUVUwc1EwRkJRenRoUVVOMlFpeGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRPMkZCUTNaQ0xGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRSU3hUUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzB0QlEzWkRPMEZCUlVRN096czdPenM3TzBGQlVVYzdRVUZEU1N4SlFVRkJMRTFCUVUwc1EwRkJReXhSUVVGMVFpeEZRVUZCT3p0UlFVVnVReXhOUVVGTkxHTkJRV01zUjBGQlIwZ3NVVUZCVFR0QlFVTXhRaXhoUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU03WVVGRGJrTXNVVUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzUTBGQlEwTXNVVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOc1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhsUVVGbExFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN08wRkJSeTlHTEZGQlFVRXNUVUZCVFN4RFFVRkRMRmRCUVZjc1JVRkJSU3haUVVGWkxFTkJRVU1zUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEZUVVc1RVRkJUU3hEUVVGRExGTkJRVk1zUlVGQlJTeFZRVUZWTEVOQlFVTXNSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTXZSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eGhRVUZoTEVOQlFVTXNVMEZCVXl4SFFVRkhMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJRMjVFTEUxQlFVMHNTMEZCU3l4SFFVRkhMR0ZCUVdFc1EwRkJReXhaUVVGWkxFZEJRVWNzVlVGQlZTeERRVUZETEVOQlFVTTdPMUZCUjNaRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlF6RkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRE8wRkJSVGxETEZGQlFVRXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU03UzBGRE1VSTdRVUZGUkRzN096czdRVUZMUnp0QlFVTkpMRWxCUVVFc1RVRkJUU3hEUVVGRExFdEJRV0VzUlVGQlFUdFJRVU42UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVN1FVRkRNVU1zV1VGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5xUkN4VFFVRkJPMUZCUlVRc1NVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTzBGQlEzSkNMRmxCUVVFc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZGTVVJc1dVRkJRU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTndSQ3hUUVVGQk8wdEJRMFk3TzBGQk1WRnpRaXhUUVVGQkxFTkJRVUVzVjBGQlZ5eEhRVUZITEV0QlFVc3NRMEZCUXpzN1FVTm9RamRETEUxQlFVMHNaVUZCWlN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJSWHBFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzBGQlEzUkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMEZCUTNSRExFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVWMFJEczdPMEZCUjBjN1RVRkRWU3h2UWtGQmIwSXNRMEZCUVR0QlFUQkVMMEk3T3pzN096czdPMEZCVVVjN1NVRkRTQ3hYUVVORkxFTkJRVUVzVVVGQmNVSXNSVUZEY2tJc2RVSkJRVEJETEVWQlF6RkRMSFZDUVVFd1F5eEZRVU14UXl4dlFrRkJkVU1zUlVGRGRrTXNhMEpCUVhGRExFVkJRVUU3UVVGRmNrTXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF6dEJRVVY2UWl4UlFVRkJMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNSMEZCUnl4MVFrRkJkVUlzUTBGQlF6dEJRVU4yUkN4UlFVRkJMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNSMEZCUnl4MVFrRkJkVUlzUTBGQlF6dEJRVU4yUkN4UlFVRkJMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNSMEZCUnl4dlFrRkJiMElzUTBGQlF6dEJRVU5xUkN4UlFVRkJMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSMEZCUnl4clFrRkJhMElzUTBGQlF6dEJRVVUzUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhUUVVGVExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdPMUZCUjJ4RUxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0UlFVTXZReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdVVUZEYUVRc1NVRkJTU3hEUVVGRExESkNRVUV5UWl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFGQlF6RkVMRWxCUVVrc1EwRkJReXcwUWtGQk5FSXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVVV6UkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVONFJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0QlFVVXhSQ3hSUVVGQkxFbEJRVWtzVDBGQlR5eEZRVUZGTzFsQlExZ3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03V1VGREwwTXNjMEpCUVhOQ0xFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNRMEZCUXp0QlFVTXpSU3hUUVVGQk8wRkJSVVFzVVVGQlFTeEpRVUZKTEZGQlFWRXNSVUZCUlR0WlFVTmFMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFsQlEycEVMSE5DUVVGelFpeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRlBMRVZCUVVVc1NVRkJTU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNN1FVRkROMFVzVTBGQlFUdExRVU5HTzBGQlJVUTdPenM3TzBGQlMwYzdTVUZEU1N4aFFVRmhMRU5CUVVNc1IwRkJWeXhGUVVGRkxFdEJRV0VzUlVGQlFUdFJRVU0zUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVONFJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGVrVXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPenRCUVVVelJTeFJRVUZCTEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTFnc1NVRkJTU3hMUVVGTExFZEJRVWNzUjBGQlJ5eEZRVUZGTzBGQlEyWXNaMEpCUVVFc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTTVSU3hoUVVGQk8wRkJRVTBzYVVKQlFVRTdRVUZEVEN4blFrRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZETVVVc1lVRkJRVHRaUVVWRUxFbEJRVWtzUjBGQlJ5eEhRVUZITEVkQlFVY3NSVUZCUlR0QlFVTmlMR2RDUVVGQkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRMMFVzWVVGQlFUdEJRVUZOTEdsQ1FVRkJPMEZCUTB3c1owSkJRVUVzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpkRkxHRkJRVUU3UVVGRlJDeFpRVUZCTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRE4wSXNXVUZCUVN4SlFVRkpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN096czdXVUZMY0VNc2FVSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUlhSR0xGbEJRVUVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc01rSkJRVEpDTEVOQlFVTXNRMEZCUXpzN08wRkJTVGxETEZsQlFVRXNUMEZCVHl4RFFVRkRMRlZCUVZVN1FVRkRaaXhwUWtGQlFTeEpRVUZKTEVOQlFVTXNhVUpCUVd0Q0xFTkJRVU1zVlVGQlZTeERRVUZETzJsQ1FVTnVReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEyaENMR2xDUVVGQkxGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1FVRkROVUlzYVVKQlFVRXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMEZCUTNCRExGTkJRVUU3TzBGQlIwUXNVVUZCUVN4SlFVRkpMRkZCUVZFc1JVRkJSVHRaUVVOYUxFbEJRVWtzUzBGQlN5eEhRVUZITEVkQlFVY3NSVUZCUlR0QlFVTm1MR2RDUVVGQkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRPVVVzWVVGQlFUdEJRVUZOTEdsQ1FVRkJPMEZCUTB3c1owSkJRVUVzVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUXpGRkxHRkJRVUU3V1VGRlJDeEpRVUZKTEVkQlFVY3NSMEZCUnl4SFFVRkhMRVZCUVVVN1FVRkRZaXhuUWtGQlFTeFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJReTlGTEdGQlFVRTdRVUZCVFN4cFFrRkJRVHRCUVVOTUxHZENRVUZCTEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVNM1JTeGhRVUZCTzBGQlJVUXNXVUZCUVN4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlF6ZENMRmxCUVVFc1NVRkJTU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE96czdPMWxCUzNCRExHdENRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVWMlJpeFpRVUZCTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNN096dEJRVWt2UXl4WlFVRkJMRkZCUVZFc1EwRkJReXhWUVVGVk8wRkJRMmhDTEdsQ1FVRkJMRWxCUVVrc1EwRkJReXhyUWtGQmJVSXNRMEZCUXl4VlFVRlZMRU5CUVVNN2FVSkJRM0JETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRhRUlzYVVKQlFVRXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dEJRVU0xUWl4cFFrRkJRU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03UVVGRGNrTXNVMEZCUVR0TFFVTkdPMEZCUlVRN08wRkJSVWM3UVVGRFNTeEpRVUZCTEUxQlFVMHNRMEZCUXl4TFFVRnJRaXhGUVVGQk8wRkJRemxDTEZGQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXh2UlVGQmIwVXNRMEZCUXl4RFFVRkRPMUZCUlc1R0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZET1VNc1RVRkJUU3hMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZvUkN4UlFVRkJMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUjBGQlJ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMHRCUTJoRE8wRkJSVVE3T3pzN1FVRkpSenRCUVVOTExFbEJRVUVzYzBKQlFYTkNMRU5CUVVNc1RVRkJkMElzUlVGQlFUdFJRVU55UkN4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1pVRkJaU3hEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTzBGQlF6VkVMRmxCUVVFc1QwRkJUeXhOUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdRVUZETVVJc1UwRkJRVHRCUVVWRUxGRkJRVUVzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRWRCUVVjc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRMnhHTEZGQlFVRXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4RlFVRkZMRWRCUVVjc1owSkJRV2RDTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdRVUZGTjBVc1VVRkJRU3hQUVVGUExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1MwRkRja003TzBGQk9VMUVPenRCUVVWSE8wRkJRMjlDTEc5Q1FVRkpMRU5CUVVFc1NVRkJRU3hIUVVGSExFMUJRVTA3TzBGRGFFSjBRenM3TzBGQlIwYzdUVUZEVlN3d1FrRkJNRUlzUTBGQlFUdEJRV2REY2tNN096czdPenM3TzBGQlVVYzdTVUZEU0N4WFFVTkZMRU5CUVVFc1YwRkJhVU1zUlVGRGFrTXNkVUpCUVRCRExFVkJRekZETEhWQ1FVRXdReXhGUVVNeFF5eHZRa0ZCZFVNc1JVRkRka01zYTBKQlFYRkRMRVZCUVVFN1FVRkZja01zVVVGQlFTeEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJRenRCUVVVdlFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUjBGQlJ5eDFRa0ZCZFVJc1EwRkJRenRCUVVOMlJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUjBGQlJ5eDFRa0ZCZFVJc1EwRkJRenRCUVVOMlJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJRenRCUVVOcVJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUjBGQlJ5eHJRa0ZCYTBJc1EwRkJRenRMUVVNNVF6dEJRVVZFT3pzN096dEJRVXRITzBsQlEwa3NZVUZCWVN4RFFVRkRMRWRCUVZjc1JVRkJSU3hMUVVGaExFVkJRVUU3VVVGRE4wTXNTVUZCU1N4TFFVRkxMRWRCUVVjc1IwRkJSeXhGUVVGRk8xbEJRMllzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlF6TkRMRmxCUVVFc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkZMRk5CUVVFN1FVRkJUU3hoUVVGQk8xbEJRMHdzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlEzcERMRmxCUVVFc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUlN4VFFVRkJPMUZCUlVRc1NVRkJTU3hIUVVGSExFZEJRVWNzUjBGQlJ5eEZRVUZGTzFsQlEySXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpORExGbEJRVUVzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhGUVVGRkxFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJoR0xGTkJRVUU3UVVGQlRTeGhRVUZCTzFsQlEwd3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpWRExGbEJRVUVzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVSU3hUUVVGQk8wdEJRMFk3UVVGRlJEczdRVUZGUnp0QlFVTkpMRWxCUVVFc1RVRkJUU3hEUVVGRExFdEJRV3RDTEVWQlFVRTdRVUZET1VJc1VVRkJRU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEc5RlFVRnZSU3hEUVVGRExFTkJRVU03VVVGRmJrWXNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNNVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUldoRUxGRkJRVUVzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGFFTTdPMEZCZWtaRU96dEJRVVZITzBGQlEyOUNMREJDUVVGSkxFTkJRVUVzU1VGQlFTeEhRVUZITEZsQlFWazdPMDFEV0M5Q0xHbENRVUZwUWl4RFFVRkJPMEZCV1RWQ096czdPenRCUVV0SE8wbEJRMGdzVjBGQmJVSXNRMEZCUVN4aFFVRnhRaXhGUVVGRkxGZEJRVzFDTEVWQlFVRTdRVUZETTBRc1VVRkJRU3hKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEdGQlFXRXNRMEZCUXp0QlFVTnVReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPMHRCUTJoRE8wRkJSVVE3T3p0QlFVZEhPMEZCUTBrc1NVRkJRU3hIUVVGSExFTkJRVU1zUjBGQlZ5eEZRVUZCTzBGQlEzQkNMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzB0QlF6bEVPMEZCUTBZN08wRkRha0pFT3p0QlFVVkhPMEZCUTBnc1RVRkJUVW9zZDBKQlFYTkNMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVVMVJEczdPMEZCUjBjN1FVRkRTQ3hOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRWxCUVVrc1EwRkJRenRCUVVWeVF6czdRVUZGUnp0TlFVTlZMSEZDUVVGeFFpeERRVUZCTzBGQlZXaERMRWxCUVVFc1NVRkJWeXhKUVVGSkxFZEJRVUU3TzBGQlJXSXNVVUZCUVN4UFFVRlBMSFZDUVVGMVFpeERRVUZETzB0QlEyaERPMGxCUlVRc1YwRkJiVUlzUTBGQlFTeE5RVUZyUWl4RlFVRkZMRTlCUVhORExFVkJRVUU3UVVGRE0wVXNVVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF6dFJRVVZ5UWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hIUVVGSExFOUJRVThzUzBGQlFTeEpRVUZCTEVsQlFWQXNUMEZCVHl4TFFVRlFMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEU5QlFVOHNRMEZCUlN4VlFVRlZMRU5CUVVNN1MwRkRka003UVVGRldTeEpRVUZCTEZOQlFWTXNRMEZCUXl4SlFVRlZMRVZCUVVFN08wRkJReTlDTEZsQlFVRXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZ6UXl4RFFVRkRPenM3V1VGSmVrVXNTVUZCU1N4WFFVRlhMRXRCUVVzc1NVRkJTU3hGUVVGRk8yZENRVU40UWl4UFFVRlBPMEZCUTFJc1lVRkJRVHRwUWtGQlRTeEpRVUZKTEZkQlFWY3NTMEZCU3l4VFFVRlRMRVZCUVVVN1FVRkRjRU1zWjBKQlFVRXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXhuUjBGQlowY3NRMEZCUXl4RFFVRkRPMEZCUTI1SUxHRkJRVUU3UVVGRlJDeFpRVUZCTEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4dlFrRkJkMFFzUTBGQlF6dFpRVVZ3Unl4SlFVRkpMRzlDUVVGdlFpeExRVUZMTEVsQlFVa3NSVUZCUlR0blFrRkRha01zVDBGQlR6dEJRVU5TTEdGQlFVRTdhVUpCUVUwc1NVRkJTU3h2UWtGQmIwSXNTMEZCU3l4VFFVRlRMRVZCUVVVN1FVRkROME1zWjBKQlFVRXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkRZaXd5UjBGQk1rY3NRMEZETlVjc1EwRkJRenRCUVVOSUxHRkJRVUU3UVVGRlJDeFpRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1YwRkJWeXhGUVVGRkxHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNN1UwRkRka1lzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZCUVR0QlFVVkVPenM3T3pzN1FVRk5SenRCUVVOWExFbEJRVUVzVDBGQlR5eERRVU51UWl4SlFVRlZMRVZCUTFZc1VVRkJORUlzUlVGRE5VSXNWMEZCZDBNc1JVRkJRVHM3UVVGRmVFTXNXVUZCUVN4SlFVRkpMRkZCUVZFc1NVRkJTU3hKUVVGSkxFbEJRVWtzVjBGQlZ5eEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTXpReXhuUWtGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMEZCUTI1RkxGbEJRVUVzU1VGQlNTeFJRVUZSTEVWQlFVVTdRVUZEV2l4blFrRkJRU3hQUVVGUExGRkJRVkVzUTBGQlF6dEJRVU5xUWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0QlFVTnVSU3haUVVGQkxFbEJRVWtzVVVGQlVTeEZRVUZGTzBGQlExb3NaMEpCUVVFc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGFrSXNZVUZCUVR0QlFVVkVMRmxCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03VTBGRFlpeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVRkJPMEZCUldFc1NVRkJRU3hUUVVGVExFTkJRM0pDTEVsQlFWVXNSVUZEVml4UlFVRnhRaXhGUVVOeVFpeFhRVUZwUXl4RlFVRkJPenM3UVVGRmFrTXNXVUZCUVN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFYZENMRU5CUVVNN08wRkJSMnhFTEZsQlFVRXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4TlFVRkZMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOc1JTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZPMEZCUTJRc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMWxCUlVRc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eFZRVUZWTEVOQlFXOURMRU5CUVVNN1dVRkRia1lzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlR0QlFVTmtMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVMRmxCUVVFc1RVRkJUU3hYUVVGWExFZEJRVWNzVTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXp0QlFVTXhReXhaUVVGQkxFbEJRVWtzUTBGQlEwRXNkMEpCUVhOQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4RlFVRkZPMEZCUXpWRExHZENRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc2QwUkJRWGRFTEZkQlFWY3NRMEZCUVN4RFFVRkJMRU5CUVVjc1EwRkJReXhEUVVGRE8wRkJRM0pHTEdkQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMklzWVVGQlFUdEJRVVZFTEZsQlFVRXNUVUZCVFN4WlFVRlpMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF6dFpRVU4wUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRk8wRkJRMnBDTEdkQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMklzWVVGQlFUdEJRVVZFTEZsQlFVRXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eFpRVUZaTEVOQlFVTXNTVUZCU1N4TFFVRkxMRmxCUVZrc1IwRkJSeXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETzBGQlJUTkZMRmxCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGbEJRVmtzUTBGQlF5eDFRa0ZCZFVJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMEZCUXk5R0xGbEJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZsQlFWa3NRMEZCUXl4MVFrRkJkVUlzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8wRkJReTlHTEZsQlFVRXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRmxCUVZrc1EwRkJReXh2UWtGQmIwSXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzBGQlF6VkdMRmxCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGbEJRVmtzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMEZCUlRGR0xGbEJRVUVzU1VGQlNTeFBRVUZQTEVOQlFVTTdRVUZGV2l4WlFVRkJMRWxCUVVrc1dVRkJXU3hEUVVGRExFbEJRVWtzUzBGQlN5eFpRVUZaTEVWQlFVVTdRVUZEZEVNc1owSkJRVUVzVDBGQlR5eEhRVUZITEVsQlFVa3NNRUpCUVRCQ0xFTkJRVU1zVjBGQlZ5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEyNUdMR0ZCUVVFN1FVRkJUU3hwUWtGQlFUdEJRVU5NTEdkQ1FVRkJMRTlCUVU4c1IwRkJSeXhKUVVGSkxHOUNRVUZ2UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVNeFJTeGhRVUZCTzFsQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkZja1FzV1VGQlFTeE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVRXNSVUZCUVN4SFFVRkJMRmxCUVZrc1EwRkJReXhyUWtGQmEwSXNUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkRMRWRCUVVjc1JVRkJSU3hKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVjZSaXhaUVVGQkxFOUJRVThzVFVGQlRTeERRVUZET3p0QlFVTm1MRXRCUVVFN1NVRkZUeXhwUWtGQmFVSXNRMEZEZGtJc1kwRkJjMFFzUlVGRGRFUXNhMEpCUVRCQ0xFVkJRVUU3TzBGQlJURkNMRkZCUVVFc1NVRkJTU3hoUVVGaExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNZMEZCWXl4TFFVRmtMRWxCUVVFc1NVRkJRU3hqUVVGakxFdEJRV1FzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1kwRkJZeXhEUVVGRkxHRkJRV0VzVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTTdRVUZETVVRc1VVRkJRU3hOUVVGTkxGZEJRVmNzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4alFVRmpMRXRCUVdRc1NVRkJRU3hKUVVGQkxHTkJRV01zUzBGQlpDeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hqUVVGakxFTkJRVVVzVjBGQlZ5eE5RVUZKTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZCTEd0Q1FVRnJRaXhEUVVGRE96czdPMUZCUzNSRkxFbEJRVWtzWVVGQllTeEhRVUZITEhWQ1FVRjFRaXhGUVVGRk8wRkJRek5ETEZsQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRWaXh4UjBGQmNVY3NRMEZEZEVjc1EwRkJRenRaUVVOR0xHRkJRV0VzUjBGQlJ5eDFRa0ZCZFVJc1EwRkJRenRCUVVONlF5eFRRVUZCTzBGQlJVUXNVVUZCUVN4UFFVRlBMRWxCUVVrc2FVSkJRV2xDTEVOQlFVTXNZVUZCWVN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8wdEJRekZFTzBGQlJXRXNTVUZCUVN4VFFVRlRMRU5CUTNKQ0xFbEJRVlVzUlVGRFZpeFJRVUZ4UWl4RlFVTnlRaXhYUVVGcFF5eEZRVUZCT3pzN1FVRkZha01zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdPMWxCUjJ4RUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVVXNSMEZCTkVJc1EwRkJRenRaUVVNM1JDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZPMEZCUTFnc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU03V1VGRE4wTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTzBGQlEzUkNMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVMRmxCUVVFc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eGpRVUZqTEV0QlFVc3NXVUZCV1N4SFFVRkhMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRk1VWXNXVUZCUVN4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNjVUpCUVhGQ0xFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVOdVJ5eFpRVUZCTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMEZCUTI1SExGbEJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRExHdENRVUZyUWl4RlFVRkZMR3RDUVVGclFpeERRVUZETEVOQlFVTTdRVUZEYUVjc1dVRkJRU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dEJRVVU1Uml4WlFVRkJMRWxCUVVrc1QwRkJUeXhEUVVGRE8wRkJSVm9zV1VGQlFTeEpRVUZKTEdsQ1FVRnBRaXhEUVVGRExHTkJRV01zUzBGQlN5eFpRVUZaTEVWQlFVVTdRVUZEY2tRc1owSkJRVUVzVDBGQlR5eEhRVUZITEVsQlFVa3NNRUpCUVRCQ0xFTkJRVU1zVjBGQlZ5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEyNUdMR0ZCUVVFN1FVRkJUU3hwUWtGQlFUdEJRVU5NTEdkQ1FVRkJMRTlCUVU4c1IwRkJSeXhKUVVGSkxHOUNRVUZ2UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVNeFJTeGhRVUZCTzFsQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkZja1FzU1VGQlNTeHBRa0ZCYVVJc1EwRkJReXh4UWtGQmNVSXNSVUZCUlR0QlFVTXpReXhuUWtGQlFTeE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eERRVU16UWl4RFFVRkJMRVZCUVVFc1IwRkJRU3hwUWtGQmFVSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVa3NSMEZCUnl4RlFVTm9SQ3hOUVVGQkxHbENRVUZwUWl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTXNUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4SlFVRkpMRVZCUTJwRUxFVkJRVVVzUTBGQlFTeEZRVUZCTEVkQlFVRXNhVUpCUVdsQ0xFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJReXhOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGSkxFZEJRVWNzUTBGQlF5eERRVU53UkN4RFFVRkRPMEZCUTBnc1lVRkJRVHRCUVVGTkxHbENRVUZCTzJkQ1FVTk1MRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTXZReXhoUVVGQk96dEJRVWRFTEZsQlFVRXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSWEpETEVsQlFVa3NUMEZCVHl4WlFVRlpMRzlDUVVGdlFpeEZRVUZGTzBGQlF6TkRMR2RDUVVGQkxFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTjJReXhoUVVGQk8wRkJSVVFzV1VGQlFTeFBRVUZQTEUxQlFVMHNRMEZCUXpzN1FVRkRaaXhMUVVGQk8wbEJSVThzYTBKQlFXdENMRU5CUTNoQ0xHVkJRWFZFTEVWQlEzWkVMR3RDUVVFd1FpeEZRVUZCT3p0UlFVVXhRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eGxRVUZsTEV0QlFVRXNTVUZCUVN4SlFVRm1MR1ZCUVdVc1MwRkJaaXhMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4bFFVRmxMRU5CUVVVc1MwRkJTeXhEUVVGRE8xRkJRM0pETEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eHRRa0ZCYlVJc1JVRkJSVHRCUVVOcVJDeFpRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owVkJRV2RGTEVOQlFVTXNRMEZCUXp0QlFVTm9SaXhUUVVGQk8wRkJSVVFzVVVGQlFTeEpRVUZKTEUxQlFVMHNSMEZCUnl4RFFVRkJMRVZCUVVFc1IwRkJRU3hsUVVGbExFdEJRV1lzU1VGQlFTeEpRVUZCTEdWQlFXVXNTMEZCWml4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeGxRVUZsTEVOQlFVVXNUVUZCVFN4TlFVRkpMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVrc1EwRkJRenRCUVVNM1F5eFJRVUZCTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxHVkJRV1VzUzBGQlppeEpRVUZCTEVsQlFVRXNaVUZCWlN4TFFVRm1MRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEdWQlFXVXNRMEZCUlN4TlFVRk5MRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc2EwSkJRV3RDTEVOQlFVTTdPenM3VVVGTE4wUXNTVUZCU1N4TlFVRk5MRWRCUVVjc2RVSkJRWFZDTEVWQlFVVTdRVUZEY0VNc1dVRkJRU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEdkSFFVRm5SeXhEUVVGRExFTkJRVU03V1VGREwwY3NUVUZCVFN4SFFVRkhMSFZDUVVGMVFpeERRVUZETzBGQlEyeERMRk5CUVVFN1FVRkZSQ3hSUVVGQkxFOUJRVThzU1VGQlNTeHBRa0ZCYVVJc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdTMEZET1VNN1NVRkZUeXhoUVVGaExFTkJRVU1zVVVGQmNVSXNSVUZCUlN4UFFVRjVRaXhGUVVGQk8xRkJRM0JGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1UwRkJVeXhEUVVGRExGRkJRVkVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVm9SQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVTdRVUZEYmtJc1dVRkJRU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEdWQlFXVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNelF5eFpRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFsQlF6VkNMRTFCUVUwc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNN1FVRkRiRVFzVTBGQlFUdEJRVVZFTEZGQlFVRXNUMEZCVHl4TlFVRk5MRU5CUVVNN1MwRkRaanRCUVVOR096dEJRM1pSUkR0QlFVVkJPenRCUVVWSE8wRkJRMVVzVFVGQlFTeHBRa0ZCYVVJc1IwRkJSenRCUVVNdlFpeEpRVUZCTEVsQlFVa3NSVUZCUlN4TlFVRk5PMEZCUTFvc1NVRkJRU3hWUVVGVkxFVkJRVVVzV1VGQldUczdPMEZEVURGQ096dEJRVVZITzBGQlEyRXNVMEZCUVN4VlFVRlZMRU5CUVVNc1IwRkJWeXhGUVVGRkxFbEJRVmtzUlVGQlFUczdRVUZGYkVRc1NVRkJRU3hKUVVGSkxFOUJRVThzUjBGQlJ5eExRVUZMTEZGQlFWRXNTVUZCU1N4SFFVRkhMRXRCUVVzc1JVRkJSVHRCUVVGRkxGRkJRVUVzVDBGQlR5eEZRVUZGTEVOQlFVTTdPMEZCUjNKRUxFbEJRVUVzU1VGQlNTeGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVN1VVRkRha1FzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc2QwSkJRWGRDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRja1FzUzBGQlFUczdRVUZIUkN4SlFVRkJMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVGRkxGRkJRVUVzVDBGQlR5eEhRVUZITEVOQlFVTTdPMEZCUnpkRExFbEJRVUVzU1VGQlNTeGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVGRkxGRkJRVUVzVDBGQlR5eEhRVUZITEVOQlFVTTdPMEZCUnpGRExFbEJRVUVzU1VGQlNTeFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJRenRCUVVGRkxGRkJRVUVzVDBGQlR5eEhRVUZITEVOQlFVTTdPMGxCUjNaRExFOUJRVThzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVTndRanM3UVVOYVFUczdRVUZGUnp0QlFVTklMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVTFSRHM3UVVGRlJ6dE5RVU5WTEcxQ1FVRnRRaXhEUVVGQk8wRkJkVUk1UWl4SlFVRkJMRWxCUVZjc1NVRkJTU3hIUVVGQk96dEJRVVZpTEZGQlFVRXNUMEZCVHl4eFFrRkJjVUlzUTBGQlF6dExRVU01UWp0SlFVVkVMRmRCUVcxQ0xFTkJRVUVzVFVGQmEwSXNSVUZCUlN4UFFVRnZReXhGUVVGQk96dEJRVU42UlN4UlFVRkJMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzBGQlJYSkNMRkZCUVVFc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFOUJRVThzUzBGQlFTeEpRVUZCTEVsQlFWQXNUMEZCVHl4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZRTEU5QlFVOHNRMEZCUlN4clFrRkJhMElzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlNTeEpRVUZKTEVOQlFVTTdRVUZET1VRc1VVRkJRU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVDBGQlR5eExRVUZRTEVsQlFVRXNTVUZCUVN4UFFVRlBMRXRCUVZBc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNUMEZCVHl4RFFVRkZMR2xDUVVGcFFpeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZKTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zUTBGQlF6dEJRVU42Uml4UlFVRkJMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNUMEZCVHl4TFFVRkJMRWxCUVVFc1NVRkJVQ3hQUVVGUExFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVZBc1QwRkJUeXhEUVVGRkxGbEJRVmtzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlNTeEpRVUZKTEVOQlFVTTdTMEZEYmtRN1FVRkZXU3hKUVVGQkxGTkJRVk1zUTBGQlF5eEpRVUZWTEVWQlFVRTdPMEZCUXk5Q0xGbEJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMU5CUTJ4RUxFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlFVRTdRVUZGWVN4SlFVRkJMRTlCUVU4c1EwRkJReXhKUVVGVkxFVkJRVUU3TzFsQlF6bENMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNMVF5eEpRVUZKTEZGQlFWRXNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRjRUlzWjBKQlFVRXNUMEZCVHl4UlFVRlJMRU5CUVVNN1FVRkRha0lzWVVGQlFUdFpRVVZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTTFReXhKUVVGSkxGRkJRVkVzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEY0VJc1owSkJRVUVzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYWtJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdVMEZEWWl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVGQk8wRkJSV0VzU1VGQlFTeFRRVUZUTEVOQlFVTXNTVUZCVlN4RlFVRkJPenM3UVVGRGFFTXNXVUZCUVN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFYZENMRU5CUVVNN08wRkJSMnhFTEZsQlFVRXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4TlFVRkZMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOc1JTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZPMEZCUTJRc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMWxCUlVRc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eFZRVUZWTEVOQlFXOURMRU5CUVVNN1dVRkRia1lzU1VGQlNTeFRRVUZUTEVsQlFVa3NTVUZCU1N4RlFVRkZPMEZCUTNKQ0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVFVGQlRTeFhRVUZYTEVkQlFVY3NVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRCUVVNeFF5eFpRVUZCTEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVN1FVRkROVU1zWjBKQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXh6UkVGQmMwUXNWMEZCVnl4RFFVRkJMRU5CUVVFc1EwRkJSeXhEUVVGRExFTkJRVU03UVVGRGJrWXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzBGQlJVUXNXVUZCUVN4TlFVRk5MRlZCUVZVc1IwRkJSeXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETzFsQlEyeERMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVU3UVVGRFppeG5Ra0ZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOaUxHRkJRVUU3TzBGQlIwUXNXVUZCUVN4TlFVRk5MRlZCUVZVc1IwRkJSeXhWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETzFsQlEzcERMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1FVRkROMFFzV1VGQlFTeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZPMEZCUTNwRExHZENRVUZCTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2VVTkJRWGxETEZWQlFWVXNRMEZCUVN4cFFrRkJRU3hEUVVGdFFpeERRVUZETEVOQlFVTTdRVUZEZWtZc1lVRkJRVHRaUVVWRUxFbEJRVWtzWTBGQll5eEhRVUZwUXl4VFFVRlRMRU5CUVVNN1dVRkROMFFzU1VGQlNTeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFbEJRVWtzVlVGQlZTeERRVUZETEdOQlFXTXNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRhRVVzWjBKQlFVRXNZMEZCWXl4SFFVRkhMRU5CUVVFc1JVRkJRU3hKUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGVkJRVlVzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkpMRk5CUVZNc1EwRkJRenRCUVVONlJpeGhRVUZCTzFsQlJVUXNUMEZCVHp0QlFVTk1MR2RDUVVGQkxGZEJRVmNzUlVGQlJTeEhRVUZITzJkQ1FVTm9RaXhKUVVGSkxFVkJRVVVzVlVGQlZTeERRVUZETEVsQlFVazdaMEpCUTNKQ0xFOUJRVThzUlVGQlJTeFZRVUZWTEVOQlFVTXNUMEZCVHp0blFrRkRNMElzVDBGQlR5eEZRVUZGTEZWQlFWVXNRMEZCUXl4UFFVRlBPMmRDUVVNelFpeHZRa0ZCYjBJc1JVRkJSU3hWUVVGVkxFTkJRVU1zYjBKQlFXOUNPMmRDUVVOeVJDeHJRa0ZCYTBJc1JVRkJSU3hWUVVGVkxFTkJRVU1zYTBKQlFXdENPMmRDUVVOcVJDeFZRVUZWTEVWQlFVVXNWVUZCVlN4RFFVRkRMRlZCUVZVN1owSkJRMnBETEd0Q1FVRnJRaXhGUVVGRkxGVkJRVlVzUTBGQlF5eHJRa0ZCYTBJN1owSkJRMnBFTEdOQlFXTTdaMEpCUTJRc1ZVRkJWU3hGUVVGRkxGVkJRVlVzUTBGQlF5eFZRVUZWTzJkQ1FVTnFReXhuUWtGQlowSXNSVUZCUlN4VlFVRlZMRU5CUVVNc1owSkJRV2RDTzJkQ1FVTTNReXcwUWtGQk5FSXNSVUZCUlN4VlFVRlZMRU5CUVVNc05FSkJRVFJDTzJkQ1FVTnlSU3d5UWtGQk1rSXNSVUZCUlN4VlFVRlZMRU5CUVVNc01rSkJRVEpDTzJkQ1FVTnVSU3hsUVVGbExFVkJRVVVzVlVGQlZTeERRVUZETEdWQlFXVTdaMEpCUXpORExEaENRVUU0UWl4RlFVRkZMRlZCUVZVc1EwRkJReXc0UWtGQk9FSTdaMEpCUTNwRkxEQkNRVUV3UWl4RlFVRkZMRlZCUVZVc1EwRkJReXd3UWtGQk1FSTdaMEpCUTJwRkxHTkJRV01zUlVGQlJTeFZRVUZWTEVOQlFVTXNZMEZCWXp0blFrRkRla01zYlVKQlFXMUNMRVZCUVVVc1ZVRkJWU3hEUVVGRExHMUNRVUZ0UWp0blFrRkRia1FzV1VGQldTeEZRVUZGTEZWQlFWVXNRMEZCUXl4WlFVRlpPMmRDUVVOeVF5eGxRVUZsTEVWQlFVVXNWVUZCVlN4RFFVRkRMR1ZCUVdVN1lVRkROVU1zUTBGQlF6czdRVUZEU0N4TFFVRkJPMEZCUldFc1NVRkJRU3hUUVVGVExFTkJRVU1zU1VGQlZTeEZRVUZCT3pzN1FVRkRhRU1zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdPMWxCUjJ4RUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVVXNSMEZCTkVJc1EwRkJRenRaUVVNM1JDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZPMEZCUTFnc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUXk5Q0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVTdRVUZEWml4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdPMEZCUjBRc1dVRkJRU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlR0QlFVTjBRaXhuUWtGQlFTeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRGhGUVVFNFJTeERRVUZETEVOQlFVTTdRVUZEYWtjc1lVRkJRVHM3UVVGSFJDeFpRVUZCTEVsQlFVa3NUMEZCZVVNc1EwRkJRenRCUVVNNVF5eFpRVUZCTEVsQlFVa3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEpRVUZKTEZWQlFWVXNRMEZCUXl4UFFVRlBMRWxCUVVrc1NVRkJTU3hKUVVGSkxGVkJRVlVzUTBGQlF5eFBRVUZQTEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN1FVRkRkRVlzWjBKQlFVRXNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNVMEZCVXl4RlFVRkZMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU14UlN4aFFVRkJPMWxCUlVRc1QwRkJUenRCUVVOTUxHZENRVUZCTEZkQlFWY3NSVUZCUlN4SFFVRkhPMmRDUVVOb1FpeGxRVUZsTEVWQlFVVXNWVUZCVlN4RFFVRkRMR1ZCUVdVN1owSkJRek5ETEUxQlFVMHNSVUZCUlN4VlFVRlZMRU5CUVVNc1RVRkJUVHRuUWtGRGVrSXNiMEpCUVc5Q0xFVkJRVVVzVlVGQlZTeERRVUZETEc5Q1FVRnZRanRuUWtGRGNrUXNhMEpCUVd0Q0xFVkJRVVVzVlVGQlZTeERRVUZETEd0Q1FVRnJRanRuUWtGRGFrUXNWMEZCVnl4RlFVRkZMRlZCUVZVc1EwRkJReXhYUVVGWE8yZENRVU51UXl4bFFVRmxMRVZCUVVVc1ZVRkJWU3hEUVVGRExHVkJRV1U3WjBKQlF6TkRMR3RDUVVGclFpeEZRVUZGTEZWQlFWVXNRMEZCUXl4clFrRkJhMEk3WjBKQlEycEVMRk5CUVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zVTBGQlV6dG5Ra0ZETDBJc1owSkJRV2RDTEVWQlFVVXNWVUZCVlN4RFFVRkRMR2RDUVVGblFqdEJRVU0zUXl4blFrRkJRU3hQUVVGUExFVkJRVVVzVDBGQlR5eExRVUZCTEVsQlFVRXNTVUZCVUN4UFFVRlBMRXRCUVZBc1MwRkJRU3hEUVVGQkxFZEJRVUVzVDBGQlR5eEhRVUZKTEZOQlFWTTdaMEpCUXpkQ0xFdEJRVXNzUlVGQlJTeFZRVUZWTEVOQlFVTXNTMEZCU3p0blFrRkRka0lzVDBGQlR5eEZRVUZGTEZWQlFWVXNRMEZCUXl4UFFVRlBPMmRDUVVNelFpeHBRa0ZCYVVJc1JVRkJSU3hWUVVGVkxFTkJRVU1zYVVKQlFXbENPMkZCUTJoRUxFTkJRVU03TzBGQlEwZ3NTMEZCUVR0QlFVVmhMRWxCUVVFc2FVSkJRV2xDTEVOQlFVTXNTMEZCWVN4RlFVRkJPenM3UVVGRE0wTXNXVUZCUVN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFYZENMRU5CUVVNN1dVRkZiRVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3hEUVVGRExFMUJRVTBzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVWd1F5eEpRVUZKTEUxQlFVMHNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRiRUlzWjBKQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRWaXc0UTBGQk9FTXNTMEZCU3l4RFFVRkJMRzlFUVVGQkxFTkJRWE5FTEVOQlF6RkhMRU5CUVVNN1FVRkRSaXhuUWtGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMR0ZCUVVFN096dEJRVXRFTEZsQlFVRXNTVUZCU1N4VFFVRlRMRWRCUVhWQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTTdPMEZCUnk5RExGbEJRVUVzU1VGQlNTeE5RVUZOTEVOQlFVTXNWVUZCVlN4SlFVRkpMRWxCUVVrc1JVRkJSVHRCUVVNM1FpeG5Ra0ZCUVN4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkRMRmxCUVZrc1JVRkJSU3hOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdRVUZEY0VZc1owSkJRVUVzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU12UkN4blFrRkJRU3hUUVVGVExFZEJRVWNzUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOMlF5eGhRVUZCTzFsQlJVUXNTVUZCU1N4VFFVRlRMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRM0pDTEdkQ1FVRkJMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRMVlzT0VOQlFUaERMRXRCUVVzc1EwRkJRU3cyUkVGQlFTeERRVUVyUkN4RFFVTnVTQ3hEUVVGRE8wRkJRMFlzWjBKQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhoUVVGQk8wRkJSVVFzV1VGQlFTeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU4yUXl4UFFVRlBMRTFCUVUwc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RlFVRkhMRWxCUVVrc1EwRkJReXhOUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eExRVUZKTzBGQlEzUkhMR2RDUVVGQkxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRja0lzWjBKQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXgxUkVGQmRVUXNRMEZCUXl4RFFVRkRPMEZCUTNSRkxHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJRc1lVRkJReXhEUVVGRExFTkJRVU03TzBGQlEwb3NTMEZCUVR0QlFVTkdPenRCUXk5TlJEczdPMEZCUjBjN1RVRkRWU3hQUVVGUExFTkJRVUU3UVVGelEyeENPenM3TzBGQlNVYzdRVUZEU0N4SlFVRkJMRmRCUVVFc1EwRkJiVUlzVFVGQmVVSXNSVUZCUVR0QlFVTXhReXhSUVVGQkxFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVNeFFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF6dEJRVU40UWl4UlFVRkJMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXp0QlFVTm9ReXhSUVVGQkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhOUVVGTkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1FVRkRiRVFzVVVGQlFTeEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU03UVVGRGRFTXNVVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTTdTMEZETjBJN1FVRkZSRHM3T3pzN08wRkJUVWM3UVVGRFNTeEpRVUZCTEUxQlFVMHNRMEZCUXl4TFFVRmhMRVZCUVVFN1FVRkRla0lzVVVGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8xRkJSWFpDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHRCUVVObUxGbEJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRE0wSXNVMEZCUVR0UlFVVkVMRWxCUVVrc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RlFVRkZPMEZCUXpGQ0xGbEJRVUVzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlEycERMRk5CUVVFN1MwRkRSanRCUVVOR096dE5RM1pGV1N4dFFrRkJiVUlzUTBGQlFUdEJRVU01UWl4SlFVRkJMRWxCUVZjc1NVRkJTU3hIUVVGQk96dEJRVVZpTEZGQlFVRXNUMEZCVHl4VlFVRlZMRU5CUVVNN1MwRkRia0k3U1VGVlJDeFhRVUZ0UWl4RFFVRkJMRTFCUVd0Q0xFVkJRVVVzVDBGQmIwTXNSVUZCUVRzN1FVRkRla1VzVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVWeVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4UFFVRlBMRXRCUVVFc1NVRkJRU3hKUVVGUUxFOUJRVThzUzBGQlVDeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hQUVVGUExFTkJRVVVzVlVGQlZTeERRVUZETzFGQlEzWkRMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NUMEZCVHl4TFFVRkJMRWxCUVVFc1NVRkJVQ3hQUVVGUExFdEJRVkFzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1QwRkJUeXhEUVVGRkxHOUNRVUZ2UWl4RFFVRkRPMEZCUlRORUxGRkJRVUVzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEU5QlFVOHNZVUZCVUN4UFFVRlBMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFWQXNUMEZCVHl4RFFVRkZMR2RDUVVGblFpeE5RVUZKTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NlVUpCUVhsQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZETTBZc1VVRkJRU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVDBGQlR5eGhRVUZRTEU5QlFVOHNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlVDeFBRVUZQTEVOQlFVVXNhVUpCUVdsQ0xFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTd3dRa0ZCTUVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU01Uml4UlFVRkJMRWxCUVVrc1EwRkJReXhqUVVGak8wRkJRMnBDTEZsQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc1QwRkJUeXhMUVVGUUxFbEJRVUVzU1VGQlFTeFBRVUZQTEhWQ1FVRlFMRTlCUVU4c1EwRkJSU3hqUVVGakxFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeDFRa0ZCZFVJc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeFZRVUZWTEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzWkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNUMEZCVHl4TFFVRlFMRWxCUVVFc1NVRkJRU3hQUVVGUExIVkNRVUZRTEU5QlFVOHNRMEZCUlN4WlFVRlpMRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3h4UWtGQmNVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlF5OUdMRkZCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4UFFVRlBMR0ZCUVZBc1QwRkJUeXhMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRlFMRTlCUVU4c1EwRkJSU3hWUVVGVkxFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dExRVU14UlR0QlFVVlpMRWxCUVVFc1UwRkJVeXhEUVVGRExFbEJRVlVzUlVGQlFUczdXVUZETDBJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOMFF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF6RkRMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU0xUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTNoRExFMUJRVTBzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVVTNReXhaUVVGQkxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJlVUlzUTBGQlF6dEJRVU55UkN4WlFVRkJMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCYVVNc1EwRkJRenM3TzFsQlNXcEZMRWxCUVVrc1NVRkJTU3hKUVVGSkxGRkJRVkVzUlVGQlJUdEJRVU53UWl4blFrRkJRU3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXp0dlFrRkRNVUlzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxPMEZCUTJwQ0xHOUNRVUZCTEdsQ1FVRnBRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNiMEpCUVc5Q08wRkJRM0pFTEc5Q1FVRkJMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTTdiMEpCUTNwRExGRkJRVkU3UVVGRFVpeHZRa0ZCUVN4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTzI5Q1FVTXZRaXhKUVVGSk8wRkJRMHdzYVVKQlFVRXNRMEZCUXl4RFFVRkRPMEZCUlVnc1owSkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRE8wRkJRMnBETEdGQlFVRTdVMEZEUml4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVGQk8wRkJRMFk3T3pzN0luMD1cbiIsImltcG9ydCB7IFZSTUxvb2tBdCB9IGZyb20gJ0BwaXhpdi90aHJlZS12cm0tY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IFJBRDJERUcgPSAxODAgLyBNYXRoLlBJO1xuXG5jb25zdCBfZXVsZXJBID0gLypAX19QVVJFX18qLyBuZXcgVEhSRUUuRXVsZXIoKTtcblxuZXhwb3J0IGNsYXNzIFZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSBleHRlbmRzIFRIUkVFLk9iamVjdDNEIHtcbiAgcHVibGljIHJlYWRvbmx5IHZybUxvb2tBdDogVlJNTG9va0F0O1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgdHlwZTogc3RyaW5nIHwgJ1ZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGxvb2tBdDogVlJNTG9va0F0KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMudnJtTG9va0F0ID0gbG9va0F0O1xuXG4gICAgdGhpcy50eXBlID0gJ1ZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSc7XG5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvYmxvYi9yMTU4L3NyYy9jb3JlL09iamVjdDNELmpzI0w2NVxuICAgIGNvbnN0IHByZXZSb3RhdGlvbk9uQ2hhbmdlQ2FsbGJhY2sgPSB0aGlzLnJvdGF0aW9uLl9vbkNoYW5nZUNhbGxiYWNrO1xuICAgIHRoaXMucm90YXRpb24uX29uQ2hhbmdlKCgpID0+IHtcbiAgICAgIHByZXZSb3RhdGlvbk9uQ2hhbmdlQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2FwcGx5VG9Mb29rQXQoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHByZXZRdWF0ZXJuaW9uT25DaGFuZ2VDYWxsYmFjayA9IHRoaXMucXVhdGVybmlvbi5fb25DaGFuZ2VDYWxsYmFjaztcbiAgICB0aGlzLnF1YXRlcm5pb24uX29uQ2hhbmdlKCgpID0+IHtcbiAgICAgIHByZXZRdWF0ZXJuaW9uT25DaGFuZ2VDYWxsYmFjaygpO1xuICAgICAgdGhpcy5fYXBwbHlUb0xvb2tBdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlUb0xvb2tBdCgpOiB2b2lkIHtcbiAgICBfZXVsZXJBLnNldEZyb21RdWF0ZXJuaW9uKHRoaXMucXVhdGVybmlvbiwgVlJNTG9va0F0LkVVTEVSX09SREVSKTtcblxuICAgIHRoaXMudnJtTG9va0F0LnlhdyA9IFJBRDJERUcgKiBfZXVsZXJBLnk7XG4gICAgdGhpcy52cm1Mb29rQXQucGl0Y2ggPSBSQUQyREVHICogX2V1bGVyQS54O1xuICB9XG59XG4iLCJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7XG4gIFZSTUNvcmUsXG4gIFZSTUV4cHJlc3Npb25NYW5hZ2VyLFxuICBWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSxcbiAgVlJNSHVtYW5Cb25lTmFtZSxcbiAgVlJNSHVtYW5vaWQsXG59IGZyb20gJ0BwaXhpdi90aHJlZS12cm0tY29yZSc7XG5pbXBvcnQgdHlwZSB7IFZSTUFuaW1hdGlvbiB9IGZyb20gJy4vVlJNQW5pbWF0aW9uJztcbmltcG9ydCB7IFZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSB9IGZyb20gJy4vVlJNTG9va0F0UXVhdGVybmlvblByb3h5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZSTUFuaW1hdGlvbkh1bWFub2lkVHJhY2tzKFxuICB2cm1BbmltYXRpb246IFZSTUFuaW1hdGlvbixcbiAgaHVtYW5vaWQ6IFZSTUh1bWFub2lkLFxuICBtZXRhVmVyc2lvbjogJzAnIHwgJzEnLFxuKToge1xuICB0cmFuc2xhdGlvbjogTWFwPCdoaXBzJywgVEhSRUUuVmVjdG9yS2V5ZnJhbWVUcmFjaz47XG4gIHJvdGF0aW9uOiBNYXA8VlJNSHVtYW5Cb25lTmFtZSwgVEhSRUUuUXVhdGVybmlvbktleWZyYW1lVHJhY2s+O1xufSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uID0gbmV3IE1hcDwnaGlwcycsIFRIUkVFLlZlY3RvcktleWZyYW1lVHJhY2s+KCk7XG4gIGNvbnN0IHJvdGF0aW9uID0gbmV3IE1hcDxWUk1IdW1hbkJvbmVOYW1lLCBUSFJFRS5WZWN0b3JLZXlmcmFtZVRyYWNrPigpO1xuXG4gIGZvciAoY29uc3QgW25hbWUsIG9yaWdUcmFja10gb2YgdnJtQW5pbWF0aW9uLmh1bWFub2lkVHJhY2tzLnJvdGF0aW9uLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IG5vZGVOYW1lID0gaHVtYW5vaWQuZ2V0Tm9ybWFsaXplZEJvbmVOb2RlKG5hbWUpPy5uYW1lO1xuXG4gICAgaWYgKG5vZGVOYW1lICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHRyYWNrID0gbmV3IFRIUkVFLlF1YXRlcm5pb25LZXlmcmFtZVRyYWNrKFxuICAgICAgICBgJHtub2RlTmFtZX0ucXVhdGVybmlvbmAsXG4gICAgICAgIG9yaWdUcmFjay50aW1lcyxcbiAgICAgICAgb3JpZ1RyYWNrLnZhbHVlcy5tYXAoKHYsIGkpID0+IChtZXRhVmVyc2lvbiA9PT0gJzAnICYmIGkgJSAyID09PSAwID8gLXYgOiB2KSksXG4gICAgICApO1xuICAgICAgcm90YXRpb24uc2V0KG5hbWUsIHRyYWNrKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IFtuYW1lLCBvcmlnVHJhY2tdIG9mIHZybUFuaW1hdGlvbi5odW1hbm9pZFRyYWNrcy50cmFuc2xhdGlvbi5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBub2RlTmFtZSA9IGh1bWFub2lkLmdldE5vcm1hbGl6ZWRCb25lTm9kZShuYW1lKT8ubmFtZTtcblxuICAgIGlmIChub2RlTmFtZSAhPSBudWxsKSB7XG4gICAgICBjb25zdCBhbmltYXRpb25ZID0gdnJtQW5pbWF0aW9uLnJlc3RIaXBzUG9zaXRpb24ueTtcbiAgICAgIGNvbnN0IGh1bWFub2lkWSA9IGh1bWFub2lkLm5vcm1hbGl6ZWRSZXN0UG9zZS5oaXBzIS5wb3NpdGlvbiFbMV07XG4gICAgICBjb25zdCBzY2FsZSA9IGh1bWFub2lkWSAvIGFuaW1hdGlvblk7XG5cbiAgICAgIGNvbnN0IHRyYWNrID0gb3JpZ1RyYWNrLmNsb25lKCk7XG4gICAgICB0cmFjay52YWx1ZXMgPSB0cmFjay52YWx1ZXMubWFwKCh2LCBpKSA9PiAobWV0YVZlcnNpb24gPT09ICcwJyAmJiBpICUgMyAhPT0gMSA/IC12IDogdikgKiBzY2FsZSk7XG4gICAgICB0cmFjay5uYW1lID0gYCR7bm9kZU5hbWV9LnBvc2l0aW9uYDtcbiAgICAgIHRyYW5zbGF0aW9uLnNldChuYW1lLCB0cmFjayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgdHJhbnNsYXRpb24sIHJvdGF0aW9uIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWUk1BbmltYXRpb25FeHByZXNzaW9uVHJhY2tzKFxuICB2cm1BbmltYXRpb246IFZSTUFuaW1hdGlvbixcbiAgZXhwcmVzc2lvbk1hbmFnZXI6IFZSTUV4cHJlc3Npb25NYW5hZ2VyLFxuKToge1xuICBwcmVzZXQ6IE1hcDxWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSwgVEhSRUUuTnVtYmVyS2V5ZnJhbWVUcmFjaz47XG4gIGN1c3RvbTogTWFwPHN0cmluZywgVEhSRUUuTnVtYmVyS2V5ZnJhbWVUcmFjaz47XG59IHtcbiAgY29uc3QgcHJlc2V0ID0gbmV3IE1hcDxWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSwgVEhSRUUuTnVtYmVyS2V5ZnJhbWVUcmFjaz4oKTtcbiAgY29uc3QgY3VzdG9tID0gbmV3IE1hcDxzdHJpbmcsIFRIUkVFLk51bWJlcktleWZyYW1lVHJhY2s+KCk7XG5cbiAgZm9yIChjb25zdCBbbmFtZSwgb3JpZ1RyYWNrXSBvZiB2cm1BbmltYXRpb24uZXhwcmVzc2lvblRyYWNrcy5wcmVzZXQuZW50cmllcygpKSB7XG4gICAgY29uc3QgdHJhY2tOYW1lID0gZXhwcmVzc2lvbk1hbmFnZXIuZ2V0RXhwcmVzc2lvblRyYWNrTmFtZShuYW1lKTtcblxuICAgIGlmICh0cmFja05hbWUgIT0gbnVsbCkge1xuICAgICAgY29uc3QgdHJhY2sgPSBvcmlnVHJhY2suY2xvbmUoKTtcbiAgICAgIHRyYWNrLm5hbWUgPSB0cmFja05hbWU7XG4gICAgICBwcmVzZXQuc2V0KG5hbWUsIHRyYWNrKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IFtuYW1lLCBvcmlnVHJhY2tdIG9mIHZybUFuaW1hdGlvbi5leHByZXNzaW9uVHJhY2tzLmN1c3RvbS5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCB0cmFja05hbWUgPSBleHByZXNzaW9uTWFuYWdlci5nZXRFeHByZXNzaW9uVHJhY2tOYW1lKG5hbWUpO1xuXG4gICAgaWYgKHRyYWNrTmFtZSAhPSBudWxsKSB7XG4gICAgICBjb25zdCB0cmFjayA9IG9yaWdUcmFjay5jbG9uZSgpO1xuICAgICAgdHJhY2submFtZSA9IHRyYWNrTmFtZTtcbiAgICAgIGN1c3RvbS5zZXQobmFtZSwgdHJhY2spO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHByZXNldCwgY3VzdG9tIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWUk1BbmltYXRpb25Mb29rQXRUcmFjayhcbiAgdnJtQW5pbWF0aW9uOiBWUk1BbmltYXRpb24sXG4gIHRyYWNrTmFtZTogc3RyaW5nLFxuKTogVEhSRUUuS2V5ZnJhbWVUcmFjayB8IG51bGwge1xuICBpZiAodnJtQW5pbWF0aW9uLmxvb2tBdFRyYWNrID09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHRyYWNrID0gdnJtQW5pbWF0aW9uLmxvb2tBdFRyYWNrLmNsb25lKCk7XG4gIHRyYWNrLm5hbWUgPSB0cmFja05hbWU7XG4gIHJldHVybiB0cmFjaztcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gQW5pbWF0aW9uQ2xpcCBvdXQgb2YgdGhlIGdpdmVuIFZSTUFuaW1hdGlvbiBhbmQgdGhlIFZSTS5cbiAqXG4gKiBAcGFyYW0gdnJtQW5pbWF0aW9uIEEge0BsaW5rIFZSTUFuaW1hdGlvbn0uXG4gKiBAcGFyYW0gdnJtIEEge0BsaW5rIFZSTUNvcmV9LlxuICogQHJldHVybnMgQW4gQW5pbWF0aW9uQ2xpcFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVlJNQW5pbWF0aW9uQ2xpcCh2cm1BbmltYXRpb246IFZSTUFuaW1hdGlvbiwgdnJtOiBWUk1Db3JlKTogVEhSRUUuQW5pbWF0aW9uQ2xpcCB7XG4gIGNvbnN0IHRyYWNrczogVEhSRUUuS2V5ZnJhbWVUcmFja1tdID0gW107XG5cbiAgY29uc3QgaHVtYW5vaWRUcmFja3MgPSBjcmVhdGVWUk1BbmltYXRpb25IdW1hbm9pZFRyYWNrcyh2cm1BbmltYXRpb24sIHZybS5odW1hbm9pZCwgdnJtLm1ldGEubWV0YVZlcnNpb24pO1xuICB0cmFja3MucHVzaCguLi5odW1hbm9pZFRyYWNrcy50cmFuc2xhdGlvbi52YWx1ZXMoKSk7XG4gIHRyYWNrcy5wdXNoKC4uLmh1bWFub2lkVHJhY2tzLnJvdGF0aW9uLnZhbHVlcygpKTtcblxuICBpZiAodnJtLmV4cHJlc3Npb25NYW5hZ2VyICE9IG51bGwpIHtcbiAgICBjb25zdCBleHByZXNzaW9uVHJhY2tzID0gY3JlYXRlVlJNQW5pbWF0aW9uRXhwcmVzc2lvblRyYWNrcyh2cm1BbmltYXRpb24sIHZybS5leHByZXNzaW9uTWFuYWdlcik7XG4gICAgdHJhY2tzLnB1c2goLi4uZXhwcmVzc2lvblRyYWNrcy5wcmVzZXQudmFsdWVzKCkpO1xuICAgIHRyYWNrcy5wdXNoKC4uLmV4cHJlc3Npb25UcmFja3MuY3VzdG9tLnZhbHVlcygpKTtcbiAgfVxuXG4gIGlmICh2cm0ubG9va0F0ICE9IG51bGwpIHtcbiAgICAvLyBzZWFyY2ggVlJNTG9va0F0UXVhdGVybmlvblByb3h5XG4gICAgbGV0IHByb3h5ID0gdnJtLnNjZW5lLmNoaWxkcmVuLmZpbmQoKG9iaikgPT4gb2JqIGluc3RhbmNlb2YgVlJNTG9va0F0UXVhdGVybmlvblByb3h5KTtcblxuICAgIGlmIChwcm94eSA9PSBudWxsKSB7XG4gICAgICAvLyBpZiBub3QgZm91bmQsIGNyZWF0ZSBhIG5ldyBvbmVcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ2NyZWF0ZVZSTUFuaW1hdGlvbkNsaXA6IFZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSBpcyBub3QgZm91bmQuIENyZWF0aW5nIGEgbmV3IG9uZSBhdXRvbWF0aWNhbGx5LiBUbyBzdXBwcmVzcyB0aGlzIHdhcm5pbmcsIGNyZWF0ZSBhIFZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSBtYW51YWxseScsXG4gICAgICApO1xuXG4gICAgICBwcm94eSA9IG5ldyBWUk1Mb29rQXRRdWF0ZXJuaW9uUHJveHkodnJtLmxvb2tBdCk7XG4gICAgICBwcm94eS5uYW1lID0gJ1ZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSc7XG4gICAgICB2cm0uc2NlbmUuYWRkKHByb3h5KTtcbiAgICB9IGVsc2UgaWYgKHByb3h5Lm5hbWUgPT0gbnVsbCkge1xuICAgICAgLy8gaWYgZm91bmQgYnV0IG5hbWUgaXMgbm90IHNldCwgc2V0IHRoZSBuYW1lIGF1dG9tYXRpY2FsbHlcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ2NyZWF0ZVZSTUFuaW1hdGlvbkNsaXA6IFZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSBpcyBmb3VuZCBidXQgaXRzIG5hbWUgaXMgbm90IHNldC4gU2V0dGluZyB0aGUgbmFtZSBhdXRvbWF0aWNhbGx5LiBUbyBzdXBwcmVzcyB0aGlzIHdhcm5pbmcsIHNldCB0aGUgbmFtZSBtYW51YWxseScsXG4gICAgICApO1xuXG4gICAgICBwcm94eS5uYW1lID0gJ1ZSTUxvb2tBdFF1YXRlcm5pb25Qcm94eSc7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIGEgdHJhY2tcbiAgICBjb25zdCB0cmFjayA9IGNyZWF0ZVZSTUFuaW1hdGlvbkxvb2tBdFRyYWNrKHZybUFuaW1hdGlvbiwgYCR7cHJveHkubmFtZX0ucXVhdGVybmlvbmApO1xuICAgIGlmICh0cmFjayAhPSBudWxsKSB7XG4gICAgICB0cmFja3MucHVzaCh0cmFjayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBUSFJFRS5BbmltYXRpb25DbGlwKCdDbGlwJywgdnJtQW5pbWF0aW9uLmR1cmF0aW9uLCB0cmFja3MpO1xufVxuIiwiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSwgVlJNSHVtYW5Cb25lTmFtZSB9IGZyb20gJ0BwaXhpdi90aHJlZS12cm0tY29yZSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgdHlwZSB7IGNyZWF0ZVZSTUFuaW1hdGlvbkNsaXAgfSBmcm9tICcuL2NyZWF0ZVZSTUFuaW1hdGlvbkNsaXAnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgVlJNIEFuaW1hdGlvbi5cbiAqIFlvdSBwcm9iYWJseSB3YW50IHRvIGNyZWF0ZSBhbiBBbmltYXRpb25DbGlwIHVzaW5nIHtAbGluayBjcmVhdGVWUk1BbmltYXRpb25DbGlwfS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZSTUFuaW1hdGlvbiB7XG4gIHB1YmxpYyBkdXJhdGlvbjogbnVtYmVyO1xuICBwdWJsaWMgcmVzdEhpcHNQb3NpdGlvbjogVEhSRUUuVmVjdG9yMztcblxuICBwdWJsaWMgaHVtYW5vaWRUcmFja3M6IHtcbiAgICB0cmFuc2xhdGlvbjogTWFwPCdoaXBzJywgVEhSRUUuVmVjdG9yS2V5ZnJhbWVUcmFjaz47XG4gICAgcm90YXRpb246IE1hcDxWUk1IdW1hbkJvbmVOYW1lLCBUSFJFRS5RdWF0ZXJuaW9uS2V5ZnJhbWVUcmFjaz47XG4gIH07XG4gIHB1YmxpYyBleHByZXNzaW9uVHJhY2tzOiB7XG4gICAgcHJlc2V0OiBNYXA8VlJNRXhwcmVzc2lvblByZXNldE5hbWUsIFRIUkVFLk51bWJlcktleWZyYW1lVHJhY2s+O1xuICAgIGN1c3RvbTogTWFwPHN0cmluZywgVEhSRUUuTnVtYmVyS2V5ZnJhbWVUcmFjaz47XG4gIH07XG4gIHB1YmxpYyBsb29rQXRUcmFjazogVEhSRUUuUXVhdGVybmlvbktleWZyYW1lVHJhY2sgfCBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmR1cmF0aW9uID0gMC4wO1xuICAgIHRoaXMucmVzdEhpcHNQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cbiAgICB0aGlzLmh1bWFub2lkVHJhY2tzID0ge1xuICAgICAgdHJhbnNsYXRpb246IG5ldyBNYXAoKSxcbiAgICAgIHJvdGF0aW9uOiBuZXcgTWFwKCksXG4gICAgfTtcblxuICAgIHRoaXMuZXhwcmVzc2lvblRyYWNrcyA9IHtcbiAgICAgIHByZXNldDogbmV3IE1hcCgpLFxuICAgICAgY3VzdG9tOiBuZXcgTWFwKCksXG4gICAgfTtcblxuICAgIHRoaXMubG9va0F0VHJhY2sgPSBudWxsO1xuICB9XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcclxuICAgIGZ1bmN0aW9uIGFjY2VwdChmKSB7IGlmIChmICE9PSB2b2lkIDAgJiYgdHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZ1bmN0aW9uIGV4cGVjdGVkXCIpOyByZXR1cm4gZjsgfVxyXG4gICAgdmFyIGtpbmQgPSBjb250ZXh0SW4ua2luZCwga2V5ID0ga2luZCA9PT0gXCJnZXR0ZXJcIiA/IFwiZ2V0XCIgOiBraW5kID09PSBcInNldHRlclwiID8gXCJzZXRcIiA6IFwidmFsdWVcIjtcclxuICAgIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xyXG4gICAgdmFyIGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySW4gfHwgKHRhcmdldCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSkgOiB7fSk7XHJcbiAgICB2YXIgXywgZG9uZSA9IGZhbHNlO1xyXG4gICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICB2YXIgY29udGV4dCA9IHt9O1xyXG4gICAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluKSBjb250ZXh0W3BdID0gcCA9PT0gXCJhY2Nlc3NcIiA/IHt9IDogY29udGV4dEluW3BdO1xyXG4gICAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xyXG4gICAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgPSBmdW5jdGlvbiAoZikgeyBpZiAoZG9uZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZFwiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9ICgwLCBkZWNvcmF0b3JzW2ldKShraW5kID09PSBcImFjY2Vzc29yXCIgPyB7IGdldDogZGVzY3JpcHRvci5nZXQsIHNldDogZGVzY3JpcHRvci5zZXQgfSA6IGRlc2NyaXB0b3Jba2V5XSwgY29udGV4dCk7XHJcbiAgICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWRcIik7XHJcbiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XHJcbiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5zZXQpKSBkZXNjcmlwdG9yLnNldCA9IF87XHJcbiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5pbml0KSkgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKF8gPSBhY2NlcHQocmVzdWx0KSkge1xyXG4gICAgICAgICAgICBpZiAoa2luZCA9PT0gXCJmaWVsZFwiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTtcclxuICAgICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcclxuICAgIGRvbmUgPSB0cnVlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHtcclxuICAgIHZhciB1c2VWYWx1ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB4ID09PSBcInN5bWJvbFwiID8geCA6IFwiXCIuY29uY2F0KHgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc2V0RnVuY3Rpb25OYW1lKGYsIG5hbWUsIHByZWZpeCkge1xyXG4gICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN5bWJvbFwiKSBuYW1lID0gbmFtZS5kZXNjcmlwdGlvbiA/IFwiW1wiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCBcIl1cIikgOiBcIlwiO1xyXG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XHJcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xyXG4gICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XHJcbiAgICB9XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xyXG4gICAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XHJcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XHJcbiAgICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBmYWxzZSB9IDogZiA/IGYodikgOiB2OyB9IDogZjsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09IFwiZnVuY3Rpb25cIiA/IF9fdmFsdWVzKG8pIDogb1tTeW1ib2wuaXRlcmF0b3JdKCksIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpKTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XHJcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxyXG4gICAgcmV0dXJuIGNvb2tlZDtcclxufTtcclxuXHJcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcclxufSkgOiBmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnRTdGFyKG1vZCkge1xyXG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcclxuICAgIHZhciByZXN1bHQgPSB7fTtcclxuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcclxuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcclxuICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xyXG4gICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xyXG4gICAgICAgIHZhciBkaXNwb3NlO1xyXG4gICAgICAgIGlmIChhc3luYykge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgICAgICAgICAgZGlzcG9zZSA9IHZhbHVlW1N5bWJvbC5hc3luY0Rpc3Bvc2VdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGlzcG9zZSA9PT0gdm9pZCAwKSB7XHJcbiAgICAgICAgICAgIGlmICghU3ltYm9sLmRpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgZGlzcG9zZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLlwiKTtcclxuICAgICAgICBlbnYuc3RhY2sucHVzaCh7IHZhbHVlOiB2YWx1ZSwgZGlzcG9zZTogZGlzcG9zZSwgYXN5bmM6IGFzeW5jIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoYXN5bmMpIHtcclxuICAgICAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcclxuICAgIGZ1bmN0aW9uIGZhaWwoZSkge1xyXG4gICAgICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcclxuICAgICAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gbmV4dCgpIHtcclxuICAgICAgICB3aGlsZSAoZW52LnN0YWNrLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB2YXIgcmVjID0gZW52LnN0YWNrLnBvcCgpO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHJlYy5kaXNwb3NlICYmIHJlYy5kaXNwb3NlLmNhbGwocmVjLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZWMuYXN5bmMpIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIGZhaWwoZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVudi5oYXNFcnJvcikgdGhyb3cgZW52LmVycm9yO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5leHQoKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgX19leHRlbmRzOiBfX2V4dGVuZHMsXHJcbiAgICBfX2Fzc2lnbjogX19hc3NpZ24sXHJcbiAgICBfX3Jlc3Q6IF9fcmVzdCxcclxuICAgIF9fZGVjb3JhdGU6IF9fZGVjb3JhdGUsXHJcbiAgICBfX3BhcmFtOiBfX3BhcmFtLFxyXG4gICAgX19tZXRhZGF0YTogX19tZXRhZGF0YSxcclxuICAgIF9fYXdhaXRlcjogX19hd2FpdGVyLFxyXG4gICAgX19nZW5lcmF0b3I6IF9fZ2VuZXJhdG9yLFxyXG4gICAgX19jcmVhdGVCaW5kaW5nOiBfX2NyZWF0ZUJpbmRpbmcsXHJcbiAgICBfX2V4cG9ydFN0YXI6IF9fZXhwb3J0U3RhcixcclxuICAgIF9fdmFsdWVzOiBfX3ZhbHVlcyxcclxuICAgIF9fcmVhZDogX19yZWFkLFxyXG4gICAgX19zcHJlYWQ6IF9fc3ByZWFkLFxyXG4gICAgX19zcHJlYWRBcnJheXM6IF9fc3ByZWFkQXJyYXlzLFxyXG4gICAgX19zcHJlYWRBcnJheTogX19zcHJlYWRBcnJheSxcclxuICAgIF9fYXdhaXQ6IF9fYXdhaXQsXHJcbiAgICBfX2FzeW5jR2VuZXJhdG9yOiBfX2FzeW5jR2VuZXJhdG9yLFxyXG4gICAgX19hc3luY0RlbGVnYXRvcjogX19hc3luY0RlbGVnYXRvcixcclxuICAgIF9fYXN5bmNWYWx1ZXM6IF9fYXN5bmNWYWx1ZXMsXHJcbiAgICBfX21ha2VUZW1wbGF0ZU9iamVjdDogX19tYWtlVGVtcGxhdGVPYmplY3QsXHJcbiAgICBfX2ltcG9ydFN0YXI6IF9faW1wb3J0U3RhcixcclxuICAgIF9faW1wb3J0RGVmYXVsdDogX19pbXBvcnREZWZhdWx0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZEdldDogX19jbGFzc1ByaXZhdGVGaWVsZEdldCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQ6IF9fY2xhc3NQcml2YXRlRmllbGRTZXQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkSW46IF9fY2xhc3NQcml2YXRlRmllbGRJbixcclxuICAgIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOiBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSxcclxuICAgIF9fZGlzcG9zZVJlc291cmNlczogX19kaXNwb3NlUmVzb3VyY2VzLFxyXG59O1xyXG4iLCIvKipcbiAqIGBgYGpzXG4gKiBhcnJheUNodW5rKCBbIDEsIDIsIDMsIDQsIDUsIDYgXSwgMiApXG4gKiAvLyB3aWxsIGJlXG4gKiBbIFsgMSwgMiBdLCBbIDMsIDQgXSwgWyA1LCA2IF0gXVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUNodW5rPFQ+KGFycmF5OiBBcnJheUxpa2U8VD4sIGV2ZXJ5OiBudW1iZXIpOiBUW11bXSB7XG4gIGNvbnN0IE4gPSBhcnJheS5sZW5ndGg7XG5cbiAgY29uc3QgcmV0OiBUW11bXSA9IFtdO1xuXG4gIGxldCBjdXJyZW50OiBUW10gPSBbXTtcbiAgbGV0IHJlbWFpbmluZyA9IDA7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBOOyBpKyspIHtcbiAgICBjb25zdCBlbCA9IGFycmF5W2ldO1xuXG4gICAgaWYgKHJlbWFpbmluZyA8PSAwKSB7XG4gICAgICByZW1haW5pbmcgPSBldmVyeTtcbiAgICAgIGN1cnJlbnQgPSBbXTtcbiAgICAgIHJldC5wdXNoKGN1cnJlbnQpO1xuICAgIH1cblxuICAgIGN1cnJlbnQucHVzaChlbCk7XG4gICAgcmVtYWluaW5nLS07XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuIiwiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgR0xURiwgR0xURkxvYWRlclBsdWdpbiwgR0xURlBhcnNlciB9IGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9sb2FkZXJzL0dMVEZMb2FkZXInO1xuaW1wb3J0IHsgR0xURiBhcyBHTFRGU2NoZW1hIH0gZnJvbSAnQGdsdGYtdHJhbnNmb3JtL2NvcmUnO1xuaW1wb3J0IHsgVlJNQ1ZSTUFuaW1hdGlvbiB9IGZyb20gJ0BwaXhpdi90eXBlcy12cm1jLXZybS1hbmltYXRpb24tMS4wJztcbmltcG9ydCB0eXBlIHsgVlJNSHVtYW5Cb25lTmFtZSB9IGZyb20gJ0BwaXhpdi90aHJlZS12cm0tY29yZSc7XG5pbXBvcnQgeyBWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSwgVlJNSHVtYW5Cb25lUGFyZW50TWFwIH0gZnJvbSAnQHBpeGl2L3RocmVlLXZybS1jb3JlJztcbmltcG9ydCB7IFZSTUFuaW1hdGlvbiB9IGZyb20gJy4vVlJNQW5pbWF0aW9uJztcbmltcG9ydCB7IGFycmF5Q2h1bmsgfSBmcm9tICcuL3V0aWxzL2FycmF5Q2h1bmsnO1xuXG5jb25zdCBNQVQ0X0lERU5USVRZID0gLypAX19QVVJFX18qLyBuZXcgVEhSRUUuTWF0cml4NCgpO1xuXG5jb25zdCBfdjNBID0gLypAX19QVVJFX18qLyBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3F1YXRBID0gLypAX19QVVJFX18qLyBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX3F1YXRCID0gLypAX19QVVJFX18qLyBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX3F1YXRDID0gLypAX19QVVJFX18qLyBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuXG4vKipcbiAqIFBvc3NpYmxlIHNwZWMgdmVyc2lvbnMgaXQgcmVjb2duaXplcy5cbiAqL1xuY29uc3QgUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyA9IC8qQF9fUFVSRV9fKi8gbmV3IFNldChbJzEuMCcsICcxLjAtZHJhZnQnXSk7XG5cbmNvbnN0IHZybUV4cHJlc3Npb25QcmVzZXROYW1lU2V0OiBTZXQ8c3RyaW5nPiA9IC8qQF9fUFVSRV9fKi8gbmV3IFNldChPYmplY3QudmFsdWVzKFZSTUV4cHJlc3Npb25QcmVzZXROYW1lKSk7XG5cbmludGVyZmFjZSBWUk1BbmltYXRpb25Mb2FkZXJQbHVnaW5Ob2RlTWFwIHtcbiAgaHVtYW5vaWRJbmRleFRvTmFtZTogTWFwPG51bWJlciwgVlJNSHVtYW5Cb25lTmFtZT47XG4gIGV4cHJlc3Npb25zSW5kZXhUb05hbWU6IE1hcDxudW1iZXIsIHN0cmluZz47XG4gIGxvb2tBdEluZGV4OiBudW1iZXIgfCBudWxsO1xufVxuXG50eXBlIFZSTUFuaW1hdGlvbkxvYWRlclBsdWdpbldvcmxkTWF0cml4TWFwID0gTWFwPFZSTUh1bWFuQm9uZU5hbWUgfCAnaGlwc1BhcmVudCcsIFRIUkVFLk1hdHJpeDQ+O1xuXG4vKipcbiAqIEEgcGx1Z2luIG9mIEdMVEZMb2FkZXIgdGhhdCBpbXBvcnRzIHtAbGluayBWUk1BbmltYXRpb259cyBmcm9tIGEgYFZSTUNfdnJtX2FuaW1hdGlvbmAgZXh0ZW5zaW9uIGFuZCBnbHRmIGFuaW1hdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWUk1BbmltYXRpb25Mb2FkZXJQbHVnaW4gaW1wbGVtZW50cyBHTFRGTG9hZGVyUGx1Z2luIHtcbiAgcHVibGljIHJlYWRvbmx5IHBhcnNlcjogR0xURlBhcnNlcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyc2VyOiBHTFRGUGFyc2VyKSB7XG4gICAgdGhpcy5wYXJzZXIgPSBwYXJzZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1ZSTUNfdnJtX2FuaW1hdGlvbic7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWZ0ZXJSb290KGdsdGY6IEdMVEYpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkZWZHbHRmID0gZ2x0Zi5wYXJzZXIuanNvbiBhcyBHTFRGU2NoZW1hLklHTFRGO1xuICAgIGNvbnN0IGRlZkV4dGVuc2lvbnNVc2VkID0gZGVmR2x0Zi5leHRlbnNpb25zVXNlZDtcblxuICAgIGlmIChkZWZFeHRlbnNpb25zVXNlZCA9PSBudWxsIHx8IGRlZkV4dGVuc2lvbnNVc2VkLmluZGV4T2YodGhpcy5uYW1lKSA9PSAtMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZkV4dGVuc2lvbiA9IGRlZkdsdGYuZXh0ZW5zaW9ucz8uW3RoaXMubmFtZV0gYXMgVlJNQ1ZSTUFuaW1hdGlvbiB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChkZWZFeHRlbnNpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNwZWNWZXJzaW9uID0gZGVmRXh0ZW5zaW9uLnNwZWNWZXJzaW9uO1xuICAgIGlmICghUE9TU0lCTEVfU1BFQ19WRVJTSU9OUy5oYXMoc3BlY1ZlcnNpb24pKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFZSTUFuaW1hdGlvbkxvYWRlclBsdWdpbjogVW5rbm93biBWUk1DX3ZybV9hbmltYXRpb24gc3BlYyB2ZXJzaW9uOiAke3NwZWNWZXJzaW9ufWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc3BlY1ZlcnNpb24gPT09ICcxLjAtZHJhZnQnKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdWUk1BbmltYXRpb25Mb2FkZXJQbHVnaW46IFVzaW5nIGEgZHJhZnQgc3BlYyB2ZXJzaW9uOiAxLjAtZHJhZnQuIFNvbWUgYmVoYXZpb3JzIG1heSBiZSBkaWZmZXJlbnQuIENvbnNpZGVyIHVwZGF0aW5nIHRoZSBhbmltYXRpb24gZmlsZS4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlTWFwID0gdGhpcy5fY3JlYXRlTm9kZU1hcChkZWZFeHRlbnNpb24pO1xuICAgIGNvbnN0IHdvcmxkTWF0cml4TWFwID0gYXdhaXQgdGhpcy5fY3JlYXRlQm9uZVdvcmxkTWF0cml4TWFwKGdsdGYsIGRlZkV4dGVuc2lvbik7XG5cbiAgICBjb25zdCBoaXBzTm9kZSA9IGRlZkV4dGVuc2lvbi5odW1hbm9pZD8uaHVtYW5Cb25lc1snaGlwcyddPy5ub2RlO1xuICAgIGNvbnN0IGhpcHMgPSBoaXBzTm9kZSAhPSBudWxsID8gKChhd2FpdCBnbHRmLnBhcnNlci5nZXREZXBlbmRlbmN5KCdub2RlJywgaGlwc05vZGUpKSBhcyBUSFJFRS5PYmplY3QzRCkgOiBudWxsO1xuXG4gICAgY29uc3QgcmVzdEhpcHNQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgaGlwcz8uZ2V0V29ybGRQb3NpdGlvbihyZXN0SGlwc1Bvc2l0aW9uKTtcblxuICAgIGNvbnN0IGNsaXBzID0gZ2x0Zi5hbmltYXRpb25zO1xuICAgIGNvbnN0IGFuaW1hdGlvbnM6IFZSTUFuaW1hdGlvbltdID0gY2xpcHMubWFwKChjbGlwLCBpQW5pbWF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBkZWZBbmltYXRpb24gPSBkZWZHbHRmLmFuaW1hdGlvbnMhW2lBbmltYXRpb25dO1xuXG4gICAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLl9wYXJzZUFuaW1hdGlvbihjbGlwLCBkZWZBbmltYXRpb24sIG5vZGVNYXAsIHdvcmxkTWF0cml4TWFwKTtcbiAgICAgIGFuaW1hdGlvbi5yZXN0SGlwc1Bvc2l0aW9uID0gcmVzdEhpcHNQb3NpdGlvbjtcblxuICAgICAgcmV0dXJuIGFuaW1hdGlvbjtcbiAgICB9KTtcblxuICAgIGdsdGYudXNlckRhdGEudnJtQW5pbWF0aW9ucyA9IGFuaW1hdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVOb2RlTWFwKGRlZkV4dGVuc2lvbjogVlJNQ1ZSTUFuaW1hdGlvbik6IFZSTUFuaW1hdGlvbkxvYWRlclBsdWdpbk5vZGVNYXAge1xuICAgIGNvbnN0IGh1bWFub2lkSW5kZXhUb05hbWU6IE1hcDxudW1iZXIsIFZSTUh1bWFuQm9uZU5hbWU+ID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IGV4cHJlc3Npb25zSW5kZXhUb05hbWU6IE1hcDxudW1iZXIsIHN0cmluZz4gPSBuZXcgTWFwKCk7XG5cbiAgICAvLyBodW1hbm9pZFxuICAgIGNvbnN0IGh1bWFuQm9uZXMgPSBkZWZFeHRlbnNpb24uaHVtYW5vaWQ/Lmh1bWFuQm9uZXM7XG5cbiAgICBpZiAoaHVtYW5Cb25lcykge1xuICAgICAgT2JqZWN0LmVudHJpZXMoaHVtYW5Cb25lcykuZm9yRWFjaCgoW25hbWUsIGJvbmVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBib25lPy5ub2RlO1xuICAgICAgICBpZiAobm9kZSAhPSBudWxsKSB7XG4gICAgICAgICAgaHVtYW5vaWRJbmRleFRvTmFtZS5zZXQobm9kZSwgbmFtZSBhcyBWUk1IdW1hbkJvbmVOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gZXhwcmVzc2lvbnNcbiAgICBjb25zdCBwcmVzZXQgPSBkZWZFeHRlbnNpb24uZXhwcmVzc2lvbnM/LnByZXNldDtcblxuICAgIGlmIChwcmVzZXQpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHByZXNldCkuZm9yRWFjaCgoW25hbWUsIGV4cHJlc3Npb25dKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBleHByZXNzaW9uPy5ub2RlO1xuICAgICAgICBpZiAobm9kZSAhPSBudWxsKSB7XG4gICAgICAgICAgZXhwcmVzc2lvbnNJbmRleFRvTmFtZS5zZXQobm9kZSwgbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGN1c3RvbSA9IGRlZkV4dGVuc2lvbi5leHByZXNzaW9ucz8uY3VzdG9tO1xuXG4gICAgaWYgKGN1c3RvbSkge1xuICAgICAgT2JqZWN0LmVudHJpZXMoY3VzdG9tKS5mb3JFYWNoKChbbmFtZSwgZXhwcmVzc2lvbl0pID0+IHtcbiAgICAgICAgY29uc3QgeyBub2RlIH0gPSBleHByZXNzaW9uO1xuICAgICAgICBleHByZXNzaW9uc0luZGV4VG9OYW1lLnNldChub2RlLCBuYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGxvb2tBdFxuICAgIGNvbnN0IGxvb2tBdEluZGV4ID0gZGVmRXh0ZW5zaW9uLmxvb2tBdD8ubm9kZSA/PyBudWxsO1xuXG4gICAgcmV0dXJuIHsgaHVtYW5vaWRJbmRleFRvTmFtZSwgZXhwcmVzc2lvbnNJbmRleFRvTmFtZSwgbG9va0F0SW5kZXggfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2NyZWF0ZUJvbmVXb3JsZE1hdHJpeE1hcChcbiAgICBnbHRmOiBHTFRGLFxuICAgIGRlZkV4dGVuc2lvbjogVlJNQ1ZSTUFuaW1hdGlvbixcbiAgKTogUHJvbWlzZTxWUk1BbmltYXRpb25Mb2FkZXJQbHVnaW5Xb3JsZE1hdHJpeE1hcD4ge1xuICAgIC8vIHVwZGF0ZSB0aGUgZW50aXJlIGhpZXJhcmNoeSBmaXJzdFxuICAgIGdsdGYuc2NlbmUudXBkYXRlV29ybGRNYXRyaXgoZmFsc2UsIHRydWUpO1xuXG4gICAgY29uc3QgdGhyZWVOb2RlcyA9IChhd2FpdCBnbHRmLnBhcnNlci5nZXREZXBlbmRlbmNpZXMoJ25vZGUnKSkgYXMgVEhSRUUuT2JqZWN0M0RbXTtcblxuICAgIGNvbnN0IHdvcmxkTWF0cml4TWFwOiBWUk1BbmltYXRpb25Mb2FkZXJQbHVnaW5Xb3JsZE1hdHJpeE1hcCA9IG5ldyBNYXAoKTtcblxuICAgIGlmIChkZWZFeHRlbnNpb24uaHVtYW5vaWQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHdvcmxkTWF0cml4TWFwO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2JvbmVOYW1lLCBodW1hbkJvbmVdIG9mIE9iamVjdC5lbnRyaWVzKGRlZkV4dGVuc2lvbi5odW1hbm9pZC5odW1hbkJvbmVzKSkge1xuICAgICAgY29uc3Qgbm9kZSA9IGh1bWFuQm9uZT8ubm9kZTtcbiAgICAgIGlmIChub2RlICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgdGhyZWVOb2RlID0gdGhyZWVOb2Rlc1tub2RlXTtcbiAgICAgICAgd29ybGRNYXRyaXhNYXAuc2V0KGJvbmVOYW1lIGFzIFZSTUh1bWFuQm9uZU5hbWUsIHRocmVlTm9kZS5tYXRyaXhXb3JsZCk7XG5cbiAgICAgICAgaWYgKGJvbmVOYW1lID09PSAnaGlwcycpIHtcbiAgICAgICAgICB3b3JsZE1hdHJpeE1hcC5zZXQoJ2hpcHNQYXJlbnQnLCB0aHJlZU5vZGUucGFyZW50Py5tYXRyaXhXb3JsZCA/PyBNQVQ0X0lERU5USVRZKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB3b3JsZE1hdHJpeE1hcDtcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlQW5pbWF0aW9uKFxuICAgIGFuaW1hdGlvbkNsaXA6IFRIUkVFLkFuaW1hdGlvbkNsaXAsXG4gICAgZGVmQW5pbWF0aW9uOiBHTFRGU2NoZW1hLklBbmltYXRpb24sXG4gICAgbm9kZU1hcDogVlJNQW5pbWF0aW9uTG9hZGVyUGx1Z2luTm9kZU1hcCxcbiAgICB3b3JsZE1hdHJpeE1hcDogVlJNQW5pbWF0aW9uTG9hZGVyUGx1Z2luV29ybGRNYXRyaXhNYXAsXG4gICk6IFZSTUFuaW1hdGlvbiB7XG4gICAgY29uc3QgdHJhY2tzID0gYW5pbWF0aW9uQ2xpcC50cmFja3M7XG4gICAgY29uc3QgZGVmQ2hhbm5lbHMgPSBkZWZBbmltYXRpb24uY2hhbm5lbHM7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgVlJNQW5pbWF0aW9uKCk7XG5cbiAgICByZXN1bHQuZHVyYXRpb24gPSBhbmltYXRpb25DbGlwLmR1cmF0aW9uO1xuXG4gICAgZGVmQ2hhbm5lbHMuZm9yRWFjaCgoY2hhbm5lbCwgaUNoYW5uZWwpID0+IHtcbiAgICAgIGNvbnN0IHsgbm9kZSwgcGF0aCB9ID0gY2hhbm5lbC50YXJnZXQ7XG4gICAgICBjb25zdCBvcmlnVHJhY2sgPSB0cmFja3NbaUNoYW5uZWxdO1xuXG4gICAgICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gaHVtYW5vaWRcbiAgICAgIGNvbnN0IGJvbmVOYW1lID0gbm9kZU1hcC5odW1hbm9pZEluZGV4VG9OYW1lLmdldChub2RlKTtcbiAgICAgIGlmIChib25lTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIGxldCBwYXJlbnRCb25lTmFtZTogVlJNSHVtYW5Cb25lTmFtZSB8ICdoaXBzUGFyZW50JyB8IG51bGwgPSBWUk1IdW1hbkJvbmVQYXJlbnRNYXBbYm9uZU5hbWVdO1xuICAgICAgICB3aGlsZSAocGFyZW50Qm9uZU5hbWUgIT0gbnVsbCAmJiB3b3JsZE1hdHJpeE1hcC5nZXQocGFyZW50Qm9uZU5hbWUpID09IG51bGwpIHtcbiAgICAgICAgICBwYXJlbnRCb25lTmFtZSA9IFZSTUh1bWFuQm9uZVBhcmVudE1hcFtwYXJlbnRCb25lTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50Qm9uZU5hbWUgPz8gKHBhcmVudEJvbmVOYW1lID0gJ2hpcHNQYXJlbnQnKTtcblxuICAgICAgICBpZiAocGF0aCA9PT0gJ3RyYW5zbGF0aW9uJykge1xuICAgICAgICAgIGlmIChib25lTmFtZSAhPT0gJ2hpcHMnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBUaGUgbG9hZGluZyBhbmltYXRpb24gY29udGFpbnMgYSB0cmFuc2xhdGlvbiB0cmFjayBmb3IgJHtib25lTmFtZX0sIHdoaWNoIGlzIG5vdCBwZXJtaXR0ZWQgaW4gdGhlIFZSTUNfdnJtX2FuaW1hdGlvbiBzcGVjLiBpZ25vcmluZyB0aGUgdHJhY2tgLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGlwc1BhcmVudFdvcmxkTWF0cml4ID0gd29ybGRNYXRyaXhNYXAuZ2V0KCdoaXBzUGFyZW50JykhO1xuXG4gICAgICAgICAgICBjb25zdCB0cmFja1ZhbHVlcyA9IGFycmF5Q2h1bmsob3JpZ1RyYWNrLnZhbHVlcywgMykuZmxhdE1hcCgodikgPT5cbiAgICAgICAgICAgICAgX3YzQS5mcm9tQXJyYXkodikuYXBwbHlNYXRyaXg0KGhpcHNQYXJlbnRXb3JsZE1hdHJpeCkudG9BcnJheSgpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgdHJhY2sgPSBvcmlnVHJhY2suY2xvbmUoKTtcbiAgICAgICAgICAgIHRyYWNrLnZhbHVlcyA9IG5ldyBGbG9hdDMyQXJyYXkodHJhY2tWYWx1ZXMpO1xuXG4gICAgICAgICAgICByZXN1bHQuaHVtYW5vaWRUcmFja3MudHJhbnNsYXRpb24uc2V0KGJvbmVOYW1lLCB0cmFjayk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHBhdGggPT09ICdyb3RhdGlvbicpIHtcbiAgICAgICAgICAvLyBhICA9IHBeLTEgKiBhJyAqIHAgKiBjXG4gICAgICAgICAgLy8gYScgPSBwICogcF4tMSAqIGEnICogcCAqIGMgKiBjXi0xICogcF4tMVxuICAgICAgICAgIC8vICAgID0gcCAqIGEgKiBjXi0xICogcF4tMVxuXG4gICAgICAgICAgY29uc3Qgd29ybGRNYXRyaXggPSB3b3JsZE1hdHJpeE1hcC5nZXQoYm9uZU5hbWUpITtcbiAgICAgICAgICBjb25zdCBwYXJlbnRXb3JsZE1hdHJpeCA9IHdvcmxkTWF0cml4TWFwLmdldChwYXJlbnRCb25lTmFtZSkhO1xuXG4gICAgICAgICAgd29ybGRNYXRyaXguZGVjb21wb3NlKF92M0EsIF9xdWF0QSwgX3YzQSk7XG4gICAgICAgICAgX3F1YXRBLmludmVydCgpO1xuXG4gICAgICAgICAgcGFyZW50V29ybGRNYXRyaXguZGVjb21wb3NlKF92M0EsIF9xdWF0QiwgX3YzQSk7XG5cbiAgICAgICAgICBjb25zdCB0cmFja1ZhbHVlcyA9IGFycmF5Q2h1bmsob3JpZ1RyYWNrLnZhbHVlcywgNCkuZmxhdE1hcCgocSkgPT5cbiAgICAgICAgICAgIF9xdWF0Qy5mcm9tQXJyYXkocSkucHJlbXVsdGlwbHkoX3F1YXRCKS5tdWx0aXBseShfcXVhdEEpLnRvQXJyYXkoKSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3QgdHJhY2sgPSBvcmlnVHJhY2suY2xvbmUoKTtcbiAgICAgICAgICB0cmFjay52YWx1ZXMgPSBuZXcgRmxvYXQzMkFycmF5KHRyYWNrVmFsdWVzKTtcblxuICAgICAgICAgIHJlc3VsdC5odW1hbm9pZFRyYWNrcy5yb3RhdGlvbi5zZXQoYm9uZU5hbWUsIHRyYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGF0aCBcIiR7cGF0aH1cImApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gZXhwcmVzc2lvbnNcbiAgICAgIGNvbnN0IGV4cHJlc3Npb25OYW1lID0gbm9kZU1hcC5leHByZXNzaW9uc0luZGV4VG9OYW1lLmdldChub2RlKTtcbiAgICAgIGlmIChleHByZXNzaW9uTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIGlmIChwYXRoID09PSAndHJhbnNsYXRpb24nKSB7XG4gICAgICAgICAgY29uc3QgdGltZXMgPSBvcmlnVHJhY2sudGltZXM7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gbmV3IEZsb2F0MzJBcnJheShvcmlnVHJhY2sudmFsdWVzLmxlbmd0aCAvIDMpO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YWx1ZXNbaV0gPSBvcmlnVHJhY2sudmFsdWVzWzMgKiBpXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBuZXdUcmFjayA9IG5ldyBUSFJFRS5OdW1iZXJLZXlmcmFtZVRyYWNrKGAke2V4cHJlc3Npb25OYW1lfS53ZWlnaHRgLCB0aW1lcyBhcyBhbnksIHZhbHVlcyBhcyBhbnkpO1xuXG4gICAgICAgICAgaWYgKHZybUV4cHJlc3Npb25QcmVzZXROYW1lU2V0LmhhcyhleHByZXNzaW9uTmFtZSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5leHByZXNzaW9uVHJhY2tzLnByZXNldC5zZXQoZXhwcmVzc2lvbk5hbWUgYXMgVlJNRXhwcmVzc2lvblByZXNldE5hbWUsIG5ld1RyYWNrKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LmV4cHJlc3Npb25UcmFja3MuY3VzdG9tLnNldChleHByZXNzaW9uTmFtZSwgbmV3VHJhY2spO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGF0aCBcIiR7cGF0aH1cImApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gbG9va0F0XG4gICAgICBpZiAobm9kZSA9PT0gbm9kZU1hcC5sb29rQXRJbmRleCkge1xuICAgICAgICBpZiAocGF0aCA9PT0gJ3JvdGF0aW9uJykge1xuICAgICAgICAgIHJlc3VsdC5sb29rQXRUcmFjayA9IG9yaWdUcmFjaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGF0aCBcIiR7cGF0aH1cImApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX3YzQSIsIl9xdWF0QyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUErSEE7QUFDQSxPQUFPLGVBQWUsS0FBSyxVQUFVLEdBQUcsZUFBZSxHQUFHLFVBQVUsS0FBSyxF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\n\n\n//# sourceURL=webpack://vrm/./node_modules/@pixiv/three-vrm-animation/lib/three-vrm-animation.module.js?");
+
+/***/ }),
+
+/***/ "./node_modules/@pixiv/three-vrm/lib/three-vrm.module.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@pixiv/three-vrm/lib/three-vrm.module.js ***!
+ \***************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MToonMaterial: () => (/* binding */ MToonMaterial),\n/* harmony export */ MToonMaterialDebugMode: () => (/* binding */ MToonMaterialDebugMode),\n/* harmony export */ MToonMaterialLoaderPlugin: () => (/* binding */ MToonMaterialLoaderPlugin),\n/* harmony export */ MToonMaterialOutlineWidthMode: () => (/* binding */ MToonMaterialOutlineWidthMode),\n/* harmony export */ VRM: () => (/* binding */ VRM),\n/* harmony export */ VRMAimConstraint: () => (/* binding */ VRMAimConstraint),\n/* harmony export */ VRMCore: () => (/* binding */ VRMCore),\n/* harmony export */ VRMCoreLoaderPlugin: () => (/* binding */ VRMCoreLoaderPlugin),\n/* harmony export */ VRMExpression: () => (/* binding */ VRMExpression),\n/* harmony export */ VRMExpressionLoaderPlugin: () => (/* binding */ VRMExpressionLoaderPlugin),\n/* harmony export */ VRMExpressionManager: () => (/* binding */ VRMExpressionManager),\n/* harmony export */ VRMExpressionMaterialColorBind: () => (/* binding */ VRMExpressionMaterialColorBind),\n/* harmony export */ VRMExpressionMaterialColorType: () => (/* binding */ VRMExpressionMaterialColorType),\n/* harmony export */ VRMExpressionMorphTargetBind: () => (/* binding */ VRMExpressionMorphTargetBind),\n/* harmony export */ VRMExpressionOverrideType: () => (/* binding */ VRMExpressionOverrideType),\n/* harmony export */ VRMExpressionPresetName: () => (/* binding */ VRMExpressionPresetName),\n/* harmony export */ VRMExpressionTextureTransformBind: () => (/* binding */ VRMExpressionTextureTransformBind),\n/* harmony export */ VRMFirstPerson: () => (/* binding */ VRMFirstPerson),\n/* harmony export */ VRMFirstPersonLoaderPlugin: () => (/* binding */ VRMFirstPersonLoaderPlugin),\n/* harmony export */ VRMFirstPersonMeshAnnotationType: () => (/* binding */ VRMFirstPersonMeshAnnotationType),\n/* harmony export */ VRMHumanBoneList: () => (/* binding */ VRMHumanBoneList),\n/* harmony export */ VRMHumanBoneName: () => (/* binding */ VRMHumanBoneName),\n/* harmony export */ VRMHumanBoneParentMap: () => (/* binding */ VRMHumanBoneParentMap),\n/* harmony export */ VRMHumanoid: () => (/* binding */ VRMHumanoid),\n/* harmony export */ VRMHumanoidHelper: () => (/* binding */ VRMHumanoidHelper),\n/* harmony export */ VRMHumanoidLoaderPlugin: () => (/* binding */ VRMHumanoidLoaderPlugin),\n/* harmony export */ VRMLoaderPlugin: () => (/* binding */ VRMLoaderPlugin),\n/* harmony export */ VRMLookAt: () => (/* binding */ VRMLookAt),\n/* harmony export */ VRMLookAtBoneApplier: () => (/* binding */ VRMLookAtBoneApplier),\n/* harmony export */ VRMLookAtExpressionApplier: () => (/* binding */ VRMLookAtExpressionApplier),\n/* harmony export */ VRMLookAtHelper: () => (/* binding */ VRMLookAtHelper),\n/* harmony export */ VRMLookAtLoaderPlugin: () => (/* binding */ VRMLookAtLoaderPlugin),\n/* harmony export */ VRMLookAtRangeMap: () => (/* binding */ VRMLookAtRangeMap),\n/* harmony export */ VRMLookAtTypeName: () => (/* binding */ VRMLookAtTypeName),\n/* harmony export */ VRMMetaLoaderPlugin: () => (/* binding */ VRMMetaLoaderPlugin),\n/* harmony export */ VRMNodeConstraint: () => (/* binding */ VRMNodeConstraint),\n/* harmony export */ VRMNodeConstraintHelper: () => (/* binding */ VRMNodeConstraintHelper),\n/* harmony export */ VRMNodeConstraintLoaderPlugin: () => (/* binding */ VRMNodeConstraintLoaderPlugin),\n/* harmony export */ VRMNodeConstraintManager: () => (/* binding */ VRMNodeConstraintManager),\n/* harmony export */ VRMRequiredHumanBoneName: () => (/* binding */ VRMRequiredHumanBoneName),\n/* harmony export */ VRMRollConstraint: () => (/* binding */ VRMRollConstraint),\n/* harmony export */ VRMRotationConstraint: () => (/* binding */ VRMRotationConstraint),\n/* harmony export */ VRMSpringBoneCollider: () => (/* binding */ VRMSpringBoneCollider),\n/* harmony export */ VRMSpringBoneColliderHelper: () => (/* binding */ VRMSpringBoneColliderHelper),\n/* harmony export */ VRMSpringBoneColliderShape: () => (/* binding */ VRMSpringBoneColliderShape),\n/* harmony export */ VRMSpringBoneColliderShapeCapsule: () => (/* binding */ VRMSpringBoneColliderShapeCapsule),\n/* harmony export */ VRMSpringBoneColliderShapeSphere: () => (/* binding */ VRMSpringBoneColliderShapeSphere),\n/* harmony export */ VRMSpringBoneJoint: () => (/* binding */ VRMSpringBoneJoint),\n/* harmony export */ VRMSpringBoneJointHelper: () => (/* binding */ VRMSpringBoneJointHelper),\n/* harmony export */ VRMSpringBoneLoaderPlugin: () => (/* binding */ VRMSpringBoneLoaderPlugin),\n/* harmony export */ VRMSpringBoneManager: () => (/* binding */ VRMSpringBoneManager),\n/* harmony export */ VRMUtils: () => (/* binding */ VRMUtils)\n/* harmony export */ });\n/* harmony import */ var three__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! three */ \"./node_modules/three/build/three.module.js\");\n/*!\n * @pixiv/three-vrm v2.1.1\n * VRM file loader for three.js.\n *\n * Copyright (c) 2019-2024 pixiv Inc.\n * @pixiv/three-vrm is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\n\n\n/*!\n * @pixiv/three-vrm-core v2.1.1\n * The implementation of core features of VRM, for @pixiv/three-vrm\n *\n * Copyright (c) 2020-2024 pixiv Inc.\n * @pixiv/three-vrm-core is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\n// animationMixer の監視対象は、Scene の中に入っている必要がある。\n// そのため、表示オブジェクトではないけれど、Object3D を継承して Scene に投入できるようにする。\nclass VRMExpression extends three__WEBPACK_IMPORTED_MODULE_0__.Object3D {\n /**\n * A value represents how much it should override blink expressions.\n * `0.0` == no override at all, `1.0` == completely block the expressions.\n */\n get overrideBlinkAmount() {\n if (this.overrideBlink === 'block') {\n return 0.0 < this.weight ? 1.0 : 0.0;\n }\n else if (this.overrideBlink === 'blend') {\n return this.weight;\n }\n else {\n return 0.0;\n }\n }\n /**\n * A value represents how much it should override lookAt expressions.\n * `0.0` == no override at all, `1.0` == completely block the expressions.\n */\n get overrideLookAtAmount() {\n if (this.overrideLookAt === 'block') {\n return 0.0 < this.weight ? 1.0 : 0.0;\n }\n else if (this.overrideLookAt === 'blend') {\n return this.weight;\n }\n else {\n return 0.0;\n }\n }\n /**\n * A value represents how much it should override mouth expressions.\n * `0.0` == no override at all, `1.0` == completely block the expressions.\n */\n get overrideMouthAmount() {\n if (this.overrideMouth === 'block') {\n return 0.0 < this.weight ? 1.0 : 0.0;\n }\n else if (this.overrideMouth === 'blend') {\n return this.weight;\n }\n else {\n return 0.0;\n }\n }\n constructor(expressionName) {\n super();\n /**\n * The current weight of the expression.\n */\n this.weight = 0.0;\n /**\n * Interpret values greater than 0.5 as 1.0, ortherwise 0.0.\n */\n this.isBinary = false;\n /**\n * Specify how the expression overrides blink expressions.\n */\n this.overrideBlink = 'none';\n /**\n * Specify how the expression overrides lookAt expressions.\n */\n this.overrideLookAt = 'none';\n /**\n * Specify how the expression overrides mouth expressions.\n */\n this.overrideMouth = 'none';\n this._binds = [];\n this.name = `VRMExpression_${expressionName}`;\n this.expressionName = expressionName;\n // traverse 時の救済手段として Object3D ではないことを明示しておく\n this.type = 'VRMExpression';\n // 表示目的のオブジェクトではないので、負荷軽減のために visible を false にしておく。\n // これにより、このインスタンスに対する毎フレームの matrix 自動計算を省略できる。\n this.visible = false;\n }\n addBind(bind) {\n this._binds.push(bind);\n }\n /**\n * Apply weight to every assigned blend shapes.\n * Should be called every frame.\n */\n applyWeight(options) {\n var _a;\n let actualWeight = this.isBinary ? (this.weight <= 0.5 ? 0.0 : 1.0) : this.weight;\n actualWeight *= (_a = options === null || options === void 0 ? void 0 : options.multiplier) !== null && _a !== void 0 ? _a : 1.0;\n this._binds.forEach((bind) => bind.applyWeight(actualWeight));\n }\n /**\n * Clear previously assigned blend shapes.\n */\n clearAppliedWeight() {\n this._binds.forEach((bind) => bind.clearAppliedWeight());\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter$6(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction extractPrimitivesInternal(gltf, nodeIndex, node) {\n var _a, _b;\n const json = gltf.parser.json;\n /**\n * Let's list up every possible patterns that parsed gltf nodes with a mesh can have,,,\n *\n * \"*\" indicates that those meshes should be listed up using this function\n *\n * ### A node with a (mesh, a signle primitive)\n *\n * - `THREE.Mesh`: The only primitive of the mesh *\n *\n * ### A node with a (mesh, multiple primitives)\n *\n * - `THREE.Group`: The root of the mesh\n * - `THREE.Mesh`: A primitive of the mesh *\n * - `THREE.Mesh`: A primitive of the mesh (2) *\n *\n * ### A node with a (mesh, multiple primitives) AND (a child with a mesh, a single primitive)\n *\n * - `THREE.Group`: The root of the mesh\n * - `THREE.Mesh`: A primitive of the mesh *\n * - `THREE.Mesh`: A primitive of the mesh (2) *\n * - `THREE.Mesh`: A primitive of a MESH OF THE CHILD\n *\n * ### A node with a (mesh, multiple primitives) AND (a child with a mesh, multiple primitives)\n *\n * - `THREE.Group`: The root of the mesh\n * - `THREE.Mesh`: A primitive of the mesh *\n * - `THREE.Mesh`: A primitive of the mesh (2) *\n * - `THREE.Group`: The root of a MESH OF THE CHILD\n * - `THREE.Mesh`: A primitive of the mesh of the child\n * - `THREE.Mesh`: A primitive of the mesh of the child (2)\n *\n * ### A node with a (mesh, multiple primitives) BUT the node is a bone\n *\n * - `THREE.Bone`: The root of the node, as a bone\n * - `THREE.Group`: The root of the mesh\n * - `THREE.Mesh`: A primitive of the mesh *\n * - `THREE.Mesh`: A primitive of the mesh (2) *\n *\n * ### A node with a (mesh, multiple primitives) AND (a child with a mesh, multiple primitives) BUT the node is a bone\n *\n * - `THREE.Bone`: The root of the node, as a bone\n * - `THREE.Group`: The root of the mesh\n * - `THREE.Mesh`: A primitive of the mesh *\n * - `THREE.Mesh`: A primitive of the mesh (2) *\n * - `THREE.Group`: The root of a MESH OF THE CHILD\n * - `THREE.Mesh`: A primitive of the mesh of the child\n * - `THREE.Mesh`: A primitive of the mesh of the child (2)\n *\n * ...I will take a strategy that traverses the root of the node and take first (primitiveCount) meshes.\n */\n // Make sure that the node has a mesh\n const schemaNode = (_a = json.nodes) === null || _a === void 0 ? void 0 : _a[nodeIndex];\n if (schemaNode == null) {\n console.warn(`extractPrimitivesInternal: Attempt to use nodes[${nodeIndex}] of glTF but the node doesn't exist`);\n return null;\n }\n const meshIndex = schemaNode.mesh;\n if (meshIndex == null) {\n return null;\n }\n // How many primitives the mesh has?\n const schemaMesh = (_b = json.meshes) === null || _b === void 0 ? void 0 : _b[meshIndex];\n if (schemaMesh == null) {\n console.warn(`extractPrimitivesInternal: Attempt to use meshes[${meshIndex}] of glTF but the mesh doesn't exist`);\n return null;\n }\n const primitiveCount = schemaMesh.primitives.length;\n // Traverse the node and take first (primitiveCount) meshes\n const primitives = [];\n node.traverse((object) => {\n if (primitives.length < primitiveCount) {\n if (object.isMesh) {\n primitives.push(object);\n }\n }\n });\n return primitives;\n}\n/**\n * Extract primitives ( `THREE.Mesh[]` ) of a node from a loaded GLTF.\n * The main purpose of this function is to distinguish primitives and children from a node that has both meshes and children.\n *\n * It utilizes the behavior that GLTFLoader adds mesh primitives to the node object ( `THREE.Group` ) first then adds its children.\n *\n * @param gltf A GLTF object taken from GLTFLoader\n * @param nodeIndex The index of the node\n */\nfunction gltfExtractPrimitivesFromNode(gltf, nodeIndex) {\n return __awaiter$6(this, void 0, void 0, function* () {\n const node = yield gltf.parser.getDependency('node', nodeIndex);\n return extractPrimitivesInternal(gltf, nodeIndex, node);\n });\n}\n/**\n * Extract primitives ( `THREE.Mesh[]` ) of nodes from a loaded GLTF.\n * See {@link gltfExtractPrimitivesFromNode} for more details.\n *\n * It returns a map from node index to extraction result.\n * If a node does not have a mesh, the entry for the node will not be put in the returning map.\n *\n * @param gltf A GLTF object taken from GLTFLoader\n */\nfunction gltfExtractPrimitivesFromNodes(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n const nodes = yield gltf.parser.getDependencies('node');\n const map = new Map();\n nodes.forEach((node, index) => {\n const result = extractPrimitivesInternal(gltf, index, node);\n if (result != null) {\n map.set(index, result);\n }\n });\n return map;\n });\n}\n\n/**\n * Get a material definition index of glTF from associated material.\n * It's basically a comat code between Three.js r133 or above and previous versions.\n * @param parser GLTFParser\n * @param material A material of gltf\n * @returns Material definition index of glTF\n */\nfunction gltfGetAssociatedMaterialIndex(parser, material) {\n var _a, _b;\n const threeRevision = parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10);\n let index = null;\n if (threeRevision >= 133) {\n index = (_b = (_a = parser.associations.get(material)) === null || _a === void 0 ? void 0 : _a.materials) !== null && _b !== void 0 ? _b : null;\n }\n else {\n const associations = parser.associations;\n const reference = associations.get(material);\n if ((reference === null || reference === void 0 ? void 0 : reference.type) === 'materials') {\n index = reference.index;\n }\n }\n return index;\n}\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst VRMExpressionPresetName = {\n Aa: 'aa',\n Ih: 'ih',\n Ou: 'ou',\n Ee: 'ee',\n Oh: 'oh',\n Blink: 'blink',\n Happy: 'happy',\n Angry: 'angry',\n Sad: 'sad',\n Relaxed: 'relaxed',\n LookUp: 'lookUp',\n Surprised: 'surprised',\n LookDown: 'lookDown',\n LookLeft: 'lookLeft',\n LookRight: 'lookRight',\n BlinkLeft: 'blinkLeft',\n BlinkRight: 'blinkRight',\n Neutral: 'neutral',\n};\n\n/**\n * Clamp the input value within [0.0 - 1.0].\n *\n * @param value The input value\n */\nfunction saturate(value) {\n return Math.max(Math.min(value, 1.0), 0.0);\n}\n\nclass VRMExpressionManager {\n get expressions() {\n return this._expressions.concat();\n }\n get expressionMap() {\n return Object.assign({}, this._expressionMap);\n }\n /**\n * A map from name to expression, but excluding custom expressions.\n */\n get presetExpressionMap() {\n const result = {};\n const presetNameSet = new Set(Object.values(VRMExpressionPresetName));\n Object.entries(this._expressionMap).forEach(([name, expression]) => {\n if (presetNameSet.has(name)) {\n result[name] = expression;\n }\n });\n return result;\n }\n /**\n * A map from name to expression, but excluding preset expressions.\n */\n get customExpressionMap() {\n const result = {};\n const presetNameSet = new Set(Object.values(VRMExpressionPresetName));\n Object.entries(this._expressionMap).forEach(([name, expression]) => {\n if (!presetNameSet.has(name)) {\n result[name] = expression;\n }\n });\n return result;\n }\n /**\n * Create a new {@link VRMExpressionManager}.\n */\n constructor() {\n /**\n * A set of name or preset name of expressions that will be overridden by {@link VRMExpression.overrideBlink}.\n */\n this.blinkExpressionNames = ['blink', 'blinkLeft', 'blinkRight'];\n /**\n * A set of name or preset name of expressions that will be overridden by {@link VRMExpression.overrideLookAt}.\n */\n this.lookAtExpressionNames = ['lookLeft', 'lookRight', 'lookUp', 'lookDown'];\n /**\n * A set of name or preset name of expressions that will be overridden by {@link VRMExpression.overrideMouth}.\n */\n this.mouthExpressionNames = ['aa', 'ee', 'ih', 'oh', 'ou'];\n /**\n * A set of {@link VRMExpression}.\n * When you want to register expressions, use {@link registerExpression}\n */\n this._expressions = [];\n /**\n * A map from name to expression.\n */\n this._expressionMap = {};\n // do nothing\n }\n /**\n * Copy the given {@link VRMExpressionManager} into this one.\n * @param source The {@link VRMExpressionManager} you want to copy\n * @returns this\n */\n copy(source) {\n // first unregister all the expression it has\n const expressions = this._expressions.concat();\n expressions.forEach((expression) => {\n this.unregisterExpression(expression);\n });\n // then register all the expression of the source\n source._expressions.forEach((expression) => {\n this.registerExpression(expression);\n });\n // copy remaining members\n this.blinkExpressionNames = source.blinkExpressionNames.concat();\n this.lookAtExpressionNames = source.lookAtExpressionNames.concat();\n this.mouthExpressionNames = source.mouthExpressionNames.concat();\n return this;\n }\n /**\n * Returns a clone of this {@link VRMExpressionManager}.\n * @returns Copied {@link VRMExpressionManager}\n */\n clone() {\n return new VRMExpressionManager().copy(this);\n }\n /**\n * Return a registered expression.\n * If it cannot find an expression, it will return `null` instead.\n *\n * @param name Name or preset name of the expression\n */\n getExpression(name) {\n var _a;\n return (_a = this._expressionMap[name]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Register an expression.\n *\n * @param expression {@link VRMExpression} that describes the expression\n */\n registerExpression(expression) {\n this._expressions.push(expression);\n this._expressionMap[expression.expressionName] = expression;\n }\n /**\n * Unregister an expression.\n *\n * @param expression The expression you want to unregister\n */\n unregisterExpression(expression) {\n const index = this._expressions.indexOf(expression);\n if (index === -1) {\n console.warn('VRMExpressionManager: The specified expressions is not registered');\n }\n this._expressions.splice(index, 1);\n delete this._expressionMap[expression.expressionName];\n }\n /**\n * Get the current weight of the specified expression.\n * If it doesn't have an expression of given name, it will return `null` instead.\n *\n * @param name Name of the expression\n */\n getValue(name) {\n var _a;\n const expression = this.getExpression(name);\n return (_a = expression === null || expression === void 0 ? void 0 : expression.weight) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Set a weight to the specified expression.\n *\n * @param name Name of the expression\n * @param weight Weight\n */\n setValue(name, weight) {\n const expression = this.getExpression(name);\n if (expression) {\n expression.weight = saturate(weight);\n }\n }\n /**\n * Get a track name of specified expression.\n * This track name is needed to manipulate its expression via keyframe animations.\n *\n * @example Manipulate an expression using keyframe animation\n * ```js\n * const trackName = vrm.expressionManager.getExpressionTrackName( 'blink' );\n * const track = new THREE.NumberKeyframeTrack(\n * name,\n * [ 0.0, 0.5, 1.0 ], // times\n * [ 0.0, 1.0, 0.0 ] // values\n * );\n *\n * const clip = new THREE.AnimationClip(\n * 'blink', // name\n * 1.0, // duration\n * [ track ] // tracks\n * );\n *\n * const mixer = new THREE.AnimationMixer( vrm.scene );\n * const action = mixer.clipAction( clip );\n * action.play();\n * ```\n *\n * @param name Name of the expression\n */\n getExpressionTrackName(name) {\n const expression = this.getExpression(name);\n return expression ? `${expression.name}.weight` : null;\n }\n /**\n * Update every expressions.\n */\n update() {\n // see how much we should override certain expressions\n const weightMultipliers = this._calculateWeightMultipliers();\n // reset expression binds first\n this._expressions.forEach((expression) => {\n expression.clearAppliedWeight();\n });\n // then apply binds\n this._expressions.forEach((expression) => {\n let multiplier = 1.0;\n const name = expression.expressionName;\n if (this.blinkExpressionNames.indexOf(name) !== -1) {\n multiplier *= weightMultipliers.blink;\n }\n if (this.lookAtExpressionNames.indexOf(name) !== -1) {\n multiplier *= weightMultipliers.lookAt;\n }\n if (this.mouthExpressionNames.indexOf(name) !== -1) {\n multiplier *= weightMultipliers.mouth;\n }\n expression.applyWeight({ multiplier });\n });\n }\n /**\n * Calculate sum of override amounts to see how much we should multiply weights of certain expressions.\n */\n _calculateWeightMultipliers() {\n let blink = 1.0;\n let lookAt = 1.0;\n let mouth = 1.0;\n this._expressions.forEach((expression) => {\n blink -= expression.overrideBlinkAmount;\n lookAt -= expression.overrideLookAtAmount;\n mouth -= expression.overrideMouthAmount;\n });\n blink = Math.max(0.0, blink);\n lookAt = Math.max(0.0, lookAt);\n mouth = Math.max(0.0, mouth);\n return { blink, lookAt, mouth };\n }\n}\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst VRMExpressionMaterialColorType = {\n Color: 'color',\n EmissionColor: 'emissionColor',\n ShadeColor: 'shadeColor',\n MatcapColor: 'matcapColor',\n RimColor: 'rimColor',\n OutlineColor: 'outlineColor',\n};\nconst v0ExpressionMaterialColorMap = {\n _Color: VRMExpressionMaterialColorType.Color,\n _EmissionColor: VRMExpressionMaterialColorType.EmissionColor,\n _ShadeColor: VRMExpressionMaterialColorType.ShadeColor,\n _RimColor: VRMExpressionMaterialColorType.RimColor,\n _OutlineColor: VRMExpressionMaterialColorType.OutlineColor,\n};\n\nconst _color = new three__WEBPACK_IMPORTED_MODULE_0__.Color();\n/**\n * A bind of expression influences to a material color.\n */\nclass VRMExpressionMaterialColorBind {\n constructor({ material, type, targetValue, targetAlpha, }) {\n this.material = material;\n this.type = type;\n this.targetValue = targetValue;\n this.targetAlpha = targetAlpha !== null && targetAlpha !== void 0 ? targetAlpha : 1.0;\n // init bind state\n const color = this._initColorBindState();\n const alpha = this._initAlphaBindState();\n this._state = { color, alpha };\n }\n applyWeight(weight) {\n const { color, alpha } = this._state;\n if (color != null) {\n const { propertyName, deltaValue } = color;\n const target = this.material[propertyName];\n if (target != undefined) {\n target.add(_color.copy(deltaValue).multiplyScalar(weight));\n }\n }\n if (alpha != null) {\n const { propertyName, deltaValue } = alpha;\n const target = this.material[propertyName];\n if (target != undefined) {\n this.material[propertyName] += deltaValue * weight;\n }\n }\n }\n clearAppliedWeight() {\n const { color, alpha } = this._state;\n if (color != null) {\n const { propertyName, initialValue } = color;\n const target = this.material[propertyName];\n if (target != undefined) {\n target.copy(initialValue);\n }\n }\n if (alpha != null) {\n const { propertyName, initialValue } = alpha;\n const target = this.material[propertyName];\n if (target != undefined) {\n this.material[propertyName] = initialValue;\n }\n }\n }\n _initColorBindState() {\n var _a, _b, _c;\n const { material, type, targetValue } = this;\n const propertyNameMap = this._getPropertyNameMap();\n const propertyName = (_b = (_a = propertyNameMap === null || propertyNameMap === void 0 ? void 0 : propertyNameMap[type]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;\n if (propertyName == null) {\n console.warn(`Tried to add a material color bind to the material ${(_c = material.name) !== null && _c !== void 0 ? _c : '(no name)'}, the type ${type} but the material or the type is not supported.`);\n return null;\n }\n const target = material[propertyName];\n const initialValue = target.clone();\n // 負の値を保持するためにColor.subを使わずに差分を計算する\n const deltaValue = new three__WEBPACK_IMPORTED_MODULE_0__.Color(targetValue.r - initialValue.r, targetValue.g - initialValue.g, targetValue.b - initialValue.b);\n return { propertyName, initialValue, deltaValue };\n }\n _initAlphaBindState() {\n var _a, _b, _c;\n const { material, type, targetAlpha } = this;\n const propertyNameMap = this._getPropertyNameMap();\n const propertyName = (_b = (_a = propertyNameMap === null || propertyNameMap === void 0 ? void 0 : propertyNameMap[type]) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : null;\n if (propertyName == null && targetAlpha !== 1.0) {\n console.warn(`Tried to add a material alpha bind to the material ${(_c = material.name) !== null && _c !== void 0 ? _c : '(no name)'}, the type ${type} but the material or the type does not support alpha.`);\n return null;\n }\n if (propertyName == null) {\n return null;\n }\n const initialValue = material[propertyName];\n const deltaValue = targetAlpha - initialValue;\n return { propertyName, initialValue, deltaValue };\n }\n _getPropertyNameMap() {\n var _a, _b;\n return ((_b = (_a = Object.entries(VRMExpressionMaterialColorBind._propertyNameMapMap).find(([distinguisher]) => {\n return this.material[distinguisher] === true;\n })) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : null);\n }\n}\n/**\n * Mapping of property names from VRMC/materialColorBinds.type to three.js/Material.\n * The first element stands for color channels, the second element stands for the alpha channel.\n * The second element can be null if the target property doesn't exist.\n */\n// TODO: We might want to use the `satisfies` operator once we bump TS to 4.9 or higher\n// See: https://github.com/pixiv/three-vrm/pull/1323#discussion_r1374020035\nVRMExpressionMaterialColorBind._propertyNameMapMap = {\n isMeshStandardMaterial: {\n color: ['color', 'opacity'],\n emissionColor: ['emissive', null],\n },\n isMeshBasicMaterial: {\n color: ['color', 'opacity'],\n },\n isMToonMaterial: {\n color: ['color', 'opacity'],\n emissionColor: ['emissive', null],\n outlineColor: ['outlineColorFactor', null],\n matcapColor: ['matcapFactor', null],\n rimColor: ['parametricRimColorFactor', null],\n shadeColor: ['shadeColorFactor', null],\n },\n};\n\n/**\n * A bind of {@link VRMExpression} influences to morph targets.\n */\nclass VRMExpressionMorphTargetBind {\n constructor({ primitives, index, weight, }) {\n this.primitives = primitives;\n this.index = index;\n this.weight = weight;\n }\n applyWeight(weight) {\n this.primitives.forEach((mesh) => {\n var _a;\n if (((_a = mesh.morphTargetInfluences) === null || _a === void 0 ? void 0 : _a[this.index]) != null) {\n mesh.morphTargetInfluences[this.index] += this.weight * weight;\n }\n });\n }\n clearAppliedWeight() {\n this.primitives.forEach((mesh) => {\n var _a;\n if (((_a = mesh.morphTargetInfluences) === null || _a === void 0 ? void 0 : _a[this.index]) != null) {\n mesh.morphTargetInfluences[this.index] = 0.0;\n }\n });\n }\n}\n\nconst _v2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector2();\n/**\n * A bind of expression influences to texture transforms.\n */\nclass VRMExpressionTextureTransformBind {\n constructor({ material, scale, offset, }) {\n var _a, _b;\n this.material = material;\n this.scale = scale;\n this.offset = offset;\n const propertyNames = (_a = Object.entries(VRMExpressionTextureTransformBind._propertyNamesMap).find(([distinguisher]) => {\n return material[distinguisher] === true;\n })) === null || _a === void 0 ? void 0 : _a[1];\n if (propertyNames == null) {\n console.warn(`Tried to add a texture transform bind to the material ${(_b = material.name) !== null && _b !== void 0 ? _b : '(no name)'} but the material is not supported.`);\n this._properties = [];\n }\n else {\n this._properties = [];\n propertyNames.forEach((propertyName) => {\n var _a;\n const texture = (_a = material[propertyName]) === null || _a === void 0 ? void 0 : _a.clone();\n if (!texture) {\n return null;\n }\n material[propertyName] = texture; // because the texture is cloned\n const initialOffset = texture.offset.clone();\n const initialScale = texture.repeat.clone();\n const deltaOffset = offset.clone().sub(initialOffset);\n const deltaScale = scale.clone().sub(initialScale);\n this._properties.push({\n name: propertyName,\n initialOffset,\n deltaOffset,\n initialScale,\n deltaScale,\n });\n });\n }\n }\n applyWeight(weight) {\n this._properties.forEach((property) => {\n const target = this.material[property.name];\n if (target === undefined) {\n return;\n } // TODO: we should kick this at `addMaterialValue`\n target.offset.add(_v2.copy(property.deltaOffset).multiplyScalar(weight));\n target.repeat.add(_v2.copy(property.deltaScale).multiplyScalar(weight));\n });\n }\n clearAppliedWeight() {\n this._properties.forEach((property) => {\n const target = this.material[property.name];\n if (target === undefined) {\n return;\n } // TODO: we should kick this at `addMaterialValue`\n target.offset.copy(property.initialOffset);\n target.repeat.copy(property.initialScale);\n });\n }\n}\nVRMExpressionTextureTransformBind._propertyNamesMap = {\n isMeshStandardMaterial: [\n 'map',\n 'emissiveMap',\n 'bumpMap',\n 'normalMap',\n 'displacementMap',\n 'roughnessMap',\n 'metalnessMap',\n 'alphaMap',\n ],\n isMeshBasicMaterial: ['map', 'specularMap', 'alphaMap'],\n isMToonMaterial: [\n 'map',\n 'normalMap',\n 'emissiveMap',\n 'shadeMultiplyTexture',\n 'rimMultiplyTexture',\n 'outlineWidthMultiplyTexture',\n 'uvAnimationMaskTexture',\n ],\n};\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS$4 = new Set(['1.0', '1.0-beta']);\n/**\n * A plugin of GLTFLoader that imports a {@link VRMExpressionManager} from a VRM extension of a GLTF.\n */\nclass VRMExpressionLoaderPlugin {\n get name() {\n // We should use the extension name instead but we have multiple plugins for an extension...\n return 'VRMExpressionLoaderPlugin';\n }\n constructor(parser) {\n this.parser = parser;\n }\n afterRoot(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n gltf.userData.vrmExpressionManager = yield this._import(gltf);\n });\n }\n /**\n * Import a {@link VRMExpressionManager} from a VRM.\n *\n * @param gltf A parsed result of GLTF taken from GLTFLoader\n */\n _import(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n const v1Result = yield this._v1Import(gltf);\n if (v1Result) {\n return v1Result;\n }\n const v0Result = yield this._v0Import(gltf);\n if (v0Result) {\n return v0Result;\n }\n return null;\n });\n }\n _v1Import(gltf) {\n var _a, _b;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const isVRMUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf('VRMC_vrm')) !== -1;\n if (!isVRMUsed) {\n return null;\n }\n const extension = (_b = json.extensions) === null || _b === void 0 ? void 0 : _b['VRMC_vrm'];\n if (!extension) {\n return null;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS$4.has(specVersion)) {\n console.warn(`VRMExpressionLoaderPlugin: Unknown VRMC_vrm specVersion \"${specVersion}\"`);\n return null;\n }\n const schemaExpressions = extension.expressions;\n if (!schemaExpressions) {\n return null;\n }\n // list expressions\n const presetNameSet = new Set(Object.values(VRMExpressionPresetName));\n const nameSchemaExpressionMap = new Map();\n if (schemaExpressions.preset != null) {\n Object.entries(schemaExpressions.preset).forEach(([name, schemaExpression]) => {\n if (schemaExpression == null) {\n return;\n } // typescript\n if (!presetNameSet.has(name)) {\n console.warn(`VRMExpressionLoaderPlugin: Unknown preset name \"${name}\" detected. Ignoring the expression`);\n return;\n }\n nameSchemaExpressionMap.set(name, schemaExpression);\n });\n }\n if (schemaExpressions.custom != null) {\n Object.entries(schemaExpressions.custom).forEach(([name, schemaExpression]) => {\n if (presetNameSet.has(name)) {\n console.warn(`VRMExpressionLoaderPlugin: Custom expression cannot have preset name \"${name}\". Ignoring the expression`);\n return;\n }\n nameSchemaExpressionMap.set(name, schemaExpression);\n });\n }\n // prepare manager\n const manager = new VRMExpressionManager();\n // load expressions\n yield Promise.all(Array.from(nameSchemaExpressionMap.entries()).map(([name, schemaExpression]) => __awaiter$6(this, void 0, void 0, function* () {\n var _c, _d, _e, _f, _g, _h, _j;\n const expression = new VRMExpression(name);\n gltf.scene.add(expression);\n expression.isBinary = (_c = schemaExpression.isBinary) !== null && _c !== void 0 ? _c : false;\n expression.overrideBlink = (_d = schemaExpression.overrideBlink) !== null && _d !== void 0 ? _d : 'none';\n expression.overrideLookAt = (_e = schemaExpression.overrideLookAt) !== null && _e !== void 0 ? _e : 'none';\n expression.overrideMouth = (_f = schemaExpression.overrideMouth) !== null && _f !== void 0 ? _f : 'none';\n (_g = schemaExpression.morphTargetBinds) === null || _g === void 0 ? void 0 : _g.forEach((bind) => __awaiter$6(this, void 0, void 0, function* () {\n var _k;\n if (bind.node === undefined || bind.index === undefined) {\n return;\n }\n const primitives = (yield gltfExtractPrimitivesFromNode(gltf, bind.node));\n const morphTargetIndex = bind.index;\n // check if the mesh has the target morph target\n if (!primitives.every((primitive) => Array.isArray(primitive.morphTargetInfluences) &&\n morphTargetIndex < primitive.morphTargetInfluences.length)) {\n console.warn(`VRMExpressionLoaderPlugin: ${schemaExpression.name} attempts to index morph #${morphTargetIndex} but not found.`);\n return;\n }\n expression.addBind(new VRMExpressionMorphTargetBind({\n primitives,\n index: morphTargetIndex,\n weight: (_k = bind.weight) !== null && _k !== void 0 ? _k : 1.0,\n }));\n }));\n if (schemaExpression.materialColorBinds || schemaExpression.textureTransformBinds) {\n // list up every material in `gltf.scene`\n const gltfMaterials = [];\n gltf.scene.traverse((object) => {\n const material = object.material;\n if (material) {\n gltfMaterials.push(material);\n }\n });\n (_h = schemaExpression.materialColorBinds) === null || _h === void 0 ? void 0 : _h.forEach((bind) => __awaiter$6(this, void 0, void 0, function* () {\n const materials = gltfMaterials.filter((material) => {\n const materialIndex = gltfGetAssociatedMaterialIndex(this.parser, material);\n return bind.material === materialIndex;\n });\n materials.forEach((material) => {\n expression.addBind(new VRMExpressionMaterialColorBind({\n material,\n type: bind.type,\n targetValue: new three__WEBPACK_IMPORTED_MODULE_0__.Color().fromArray(bind.targetValue),\n targetAlpha: bind.targetValue[3],\n }));\n });\n }));\n (_j = schemaExpression.textureTransformBinds) === null || _j === void 0 ? void 0 : _j.forEach((bind) => __awaiter$6(this, void 0, void 0, function* () {\n const materials = gltfMaterials.filter((material) => {\n const materialIndex = gltfGetAssociatedMaterialIndex(this.parser, material);\n return bind.material === materialIndex;\n });\n materials.forEach((material) => {\n var _a, _b;\n expression.addBind(new VRMExpressionTextureTransformBind({\n material,\n offset: new three__WEBPACK_IMPORTED_MODULE_0__.Vector2().fromArray((_a = bind.offset) !== null && _a !== void 0 ? _a : [0.0, 0.0]),\n scale: new three__WEBPACK_IMPORTED_MODULE_0__.Vector2().fromArray((_b = bind.scale) !== null && _b !== void 0 ? _b : [1.0, 1.0]),\n }));\n });\n }));\n }\n manager.registerExpression(expression);\n })));\n return manager;\n });\n }\n _v0Import(gltf) {\n var _a;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const vrmExt = (_a = json.extensions) === null || _a === void 0 ? void 0 : _a.VRM;\n if (!vrmExt) {\n return null;\n }\n const schemaBlendShape = vrmExt.blendShapeMaster;\n if (!schemaBlendShape) {\n return null;\n }\n const manager = new VRMExpressionManager();\n const schemaBlendShapeGroups = schemaBlendShape.blendShapeGroups;\n if (!schemaBlendShapeGroups) {\n return manager;\n }\n const blendShapeNameSet = new Set();\n yield Promise.all(schemaBlendShapeGroups.map((schemaGroup) => __awaiter$6(this, void 0, void 0, function* () {\n var _b;\n const v0PresetName = schemaGroup.presetName;\n const v1PresetName = (v0PresetName != null && VRMExpressionLoaderPlugin.v0v1PresetNameMap[v0PresetName]) || null;\n const name = v1PresetName !== null && v1PresetName !== void 0 ? v1PresetName : schemaGroup.name;\n if (name == null) {\n console.warn('VRMExpressionLoaderPlugin: One of custom expressions has no name. Ignoring the expression');\n return;\n }\n // duplication check\n if (blendShapeNameSet.has(name)) {\n console.warn(`VRMExpressionLoaderPlugin: An expression preset ${v0PresetName} has duplicated entries. Ignoring the expression`);\n return;\n }\n blendShapeNameSet.add(name);\n const expression = new VRMExpression(name);\n gltf.scene.add(expression);\n expression.isBinary = (_b = schemaGroup.isBinary) !== null && _b !== void 0 ? _b : false;\n // v0 doesn't have ignore properties\n // Bind morphTarget\n if (schemaGroup.binds) {\n schemaGroup.binds.forEach((bind) => __awaiter$6(this, void 0, void 0, function* () {\n var _c;\n if (bind.mesh === undefined || bind.index === undefined) {\n return;\n }\n const nodesUsingMesh = [];\n (_c = json.nodes) === null || _c === void 0 ? void 0 : _c.forEach((node, i) => {\n if (node.mesh === bind.mesh) {\n nodesUsingMesh.push(i);\n }\n });\n const morphTargetIndex = bind.index;\n yield Promise.all(nodesUsingMesh.map((nodeIndex) => __awaiter$6(this, void 0, void 0, function* () {\n var _d;\n const primitives = (yield gltfExtractPrimitivesFromNode(gltf, nodeIndex));\n // check if the mesh has the target morph target\n if (!primitives.every((primitive) => Array.isArray(primitive.morphTargetInfluences) &&\n morphTargetIndex < primitive.morphTargetInfluences.length)) {\n console.warn(`VRMExpressionLoaderPlugin: ${schemaGroup.name} attempts to index ${morphTargetIndex}th morph but not found.`);\n return;\n }\n expression.addBind(new VRMExpressionMorphTargetBind({\n primitives,\n index: morphTargetIndex,\n weight: 0.01 * ((_d = bind.weight) !== null && _d !== void 0 ? _d : 100), // narrowing the range from [ 0.0 - 100.0 ] to [ 0.0 - 1.0 ]\n }));\n })));\n }));\n }\n // Bind MaterialColor and TextureTransform\n const materialValues = schemaGroup.materialValues;\n if (materialValues && materialValues.length !== 0) {\n materialValues.forEach((materialValue) => {\n if (materialValue.materialName === undefined ||\n materialValue.propertyName === undefined ||\n materialValue.targetValue === undefined) {\n return;\n }\n /**\n * アバターのオブジェクトに設定されているマテリアルの内から\n * materialValueで指定されているマテリアルを集める。\n *\n * 特定には名前を使用する。\n * アウトライン描画用のマテリアルも同時に集める。\n */\n const materials = [];\n gltf.scene.traverse((object) => {\n if (object.material) {\n const material = object.material;\n if (Array.isArray(material)) {\n materials.push(...material.filter((mtl) => (mtl.name === materialValue.materialName ||\n mtl.name === materialValue.materialName + ' (Outline)') &&\n materials.indexOf(mtl) === -1));\n }\n else if (material.name === materialValue.materialName && materials.indexOf(material) === -1) {\n materials.push(material);\n }\n }\n });\n const materialPropertyName = materialValue.propertyName;\n materials.forEach((material) => {\n // TextureTransformBind\n if (materialPropertyName === '_MainTex_ST') {\n const scale = new three__WEBPACK_IMPORTED_MODULE_0__.Vector2(materialValue.targetValue[0], materialValue.targetValue[1]);\n const offset = new three__WEBPACK_IMPORTED_MODULE_0__.Vector2(materialValue.targetValue[2], materialValue.targetValue[3]);\n offset.y = 1.0 - offset.y - scale.y;\n expression.addBind(new VRMExpressionTextureTransformBind({\n material,\n scale,\n offset,\n }));\n return;\n }\n // MaterialColorBind\n const materialColorType = v0ExpressionMaterialColorMap[materialPropertyName];\n if (materialColorType) {\n expression.addBind(new VRMExpressionMaterialColorBind({\n material,\n type: materialColorType,\n targetValue: new three__WEBPACK_IMPORTED_MODULE_0__.Color().fromArray(materialValue.targetValue),\n targetAlpha: materialValue.targetValue[3],\n }));\n return;\n }\n console.warn(materialPropertyName + ' is not supported');\n });\n });\n }\n manager.registerExpression(expression);\n })));\n return manager;\n });\n }\n}\nVRMExpressionLoaderPlugin.v0v1PresetNameMap = {\n a: 'aa',\n e: 'ee',\n i: 'ih',\n o: 'oh',\n u: 'ou',\n blink: 'blink',\n joy: 'happy',\n angry: 'angry',\n sorrow: 'sad',\n fun: 'relaxed',\n lookup: 'lookUp',\n lookdown: 'lookDown',\n lookleft: 'lookLeft',\n lookright: 'lookRight',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n blink_l: 'blinkLeft',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n blink_r: 'blinkRight',\n neutral: 'neutral',\n};\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst VRMExpressionOverrideType = {\n None: 'none',\n Block: 'block',\n Blend: 'blend',\n};\n\nclass VRMFirstPerson {\n /**\n * Create a new VRMFirstPerson object.\n *\n * @param humanoid A {@link VRMHumanoid}\n * @param meshAnnotations A renderer settings. See the description of [[RendererFirstPersonFlags]] for more info\n */\n constructor(humanoid, meshAnnotations) {\n this._firstPersonOnlyLayer = VRMFirstPerson.DEFAULT_FIRSTPERSON_ONLY_LAYER;\n this._thirdPersonOnlyLayer = VRMFirstPerson.DEFAULT_THIRDPERSON_ONLY_LAYER;\n this._initializedLayers = false;\n this.humanoid = humanoid;\n this.meshAnnotations = meshAnnotations;\n }\n /**\n * Copy the given {@link VRMFirstPerson} into this one.\n * {@link humanoid} must be same as the source one.\n * @param source The {@link VRMFirstPerson} you want to copy\n * @returns this\n */\n copy(source) {\n if (this.humanoid !== source.humanoid) {\n throw new Error('VRMFirstPerson: humanoid must be same in order to copy');\n }\n this.meshAnnotations = source.meshAnnotations.map((annotation) => ({\n meshes: annotation.meshes.concat(),\n type: annotation.type,\n }));\n return this;\n }\n /**\n * Returns a clone of this {@link VRMFirstPerson}.\n * @returns Copied {@link VRMFirstPerson}\n */\n clone() {\n return new VRMFirstPerson(this.humanoid, this.meshAnnotations).copy(this);\n }\n /**\n * A camera layer represents `FirstPersonOnly` layer.\n * Note that **you must call {@link setup} first before you use the layer feature** or it does not work properly.\n *\n * The value is {@link DEFAULT_FIRSTPERSON_ONLY_LAYER} by default but you can change the layer by specifying via {@link setup} if you prefer.\n *\n * @see https://vrm.dev/en/univrm/api/univrm_use_firstperson/\n * @see https://threejs.org/docs/#api/en/core/Layers\n */\n get firstPersonOnlyLayer() {\n return this._firstPersonOnlyLayer;\n }\n /**\n * A camera layer represents `ThirdPersonOnly` layer.\n * Note that **you must call {@link setup} first before you use the layer feature** or it does not work properly.\n *\n * The value is {@link DEFAULT_THIRDPERSON_ONLY_LAYER} by default but you can change the layer by specifying via {@link setup} if you prefer.\n *\n * @see https://vrm.dev/en/univrm/api/univrm_use_firstperson/\n * @see https://threejs.org/docs/#api/en/core/Layers\n */\n get thirdPersonOnlyLayer() {\n return this._thirdPersonOnlyLayer;\n }\n /**\n * In this method, it assigns layers for every meshes based on mesh annotations.\n * You must call this method first before you use the layer feature.\n *\n * This is an equivalent of [VRMFirstPerson.Setup](https://github.com/vrm-c/UniVRM/blob/73a5bd8fcddaa2a7a8735099a97e63c9db3e5ea0/Assets/VRM/Runtime/FirstPerson/VRMFirstPerson.cs#L295-L299) of the UniVRM.\n *\n * The `cameraLayer` parameter specifies which layer will be assigned for `FirstPersonOnly` / `ThirdPersonOnly`.\n * In UniVRM, we specified those by naming each desired layer as `FIRSTPERSON_ONLY_LAYER` / `THIRDPERSON_ONLY_LAYER`\n * but we are going to specify these layers at here since we are unable to name layers in Three.js.\n *\n * @param cameraLayer Specify which layer will be for `FirstPersonOnly` / `ThirdPersonOnly`.\n */\n setup({ firstPersonOnlyLayer = VRMFirstPerson.DEFAULT_FIRSTPERSON_ONLY_LAYER, thirdPersonOnlyLayer = VRMFirstPerson.DEFAULT_THIRDPERSON_ONLY_LAYER, } = {}) {\n if (this._initializedLayers) {\n return;\n }\n this._firstPersonOnlyLayer = firstPersonOnlyLayer;\n this._thirdPersonOnlyLayer = thirdPersonOnlyLayer;\n this.meshAnnotations.forEach((item) => {\n item.meshes.forEach((mesh) => {\n if (item.type === 'firstPersonOnly') {\n mesh.layers.set(this._firstPersonOnlyLayer);\n mesh.traverse((child) => child.layers.set(this._firstPersonOnlyLayer));\n }\n else if (item.type === 'thirdPersonOnly') {\n mesh.layers.set(this._thirdPersonOnlyLayer);\n mesh.traverse((child) => child.layers.set(this._thirdPersonOnlyLayer));\n }\n else if (item.type === 'auto') {\n this._createHeadlessModel(mesh);\n }\n });\n });\n this._initializedLayers = true;\n }\n _excludeTriangles(triangles, bws, skinIndex, exclude) {\n let count = 0;\n if (bws != null && bws.length > 0) {\n for (let i = 0; i < triangles.length; i += 3) {\n const a = triangles[i];\n const b = triangles[i + 1];\n const c = triangles[i + 2];\n const bw0 = bws[a];\n const skin0 = skinIndex[a];\n if (bw0[0] > 0 && exclude.includes(skin0[0]))\n continue;\n if (bw0[1] > 0 && exclude.includes(skin0[1]))\n continue;\n if (bw0[2] > 0 && exclude.includes(skin0[2]))\n continue;\n if (bw0[3] > 0 && exclude.includes(skin0[3]))\n continue;\n const bw1 = bws[b];\n const skin1 = skinIndex[b];\n if (bw1[0] > 0 && exclude.includes(skin1[0]))\n continue;\n if (bw1[1] > 0 && exclude.includes(skin1[1]))\n continue;\n if (bw1[2] > 0 && exclude.includes(skin1[2]))\n continue;\n if (bw1[3] > 0 && exclude.includes(skin1[3]))\n continue;\n const bw2 = bws[c];\n const skin2 = skinIndex[c];\n if (bw2[0] > 0 && exclude.includes(skin2[0]))\n continue;\n if (bw2[1] > 0 && exclude.includes(skin2[1]))\n continue;\n if (bw2[2] > 0 && exclude.includes(skin2[2]))\n continue;\n if (bw2[3] > 0 && exclude.includes(skin2[3]))\n continue;\n triangles[count++] = a;\n triangles[count++] = b;\n triangles[count++] = c;\n }\n }\n return count;\n }\n _createErasedMesh(src, erasingBonesIndex) {\n const dst = new three__WEBPACK_IMPORTED_MODULE_0__.SkinnedMesh(src.geometry.clone(), src.material);\n dst.name = `${src.name}(erase)`;\n dst.frustumCulled = src.frustumCulled;\n dst.layers.set(this._firstPersonOnlyLayer);\n const geometry = dst.geometry;\n const skinIndexAttr = geometry.getAttribute('skinIndex');\n const skinIndexAttrArray = skinIndexAttr instanceof three__WEBPACK_IMPORTED_MODULE_0__.GLBufferAttribute ? [] : skinIndexAttr.array;\n const skinIndex = [];\n for (let i = 0; i < skinIndexAttrArray.length; i += 4) {\n skinIndex.push([\n skinIndexAttrArray[i],\n skinIndexAttrArray[i + 1],\n skinIndexAttrArray[i + 2],\n skinIndexAttrArray[i + 3],\n ]);\n }\n const skinWeightAttr = geometry.getAttribute('skinWeight');\n const skinWeightAttrArray = skinWeightAttr instanceof three__WEBPACK_IMPORTED_MODULE_0__.GLBufferAttribute ? [] : skinWeightAttr.array;\n const skinWeight = [];\n for (let i = 0; i < skinWeightAttrArray.length; i += 4) {\n skinWeight.push([\n skinWeightAttrArray[i],\n skinWeightAttrArray[i + 1],\n skinWeightAttrArray[i + 2],\n skinWeightAttrArray[i + 3],\n ]);\n }\n const index = geometry.getIndex();\n if (!index) {\n throw new Error(\"The geometry doesn't have an index buffer\");\n }\n const oldTriangles = Array.from(index.array);\n const count = this._excludeTriangles(oldTriangles, skinWeight, skinIndex, erasingBonesIndex);\n const newTriangle = [];\n for (let i = 0; i < count; i++) {\n newTriangle[i] = oldTriangles[i];\n }\n geometry.setIndex(newTriangle);\n // mtoon material includes onBeforeRender. this is unsupported at SkinnedMesh#clone\n if (src.onBeforeRender) {\n dst.onBeforeRender = src.onBeforeRender;\n }\n dst.bind(new three__WEBPACK_IMPORTED_MODULE_0__.Skeleton(src.skeleton.bones, src.skeleton.boneInverses), new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4());\n return dst;\n }\n _createHeadlessModelForSkinnedMesh(parent, mesh) {\n const eraseBoneIndexes = [];\n mesh.skeleton.bones.forEach((bone, index) => {\n if (this._isEraseTarget(bone))\n eraseBoneIndexes.push(index);\n });\n // Unlike UniVRM we don't copy mesh if no invisible bone was found\n if (!eraseBoneIndexes.length) {\n mesh.layers.enable(this._thirdPersonOnlyLayer);\n mesh.layers.enable(this._firstPersonOnlyLayer);\n return;\n }\n mesh.layers.set(this._thirdPersonOnlyLayer);\n const newMesh = this._createErasedMesh(mesh, eraseBoneIndexes);\n parent.add(newMesh);\n }\n _createHeadlessModel(node) {\n if (node.type === 'Group') {\n node.layers.set(this._thirdPersonOnlyLayer);\n if (this._isEraseTarget(node)) {\n node.traverse((child) => child.layers.set(this._thirdPersonOnlyLayer));\n }\n else {\n const parent = new three__WEBPACK_IMPORTED_MODULE_0__.Group();\n parent.name = `_headless_${node.name}`;\n parent.layers.set(this._firstPersonOnlyLayer);\n node.parent.add(parent);\n node.children\n .filter((child) => child.type === 'SkinnedMesh')\n .forEach((child) => {\n const skinnedMesh = child;\n this._createHeadlessModelForSkinnedMesh(parent, skinnedMesh);\n });\n }\n }\n else if (node.type === 'SkinnedMesh') {\n const skinnedMesh = node;\n this._createHeadlessModelForSkinnedMesh(node.parent, skinnedMesh);\n }\n else {\n if (this._isEraseTarget(node)) {\n node.layers.set(this._thirdPersonOnlyLayer);\n node.traverse((child) => child.layers.set(this._thirdPersonOnlyLayer));\n }\n }\n }\n _isEraseTarget(bone) {\n if (bone === this.humanoid.getRawBoneNode('head')) {\n return true;\n }\n else if (!bone.parent) {\n return false;\n }\n else {\n return this._isEraseTarget(bone.parent);\n }\n }\n}\n/**\n * A default camera layer for `FirstPersonOnly` layer.\n *\n * @see [[getFirstPersonOnlyLayer]]\n */\nVRMFirstPerson.DEFAULT_FIRSTPERSON_ONLY_LAYER = 9;\n/**\n * A default camera layer for `ThirdPersonOnly` layer.\n *\n * @see [[getThirdPersonOnlyLayer]]\n */\nVRMFirstPerson.DEFAULT_THIRDPERSON_ONLY_LAYER = 10;\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS$3 = new Set(['1.0', '1.0-beta']);\n/**\n * A plugin of GLTFLoader that imports a {@link VRMFirstPerson} from a VRM extension of a GLTF.\n */\nclass VRMFirstPersonLoaderPlugin {\n get name() {\n // We should use the extension name instead but we have multiple plugins for an extension...\n return 'VRMFirstPersonLoaderPlugin';\n }\n constructor(parser) {\n this.parser = parser;\n }\n afterRoot(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n const vrmHumanoid = gltf.userData.vrmHumanoid;\n // explicitly distinguish null and undefined\n // since vrmHumanoid might be null as a result\n if (vrmHumanoid === null) {\n return;\n }\n else if (vrmHumanoid === undefined) {\n throw new Error('VRMFirstPersonLoaderPlugin: vrmHumanoid is undefined. VRMHumanoidLoaderPlugin have to be used first');\n }\n gltf.userData.vrmFirstPerson = yield this._import(gltf, vrmHumanoid);\n });\n }\n /**\n * Import a {@link VRMFirstPerson} from a VRM.\n *\n * @param gltf A parsed result of GLTF taken from GLTFLoader\n * @param humanoid A {@link VRMHumanoid} instance that represents the VRM\n */\n _import(gltf, humanoid) {\n return __awaiter$6(this, void 0, void 0, function* () {\n if (humanoid == null) {\n return null;\n }\n const v1Result = yield this._v1Import(gltf, humanoid);\n if (v1Result) {\n return v1Result;\n }\n const v0Result = yield this._v0Import(gltf, humanoid);\n if (v0Result) {\n return v0Result;\n }\n return null;\n });\n }\n _v1Import(gltf, humanoid) {\n var _a, _b;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const isVRMUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf('VRMC_vrm')) !== -1;\n if (!isVRMUsed) {\n return null;\n }\n const extension = (_b = json.extensions) === null || _b === void 0 ? void 0 : _b['VRMC_vrm'];\n if (!extension) {\n return null;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS$3.has(specVersion)) {\n console.warn(`VRMFirstPersonLoaderPlugin: Unknown VRMC_vrm specVersion \"${specVersion}\"`);\n return null;\n }\n const schemaFirstPerson = extension.firstPerson;\n if (!schemaFirstPerson) {\n return null;\n }\n const meshAnnotations = [];\n const nodePrimitivesMap = yield gltfExtractPrimitivesFromNodes(gltf);\n Array.from(nodePrimitivesMap.entries()).forEach(([nodeIndex, primitives]) => {\n var _a;\n const annotation = schemaFirstPerson.meshAnnotations\n ? schemaFirstPerson.meshAnnotations.find((a) => a.node === nodeIndex)\n : undefined;\n meshAnnotations.push({\n meshes: primitives,\n type: (_a = annotation === null || annotation === void 0 ? void 0 : annotation.type) !== null && _a !== void 0 ? _a : 'both',\n });\n });\n return new VRMFirstPerson(humanoid, meshAnnotations);\n });\n }\n _v0Import(gltf, humanoid) {\n var _a;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n const vrmExt = (_a = json.extensions) === null || _a === void 0 ? void 0 : _a.VRM;\n if (!vrmExt) {\n return null;\n }\n const schemaFirstPerson = vrmExt.firstPerson;\n if (!schemaFirstPerson) {\n return null;\n }\n const meshAnnotations = [];\n const nodePrimitivesMap = yield gltfExtractPrimitivesFromNodes(gltf);\n Array.from(nodePrimitivesMap.entries()).forEach(([nodeIndex, primitives]) => {\n const schemaNode = json.nodes[nodeIndex];\n const flag = schemaFirstPerson.meshAnnotations\n ? schemaFirstPerson.meshAnnotations.find((a) => a.mesh === schemaNode.mesh)\n : undefined;\n meshAnnotations.push({\n meshes: primitives,\n type: this._convertV0FlagToV1Type(flag === null || flag === void 0 ? void 0 : flag.firstPersonFlag),\n });\n });\n return new VRMFirstPerson(humanoid, meshAnnotations);\n });\n }\n _convertV0FlagToV1Type(flag) {\n if (flag === 'FirstPersonOnly') {\n return 'firstPersonOnly';\n }\n else if (flag === 'ThirdPersonOnly') {\n return 'thirdPersonOnly';\n }\n else if (flag === 'Auto') {\n return 'auto';\n }\n else {\n return 'both';\n }\n }\n}\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst VRMFirstPersonMeshAnnotationType = {\n Auto: 'auto',\n Both: 'both',\n ThirdPersonOnly: 'thirdPersonOnly',\n FirstPersonOnly: 'firstPersonOnly',\n};\n\nconst _v3A$4$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B$2$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA$5 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nclass VRMHumanoidHelper extends three__WEBPACK_IMPORTED_MODULE_0__.Group {\n constructor(humanoid) {\n super();\n this.vrmHumanoid = humanoid;\n this._boneAxesMap = new Map();\n Object.values(humanoid.humanBones).forEach((bone) => {\n const helper = new three__WEBPACK_IMPORTED_MODULE_0__.AxesHelper(1.0);\n helper.matrixAutoUpdate = false;\n helper.material.depthTest = false;\n helper.material.depthWrite = false;\n this.add(helper);\n this._boneAxesMap.set(bone, helper);\n });\n }\n dispose() {\n Array.from(this._boneAxesMap.values()).forEach((axes) => {\n axes.geometry.dispose();\n axes.material.dispose();\n });\n }\n updateMatrixWorld(force) {\n Array.from(this._boneAxesMap.entries()).forEach(([bone, axes]) => {\n bone.node.updateWorldMatrix(true, false);\n bone.node.matrixWorld.decompose(_v3A$4$1, _quatA$5, _v3B$2$1);\n const scale = _v3A$4$1.set(0.1, 0.1, 0.1).divide(_v3B$2$1);\n axes.matrix.copy(bone.node.matrixWorld).scale(scale);\n });\n super.updateMatrixWorld(force);\n }\n}\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * The list of {@link VRMHumanBoneName}. Dependency aware.\n */\nconst VRMHumanBoneList = [\n 'hips',\n 'spine',\n 'chest',\n 'upperChest',\n 'neck',\n 'head',\n 'leftEye',\n 'rightEye',\n 'jaw',\n 'leftUpperLeg',\n 'leftLowerLeg',\n 'leftFoot',\n 'leftToes',\n 'rightUpperLeg',\n 'rightLowerLeg',\n 'rightFoot',\n 'rightToes',\n 'leftShoulder',\n 'leftUpperArm',\n 'leftLowerArm',\n 'leftHand',\n 'rightShoulder',\n 'rightUpperArm',\n 'rightLowerArm',\n 'rightHand',\n 'leftThumbMetacarpal',\n 'leftThumbProximal',\n 'leftThumbDistal',\n 'leftIndexProximal',\n 'leftIndexIntermediate',\n 'leftIndexDistal',\n 'leftMiddleProximal',\n 'leftMiddleIntermediate',\n 'leftMiddleDistal',\n 'leftRingProximal',\n 'leftRingIntermediate',\n 'leftRingDistal',\n 'leftLittleProximal',\n 'leftLittleIntermediate',\n 'leftLittleDistal',\n 'rightThumbMetacarpal',\n 'rightThumbProximal',\n 'rightThumbDistal',\n 'rightIndexProximal',\n 'rightIndexIntermediate',\n 'rightIndexDistal',\n 'rightMiddleProximal',\n 'rightMiddleIntermediate',\n 'rightMiddleDistal',\n 'rightRingProximal',\n 'rightRingIntermediate',\n 'rightRingDistal',\n 'rightLittleProximal',\n 'rightLittleIntermediate',\n 'rightLittleDistal',\n];\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * The names of {@link VRMHumanoid} bone names.\n *\n * Ref: https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_vrm-1.0/humanoid.md\n */\nconst VRMHumanBoneName = {\n Hips: 'hips',\n Spine: 'spine',\n Chest: 'chest',\n UpperChest: 'upperChest',\n Neck: 'neck',\n Head: 'head',\n LeftEye: 'leftEye',\n RightEye: 'rightEye',\n Jaw: 'jaw',\n LeftUpperLeg: 'leftUpperLeg',\n LeftLowerLeg: 'leftLowerLeg',\n LeftFoot: 'leftFoot',\n LeftToes: 'leftToes',\n RightUpperLeg: 'rightUpperLeg',\n RightLowerLeg: 'rightLowerLeg',\n RightFoot: 'rightFoot',\n RightToes: 'rightToes',\n LeftShoulder: 'leftShoulder',\n LeftUpperArm: 'leftUpperArm',\n LeftLowerArm: 'leftLowerArm',\n LeftHand: 'leftHand',\n RightShoulder: 'rightShoulder',\n RightUpperArm: 'rightUpperArm',\n RightLowerArm: 'rightLowerArm',\n RightHand: 'rightHand',\n LeftThumbMetacarpal: 'leftThumbMetacarpal',\n LeftThumbProximal: 'leftThumbProximal',\n LeftThumbDistal: 'leftThumbDistal',\n LeftIndexProximal: 'leftIndexProximal',\n LeftIndexIntermediate: 'leftIndexIntermediate',\n LeftIndexDistal: 'leftIndexDistal',\n LeftMiddleProximal: 'leftMiddleProximal',\n LeftMiddleIntermediate: 'leftMiddleIntermediate',\n LeftMiddleDistal: 'leftMiddleDistal',\n LeftRingProximal: 'leftRingProximal',\n LeftRingIntermediate: 'leftRingIntermediate',\n LeftRingDistal: 'leftRingDistal',\n LeftLittleProximal: 'leftLittleProximal',\n LeftLittleIntermediate: 'leftLittleIntermediate',\n LeftLittleDistal: 'leftLittleDistal',\n RightThumbMetacarpal: 'rightThumbMetacarpal',\n RightThumbProximal: 'rightThumbProximal',\n RightThumbDistal: 'rightThumbDistal',\n RightIndexProximal: 'rightIndexProximal',\n RightIndexIntermediate: 'rightIndexIntermediate',\n RightIndexDistal: 'rightIndexDistal',\n RightMiddleProximal: 'rightMiddleProximal',\n RightMiddleIntermediate: 'rightMiddleIntermediate',\n RightMiddleDistal: 'rightMiddleDistal',\n RightRingProximal: 'rightRingProximal',\n RightRingIntermediate: 'rightRingIntermediate',\n RightRingDistal: 'rightRingDistal',\n RightLittleProximal: 'rightLittleProximal',\n RightLittleIntermediate: 'rightLittleIntermediate',\n RightLittleDistal: 'rightLittleDistal',\n};\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * An object that maps from {@link VRMHumanBoneName} to its parent {@link VRMHumanBoneName}.\n *\n * Ref: https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_vrm-1.0/humanoid.md\n */\nconst VRMHumanBoneParentMap = {\n hips: null,\n spine: 'hips',\n chest: 'spine',\n upperChest: 'chest',\n neck: 'upperChest',\n head: 'neck',\n leftEye: 'head',\n rightEye: 'head',\n jaw: 'head',\n leftUpperLeg: 'hips',\n leftLowerLeg: 'leftUpperLeg',\n leftFoot: 'leftLowerLeg',\n leftToes: 'leftFoot',\n rightUpperLeg: 'hips',\n rightLowerLeg: 'rightUpperLeg',\n rightFoot: 'rightLowerLeg',\n rightToes: 'rightFoot',\n leftShoulder: 'upperChest',\n leftUpperArm: 'leftShoulder',\n leftLowerArm: 'leftUpperArm',\n leftHand: 'leftLowerArm',\n rightShoulder: 'upperChest',\n rightUpperArm: 'rightShoulder',\n rightLowerArm: 'rightUpperArm',\n rightHand: 'rightLowerArm',\n leftThumbMetacarpal: 'leftHand',\n leftThumbProximal: 'leftThumbMetacarpal',\n leftThumbDistal: 'leftThumbProximal',\n leftIndexProximal: 'leftHand',\n leftIndexIntermediate: 'leftIndexProximal',\n leftIndexDistal: 'leftIndexIntermediate',\n leftMiddleProximal: 'leftHand',\n leftMiddleIntermediate: 'leftMiddleProximal',\n leftMiddleDistal: 'leftMiddleIntermediate',\n leftRingProximal: 'leftHand',\n leftRingIntermediate: 'leftRingProximal',\n leftRingDistal: 'leftRingIntermediate',\n leftLittleProximal: 'leftHand',\n leftLittleIntermediate: 'leftLittleProximal',\n leftLittleDistal: 'leftLittleIntermediate',\n rightThumbMetacarpal: 'rightHand',\n rightThumbProximal: 'rightThumbMetacarpal',\n rightThumbDistal: 'rightThumbProximal',\n rightIndexProximal: 'rightHand',\n rightIndexIntermediate: 'rightIndexProximal',\n rightIndexDistal: 'rightIndexIntermediate',\n rightMiddleProximal: 'rightHand',\n rightMiddleIntermediate: 'rightMiddleProximal',\n rightMiddleDistal: 'rightMiddleIntermediate',\n rightRingProximal: 'rightHand',\n rightRingIntermediate: 'rightRingProximal',\n rightRingDistal: 'rightRingIntermediate',\n rightLittleProximal: 'rightHand',\n rightLittleIntermediate: 'rightLittleProximal',\n rightLittleDistal: 'rightLittleIntermediate',\n};\n\n/**\n * A compat function for `Quaternion.invert()` / `Quaternion.inverse()`.\n * `Quaternion.invert()` is introduced in r123 and `Quaternion.inverse()` emits a warning.\n * We are going to use this compat for a while.\n * @param target A target quaternion\n */\nfunction quatInvertCompat$1(target) {\n if (target.invert) {\n target.invert();\n }\n else {\n target.inverse();\n }\n return target;\n}\n\nconst _v3A$3$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA$4 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n/**\n * A class represents the Rig of a VRM.\n */\nclass VRMRig {\n /**\n * Create a new {@link VRMHumanoid}.\n * @param humanBones A {@link VRMHumanBones} contains all the bones of the new humanoid\n */\n constructor(humanBones) {\n this.humanBones = humanBones;\n this.restPose = this.getAbsolutePose();\n }\n /**\n * Return the current absolute pose of this humanoid as a {@link VRMPose}.\n * Note that the output result will contain initial state of the VRM and not compatible between different models.\n * You might want to use {@link getPose} instead.\n */\n getAbsolutePose() {\n const pose = {};\n Object.keys(this.humanBones).forEach((vrmBoneNameString) => {\n const vrmBoneName = vrmBoneNameString;\n const node = this.getBoneNode(vrmBoneName);\n // Ignore when there are no bone on the VRMHumanoid\n if (!node) {\n return;\n }\n // Get the position / rotation from the node\n _v3A$3$2.copy(node.position);\n _quatA$4.copy(node.quaternion);\n // Convert to raw arrays\n pose[vrmBoneName] = {\n position: _v3A$3$2.toArray(),\n rotation: _quatA$4.toArray(),\n };\n });\n return pose;\n }\n /**\n * Return the current pose of this humanoid as a {@link VRMPose}.\n *\n * Each transform is a local transform relative from rest pose (T-pose).\n */\n getPose() {\n const pose = {};\n Object.keys(this.humanBones).forEach((boneNameString) => {\n const boneName = boneNameString;\n const node = this.getBoneNode(boneName);\n // Ignore when there are no bone on the VRMHumanoid\n if (!node) {\n return;\n }\n // Take a diff from restPose\n _v3A$3$2.set(0, 0, 0);\n _quatA$4.identity();\n const restState = this.restPose[boneName];\n if (restState === null || restState === void 0 ? void 0 : restState.position) {\n _v3A$3$2.fromArray(restState.position).negate();\n }\n if (restState === null || restState === void 0 ? void 0 : restState.rotation) {\n quatInvertCompat$1(_quatA$4.fromArray(restState.rotation));\n }\n // Get the position / rotation from the node\n _v3A$3$2.add(node.position);\n _quatA$4.premultiply(node.quaternion);\n // Convert to raw arrays\n pose[boneName] = {\n position: _v3A$3$2.toArray(),\n rotation: _quatA$4.toArray(),\n };\n });\n return pose;\n }\n /**\n * Let the humanoid do a specified pose.\n *\n * Each transform have to be a local transform relative from rest pose (T-pose).\n * You can pass what you got from {@link getPose}.\n *\n * @param poseObject A [[VRMPose]] that represents a single pose\n */\n setPose(poseObject) {\n Object.entries(poseObject).forEach(([boneNameString, state]) => {\n const boneName = boneNameString;\n const node = this.getBoneNode(boneName);\n // Ignore when there are no bone that is defined in the pose on the VRMHumanoid\n if (!node) {\n return;\n }\n const restState = this.restPose[boneName];\n if (!restState) {\n // It's very unlikely. Possibly a bug\n return;\n }\n // Apply the state to the actual bone\n if (state === null || state === void 0 ? void 0 : state.position) {\n node.position.fromArray(state.position);\n if (restState.position) {\n node.position.add(_v3A$3$2.fromArray(restState.position));\n }\n }\n if (state === null || state === void 0 ? void 0 : state.rotation) {\n node.quaternion.fromArray(state.rotation);\n if (restState.rotation) {\n node.quaternion.multiply(_quatA$4.fromArray(restState.rotation));\n }\n }\n });\n }\n /**\n * Reset the humanoid to its rest pose.\n */\n resetPose() {\n Object.entries(this.restPose).forEach(([boneName, rest]) => {\n const node = this.getBoneNode(boneName);\n if (!node) {\n return;\n }\n if (rest === null || rest === void 0 ? void 0 : rest.position) {\n node.position.fromArray(rest.position);\n }\n if (rest === null || rest === void 0 ? void 0 : rest.rotation) {\n node.quaternion.fromArray(rest.rotation);\n }\n });\n }\n /**\n * Return a bone bound to a specified {@link VRMHumanBoneName}, as a {@link VRMHumanBone}.\n *\n * @param name Name of the bone you want\n */\n getBone(name) {\n var _a;\n return (_a = this.humanBones[name]) !== null && _a !== void 0 ? _a : undefined;\n }\n /**\n * Return a bone bound to a specified {@link VRMHumanBoneName}, as a `THREE.Object3D`.\n *\n * @param name Name of the bone you want\n */\n getBoneNode(name) {\n var _a, _b;\n return (_b = (_a = this.humanBones[name]) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : null;\n }\n}\n\nconst _v3A$2$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA$3$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _boneWorldPos = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n/**\n * A class represents the normalized Rig of a VRM.\n */\nclass VRMHumanoidRig extends VRMRig {\n static _setupTransforms(modelRig) {\n const root = new three__WEBPACK_IMPORTED_MODULE_0__.Object3D();\n root.name = 'VRMHumanoidRig';\n // store boneWorldPositions, boneWorldRotations, and parentWorldRotations\n const boneWorldPositions = {};\n const boneRotations = {};\n const parentWorldRotations = {};\n VRMHumanBoneList.forEach((boneName) => {\n var _a;\n const boneNode = modelRig.getBoneNode(boneName);\n if (boneNode) {\n const boneWorldPosition = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n const boneWorldRotation = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n boneNode.updateWorldMatrix(true, false);\n boneNode.matrixWorld.decompose(boneWorldPosition, boneWorldRotation, _v3A$2$2);\n boneWorldPositions[boneName] = boneWorldPosition;\n boneRotations[boneName] = boneNode.quaternion.clone();\n const parentWorldRotation = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n (_a = boneNode.parent) === null || _a === void 0 ? void 0 : _a.matrixWorld.decompose(_v3A$2$2, parentWorldRotation, _v3A$2$2);\n parentWorldRotations[boneName] = parentWorldRotation;\n }\n });\n // build rig hierarchy + store parentWorldRotations\n const rigBones = {};\n VRMHumanBoneList.forEach((boneName) => {\n var _a;\n const boneNode = modelRig.getBoneNode(boneName);\n if (boneNode) {\n const boneWorldPosition = boneWorldPositions[boneName];\n // see the nearest parent position\n let currentBoneName = boneName;\n let parentBoneWorldPosition;\n while (parentBoneWorldPosition == null) {\n currentBoneName = VRMHumanBoneParentMap[currentBoneName];\n if (currentBoneName == null) {\n break;\n }\n parentBoneWorldPosition = boneWorldPositions[currentBoneName];\n }\n // add to hierarchy\n const rigBoneNode = new three__WEBPACK_IMPORTED_MODULE_0__.Object3D();\n rigBoneNode.name = 'Normalized_' + boneNode.name;\n const parentRigBoneNode = (currentBoneName ? (_a = rigBones[currentBoneName]) === null || _a === void 0 ? void 0 : _a.node : root);\n parentRigBoneNode.add(rigBoneNode);\n rigBoneNode.position.copy(boneWorldPosition);\n if (parentBoneWorldPosition) {\n rigBoneNode.position.sub(parentBoneWorldPosition);\n }\n rigBones[boneName] = { node: rigBoneNode };\n }\n });\n return {\n rigBones: rigBones,\n root,\n parentWorldRotations,\n boneRotations,\n };\n }\n constructor(humanoid) {\n const { rigBones, root, parentWorldRotations, boneRotations } = VRMHumanoidRig._setupTransforms(humanoid);\n super(rigBones);\n this.original = humanoid;\n this.root = root;\n this._parentWorldRotations = parentWorldRotations;\n this._boneRotations = boneRotations;\n }\n /**\n * Update this humanoid rig.\n */\n update() {\n VRMHumanBoneList.forEach((boneName) => {\n const boneNode = this.original.getBoneNode(boneName);\n if (boneNode != null) {\n const rigBoneNode = this.getBoneNode(boneName);\n const parentWorldRotation = this._parentWorldRotations[boneName];\n const invParentWorldRotation = _quatA$3$1.copy(parentWorldRotation).invert();\n const boneRotation = this._boneRotations[boneName];\n boneNode.quaternion\n .copy(rigBoneNode.quaternion)\n .multiply(parentWorldRotation)\n .premultiply(invParentWorldRotation)\n .multiply(boneRotation);\n // Move the mass center of the VRM\n if (boneName === 'hips') {\n const boneWorldPosition = rigBoneNode.getWorldPosition(_boneWorldPos);\n boneNode.parent.updateWorldMatrix(true, false);\n const parentWorldMatrix = boneNode.parent.matrixWorld;\n const localPosition = boneWorldPosition.applyMatrix4(parentWorldMatrix.invert());\n boneNode.position.copy(localPosition);\n }\n }\n });\n }\n}\n\n/**\n * A class represents a humanoid of a VRM.\n */\nclass VRMHumanoid {\n /**\n * @deprecated Deprecated. Use either {@link rawRestPose} or {@link normalizedRestPose} instead.\n */\n get restPose() {\n console.warn('VRMHumanoid: restPose is deprecated. Use either rawRestPose or normalizedRestPose instead.');\n return this.rawRestPose;\n }\n /**\n * A {@link VRMPose} of its raw human bones that is its default state.\n * Note that it's not compatible with {@link setRawPose} and {@link getRawPose}, since it contains non-relative values of each local transforms.\n */\n get rawRestPose() {\n return this._rawHumanBones.restPose;\n }\n /**\n * A {@link VRMPose} of its normalized human bones that is its default state.\n * Note that it's not compatible with {@link setNormalizedPose} and {@link getNormalizedPose}, since it contains non-relative values of each local transforms.\n */\n get normalizedRestPose() {\n return this._normalizedHumanBones.restPose;\n }\n /**\n * A map from {@link VRMHumanBoneName} to raw {@link VRMHumanBone}s.\n */\n get humanBones() {\n // an alias of `rawHumanBones`\n return this._rawHumanBones.humanBones;\n }\n /**\n * A map from {@link VRMHumanBoneName} to raw {@link VRMHumanBone}s.\n */\n get rawHumanBones() {\n return this._rawHumanBones.humanBones;\n }\n /**\n * A map from {@link VRMHumanBoneName} to normalized {@link VRMHumanBone}s.\n */\n get normalizedHumanBones() {\n return this._normalizedHumanBones.humanBones;\n }\n /**\n * The root of normalized {@link VRMHumanBone}s.\n */\n get normalizedHumanBonesRoot() {\n return this._normalizedHumanBones.root;\n }\n /**\n * Create a new {@link VRMHumanoid}.\n * @param humanBones A {@link VRMHumanBones} contains all the bones of the new humanoid\n * @param autoUpdateHumanBones Whether it copies pose from normalizedHumanBones to rawHumanBones on {@link update}. `true` by default.\n */\n constructor(humanBones, options) {\n var _a;\n this.autoUpdateHumanBones = (_a = options === null || options === void 0 ? void 0 : options.autoUpdateHumanBones) !== null && _a !== void 0 ? _a : true;\n this._rawHumanBones = new VRMRig(humanBones);\n this._normalizedHumanBones = new VRMHumanoidRig(this._rawHumanBones);\n }\n /**\n * Copy the given {@link VRMHumanoid} into this one.\n * @param source The {@link VRMHumanoid} you want to copy\n * @returns this\n */\n copy(source) {\n this.autoUpdateHumanBones = source.autoUpdateHumanBones;\n this._rawHumanBones = new VRMRig(source.humanBones);\n this._normalizedHumanBones = new VRMHumanoidRig(this._rawHumanBones);\n return this;\n }\n /**\n * Returns a clone of this {@link VRMHumanoid}.\n * @returns Copied {@link VRMHumanoid}\n */\n clone() {\n return new VRMHumanoid(this.humanBones, { autoUpdateHumanBones: this.autoUpdateHumanBones }).copy(this);\n }\n /**\n * @deprecated Deprecated. Use either {@link getRawAbsolutePose} or {@link getNormalizedAbsolutePose} instead.\n */\n getAbsolutePose() {\n console.warn('VRMHumanoid: getAbsolutePose() is deprecated. Use either getRawAbsolutePose() or getNormalizedAbsolutePose() instead.');\n return this.getRawAbsolutePose();\n }\n /**\n * Return the current absolute pose of this raw human bones as a {@link VRMPose}.\n * Note that the output result will contain initial state of the VRM and not compatible between different models.\n * You might want to use {@link getRawPose} instead.\n */\n getRawAbsolutePose() {\n return this._rawHumanBones.getAbsolutePose();\n }\n /**\n * Return the current absolute pose of this normalized human bones as a {@link VRMPose}.\n * Note that the output result will contain initial state of the VRM and not compatible between different models.\n * You might want to use {@link getNormalizedPose} instead.\n */\n getNormalizedAbsolutePose() {\n return this._normalizedHumanBones.getAbsolutePose();\n }\n /**\n * @deprecated Deprecated. Use either {@link getRawPose} or {@link getNormalizedPose} instead.\n */\n getPose() {\n console.warn('VRMHumanoid: getPose() is deprecated. Use either getRawPose() or getNormalizedPose() instead.');\n return this.getRawPose();\n }\n /**\n * Return the current pose of raw human bones as a {@link VRMPose}.\n *\n * Each transform is a local transform relative from rest pose (T-pose).\n */\n getRawPose() {\n return this._rawHumanBones.getPose();\n }\n /**\n * Return the current pose of normalized human bones as a {@link VRMPose}.\n *\n * Each transform is a local transform relative from rest pose (T-pose).\n */\n getNormalizedPose() {\n return this._normalizedHumanBones.getPose();\n }\n /**\n * @deprecated Deprecated. Use either {@link setRawPose} or {@link setNormalizedPose} instead.\n */\n setPose(poseObject) {\n console.warn('VRMHumanoid: setPose() is deprecated. Use either setRawPose() or setNormalizedPose() instead.');\n return this.setRawPose(poseObject);\n }\n /**\n * Let the raw human bones do a specified pose.\n *\n * Each transform have to be a local transform relative from rest pose (T-pose).\n * You can pass what you got from {@link getRawPose}.\n *\n * If you are using {@link autoUpdateHumanBones}, you might want to use {@link setNormalizedPose} instead.\n *\n * @param poseObject A {@link VRMPose} that represents a single pose\n */\n setRawPose(poseObject) {\n return this._rawHumanBones.setPose(poseObject);\n }\n /**\n * Let the normalized human bones do a specified pose.\n *\n * Each transform have to be a local transform relative from rest pose (T-pose).\n * You can pass what you got from {@link getNormalizedPose}.\n *\n * @param poseObject A {@link VRMPose} that represents a single pose\n */\n setNormalizedPose(poseObject) {\n return this._normalizedHumanBones.setPose(poseObject);\n }\n /**\n * @deprecated Deprecated. Use either {@link resetRawPose} or {@link resetNormalizedPose} instead.\n */\n resetPose() {\n console.warn('VRMHumanoid: resetPose() is deprecated. Use either resetRawPose() or resetNormalizedPose() instead.');\n return this.resetRawPose();\n }\n /**\n * Reset the raw humanoid to its rest pose.\n *\n * If you are using {@link autoUpdateHumanBones}, you might want to use {@link resetNormalizedPose} instead.\n */\n resetRawPose() {\n return this._rawHumanBones.resetPose();\n }\n /**\n * Reset the normalized humanoid to its rest pose.\n */\n resetNormalizedPose() {\n return this._normalizedHumanBones.resetPose();\n }\n /**\n * @deprecated Deprecated. Use either {@link getRawBone} or {@link getNormalizedBone} instead.\n */\n getBone(name) {\n console.warn('VRMHumanoid: getBone() is deprecated. Use either getRawBone() or getNormalizedBone() instead.');\n return this.getRawBone(name);\n }\n /**\n * Return a raw {@link VRMHumanBone} bound to a specified {@link VRMHumanBoneName}.\n *\n * @param name Name of the bone you want\n */\n getRawBone(name) {\n return this._rawHumanBones.getBone(name);\n }\n /**\n * Return a normalized {@link VRMHumanBone} bound to a specified {@link VRMHumanBoneName}.\n *\n * @param name Name of the bone you want\n */\n getNormalizedBone(name) {\n return this._normalizedHumanBones.getBone(name);\n }\n /**\n * @deprecated Deprecated. Use either {@link getRawBoneNode} or {@link getNormalizedBoneNode} instead.\n */\n getBoneNode(name) {\n console.warn('VRMHumanoid: getBoneNode() is deprecated. Use either getRawBoneNode() or getNormalizedBoneNode() instead.');\n return this.getRawBoneNode(name);\n }\n /**\n * Return a raw bone as a `THREE.Object3D` bound to a specified {@link VRMHumanBoneName}.\n *\n * @param name Name of the bone you want\n */\n getRawBoneNode(name) {\n return this._rawHumanBones.getBoneNode(name);\n }\n /**\n * Return a normalized bone as a `THREE.Object3D` bound to a specified {@link VRMHumanBoneName}.\n *\n * @param name Name of the bone you want\n */\n getNormalizedBoneNode(name) {\n return this._normalizedHumanBones.getBoneNode(name);\n }\n /**\n * Update the humanoid component.\n *\n * If {@link autoUpdateHumanBones} is `true`, it transfers the pose of normalized human bones to raw human bones.\n */\n update() {\n if (this.autoUpdateHumanBones) {\n this._normalizedHumanBones.update();\n }\n }\n}\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst VRMRequiredHumanBoneName = {\n Hips: 'hips',\n Spine: 'spine',\n Head: 'head',\n LeftUpperLeg: 'leftUpperLeg',\n LeftLowerLeg: 'leftLowerLeg',\n LeftFoot: 'leftFoot',\n RightUpperLeg: 'rightUpperLeg',\n RightLowerLeg: 'rightLowerLeg',\n RightFoot: 'rightFoot',\n LeftUpperArm: 'leftUpperArm',\n LeftLowerArm: 'leftLowerArm',\n LeftHand: 'leftHand',\n RightUpperArm: 'rightUpperArm',\n RightLowerArm: 'rightLowerArm',\n RightHand: 'rightHand',\n};\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS$2$1 = new Set(['1.0', '1.0-beta']);\n/**\n * A map from old thumb bone names to new thumb bone names\n */\nconst thumbBoneNameMap = {\n leftThumbProximal: 'leftThumbMetacarpal',\n leftThumbIntermediate: 'leftThumbProximal',\n rightThumbProximal: 'rightThumbMetacarpal',\n rightThumbIntermediate: 'rightThumbProximal',\n};\n/**\n * A plugin of GLTFLoader that imports a {@link VRMHumanoid} from a VRM extension of a GLTF.\n */\nclass VRMHumanoidLoaderPlugin {\n get name() {\n // We should use the extension name instead but we have multiple plugins for an extension...\n return 'VRMHumanoidLoaderPlugin';\n }\n constructor(parser, options) {\n this.parser = parser;\n this.helperRoot = options === null || options === void 0 ? void 0 : options.helperRoot;\n this.autoUpdateHumanBones = options === null || options === void 0 ? void 0 : options.autoUpdateHumanBones;\n }\n afterRoot(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n gltf.userData.vrmHumanoid = yield this._import(gltf);\n });\n }\n /**\n * Import a {@link VRMHumanoid} from a VRM.\n *\n * @param gltf A parsed result of GLTF taken from GLTFLoader\n */\n _import(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n const v1Result = yield this._v1Import(gltf);\n if (v1Result) {\n return v1Result;\n }\n const v0Result = yield this._v0Import(gltf);\n if (v0Result) {\n return v0Result;\n }\n return null;\n });\n }\n _v1Import(gltf) {\n var _a, _b;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const isVRMUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf('VRMC_vrm')) !== -1;\n if (!isVRMUsed) {\n return null;\n }\n const extension = (_b = json.extensions) === null || _b === void 0 ? void 0 : _b['VRMC_vrm'];\n if (!extension) {\n return null;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS$2$1.has(specVersion)) {\n console.warn(`VRMHumanoidLoaderPlugin: Unknown VRMC_vrm specVersion \"${specVersion}\"`);\n return null;\n }\n const schemaHumanoid = extension.humanoid;\n if (!schemaHumanoid) {\n return null;\n }\n /**\n * compat: 1.0-beta thumb bone names\n *\n * `true` if `leftThumbIntermediate` or `rightThumbIntermediate` exists\n */\n const existsPreviousThumbName = schemaHumanoid.humanBones.leftThumbIntermediate != null ||\n schemaHumanoid.humanBones.rightThumbIntermediate != null;\n const humanBones = {};\n if (schemaHumanoid.humanBones != null) {\n yield Promise.all(Object.entries(schemaHumanoid.humanBones).map(([boneNameString, schemaHumanBone]) => __awaiter$6(this, void 0, void 0, function* () {\n let boneName = boneNameString;\n const index = schemaHumanBone.node;\n // compat: 1.0-beta previous thumb bone names\n if (existsPreviousThumbName) {\n const thumbBoneName = thumbBoneNameMap[boneName];\n if (thumbBoneName != null) {\n boneName = thumbBoneName;\n }\n }\n const node = yield this.parser.getDependency('node', index);\n // if the specified node does not exist, emit a warning\n if (node == null) {\n console.warn(`A glTF node bound to the humanoid bone ${boneName} (index = ${index}) does not exist`);\n return;\n }\n // set to the `humanBones`\n humanBones[boneName] = { node };\n })));\n }\n const humanoid = new VRMHumanoid(this._ensureRequiredBonesExist(humanBones), {\n autoUpdateHumanBones: this.autoUpdateHumanBones,\n });\n gltf.scene.add(humanoid.normalizedHumanBonesRoot);\n if (this.helperRoot) {\n const helper = new VRMHumanoidHelper(humanoid);\n this.helperRoot.add(helper);\n helper.renderOrder = this.helperRoot.renderOrder;\n }\n return humanoid;\n });\n }\n _v0Import(gltf) {\n var _a;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n const vrmExt = (_a = json.extensions) === null || _a === void 0 ? void 0 : _a.VRM;\n if (!vrmExt) {\n return null;\n }\n const schemaHumanoid = vrmExt.humanoid;\n if (!schemaHumanoid) {\n return null;\n }\n const humanBones = {};\n if (schemaHumanoid.humanBones != null) {\n yield Promise.all(schemaHumanoid.humanBones.map((bone) => __awaiter$6(this, void 0, void 0, function* () {\n const boneName = bone.bone;\n const index = bone.node;\n if (boneName == null || index == null) {\n return;\n }\n const node = yield this.parser.getDependency('node', index);\n // if the specified node does not exist, emit a warning\n if (node == null) {\n console.warn(`A glTF node bound to the humanoid bone ${boneName} (index = ${index}) does not exist`);\n return;\n }\n // map to new bone name\n const thumbBoneName = thumbBoneNameMap[boneName];\n const newBoneName = (thumbBoneName !== null && thumbBoneName !== void 0 ? thumbBoneName : boneName);\n // v0 VRMs might have a multiple nodes attached to a single bone...\n // so if there already is an entry in the `humanBones`, show a warning and ignore it\n if (humanBones[newBoneName] != null) {\n console.warn(`Multiple bone entries for ${newBoneName} detected (index = ${index}), ignoring duplicated entries.`);\n return;\n }\n // set to the `humanBones`\n humanBones[newBoneName] = { node };\n })));\n }\n const humanoid = new VRMHumanoid(this._ensureRequiredBonesExist(humanBones), {\n autoUpdateHumanBones: this.autoUpdateHumanBones,\n });\n gltf.scene.add(humanoid.normalizedHumanBonesRoot);\n if (this.helperRoot) {\n const helper = new VRMHumanoidHelper(humanoid);\n this.helperRoot.add(helper);\n helper.renderOrder = this.helperRoot.renderOrder;\n }\n return humanoid;\n });\n }\n /**\n * Ensure required bones exist in given human bones.\n * @param humanBones Human bones\n * @returns Human bones, no longer partial!\n */\n _ensureRequiredBonesExist(humanBones) {\n // ensure required bones exist\n const missingRequiredBones = Object.values(VRMRequiredHumanBoneName).filter((requiredBoneName) => humanBones[requiredBoneName] == null);\n // throw an error if there are missing bones\n if (missingRequiredBones.length > 0) {\n throw new Error(`VRMHumanoidLoaderPlugin: These humanoid bones are required but not exist: ${missingRequiredBones.join(', ')}`);\n }\n return humanBones;\n }\n}\n\nclass FanBufferGeometry extends three__WEBPACK_IMPORTED_MODULE_0__.BufferGeometry {\n constructor() {\n super();\n this._currentTheta = 0;\n this._currentRadius = 0;\n this.theta = 0.0;\n this.radius = 0.0;\n this._currentTheta = 0.0;\n this._currentRadius = 0.0;\n this._attrPos = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Float32Array(65 * 3), 3);\n this.setAttribute('position', this._attrPos);\n this._attrIndex = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Uint16Array(3 * 63), 1);\n this.setIndex(this._attrIndex);\n this._buildIndex();\n this.update();\n }\n update() {\n let shouldUpdateGeometry = false;\n if (this._currentTheta !== this.theta) {\n this._currentTheta = this.theta;\n shouldUpdateGeometry = true;\n }\n if (this._currentRadius !== this.radius) {\n this._currentRadius = this.radius;\n shouldUpdateGeometry = true;\n }\n if (shouldUpdateGeometry) {\n this._buildPosition();\n }\n }\n _buildPosition() {\n this._attrPos.setXYZ(0, 0.0, 0.0, 0.0);\n for (let i = 0; i < 64; i++) {\n const t = (i / 63.0) * this._currentTheta;\n this._attrPos.setXYZ(i + 1, this._currentRadius * Math.sin(t), 0.0, this._currentRadius * Math.cos(t));\n }\n this._attrPos.needsUpdate = true;\n }\n _buildIndex() {\n for (let i = 0; i < 63; i++) {\n this._attrIndex.setXYZ(i * 3, 0, i + 1, i + 2);\n }\n this._attrIndex.needsUpdate = true;\n }\n}\n\nclass LineAndSphereBufferGeometry extends three__WEBPACK_IMPORTED_MODULE_0__.BufferGeometry {\n constructor() {\n super();\n this.radius = 0.0;\n this._currentRadius = 0.0;\n this.tail = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this._currentTail = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this._attrPos = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Float32Array(294), 3);\n this.setAttribute('position', this._attrPos);\n this._attrIndex = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Uint16Array(194), 1);\n this.setIndex(this._attrIndex);\n this._buildIndex();\n this.update();\n }\n update() {\n let shouldUpdateGeometry = false;\n if (this._currentRadius !== this.radius) {\n this._currentRadius = this.radius;\n shouldUpdateGeometry = true;\n }\n if (!this._currentTail.equals(this.tail)) {\n this._currentTail.copy(this.tail);\n shouldUpdateGeometry = true;\n }\n if (shouldUpdateGeometry) {\n this._buildPosition();\n }\n }\n _buildPosition() {\n for (let i = 0; i < 32; i++) {\n const t = (i / 16.0) * Math.PI;\n this._attrPos.setXYZ(i, Math.cos(t), Math.sin(t), 0.0);\n this._attrPos.setXYZ(32 + i, 0.0, Math.cos(t), Math.sin(t));\n this._attrPos.setXYZ(64 + i, Math.sin(t), 0.0, Math.cos(t));\n }\n this.scale(this._currentRadius, this._currentRadius, this._currentRadius);\n this.translate(this._currentTail.x, this._currentTail.y, this._currentTail.z);\n this._attrPos.setXYZ(96, 0, 0, 0);\n this._attrPos.setXYZ(97, this._currentTail.x, this._currentTail.y, this._currentTail.z);\n this._attrPos.needsUpdate = true;\n }\n _buildIndex() {\n for (let i = 0; i < 32; i++) {\n const i1 = (i + 1) % 32;\n this._attrIndex.setXY(i * 2, i, i1);\n this._attrIndex.setXY(64 + i * 2, 32 + i, 32 + i1);\n this._attrIndex.setXY(128 + i * 2, 64 + i, 64 + i1);\n }\n this._attrIndex.setXY(192, 96, 97);\n this._attrIndex.needsUpdate = true;\n }\n}\n\nconst _quatA$2$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB$2$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _v3A$1$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B$1$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst SQRT_2_OVER_2 = Math.sqrt(2.0) / 2.0;\nconst QUAT_XY_CW90 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion(0, 0, -SQRT_2_OVER_2, SQRT_2_OVER_2);\nconst VEC3_POSITIVE_Y = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 1.0, 0.0);\nclass VRMLookAtHelper extends three__WEBPACK_IMPORTED_MODULE_0__.Group {\n constructor(lookAt) {\n super();\n this.matrixAutoUpdate = false;\n this.vrmLookAt = lookAt;\n {\n const geometry = new FanBufferGeometry();\n geometry.radius = 0.5;\n const material = new three__WEBPACK_IMPORTED_MODULE_0__.MeshBasicMaterial({\n color: 0x00ff00,\n transparent: true,\n opacity: 0.5,\n side: three__WEBPACK_IMPORTED_MODULE_0__.DoubleSide,\n depthTest: false,\n depthWrite: false,\n });\n this._meshPitch = new three__WEBPACK_IMPORTED_MODULE_0__.Mesh(geometry, material);\n this.add(this._meshPitch);\n }\n {\n const geometry = new FanBufferGeometry();\n geometry.radius = 0.5;\n const material = new three__WEBPACK_IMPORTED_MODULE_0__.MeshBasicMaterial({\n color: 0xff0000,\n transparent: true,\n opacity: 0.5,\n side: three__WEBPACK_IMPORTED_MODULE_0__.DoubleSide,\n depthTest: false,\n depthWrite: false,\n });\n this._meshYaw = new three__WEBPACK_IMPORTED_MODULE_0__.Mesh(geometry, material);\n this.add(this._meshYaw);\n }\n {\n const geometry = new LineAndSphereBufferGeometry();\n geometry.radius = 0.1;\n const material = new three__WEBPACK_IMPORTED_MODULE_0__.LineBasicMaterial({\n color: 0xffffff,\n depthTest: false,\n depthWrite: false,\n });\n this._lineTarget = new three__WEBPACK_IMPORTED_MODULE_0__.LineSegments(geometry, material);\n this._lineTarget.frustumCulled = false;\n this.add(this._lineTarget);\n }\n }\n dispose() {\n this._meshYaw.geometry.dispose();\n this._meshYaw.material.dispose();\n this._meshPitch.geometry.dispose();\n this._meshPitch.material.dispose();\n this._lineTarget.geometry.dispose();\n this._lineTarget.material.dispose();\n }\n updateMatrixWorld(force) {\n // update geometries\n const yaw = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.vrmLookAt.yaw;\n this._meshYaw.geometry.theta = yaw;\n this._meshYaw.geometry.update();\n const pitch = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.vrmLookAt.pitch;\n this._meshPitch.geometry.theta = pitch;\n this._meshPitch.geometry.update();\n // get world position and quaternion\n this.vrmLookAt.getLookAtWorldPosition(_v3A$1$2);\n this.vrmLookAt.getLookAtWorldQuaternion(_quatA$2$1);\n // calculate rotation using faceFront\n _quatA$2$1.multiply(this.vrmLookAt.getFaceFrontQuaternion(_quatB$2$1));\n // set transform to meshes\n this._meshYaw.position.copy(_v3A$1$2);\n this._meshYaw.quaternion.copy(_quatA$2$1);\n this._meshPitch.position.copy(_v3A$1$2);\n this._meshPitch.quaternion.copy(_quatA$2$1);\n this._meshPitch.quaternion.multiply(_quatB$2$1.setFromAxisAngle(VEC3_POSITIVE_Y, yaw));\n this._meshPitch.quaternion.multiply(QUAT_XY_CW90);\n // update target line and sphere\n const { target, autoUpdate } = this.vrmLookAt;\n if (target != null && autoUpdate) {\n target.getWorldPosition(_v3B$1$2).sub(_v3A$1$2);\n this._lineTarget.geometry.tail.copy(_v3B$1$2);\n this._lineTarget.geometry.update();\n this._lineTarget.position.copy(_v3A$1$2);\n }\n // apply transform to meshes\n super.updateMatrixWorld(force);\n }\n}\n\nconst _position = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _scale = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n/**\n * A replacement of `Object3D.getWorldQuaternion`.\n * Extract the world quaternion of an object from its world space matrix, without calling `Object3D.updateWorldMatrix`.\n * Use this when you're sure that the world matrix is up-to-date.\n *\n * @param object The object\n * @param out A target quaternion\n */\nfunction getWorldQuaternionLite(object, out) {\n object.matrixWorld.decompose(_position, out, _scale);\n return out;\n}\n\n/**\n * Calculate azimuth / altitude angles from a vector.\n *\n * This returns a difference of angles from (1, 0, 0).\n * Azimuth represents an angle around Y axis.\n * Altitude represents an angle around Z axis.\n * It is rotated in intrinsic Y-Z order.\n *\n * @param vector The vector\n * @returns A tuple contains two angles, `[ azimuth, altitude ]`\n */\nfunction calcAzimuthAltitude(vector) {\n return [Math.atan2(-vector.z, vector.x), Math.atan2(vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z))];\n}\n\n/**\n * Make sure the angle is within -PI to PI.\n *\n * @example\n * ```js\n * sanitizeAngle(1.5 * Math.PI) // -0.5 * PI\n * ```\n *\n * @param angle An input angle\n */\nfunction sanitizeAngle(angle) {\n const roundTurn = Math.round(angle / 2.0 / Math.PI);\n return angle - 2.0 * Math.PI * roundTurn;\n}\n\nconst VEC3_POSITIVE_Z$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 1.0);\nconst _v3A$6 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B$3 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3C$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA$1$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB$1$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatC$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatD = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _eulerA$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Euler();\n/**\n * A class controls eye gaze movements of a VRM.\n */\nclass VRMLookAt {\n /**\n * Its current angle around Y axis, in degree.\n */\n get yaw() {\n return this._yaw;\n }\n /**\n * Its current angle around Y axis, in degree.\n */\n set yaw(value) {\n this._yaw = value;\n this._needsUpdate = true;\n }\n /**\n * Its current angle around X axis, in degree.\n */\n get pitch() {\n return this._pitch;\n }\n /**\n * Its current angle around X axis, in degree.\n */\n set pitch(value) {\n this._pitch = value;\n this._needsUpdate = true;\n }\n /**\n * @deprecated Use {@link getEuler} instead.\n */\n get euler() {\n console.warn('VRMLookAt: euler is deprecated. use getEuler() instead.');\n return this.getEuler(new three__WEBPACK_IMPORTED_MODULE_0__.Euler());\n }\n /**\n * Create a new {@link VRMLookAt}.\n *\n * @param humanoid A {@link VRMHumanoid}\n * @param applier A {@link VRMLookAtApplier}\n */\n constructor(humanoid, applier) {\n /**\n * The origin of LookAt. Position offset from the head bone.\n */\n this.offsetFromHeadBone = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n /**\n * If this is true, the LookAt will be updated automatically by calling {@link update}, towarding the direction to the {@link target}.\n * `true` by default.\n *\n * See also: {@link target}\n */\n this.autoUpdate = true;\n /**\n * The front direction of the face.\n * Intended to be used for VRM 0.0 compat (VRM 0.0 models are facing Z- instead of Z+).\n * You usually don't want to touch this.\n */\n this.faceFront = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 1.0);\n this.humanoid = humanoid;\n this.applier = applier;\n this._yaw = 0.0;\n this._pitch = 0.0;\n this._needsUpdate = true;\n this._restHeadWorldQuaternion = this.getLookAtWorldQuaternion(new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion());\n }\n /**\n * Get its yaw-pitch angles as an `Euler`.\n * Does NOT consider {@link faceFront}; it returns `Euler(0, 0, 0; \"YXZ\")` by default regardless of the faceFront value.\n *\n * @param target The target euler\n */\n getEuler(target) {\n return target.set(three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this._pitch, three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this._yaw, 0.0, 'YXZ');\n }\n /**\n * Copy the given {@link VRMLookAt} into this one.\n * {@link humanoid} must be same as the source one.\n * {@link applier} will reference the same instance as the source one.\n * @param source The {@link VRMLookAt} you want to copy\n * @returns this\n */\n copy(source) {\n if (this.humanoid !== source.humanoid) {\n throw new Error('VRMLookAt: humanoid must be same in order to copy');\n }\n this.offsetFromHeadBone.copy(source.offsetFromHeadBone);\n this.applier = source.applier;\n this.autoUpdate = source.autoUpdate;\n this.target = source.target;\n this.faceFront.copy(source.faceFront);\n return this;\n }\n /**\n * Returns a clone of this {@link VRMLookAt}.\n * Note that {@link humanoid} and {@link applier} will reference the same instance as this one.\n * @returns Copied {@link VRMLookAt}\n */\n clone() {\n return new VRMLookAt(this.humanoid, this.applier).copy(this);\n }\n /**\n * Reset the lookAt direction (yaw and pitch) to the initial direction.\n */\n reset() {\n this._yaw = 0.0;\n this._pitch = 0.0;\n this._needsUpdate = true;\n }\n /**\n * Get its lookAt position in world coordinate.\n *\n * @param target A target `THREE.Vector3`\n */\n getLookAtWorldPosition(target) {\n const head = this.humanoid.getRawBoneNode('head');\n return target.copy(this.offsetFromHeadBone).applyMatrix4(head.matrixWorld);\n }\n /**\n * Get its lookAt rotation in world coordinate.\n * Does NOT consider {@link faceFront}.\n *\n * @param target A target `THREE.Quaternion`\n */\n getLookAtWorldQuaternion(target) {\n const head = this.humanoid.getRawBoneNode('head');\n return getWorldQuaternionLite(head, target);\n }\n /**\n * Get a quaternion that rotates the +Z unit vector of the humanoid Head to the {@link faceFront} direction.\n *\n * @param target A target `THREE.Quaternion`\n */\n getFaceFrontQuaternion(target) {\n if (this.faceFront.distanceToSquared(VEC3_POSITIVE_Z$1) < 0.01) {\n return target.copy(this._restHeadWorldQuaternion).invert();\n }\n const [faceFrontAzimuth, faceFrontAltitude] = calcAzimuthAltitude(this.faceFront);\n _eulerA$1.set(0.0, 0.5 * Math.PI + faceFrontAzimuth, faceFrontAltitude, 'YZX');\n return target.setFromEuler(_eulerA$1).premultiply(_quatD.copy(this._restHeadWorldQuaternion).invert());\n }\n /**\n * Get its LookAt direction in world coordinate.\n *\n * @param target A target `THREE.Vector3`\n */\n getLookAtWorldDirection(target) {\n this.getLookAtWorldQuaternion(_quatB$1$1);\n this.getFaceFrontQuaternion(_quatC$1);\n return target\n .copy(VEC3_POSITIVE_Z$1)\n .applyQuaternion(_quatB$1$1)\n .applyQuaternion(_quatC$1)\n .applyEuler(this.getEuler(_eulerA$1));\n }\n /**\n * Set its lookAt target position.\n *\n * Note that its result will be instantly overwritten if {@link VRMLookAtHead.autoUpdate} is enabled.\n *\n * If you want to track an object continuously, you might want to use {@link target} instead.\n *\n * @param position A target position, in world space\n */\n lookAt(position) {\n // Look at direction in local coordinate\n const headRotDiffInv = _quatA$1$1\n .copy(this._restHeadWorldQuaternion)\n .multiply(quatInvertCompat$1(this.getLookAtWorldQuaternion(_quatB$1$1)));\n const headPos = this.getLookAtWorldPosition(_v3B$3);\n const lookAtDir = _v3C$2.copy(position).sub(headPos).applyQuaternion(headRotDiffInv).normalize();\n // calculate angles\n const [azimuthFrom, altitudeFrom] = calcAzimuthAltitude(this.faceFront);\n const [azimuthTo, altitudeTo] = calcAzimuthAltitude(lookAtDir);\n const yaw = sanitizeAngle(azimuthTo - azimuthFrom);\n const pitch = sanitizeAngle(altitudeFrom - altitudeTo); // spinning (1, 0, 0) CCW around Z axis makes the vector look up, while spinning (0, 0, 1) CCW around X axis makes the vector look down\n // apply angles\n this._yaw = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * yaw;\n this._pitch = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * pitch;\n this._needsUpdate = true;\n }\n /**\n * Update the VRMLookAtHead.\n * If {@link autoUpdate} is enabled, this will make it look at the {@link target}.\n *\n * @param delta deltaTime, it isn't used though. You can use the parameter if you want to use this in your own extended {@link VRMLookAt}.\n */\n update(delta) {\n if (this.target != null && this.autoUpdate) {\n this.lookAt(this.target.getWorldPosition(_v3A$6));\n }\n if (this._needsUpdate) {\n this._needsUpdate = false;\n this.applier.applyYawPitch(this._yaw, this._pitch);\n }\n }\n}\nVRMLookAt.EULER_ORDER = 'YXZ'; // yaw-pitch-roll\n\nconst VEC3_POSITIVE_Z = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 1.0);\nconst _quatA$6 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB$3 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _eulerA = new three__WEBPACK_IMPORTED_MODULE_0__.Euler(0.0, 0.0, 0.0, 'YXZ');\n/**\n * A class that applies eye gaze directions to a VRM.\n * It will be used by {@link VRMLookAt}.\n */\nclass VRMLookAtBoneApplier {\n /**\n * Create a new {@link VRMLookAtBoneApplier}.\n *\n * @param humanoid A {@link VRMHumanoid}\n * @param rangeMapHorizontalInner A {@link VRMLookAtRangeMap} used for inner transverse direction\n * @param rangeMapHorizontalOuter A {@link VRMLookAtRangeMap} used for outer transverse direction\n * @param rangeMapVerticalDown A {@link VRMLookAtRangeMap} used for down direction\n * @param rangeMapVerticalUp A {@link VRMLookAtRangeMap} used for up direction\n */\n constructor(humanoid, rangeMapHorizontalInner, rangeMapHorizontalOuter, rangeMapVerticalDown, rangeMapVerticalUp) {\n this.humanoid = humanoid;\n this.rangeMapHorizontalInner = rangeMapHorizontalInner;\n this.rangeMapHorizontalOuter = rangeMapHorizontalOuter;\n this.rangeMapVerticalDown = rangeMapVerticalDown;\n this.rangeMapVerticalUp = rangeMapVerticalUp;\n this.faceFront = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 1.0);\n // set rest quaternions\n this._restQuatLeftEye = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n this._restQuatRightEye = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n this._restLeftEyeParentWorldQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n this._restRightEyeParentWorldQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n const leftEye = this.humanoid.getRawBoneNode('leftEye');\n const rightEye = this.humanoid.getRawBoneNode('rightEye');\n if (leftEye) {\n this._restQuatLeftEye.copy(leftEye.quaternion);\n getWorldQuaternionLite(leftEye.parent, this._restLeftEyeParentWorldQuat);\n }\n if (rightEye) {\n this._restQuatRightEye.copy(rightEye.quaternion);\n getWorldQuaternionLite(rightEye.parent, this._restRightEyeParentWorldQuat);\n }\n }\n /**\n * Apply the input angle to its associated VRM model.\n *\n * @param yaw Rotation around Y axis, in degree\n * @param pitch Rotation around X axis, in degree\n */\n applyYawPitch(yaw, pitch) {\n const leftEye = this.humanoid.getRawBoneNode('leftEye');\n const rightEye = this.humanoid.getRawBoneNode('rightEye');\n const leftEyeNormalized = this.humanoid.getNormalizedBoneNode('leftEye');\n const rightEyeNormalized = this.humanoid.getNormalizedBoneNode('rightEye');\n // left\n if (leftEye) {\n if (pitch < 0.0) {\n _eulerA.x = -three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapVerticalDown.map(-pitch);\n }\n else {\n _eulerA.x = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapVerticalUp.map(pitch);\n }\n if (yaw < 0.0) {\n _eulerA.y = -three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapHorizontalInner.map(-yaw);\n }\n else {\n _eulerA.y = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapHorizontalOuter.map(yaw);\n }\n _quatA$6.setFromEuler(_eulerA);\n this._getWorldFaceFrontQuat(_quatB$3);\n // _quatB * _quatA * _quatB^-1\n // where _quatA is LookAt rotation\n // and _quatB is worldFaceFrontQuat\n leftEyeNormalized.quaternion.copy(_quatB$3).multiply(_quatA$6).multiply(_quatB$3.invert());\n _quatA$6.copy(this._restLeftEyeParentWorldQuat);\n // _quatA^-1 * leftEyeNormalized.quaternion * _quatA * restQuatLeftEye\n // where _quatA is restLeftEyeParentWorldQuat\n leftEye.quaternion\n .copy(leftEyeNormalized.quaternion)\n .multiply(_quatA$6)\n .premultiply(_quatA$6.invert())\n .multiply(this._restQuatLeftEye);\n }\n // right\n if (rightEye) {\n if (pitch < 0.0) {\n _eulerA.x = -three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapVerticalDown.map(-pitch);\n }\n else {\n _eulerA.x = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapVerticalUp.map(pitch);\n }\n if (yaw < 0.0) {\n _eulerA.y = -three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapHorizontalOuter.map(-yaw);\n }\n else {\n _eulerA.y = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.DEG2RAD * this.rangeMapHorizontalInner.map(yaw);\n }\n _quatA$6.setFromEuler(_eulerA);\n this._getWorldFaceFrontQuat(_quatB$3);\n // _quatB * _quatA * _quatB^-1\n // where _quatA is LookAt rotation\n // and _quatB is worldFaceFrontQuat\n rightEyeNormalized.quaternion.copy(_quatB$3).multiply(_quatA$6).multiply(_quatB$3.invert());\n _quatA$6.copy(this._restRightEyeParentWorldQuat);\n // _quatA^-1 * rightEyeNormalized.quaternion * _quatA * restQuatRightEye\n // where _quatA is restRightEyeParentWorldQuat\n rightEye.quaternion\n .copy(rightEyeNormalized.quaternion)\n .multiply(_quatA$6)\n .premultiply(_quatA$6.invert())\n .multiply(this._restQuatRightEye);\n }\n }\n /**\n * @deprecated Use {@link applyYawPitch} instead.\n */\n lookAt(euler) {\n console.warn('VRMLookAtBoneApplier: lookAt() is deprecated. use apply() instead.');\n const yaw = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * euler.y;\n const pitch = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * euler.x;\n this.applyYawPitch(yaw, pitch);\n }\n /**\n * Get a quaternion that rotates the world-space +Z unit vector to the {@link faceFront} direction.\n *\n * @param target A target `THREE.Quaternion`\n */\n _getWorldFaceFrontQuat(target) {\n if (this.faceFront.distanceToSquared(VEC3_POSITIVE_Z) < 0.01) {\n return target.identity();\n }\n const [faceFrontAzimuth, faceFrontAltitude] = calcAzimuthAltitude(this.faceFront);\n _eulerA.set(0.0, 0.5 * Math.PI + faceFrontAzimuth, faceFrontAltitude, 'YZX');\n return target.setFromEuler(_eulerA);\n }\n}\n/**\n * Represent its type of applier.\n */\nVRMLookAtBoneApplier.type = 'bone';\n\n/**\n * A class that applies eye gaze directions to a VRM.\n * It will be used by {@link VRMLookAt}.\n */\nclass VRMLookAtExpressionApplier {\n /**\n * Create a new {@link VRMLookAtExpressionApplier}.\n *\n * @param expressions A {@link VRMExpressionManager}\n * @param rangeMapHorizontalInner A {@link VRMLookAtRangeMap} used for inner transverse direction\n * @param rangeMapHorizontalOuter A {@link VRMLookAtRangeMap} used for outer transverse direction\n * @param rangeMapVerticalDown A {@link VRMLookAtRangeMap} used for down direction\n * @param rangeMapVerticalUp A {@link VRMLookAtRangeMap} used for up direction\n */\n constructor(expressions, rangeMapHorizontalInner, rangeMapHorizontalOuter, rangeMapVerticalDown, rangeMapVerticalUp) {\n this.expressions = expressions;\n this.rangeMapHorizontalInner = rangeMapHorizontalInner;\n this.rangeMapHorizontalOuter = rangeMapHorizontalOuter;\n this.rangeMapVerticalDown = rangeMapVerticalDown;\n this.rangeMapVerticalUp = rangeMapVerticalUp;\n }\n /**\n * Apply the input angle to its associated VRM model.\n *\n * @param yaw Rotation around Y axis, in degree\n * @param pitch Rotation around X axis, in degree\n */\n applyYawPitch(yaw, pitch) {\n if (pitch < 0.0) {\n this.expressions.setValue('lookDown', 0.0);\n this.expressions.setValue('lookUp', this.rangeMapVerticalUp.map(-pitch));\n }\n else {\n this.expressions.setValue('lookUp', 0.0);\n this.expressions.setValue('lookDown', this.rangeMapVerticalDown.map(pitch));\n }\n if (yaw < 0.0) {\n this.expressions.setValue('lookLeft', 0.0);\n this.expressions.setValue('lookRight', this.rangeMapHorizontalOuter.map(-yaw));\n }\n else {\n this.expressions.setValue('lookRight', 0.0);\n this.expressions.setValue('lookLeft', this.rangeMapHorizontalOuter.map(yaw));\n }\n }\n /**\n * @deprecated Use {@link applyYawPitch} instead.\n */\n lookAt(euler) {\n console.warn('VRMLookAtBoneApplier: lookAt() is deprecated. use apply() instead.');\n const yaw = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * euler.y;\n const pitch = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.RAD2DEG * euler.x;\n this.applyYawPitch(yaw, pitch);\n }\n}\n/**\n * Represent its type of applier.\n */\nVRMLookAtExpressionApplier.type = 'expression';\n\nclass VRMLookAtRangeMap {\n /**\n * Create a new {@link VRMLookAtRangeMap}.\n *\n * @param inputMaxValue The {@link inputMaxValue} of the map\n * @param outputScale The {@link outputScale} of the map\n */\n constructor(inputMaxValue, outputScale) {\n this.inputMaxValue = inputMaxValue;\n this.outputScale = outputScale;\n }\n /**\n * Evaluate an input value and output a mapped value.\n * @param src The input value\n */\n map(src) {\n return this.outputScale * saturate(src / this.inputMaxValue);\n }\n}\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS$1$1 = new Set(['1.0', '1.0-beta']);\n/**\n * The minimum permitted value for {@link V1VRMSchema.LookAtRangeMap.inputMaxValue}.\n * If the given value is smaller than this, the loader shows a warning and clamps up the value.\n */\nconst INPUT_MAX_VALUE_MINIMUM = 0.01;\n/**\n * A plugin of GLTFLoader that imports a {@link VRMLookAt} from a VRM extension of a GLTF.\n */\nclass VRMLookAtLoaderPlugin {\n get name() {\n // We should use the extension name instead but we have multiple plugins for an extension...\n return 'VRMLookAtLoaderPlugin';\n }\n constructor(parser, options) {\n this.parser = parser;\n this.helperRoot = options === null || options === void 0 ? void 0 : options.helperRoot;\n }\n afterRoot(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n const vrmHumanoid = gltf.userData.vrmHumanoid;\n // explicitly distinguish null and undefined\n // since vrmHumanoid might be null as a result\n if (vrmHumanoid === null) {\n return;\n }\n else if (vrmHumanoid === undefined) {\n throw new Error('VRMLookAtLoaderPlugin: vrmHumanoid is undefined. VRMHumanoidLoaderPlugin have to be used first');\n }\n const vrmExpressionManager = gltf.userData.vrmExpressionManager;\n if (vrmExpressionManager === null) {\n return;\n }\n else if (vrmExpressionManager === undefined) {\n throw new Error('VRMLookAtLoaderPlugin: vrmExpressionManager is undefined. VRMExpressionLoaderPlugin have to be used first');\n }\n gltf.userData.vrmLookAt = yield this._import(gltf, vrmHumanoid, vrmExpressionManager);\n });\n }\n /**\n * Import a {@link VRMLookAt} from a VRM.\n *\n * @param gltf A parsed result of GLTF taken from GLTFLoader\n * @param humanoid A {@link VRMHumanoid} instance that represents the VRM\n * @param expressions A {@link VRMExpressionManager} instance that represents the VRM\n */\n _import(gltf, humanoid, expressions) {\n return __awaiter$6(this, void 0, void 0, function* () {\n if (humanoid == null || expressions == null) {\n return null;\n }\n const v1Result = yield this._v1Import(gltf, humanoid, expressions);\n if (v1Result) {\n return v1Result;\n }\n const v0Result = yield this._v0Import(gltf, humanoid, expressions);\n if (v0Result) {\n return v0Result;\n }\n return null;\n });\n }\n _v1Import(gltf, humanoid, expressions) {\n var _a, _b, _c;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const isVRMUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf('VRMC_vrm')) !== -1;\n if (!isVRMUsed) {\n return null;\n }\n const extension = (_b = json.extensions) === null || _b === void 0 ? void 0 : _b['VRMC_vrm'];\n if (!extension) {\n return null;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS$1$1.has(specVersion)) {\n console.warn(`VRMLookAtLoaderPlugin: Unknown VRMC_vrm specVersion \"${specVersion}\"`);\n return null;\n }\n const schemaLookAt = extension.lookAt;\n if (!schemaLookAt) {\n return null;\n }\n const defaultOutputScale = schemaLookAt.type === 'expression' ? 1.0 : 10.0;\n const mapHI = this._v1ImportRangeMap(schemaLookAt.rangeMapHorizontalInner, defaultOutputScale);\n const mapHO = this._v1ImportRangeMap(schemaLookAt.rangeMapHorizontalOuter, defaultOutputScale);\n const mapVD = this._v1ImportRangeMap(schemaLookAt.rangeMapVerticalDown, defaultOutputScale);\n const mapVU = this._v1ImportRangeMap(schemaLookAt.rangeMapVerticalUp, defaultOutputScale);\n let applier;\n if (schemaLookAt.type === 'expression') {\n applier = new VRMLookAtExpressionApplier(expressions, mapHI, mapHO, mapVD, mapVU);\n }\n else {\n applier = new VRMLookAtBoneApplier(humanoid, mapHI, mapHO, mapVD, mapVU);\n }\n const lookAt = this._importLookAt(humanoid, applier);\n lookAt.offsetFromHeadBone.fromArray((_c = schemaLookAt.offsetFromHeadBone) !== null && _c !== void 0 ? _c : [0.0, 0.06, 0.0]);\n return lookAt;\n });\n }\n _v1ImportRangeMap(schemaRangeMap, defaultOutputScale) {\n var _a, _b;\n let inputMaxValue = (_a = schemaRangeMap === null || schemaRangeMap === void 0 ? void 0 : schemaRangeMap.inputMaxValue) !== null && _a !== void 0 ? _a : 90.0;\n const outputScale = (_b = schemaRangeMap === null || schemaRangeMap === void 0 ? void 0 : schemaRangeMap.outputScale) !== null && _b !== void 0 ? _b : defaultOutputScale;\n // It might cause NaN when `inputMaxValue` is too small\n // which makes the mesh of the head disappear\n // See: https://github.com/pixiv/three-vrm/issues/1201\n if (inputMaxValue < INPUT_MAX_VALUE_MINIMUM) {\n console.warn('VRMLookAtLoaderPlugin: inputMaxValue of a range map is too small. Consider reviewing the range map!');\n inputMaxValue = INPUT_MAX_VALUE_MINIMUM;\n }\n return new VRMLookAtRangeMap(inputMaxValue, outputScale);\n }\n _v0Import(gltf, humanoid, expressions) {\n var _a, _b, _c, _d;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const vrmExt = (_a = json.extensions) === null || _a === void 0 ? void 0 : _a.VRM;\n if (!vrmExt) {\n return null;\n }\n const schemaFirstPerson = vrmExt.firstPerson;\n if (!schemaFirstPerson) {\n return null;\n }\n const defaultOutputScale = schemaFirstPerson.lookAtTypeName === 'BlendShape' ? 1.0 : 10.0;\n const mapHI = this._v0ImportDegreeMap(schemaFirstPerson.lookAtHorizontalInner, defaultOutputScale);\n const mapHO = this._v0ImportDegreeMap(schemaFirstPerson.lookAtHorizontalOuter, defaultOutputScale);\n const mapVD = this._v0ImportDegreeMap(schemaFirstPerson.lookAtVerticalDown, defaultOutputScale);\n const mapVU = this._v0ImportDegreeMap(schemaFirstPerson.lookAtVerticalUp, defaultOutputScale);\n let applier;\n if (schemaFirstPerson.lookAtTypeName === 'BlendShape') {\n applier = new VRMLookAtExpressionApplier(expressions, mapHI, mapHO, mapVD, mapVU);\n }\n else {\n applier = new VRMLookAtBoneApplier(humanoid, mapHI, mapHO, mapVD, mapVU);\n }\n const lookAt = this._importLookAt(humanoid, applier);\n if (schemaFirstPerson.firstPersonBoneOffset) {\n lookAt.offsetFromHeadBone.set((_b = schemaFirstPerson.firstPersonBoneOffset.x) !== null && _b !== void 0 ? _b : 0.0, (_c = schemaFirstPerson.firstPersonBoneOffset.y) !== null && _c !== void 0 ? _c : 0.06, -((_d = schemaFirstPerson.firstPersonBoneOffset.z) !== null && _d !== void 0 ? _d : 0.0));\n }\n else {\n lookAt.offsetFromHeadBone.set(0.0, 0.06, 0.0);\n }\n // VRM 0.0 are facing Z- instead of Z+\n lookAt.faceFront.set(0.0, 0.0, -1.0);\n if (applier instanceof VRMLookAtBoneApplier) {\n applier.faceFront.set(0.0, 0.0, -1.0);\n }\n return lookAt;\n });\n }\n _v0ImportDegreeMap(schemaDegreeMap, defaultOutputScale) {\n var _a, _b;\n const curve = schemaDegreeMap === null || schemaDegreeMap === void 0 ? void 0 : schemaDegreeMap.curve;\n if (JSON.stringify(curve) !== '[0,0,0,1,1,1,1,0]') {\n console.warn('Curves of LookAtDegreeMap defined in VRM 0.0 are not supported');\n }\n let xRange = (_a = schemaDegreeMap === null || schemaDegreeMap === void 0 ? void 0 : schemaDegreeMap.xRange) !== null && _a !== void 0 ? _a : 90.0;\n const yRange = (_b = schemaDegreeMap === null || schemaDegreeMap === void 0 ? void 0 : schemaDegreeMap.yRange) !== null && _b !== void 0 ? _b : defaultOutputScale;\n // It might cause NaN when `xRange` is too small\n // which makes the mesh of the head disappear\n // See: https://github.com/pixiv/three-vrm/issues/1201\n if (xRange < INPUT_MAX_VALUE_MINIMUM) {\n console.warn('VRMLookAtLoaderPlugin: xRange of a degree map is too small. Consider reviewing the degree map!');\n xRange = INPUT_MAX_VALUE_MINIMUM;\n }\n return new VRMLookAtRangeMap(xRange, yRange);\n }\n _importLookAt(humanoid, applier) {\n const lookAt = new VRMLookAt(humanoid, applier);\n if (this.helperRoot) {\n const helper = new VRMLookAtHelper(lookAt);\n this.helperRoot.add(helper);\n helper.renderOrder = this.helperRoot.renderOrder;\n }\n return lookAt;\n }\n}\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * Represents a type of applier.\n */\nconst VRMLookAtTypeName = {\n Bone: 'bone',\n Expression: 'expression',\n};\n\n/**\n * Yoinked from https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/GLTFLoader.js\n */\nfunction resolveURL(url, path) {\n // Invalid URL\n if (typeof url !== 'string' || url === '')\n return '';\n // Host Relative URL\n if (/^https?:\\/\\//i.test(path) && /^\\//.test(url)) {\n path = path.replace(/(^https?:\\/\\/[^/]+).*/i, '$1');\n }\n // Absolute URL http://,https://,//\n if (/^(https?:)?\\/\\//i.test(url))\n return url;\n // Data URI\n if (/^data:.*,.*$/i.test(url))\n return url;\n // Blob URL\n if (/^blob:.*$/i.test(url))\n return url;\n // Relative URL\n return path + url;\n}\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS$5 = new Set(['1.0', '1.0-beta']);\n/**\n * A plugin of GLTFLoader that imports a {@link VRM1Meta} from a VRM extension of a GLTF.\n */\nclass VRMMetaLoaderPlugin {\n get name() {\n // We should use the extension name instead but we have multiple plugins for an extension...\n return 'VRMMetaLoaderPlugin';\n }\n constructor(parser, options) {\n var _a, _b, _c;\n this.parser = parser;\n this.needThumbnailImage = (_a = options === null || options === void 0 ? void 0 : options.needThumbnailImage) !== null && _a !== void 0 ? _a : true;\n this.acceptLicenseUrls = (_b = options === null || options === void 0 ? void 0 : options.acceptLicenseUrls) !== null && _b !== void 0 ? _b : ['https://vrm.dev/licenses/1.0/'];\n this.acceptV0Meta = (_c = options === null || options === void 0 ? void 0 : options.acceptV0Meta) !== null && _c !== void 0 ? _c : true;\n }\n afterRoot(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n gltf.userData.vrmMeta = yield this._import(gltf);\n });\n }\n _import(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n const v1Result = yield this._v1Import(gltf);\n if (v1Result != null) {\n return v1Result;\n }\n const v0Result = yield this._v0Import(gltf);\n if (v0Result != null) {\n return v0Result;\n }\n return null;\n });\n }\n _v1Import(gltf) {\n var _a, _b, _c;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const isVRMUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf('VRMC_vrm')) !== -1;\n if (!isVRMUsed) {\n return null;\n }\n const extension = (_b = json.extensions) === null || _b === void 0 ? void 0 : _b['VRMC_vrm'];\n if (extension == null) {\n return null;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS$5.has(specVersion)) {\n console.warn(`VRMMetaLoaderPlugin: Unknown VRMC_vrm specVersion \"${specVersion}\"`);\n return null;\n }\n const schemaMeta = extension.meta;\n if (!schemaMeta) {\n return null;\n }\n // throw an error if acceptV0Meta is false\n const licenseUrl = schemaMeta.licenseUrl;\n const acceptLicenseUrlsSet = new Set(this.acceptLicenseUrls);\n if (!acceptLicenseUrlsSet.has(licenseUrl)) {\n throw new Error(`VRMMetaLoaderPlugin: The license url \"${licenseUrl}\" is not accepted`);\n }\n let thumbnailImage = undefined;\n if (this.needThumbnailImage && schemaMeta.thumbnailImage != null) {\n thumbnailImage = (_c = (yield this._extractGLTFImage(schemaMeta.thumbnailImage))) !== null && _c !== void 0 ? _c : undefined;\n }\n return {\n metaVersion: '1',\n name: schemaMeta.name,\n version: schemaMeta.version,\n authors: schemaMeta.authors,\n copyrightInformation: schemaMeta.copyrightInformation,\n contactInformation: schemaMeta.contactInformation,\n references: schemaMeta.references,\n thirdPartyLicenses: schemaMeta.thirdPartyLicenses,\n thumbnailImage,\n licenseUrl: schemaMeta.licenseUrl,\n avatarPermission: schemaMeta.avatarPermission,\n allowExcessivelyViolentUsage: schemaMeta.allowExcessivelyViolentUsage,\n allowExcessivelySexualUsage: schemaMeta.allowExcessivelySexualUsage,\n commercialUsage: schemaMeta.commercialUsage,\n allowPoliticalOrReligiousUsage: schemaMeta.allowPoliticalOrReligiousUsage,\n allowAntisocialOrHateUsage: schemaMeta.allowAntisocialOrHateUsage,\n creditNotation: schemaMeta.creditNotation,\n allowRedistribution: schemaMeta.allowRedistribution,\n modification: schemaMeta.modification,\n otherLicenseUrl: schemaMeta.otherLicenseUrl,\n };\n });\n }\n _v0Import(gltf) {\n var _a;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use vrm\n const vrmExt = (_a = json.extensions) === null || _a === void 0 ? void 0 : _a.VRM;\n if (!vrmExt) {\n return null;\n }\n const schemaMeta = vrmExt.meta;\n if (!schemaMeta) {\n return null;\n }\n // throw an error if acceptV0Meta is false\n if (!this.acceptV0Meta) {\n throw new Error('VRMMetaLoaderPlugin: Attempted to load VRM0.0 meta but acceptV0Meta is false');\n }\n // load thumbnail texture\n let texture;\n if (this.needThumbnailImage && schemaMeta.texture != null && schemaMeta.texture !== -1) {\n texture = yield this.parser.getDependency('texture', schemaMeta.texture);\n }\n return {\n metaVersion: '0',\n allowedUserName: schemaMeta.allowedUserName,\n author: schemaMeta.author,\n commercialUssageName: schemaMeta.commercialUssageName,\n contactInformation: schemaMeta.contactInformation,\n licenseName: schemaMeta.licenseName,\n otherLicenseUrl: schemaMeta.otherLicenseUrl,\n otherPermissionUrl: schemaMeta.otherPermissionUrl,\n reference: schemaMeta.reference,\n sexualUssageName: schemaMeta.sexualUssageName,\n texture: texture !== null && texture !== void 0 ? texture : undefined,\n title: schemaMeta.title,\n version: schemaMeta.version,\n violentUssageName: schemaMeta.violentUssageName,\n };\n });\n }\n _extractGLTFImage(index) {\n var _a;\n return __awaiter$6(this, void 0, void 0, function* () {\n const json = this.parser.json;\n const source = (_a = json.images) === null || _a === void 0 ? void 0 : _a[index];\n if (source == null) {\n console.warn(`VRMMetaLoaderPlugin: Attempt to use images[${index}] of glTF as a thumbnail but the image doesn't exist`);\n return null;\n }\n // Ref: https://github.com/mrdoob/three.js/blob/r124/examples/jsm/loaders/GLTFLoader.js#L2467\n // `source.uri` might be a reference to a file\n let sourceURI = source.uri;\n // Load the binary as a blob\n if (source.bufferView != null) {\n const bufferView = yield this.parser.getDependency('bufferView', source.bufferView);\n const blob = new Blob([bufferView], { type: source.mimeType });\n sourceURI = URL.createObjectURL(blob);\n }\n if (sourceURI == null) {\n console.warn(`VRMMetaLoaderPlugin: Attempt to use images[${index}] of glTF as a thumbnail but the image couldn't load properly`);\n return null;\n }\n const loader = new three__WEBPACK_IMPORTED_MODULE_0__.ImageLoader();\n return yield loader.loadAsync(resolveURL(sourceURI, this.parser.options.path)).catch((error) => {\n console.error(error);\n console.warn('VRMMetaLoaderPlugin: Failed to load a thumbnail image');\n return null;\n });\n });\n }\n}\n\n/**\n * A class that represents a single VRM model.\n * This class only includes core spec of the VRM (`VRMC_vrm`).\n */\nclass VRMCore {\n /**\n * Create a new VRM instance.\n *\n * @param params [[VRMParameters]] that represents components of the VRM\n */\n constructor(params) {\n this.scene = params.scene;\n this.meta = params.meta;\n this.humanoid = params.humanoid;\n this.expressionManager = params.expressionManager;\n this.firstPerson = params.firstPerson;\n this.lookAt = params.lookAt;\n }\n /**\n * **You need to call this on your update loop.**\n *\n * This function updates every VRM components.\n *\n * @param delta deltaTime\n */\n update(delta) {\n this.humanoid.update();\n if (this.lookAt) {\n this.lookAt.update(delta);\n }\n if (this.expressionManager) {\n this.expressionManager.update();\n }\n }\n}\n\nclass VRMCoreLoaderPlugin {\n get name() {\n // We should use the extension name instead but we have multiple plugins for an extension...\n return 'VRMC_vrm';\n }\n constructor(parser, options) {\n var _a, _b, _c, _d, _e;\n this.parser = parser;\n const helperRoot = options === null || options === void 0 ? void 0 : options.helperRoot;\n const autoUpdateHumanBones = options === null || options === void 0 ? void 0 : options.autoUpdateHumanBones;\n this.expressionPlugin = (_a = options === null || options === void 0 ? void 0 : options.expressionPlugin) !== null && _a !== void 0 ? _a : new VRMExpressionLoaderPlugin(parser);\n this.firstPersonPlugin = (_b = options === null || options === void 0 ? void 0 : options.firstPersonPlugin) !== null && _b !== void 0 ? _b : new VRMFirstPersonLoaderPlugin(parser);\n this.humanoidPlugin =\n (_c = options === null || options === void 0 ? void 0 : options.humanoidPlugin) !== null && _c !== void 0 ? _c : new VRMHumanoidLoaderPlugin(parser, { helperRoot, autoUpdateHumanBones });\n this.lookAtPlugin = (_d = options === null || options === void 0 ? void 0 : options.lookAtPlugin) !== null && _d !== void 0 ? _d : new VRMLookAtLoaderPlugin(parser, { helperRoot });\n this.metaPlugin = (_e = options === null || options === void 0 ? void 0 : options.metaPlugin) !== null && _e !== void 0 ? _e : new VRMMetaLoaderPlugin(parser);\n }\n afterRoot(gltf) {\n return __awaiter$6(this, void 0, void 0, function* () {\n yield this.metaPlugin.afterRoot(gltf);\n yield this.humanoidPlugin.afterRoot(gltf);\n yield this.expressionPlugin.afterRoot(gltf);\n yield this.lookAtPlugin.afterRoot(gltf);\n yield this.firstPersonPlugin.afterRoot(gltf);\n const meta = gltf.userData.vrmMeta;\n const humanoid = gltf.userData.vrmHumanoid;\n // meta and humanoid are required to be a VRM.\n // Don't create VRM if they are null\n if (meta && humanoid) {\n const vrmCore = new VRMCore({\n scene: gltf.scene,\n expressionManager: gltf.userData.vrmExpressionManager,\n firstPerson: gltf.userData.vrmFirstPerson,\n humanoid,\n lookAt: gltf.userData.vrmLookAt,\n meta,\n });\n gltf.userData.vrmCore = vrmCore;\n }\n });\n }\n}\n\n/**\n * A class that represents a single VRM model.\n */\nclass VRM extends VRMCore {\n /**\n * Create a new VRM instance.\n *\n * @param params [[VRMParameters]] that represents components of the VRM\n */\n constructor(params) {\n super(params);\n this.materials = params.materials;\n this.springBoneManager = params.springBoneManager;\n this.nodeConstraintManager = params.nodeConstraintManager;\n }\n /**\n * **You need to call this on your update loop.**\n *\n * This function updates every VRM components.\n *\n * @param delta deltaTime\n */\n update(delta) {\n super.update(delta);\n if (this.nodeConstraintManager) {\n this.nodeConstraintManager.update();\n }\n if (this.springBoneManager) {\n this.springBoneManager.update(delta);\n }\n if (this.materials) {\n this.materials.forEach((material) => {\n if (material.update) {\n material.update(delta);\n }\n });\n }\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter$5(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\n/*!\n * @pixiv/three-vrm-materials-mtoon v2.1.1\n * MToon (toon material) module for @pixiv/three-vrm\n *\n * Copyright (c) 2020-2024 pixiv Inc.\n * @pixiv/three-vrm-materials-mtoon is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter$4(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar vertexShader = \"// #define PHONG\\n\\nvarying vec3 vViewPosition;\\n\\n#ifndef FLAT_SHADED\\n varying vec3 vNormal;\\n#endif\\n\\n#include \\n\\n// #include \\n#ifdef MTOON_USE_UV\\n varying vec2 vUv;\\n\\n // COMPAT: pre-r151 uses a common uvTransform\\n #if THREE_VRM_THREE_REVISION < 151\\n uniform mat3 uvTransform;\\n #endif\\n#endif\\n\\n// #include \\n// COMAPT: pre-r151 uses uv2 for lightMap and aoMap\\n#if THREE_VRM_THREE_REVISION < 151\\n #if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n attribute vec2 uv2;\\n varying vec2 vUv2;\\n uniform mat3 uv2Transform;\\n #endif\\n#endif\\n\\n// #include \\n// #include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\n#ifdef USE_OUTLINEWIDTHMULTIPLYTEXTURE\\n uniform sampler2D outlineWidthMultiplyTexture;\\n uniform mat3 outlineWidthMultiplyTextureUvTransform;\\n#endif\\n\\nuniform float outlineWidthFactor;\\n\\nvoid main() {\\n\\n // #include \\n #ifdef MTOON_USE_UV\\n // COMPAT: pre-r151 uses a common uvTransform\\n #if THREE_VRM_THREE_REVISION >= 151\\n vUv = uv;\\n #else\\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n #endif\\n #endif\\n\\n // #include \\n // COMAPT: pre-r151 uses uv2 for lightMap and aoMap\\n #if THREE_VRM_THREE_REVISION < 151\\n #if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n #endif\\n #endif\\n\\n #include \\n\\n #include \\n #include \\n #include \\n #include \\n\\n // we need this to compute the outline properly\\n objectNormal = normalize( objectNormal );\\n\\n #include \\n\\n #ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED\\n vNormal = normalize( transformedNormal );\\n #endif\\n\\n #include \\n\\n #include \\n #include \\n // #include \\n #include \\n #include \\n #include \\n\\n vViewPosition = - mvPosition.xyz;\\n\\n float outlineTex = 1.0;\\n\\n #ifdef OUTLINE\\n #ifdef USE_OUTLINEWIDTHMULTIPLYTEXTURE\\n vec2 outlineWidthMultiplyTextureUv = ( outlineWidthMultiplyTextureUvTransform * vec3( vUv, 1 ) ).xy;\\n outlineTex = texture2D( outlineWidthMultiplyTexture, outlineWidthMultiplyTextureUv ).g;\\n #endif\\n\\n #ifdef OUTLINE_WIDTH_WORLD\\n float worldNormalLength = length( transformedNormal );\\n vec3 outlineOffset = outlineWidthFactor * outlineTex * worldNormalLength * objectNormal;\\n gl_Position = projectionMatrix * modelViewMatrix * vec4( outlineOffset + transformed, 1.0 );\\n #endif\\n\\n #ifdef OUTLINE_WIDTH_SCREEN\\n vec3 clipNormal = ( projectionMatrix * modelViewMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n vec2 projectedNormal = normalize( clipNormal.xy );\\n projectedNormal.x *= projectionMatrix[ 0 ].x / projectionMatrix[ 1 ].y;\\n gl_Position.xy += 2.0 * outlineWidthFactor * outlineTex * projectedNormal.xy;\\n #endif\\n\\n gl_Position.z += 1E-6 * gl_Position.w; // anti-artifact magic\\n #endif\\n\\n #include \\n // #include \\n #include \\n #include \\n\\n}\";\n\nvar fragmentShader = \"// #define PHONG\\n\\nuniform vec3 litFactor;\\n\\nuniform float opacity;\\n\\nuniform vec3 shadeColorFactor;\\n#ifdef USE_SHADEMULTIPLYTEXTURE\\n uniform sampler2D shadeMultiplyTexture;\\n uniform mat3 shadeMultiplyTextureUvTransform;\\n#endif\\n\\nuniform float shadingShiftFactor;\\nuniform float shadingToonyFactor;\\n\\n#ifdef USE_SHADINGSHIFTTEXTURE\\n uniform sampler2D shadingShiftTexture;\\n uniform mat3 shadingShiftTextureUvTransform;\\n uniform float shadingShiftTextureScale;\\n#endif\\n\\nuniform float giEqualizationFactor;\\n\\nuniform vec3 parametricRimColorFactor;\\n#ifdef USE_RIMMULTIPLYTEXTURE\\n uniform sampler2D rimMultiplyTexture;\\n uniform mat3 rimMultiplyTextureUvTransform;\\n#endif\\nuniform float rimLightingMixFactor;\\nuniform float parametricRimFresnelPowerFactor;\\nuniform float parametricRimLiftFactor;\\n\\n#ifdef USE_MATCAPTEXTURE\\n uniform vec3 matcapFactor;\\n uniform sampler2D matcapTexture;\\n uniform mat3 matcapTextureUvTransform;\\n#endif\\n\\nuniform vec3 emissive;\\nuniform float emissiveIntensity;\\n\\nuniform vec3 outlineColorFactor;\\nuniform float outlineLightingMixFactor;\\n\\n#ifdef USE_UVANIMATIONMASKTEXTURE\\n uniform sampler2D uvAnimationMaskTexture;\\n uniform mat3 uvAnimationMaskTextureUvTransform;\\n#endif\\n\\nuniform float uvAnimationScrollXOffset;\\nuniform float uvAnimationScrollYOffset;\\nuniform float uvAnimationRotationPhase;\\n\\n#include \\n#include \\n#include \\n#include \\n\\n// #include \\n#if ( defined( MTOON_USE_UV ) && !defined( MTOON_UVS_VERTEX_ONLY ) )\\n varying vec2 vUv;\\n#endif\\n\\n// #include \\n// COMAPT: pre-r151 uses uv2 for lightMap and aoMap\\n#if THREE_VRM_THREE_REVISION < 151\\n #if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n varying vec2 vUv2;\\n #endif\\n#endif\\n\\n#include \\n\\n#ifdef USE_MAP\\n uniform mat3 mapUvTransform;\\n#endif\\n\\n// #include \\n\\n#if THREE_VRM_THREE_REVISION >= 132\\n #include \\n#endif\\n\\n#include \\n// #include \\n#include \\n\\n#ifdef USE_EMISSIVEMAP\\n uniform mat3 emissiveMapUvTransform;\\n#endif\\n\\n// #include \\n// #include \\n// #include \\n#include \\n\\n// #include \\n// COMPAT: pre-r151 doesn't have BRDF_Lambert in \\n#if THREE_VRM_THREE_REVISION < 151\\n vec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n return RECIPROCAL_PI * diffuseColor;\\n }\\n#endif\\n\\n#include \\n\\n#if THREE_VRM_THREE_REVISION >= 132\\n #include \\n#endif\\n\\n// #include \\nvarying vec3 vViewPosition;\\n\\n#if THREE_VRM_THREE_REVISION < 132\\n #ifndef FLAT_SHADED\\n varying vec3 vNormal;\\n #endif\\n#endif\\n\\nstruct MToonMaterial {\\n vec3 diffuseColor;\\n vec3 shadeColor;\\n float shadingShift;\\n};\\n\\nfloat linearstep( float a, float b, float t ) {\\n return clamp( ( t - a ) / ( b - a ), 0.0, 1.0 );\\n}\\n\\n/**\\n * Convert NdotL into toon shading factor using shadingShift and shadingToony\\n */\\nfloat getShading(\\n const in float dotNL,\\n const in float shadow,\\n const in float shadingShift\\n) {\\n float shading = dotNL;\\n shading = shading + shadingShift;\\n shading = linearstep( -1.0 + shadingToonyFactor, 1.0 - shadingToonyFactor, shading );\\n shading *= shadow;\\n return shading;\\n}\\n\\n/**\\n * Mix diffuseColor and shadeColor using shading factor and light color\\n */\\nvec3 getDiffuse(\\n const in MToonMaterial material,\\n const in float shading,\\n in vec3 lightColor\\n) {\\n #ifdef DEBUG_LITSHADERATE\\n return vec3( BRDF_Lambert( shading * lightColor ) );\\n #endif\\n\\n #if THREE_VRM_THREE_REVISION < 132\\n #ifndef PHYSICALLY_CORRECT_LIGHTS\\n lightColor *= PI;\\n #endif\\n #endif\\n\\n vec3 col = lightColor * BRDF_Lambert( mix( material.shadeColor, material.diffuseColor, shading ) );\\n\\n // The \\\"comment out if you want to PBR absolutely\\\" line\\n #ifdef V0_COMPAT_SHADE\\n col = min( col, material.diffuseColor );\\n #endif\\n\\n return col;\\n}\\n\\n// COMPAT: pre-r156 uses a struct GeometricContext\\n#if THREE_VRM_THREE_REVISION >= 157\\n void RE_Direct_MToon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in MToonMaterial material, const in float shadow, inout ReflectedLight reflectedLight ) {\\n float dotNL = clamp( dot( geometryNormal, directLight.direction ), -1.0, 1.0 );\\n vec3 irradiance = directLight.color;\\n\\n // directSpecular will be used for rim lighting, not an actual specular\\n reflectedLight.directSpecular += irradiance;\\n\\n irradiance *= dotNL;\\n\\n float shading = getShading( dotNL, shadow, material.shadingShift );\\n\\n // toon shaded diffuse\\n reflectedLight.directDiffuse += getDiffuse( material, shading, directLight.color );\\n }\\n\\n void RE_IndirectDiffuse_MToon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in MToonMaterial material, inout ReflectedLight reflectedLight ) {\\n // indirect diffuse will use diffuseColor, no shadeColor involved\\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n // directSpecular will be used for rim lighting, not an actual specular\\n reflectedLight.directSpecular += irradiance;\\n }\\n#else\\n void RE_Direct_MToon( const in IncidentLight directLight, const in GeometricContext geometry, const in MToonMaterial material, const in float shadow, inout ReflectedLight reflectedLight ) {\\n float dotNL = clamp( dot( geometry.normal, directLight.direction ), -1.0, 1.0 );\\n vec3 irradiance = directLight.color;\\n\\n #if THREE_VRM_THREE_REVISION < 132\\n #ifndef PHYSICALLY_CORRECT_LIGHTS\\n irradiance *= PI;\\n #endif\\n #endif\\n\\n // directSpecular will be used for rim lighting, not an actual specular\\n reflectedLight.directSpecular += irradiance;\\n\\n irradiance *= dotNL;\\n\\n float shading = getShading( dotNL, shadow, material.shadingShift );\\n\\n // toon shaded diffuse\\n reflectedLight.directDiffuse += getDiffuse( material, shading, directLight.color );\\n }\\n\\n void RE_IndirectDiffuse_MToon( const in vec3 irradiance, const in GeometricContext geometry, const in MToonMaterial material, inout ReflectedLight reflectedLight ) {\\n // indirect diffuse will use diffuseColor, no shadeColor involved\\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\n // directSpecular will be used for rim lighting, not an actual specular\\n reflectedLight.directSpecular += irradiance;\\n }\\n#endif\\n\\n#define RE_Direct RE_Direct_MToon\\n#define RE_IndirectDiffuse RE_IndirectDiffuse_MToon\\n#define Material_LightProbeLOD( material ) (0)\\n\\n#include \\n// #include \\n\\n// #include \\n#ifdef USE_NORMALMAP\\n\\n uniform sampler2D normalMap;\\n uniform mat3 normalMapUvTransform;\\n uniform vec2 normalScale;\\n\\n#endif\\n\\n// COMPAT: USE_NORMALMAP_OBJECTSPACE used to be OBJECTSPACE_NORMALMAP in pre-r151\\n#if defined( USE_NORMALMAP_OBJECTSPACE ) || defined( OBJECTSPACE_NORMALMAP )\\n\\n uniform mat3 normalMatrix;\\n\\n#endif\\n\\n// COMPAT: USE_NORMALMAP_TANGENTSPACE used to be TANGENTSPACE_NORMALMAP in pre-r151\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( TANGENTSPACE_NORMALMAP ) )\\n\\n // Per-Pixel Tangent Space Normal Mapping\\n // http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html\\n\\n // three-vrm specific change: it requires `uv` as an input in order to support uv scrolls\\n\\n // Temporary compat against shader change @ Three.js r126, r151\\n #if THREE_VRM_THREE_REVISION >= 151\\n\\n mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\n vec3 q0 = dFdx( eye_pos.xyz );\\n vec3 q1 = dFdy( eye_pos.xyz );\\n vec2 st0 = dFdx( uv.st );\\n vec2 st1 = dFdy( uv.st );\\n\\n vec3 N = surf_norm;\\n\\n vec3 q1perp = cross( q1, N );\\n vec3 q0perp = cross( N, q0 );\\n\\n vec3 T = q1perp * st0.x + q0perp * st1.x;\\n vec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\n float det = max( dot( T, T ), dot( B, B ) );\\n float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\n return mat3( T * scale, B * scale, N );\\n\\n }\\n\\n #elif THREE_VRM_THREE_REVISION >= 126\\n\\n vec3 perturbNormal2Arb( vec2 uv, vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\n vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n vec2 st0 = dFdx( uv.st );\\n vec2 st1 = dFdy( uv.st );\\n\\n vec3 N = normalize( surf_norm );\\n\\n vec3 q1perp = cross( q1, N );\\n vec3 q0perp = cross( N, q0 );\\n\\n vec3 T = q1perp * st0.x + q0perp * st1.x;\\n vec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\n // three-vrm specific change: Workaround for the issue that happens when delta of uv = 0.0\\n // TODO: Is this still required? Or shall I make a PR about it?\\n if ( length( T ) == 0.0 || length( B ) == 0.0 ) {\\n return surf_norm;\\n }\\n\\n float det = max( dot( T, T ), dot( B, B ) );\\n float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\n return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\n }\\n\\n #else\\n\\n vec3 perturbNormal2Arb( vec2 uv, vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\\n\\n // Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988\\n\\n vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n vec2 st0 = dFdx( uv.st );\\n vec2 st1 = dFdy( uv.st );\\n\\n float scale = sign( st1.t * st0.s - st0.t * st1.s ); // we do not care about the magnitude\\n\\n vec3 S = ( q0 * st1.t - q1 * st0.t ) * scale;\\n vec3 T = ( - q0 * st1.s + q1 * st0.s ) * scale;\\n\\n // three-vrm specific change: Workaround for the issue that happens when delta of uv = 0.0\\n // TODO: Is this still required? Or shall I make a PR about it?\\n\\n if ( length( S ) == 0.0 || length( T ) == 0.0 ) {\\n return surf_norm;\\n }\\n\\n S = normalize( S );\\n T = normalize( T );\\n vec3 N = normalize( surf_norm );\\n\\n #ifdef DOUBLE_SIDED\\n\\n // Workaround for Adreno GPUs gl_FrontFacing bug. See #15850 and #10331\\n\\n bool frontFacing = dot( cross( S, T ), N ) > 0.0;\\n\\n mapN.xy *= ( float( frontFacing ) * 2.0 - 1.0 );\\n\\n #else\\n\\n mapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\n #endif\\n\\n mat3 tsn = mat3( S, T, N );\\n return normalize( tsn * mapN );\\n\\n }\\n\\n #endif\\n\\n#endif\\n\\n// #include \\n#include \\n#include \\n\\n// == post correction ==========================================================\\nvoid postCorrection() {\\n #include \\n #include \\n #include \\n #include \\n #include \\n}\\n\\n// == main procedure ===========================================================\\nvoid main() {\\n #include \\n\\n vec2 uv = vec2(0.5, 0.5);\\n\\n #if ( defined( MTOON_USE_UV ) && !defined( MTOON_UVS_VERTEX_ONLY ) )\\n uv = vUv;\\n\\n float uvAnimMask = 1.0;\\n #ifdef USE_UVANIMATIONMASKTEXTURE\\n vec2 uvAnimationMaskTextureUv = ( uvAnimationMaskTextureUvTransform * vec3( uv, 1 ) ).xy;\\n uvAnimMask = texture2D( uvAnimationMaskTexture, uvAnimationMaskTextureUv ).b;\\n #endif\\n\\n uv = uv + vec2( uvAnimationScrollXOffset, uvAnimationScrollYOffset ) * uvAnimMask;\\n float uvRotCos = cos( uvAnimationRotationPhase * uvAnimMask );\\n float uvRotSin = sin( uvAnimationRotationPhase * uvAnimMask );\\n uv = mat2( uvRotCos, -uvRotSin, uvRotSin, uvRotCos ) * ( uv - 0.5 ) + 0.5;\\n #endif\\n\\n #ifdef DEBUG_UV\\n gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n #if ( defined( MTOON_USE_UV ) && !defined( MTOON_UVS_VERTEX_ONLY ) )\\n gl_FragColor = vec4( uv, 0.0, 1.0 );\\n #endif\\n return;\\n #endif\\n\\n vec4 diffuseColor = vec4( litFactor, opacity );\\n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n vec3 totalEmissiveRadiance = emissive * emissiveIntensity;\\n\\n #include \\n\\n // #include \\n #ifdef USE_MAP\\n vec2 mapUv = ( mapUvTransform * vec3( uv, 1 ) ).xy;\\n vec4 sampledDiffuseColor = texture2D( map, mapUv );\\n #ifdef DECODE_VIDEO_TEXTURE\\n sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n #endif\\n diffuseColor *= sampledDiffuseColor;\\n #endif\\n\\n // #include \\n #if ( defined( USE_COLOR ) && !defined( IGNORE_VERTEX_COLOR ) )\\n diffuseColor.rgb *= vColor;\\n #endif\\n\\n // #include \\n\\n #include \\n\\n // #include \\n\\n // #include \\n float faceDirection = gl_FrontFacing ? 1.0 : -1.0;\\n\\n #ifdef FLAT_SHADED\\n\\n vec3 fdx = dFdx( vViewPosition );\\n vec3 fdy = dFdy( vViewPosition );\\n vec3 normal = normalize( cross( fdx, fdy ) );\\n\\n #else\\n\\n vec3 normal = normalize( vNormal );\\n\\n #ifdef DOUBLE_SIDED\\n\\n normal *= faceDirection;\\n\\n #endif\\n\\n #endif\\n\\n #ifdef USE_NORMALMAP\\n\\n vec2 normalMapUv = ( normalMapUvTransform * vec3( uv, 1 ) ).xy;\\n\\n #endif\\n\\n #ifdef USE_NORMALMAP_TANGENTSPACE\\n\\n #ifdef USE_TANGENT\\n\\n mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\n #else\\n\\n mat3 tbn = getTangentFrame( - vViewPosition, normal, normalMapUv );\\n\\n #endif\\n\\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\n tbn[0] *= faceDirection;\\n tbn[1] *= faceDirection;\\n\\n #endif\\n\\n #endif\\n\\n #ifdef USE_CLEARCOAT_NORMALMAP\\n\\n #ifdef USE_TANGENT\\n\\n mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\n #else\\n\\n mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\n #endif\\n\\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\n tbn2[0] *= faceDirection;\\n tbn2[1] *= faceDirection;\\n\\n #endif\\n\\n #endif\\n\\n // non perturbed normal for clearcoat among others\\n\\n vec3 nonPerturbedNormal = normal;\\n\\n #ifdef OUTLINE\\n normal *= -1.0;\\n #endif\\n\\n // #include \\n\\n // COMPAT: USE_NORMALMAP_OBJECTSPACE used to be OBJECTSPACE_NORMALMAP in pre-r151\\n #if defined( USE_NORMALMAP_OBJECTSPACE ) || defined( OBJECTSPACE_NORMALMAP )\\n\\n normal = texture2D( normalMap, normalMapUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals\\n\\n #ifdef FLIP_SIDED\\n\\n normal = - normal;\\n\\n #endif\\n\\n #ifdef DOUBLE_SIDED\\n\\n // Temporary compat against shader change @ Three.js r126\\n // See: #21205, #21307, #21299\\n #if THREE_VRM_THREE_REVISION >= 126\\n\\n normal = normal * faceDirection;\\n\\n #else\\n\\n normal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\n #endif\\n\\n #endif\\n\\n normal = normalize( normalMatrix * normal );\\n\\n // COMPAT: USE_NORMALMAP_TANGENTSPACE used to be TANGENTSPACE_NORMALMAP in pre-r151\\n #elif defined( USE_NORMALMAP_TANGENTSPACE ) || defined( TANGENTSPACE_NORMALMAP )\\n\\n vec3 mapN = texture2D( normalMap, normalMapUv ).xyz * 2.0 - 1.0;\\n mapN.xy *= normalScale;\\n\\n // COMPAT: pre-r151\\n #if THREE_VRM_THREE_REVISION >= 151 || defined( USE_TANGENT )\\n\\n normal = normalize( tbn * mapN );\\n\\n #else\\n\\n // pre-r126\\n #if THREE_VRM_THREE_REVISION >= 126\\n\\n normal = perturbNormal2Arb( uv, -vViewPosition, normal, mapN, faceDirection );\\n\\n #else\\n\\n normal = perturbNormal2Arb( uv, -vViewPosition, normal, mapN );\\n\\n #endif\\n\\n #endif\\n\\n #endif\\n\\n // #include \\n #ifdef USE_EMISSIVEMAP\\n vec2 emissiveMapUv = ( emissiveMapUvTransform * vec3( uv, 1 ) ).xy;\\n totalEmissiveRadiance *= texture2D( emissiveMap, emissiveMapUv ).rgb;\\n #endif\\n\\n #ifdef DEBUG_NORMAL\\n gl_FragColor = vec4( 0.5 + 0.5 * normal, 1.0 );\\n return;\\n #endif\\n\\n // -- MToon: lighting --------------------------------------------------------\\n // accumulation\\n // #include \\n MToonMaterial material;\\n\\n material.diffuseColor = diffuseColor.rgb;\\n\\n material.shadeColor = shadeColorFactor;\\n #ifdef USE_SHADEMULTIPLYTEXTURE\\n vec2 shadeMultiplyTextureUv = ( shadeMultiplyTextureUvTransform * vec3( uv, 1 ) ).xy;\\n material.shadeColor *= texture2D( shadeMultiplyTexture, shadeMultiplyTextureUv ).rgb;\\n #endif\\n\\n #if ( defined( USE_COLOR ) && !defined( IGNORE_VERTEX_COLOR ) )\\n material.shadeColor.rgb *= vColor;\\n #endif\\n\\n material.shadingShift = shadingShiftFactor;\\n #ifdef USE_SHADINGSHIFTTEXTURE\\n vec2 shadingShiftTextureUv = ( shadingShiftTextureUvTransform * vec3( uv, 1 ) ).xy;\\n material.shadingShift += texture2D( shadingShiftTexture, shadingShiftTextureUv ).r * shadingShiftTextureScale;\\n #endif\\n\\n // #include \\n\\n // MToon Specific changes:\\n // Since we want to take shadows into account of shading instead of irradiance,\\n // we had to modify the codes that multiplies the results of shadowmap into color of direct lights.\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n vec3 geometryPosition = - vViewPosition;\\n vec3 geometryNormal = normal;\\n vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n\\n vec3 geometryClearcoatNormal;\\n\\n #ifdef USE_CLEARCOAT\\n\\n geometryClearcoatNormal = clearcoatNormal;\\n\\n #endif\\n #else\\n GeometricContext geometry;\\n\\n geometry.position = - vViewPosition;\\n geometry.normal = normal;\\n geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n\\n #ifdef USE_CLEARCOAT\\n\\n geometry.clearcoatNormal = clearcoatNormal;\\n\\n #endif\\n #endif\\n\\n IncidentLight directLight;\\n\\n // since these variables will be used in unrolled loop, we have to define in prior\\n float shadow;\\n\\n #if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n PointLight pointLight;\\n #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n PointLightShadow pointLightShadow;\\n #endif\\n\\n #pragma unroll_loop_start\\n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\n pointLight = pointLights[ i ];\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n getPointLightInfo( pointLight, geometryPosition, directLight );\\n #elif THREE_VRM_THREE_REVISION >= 132\\n getPointLightInfo( pointLight, geometry, directLight );\\n #else\\n getPointDirectLightIrradiance( pointLight, geometry, directLight );\\n #endif\\n\\n shadow = 1.0;\\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n pointLightShadow = pointLightShadows[ i ];\\n shadow = all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n #endif\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, shadow, reflectedLight );\\n #else\\n RE_Direct( directLight, geometry, material, shadow, reflectedLight );\\n #endif\\n\\n }\\n #pragma unroll_loop_end\\n\\n #endif\\n\\n #if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n SpotLight spotLight;\\n #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n SpotLightShadow spotLightShadow;\\n #endif\\n\\n #pragma unroll_loop_start\\n for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\n spotLight = spotLights[ i ];\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n getSpotLightInfo( spotLight, geometryPosition, directLight );\\n #elif THREE_VRM_THREE_REVISION >= 132\\n getSpotLightInfo( spotLight, geometry, directLight );\\n #else\\n getSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n #endif\\n\\n shadow = 1.0;\\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n spotLightShadow = spotLightShadows[ i ];\\n shadow = all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n #endif\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, shadow, reflectedLight );\\n #else\\n RE_Direct( directLight, geometry, material, shadow, reflectedLight );\\n #endif\\n\\n }\\n #pragma unroll_loop_end\\n\\n #endif\\n\\n #if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\n DirectionalLight directionalLight;\\n #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n DirectionalLightShadow directionalLightShadow;\\n #endif\\n\\n #pragma unroll_loop_start\\n for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\n directionalLight = directionalLights[ i ];\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n getDirectionalLightInfo( directionalLight, directLight );\\n #elif THREE_VRM_THREE_REVISION >= 132\\n getDirectionalLightInfo( directionalLight, geometry, directLight );\\n #else\\n getDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n #endif\\n\\n shadow = 1.0;\\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n directionalLightShadow = directionalLightShadows[ i ];\\n shadow = all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n #endif\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, shadow, reflectedLight );\\n #else\\n RE_Direct( directLight, geometry, material, shadow, reflectedLight );\\n #endif\\n\\n }\\n #pragma unroll_loop_end\\n\\n #endif\\n\\n // #if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\n // RectAreaLight rectAreaLight;\\n\\n // #pragma unroll_loop_start\\n // for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\n // rectAreaLight = rectAreaLights[ i ];\\n // RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\n // }\\n // #pragma unroll_loop_end\\n\\n // #endif\\n\\n #if defined( RE_IndirectDiffuse )\\n\\n vec3 iblIrradiance = vec3( 0.0 );\\n\\n vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n // COMPAT: pre-r156 doesn't have a define USE_LIGHT_PROBES\\n #if THREE_VRM_THREE_REVISION >= 157\\n #if defined( USE_LIGHT_PROBES )\\n irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n #endif\\n #elif THREE_VRM_THREE_REVISION >= 133\\n irradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\n #else\\n irradiance += getLightProbeIrradiance( lightProbe, geometry );\\n #endif\\n\\n #if ( NUM_HEMI_LIGHTS > 0 )\\n\\n #pragma unroll_loop_start\\n for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\n // COMPAT: pre-r156 uses a struct GeometricContext\\n #if THREE_VRM_THREE_REVISION >= 157\\n irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n #elif THREE_VRM_THREE_REVISION >= 133\\n irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n #else\\n irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n #endif\\n\\n }\\n #pragma unroll_loop_end\\n\\n #endif\\n\\n #endif\\n\\n // #if defined( RE_IndirectSpecular )\\n\\n // vec3 radiance = vec3( 0.0 );\\n // vec3 clearcoatRadiance = vec3( 0.0 );\\n\\n // #endif\\n\\n #include \\n #include \\n\\n // modulation\\n #include \\n\\n vec3 col = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\n #ifdef DEBUG_LITSHADERATE\\n gl_FragColor = vec4( col, diffuseColor.a );\\n postCorrection();\\n return;\\n #endif\\n\\n // -- MToon: rim lighting -----------------------------------------\\n vec3 viewDir = normalize( vViewPosition );\\n\\n #ifndef PHYSICALLY_CORRECT_LIGHTS\\n reflectedLight.directSpecular /= PI;\\n #endif\\n vec3 rimMix = mix( vec3( 1.0 ), reflectedLight.directSpecular, 1.0 );\\n\\n vec3 rim = parametricRimColorFactor * pow( saturate( 1.0 - dot( viewDir, normal ) + parametricRimLiftFactor ), parametricRimFresnelPowerFactor );\\n\\n #ifdef USE_MATCAPTEXTURE\\n {\\n vec3 x = normalize( vec3( viewDir.z, 0.0, -viewDir.x ) );\\n vec3 y = cross( viewDir, x ); // guaranteed to be normalized\\n vec2 sphereUv = 0.5 + 0.5 * vec2( dot( x, normal ), -dot( y, normal ) );\\n sphereUv = ( matcapTextureUvTransform * vec3( sphereUv, 1 ) ).xy;\\n vec3 matcap = texture2D( matcapTexture, sphereUv ).rgb;\\n rim += matcapFactor * matcap;\\n }\\n #endif\\n\\n #ifdef USE_RIMMULTIPLYTEXTURE\\n vec2 rimMultiplyTextureUv = ( rimMultiplyTextureUvTransform * vec3( uv, 1 ) ).xy;\\n rim *= texture2D( rimMultiplyTexture, rimMultiplyTextureUv ).rgb;\\n #endif\\n\\n col += rimMix * rim;\\n\\n // -- MToon: Emission --------------------------------------------------------\\n col += totalEmissiveRadiance;\\n\\n // #include \\n\\n // -- Almost done! -----------------------------------------------------------\\n #if defined( OUTLINE )\\n col = outlineColorFactor.rgb * mix( vec3( 1.0 ), col, outlineLightingMixFactor );\\n #endif\\n\\n #ifdef OPAQUE\\n diffuseColor.a = 1.0;\\n #endif\\n\\n gl_FragColor = vec4( col, diffuseColor.a );\\n postCorrection();\\n}\\n\";\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * Specifiers of debug mode of {@link MToonMaterial}.\n *\n * See: {@link MToonMaterial.debugMode}\n */\nconst MToonMaterialDebugMode = {\n /**\n * Render normally.\n */\n None: 'none',\n /**\n * Visualize normals of the surface.\n */\n Normal: 'normal',\n /**\n * Visualize lit/shade of the surface.\n */\n LitShadeRate: 'litShadeRate',\n /**\n * Visualize UV of the surface.\n */\n UV: 'uv',\n};\n\n/* eslint-disable @typescript-eslint/naming-convention */\nconst MToonMaterialOutlineWidthMode = {\n None: 'none',\n WorldCoordinates: 'worldCoordinates',\n ScreenCoordinates: 'screenCoordinates',\n};\n\nconst encodingColorSpaceMap = {\n 3000: '',\n 3001: 'srgb',\n};\n/**\n * A compat function to get texture color space.\n *\n * COMPAT: pre-r152\n * Starting from Three.js r152, `texture.encoding` is renamed to `texture.colorSpace`.\n * This function will handle the comapt.\n *\n * @param texture The texture you want to get the color space from\n */\nfunction getTextureColorSpace(texture) {\n if (parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10) >= 152) {\n return texture.colorSpace;\n }\n else {\n return encodingColorSpaceMap[texture.encoding];\n }\n}\n\n/* tslint:disable:member-ordering */\n/**\n * MToon is a material specification that has various features.\n * The spec and implementation are originally founded for Unity engine and this is a port of the material.\n *\n * See: https://github.com/Santarh/MToon\n */\nclass MToonMaterial extends three__WEBPACK_IMPORTED_MODULE_0__.ShaderMaterial {\n get color() {\n return this.uniforms.litFactor.value;\n }\n set color(value) {\n this.uniforms.litFactor.value = value;\n }\n get map() {\n return this.uniforms.map.value;\n }\n set map(value) {\n this.uniforms.map.value = value;\n }\n get normalMap() {\n return this.uniforms.normalMap.value;\n }\n set normalMap(value) {\n this.uniforms.normalMap.value = value;\n }\n get normalScale() {\n return this.uniforms.normalScale.value;\n }\n set normalScale(value) {\n this.uniforms.normalScale.value = value;\n }\n get emissive() {\n return this.uniforms.emissive.value;\n }\n set emissive(value) {\n this.uniforms.emissive.value = value;\n }\n get emissiveIntensity() {\n return this.uniforms.emissiveIntensity.value;\n }\n set emissiveIntensity(value) {\n this.uniforms.emissiveIntensity.value = value;\n }\n get emissiveMap() {\n return this.uniforms.emissiveMap.value;\n }\n set emissiveMap(value) {\n this.uniforms.emissiveMap.value = value;\n }\n get shadeColorFactor() {\n return this.uniforms.shadeColorFactor.value;\n }\n set shadeColorFactor(value) {\n this.uniforms.shadeColorFactor.value = value;\n }\n get shadeMultiplyTexture() {\n return this.uniforms.shadeMultiplyTexture.value;\n }\n set shadeMultiplyTexture(value) {\n this.uniforms.shadeMultiplyTexture.value = value;\n }\n get shadingShiftFactor() {\n return this.uniforms.shadingShiftFactor.value;\n }\n set shadingShiftFactor(value) {\n this.uniforms.shadingShiftFactor.value = value;\n }\n get shadingShiftTexture() {\n return this.uniforms.shadingShiftTexture.value;\n }\n set shadingShiftTexture(value) {\n this.uniforms.shadingShiftTexture.value = value;\n }\n get shadingShiftTextureScale() {\n return this.uniforms.shadingShiftTextureScale.value;\n }\n set shadingShiftTextureScale(value) {\n this.uniforms.shadingShiftTextureScale.value = value;\n }\n get shadingToonyFactor() {\n return this.uniforms.shadingToonyFactor.value;\n }\n set shadingToonyFactor(value) {\n this.uniforms.shadingToonyFactor.value = value;\n }\n get giEqualizationFactor() {\n return this.uniforms.giEqualizationFactor.value;\n }\n set giEqualizationFactor(value) {\n this.uniforms.giEqualizationFactor.value = value;\n }\n get matcapFactor() {\n return this.uniforms.matcapFactor.value;\n }\n set matcapFactor(value) {\n this.uniforms.matcapFactor.value = value;\n }\n get matcapTexture() {\n return this.uniforms.matcapTexture.value;\n }\n set matcapTexture(value) {\n this.uniforms.matcapTexture.value = value;\n }\n get parametricRimColorFactor() {\n return this.uniforms.parametricRimColorFactor.value;\n }\n set parametricRimColorFactor(value) {\n this.uniforms.parametricRimColorFactor.value = value;\n }\n get rimMultiplyTexture() {\n return this.uniforms.rimMultiplyTexture.value;\n }\n set rimMultiplyTexture(value) {\n this.uniforms.rimMultiplyTexture.value = value;\n }\n get rimLightingMixFactor() {\n return this.uniforms.rimLightingMixFactor.value;\n }\n set rimLightingMixFactor(value) {\n this.uniforms.rimLightingMixFactor.value = value;\n }\n get parametricRimFresnelPowerFactor() {\n return this.uniforms.parametricRimFresnelPowerFactor.value;\n }\n set parametricRimFresnelPowerFactor(value) {\n this.uniforms.parametricRimFresnelPowerFactor.value = value;\n }\n get parametricRimLiftFactor() {\n return this.uniforms.parametricRimLiftFactor.value;\n }\n set parametricRimLiftFactor(value) {\n this.uniforms.parametricRimLiftFactor.value = value;\n }\n get outlineWidthMultiplyTexture() {\n return this.uniforms.outlineWidthMultiplyTexture.value;\n }\n set outlineWidthMultiplyTexture(value) {\n this.uniforms.outlineWidthMultiplyTexture.value = value;\n }\n get outlineWidthFactor() {\n return this.uniforms.outlineWidthFactor.value;\n }\n set outlineWidthFactor(value) {\n this.uniforms.outlineWidthFactor.value = value;\n }\n get outlineColorFactor() {\n return this.uniforms.outlineColorFactor.value;\n }\n set outlineColorFactor(value) {\n this.uniforms.outlineColorFactor.value = value;\n }\n get outlineLightingMixFactor() {\n return this.uniforms.outlineLightingMixFactor.value;\n }\n set outlineLightingMixFactor(value) {\n this.uniforms.outlineLightingMixFactor.value = value;\n }\n get uvAnimationMaskTexture() {\n return this.uniforms.uvAnimationMaskTexture.value;\n }\n set uvAnimationMaskTexture(value) {\n this.uniforms.uvAnimationMaskTexture.value = value;\n }\n get uvAnimationScrollXOffset() {\n return this.uniforms.uvAnimationScrollXOffset.value;\n }\n set uvAnimationScrollXOffset(value) {\n this.uniforms.uvAnimationScrollXOffset.value = value;\n }\n get uvAnimationScrollYOffset() {\n return this.uniforms.uvAnimationScrollYOffset.value;\n }\n set uvAnimationScrollYOffset(value) {\n this.uniforms.uvAnimationScrollYOffset.value = value;\n }\n get uvAnimationRotationPhase() {\n return this.uniforms.uvAnimationRotationPhase.value;\n }\n set uvAnimationRotationPhase(value) {\n this.uniforms.uvAnimationRotationPhase.value = value;\n }\n /**\n * When this is `true`, vertex colors will be ignored.\n * `true` by default.\n */\n get ignoreVertexColor() {\n return this._ignoreVertexColor;\n }\n set ignoreVertexColor(value) {\n this._ignoreVertexColor = value;\n this.needsUpdate = true;\n }\n /**\n * There is a line of the shader called \"comment out if you want to PBR absolutely\" in VRM0.0 MToon.\n * When this is true, the material enables the line to make it compatible with the legacy rendering of VRM.\n * Usually not recommended to turn this on.\n * `false` by default.\n */\n get v0CompatShade() {\n return this._v0CompatShade;\n }\n /**\n * There is a line of the shader called \"comment out if you want to PBR absolutely\" in VRM0.0 MToon.\n * When this is true, the material enables the line to make it compatible with the legacy rendering of VRM.\n * Usually not recommended to turn this on.\n * `false` by default.\n */\n set v0CompatShade(v) {\n this._v0CompatShade = v;\n this.needsUpdate = true;\n }\n /**\n * Debug mode for the material.\n * You can visualize several components for diagnosis using debug mode.\n *\n * See: {@link MToonMaterialDebugMode}\n */\n get debugMode() {\n return this._debugMode;\n }\n /**\n * Debug mode for the material.\n * You can visualize several components for diagnosis using debug mode.\n *\n * See: {@link MToonMaterialDebugMode}\n */\n set debugMode(m) {\n this._debugMode = m;\n this.needsUpdate = true;\n }\n get outlineWidthMode() {\n return this._outlineWidthMode;\n }\n set outlineWidthMode(m) {\n this._outlineWidthMode = m;\n this.needsUpdate = true;\n }\n get isOutline() {\n return this._isOutline;\n }\n set isOutline(b) {\n this._isOutline = b;\n this.needsUpdate = true;\n }\n /**\n * Readonly boolean that indicates this is a [[MToonMaterial]].\n */\n get isMToonMaterial() {\n return true;\n }\n constructor(parameters = {}) {\n var _a;\n super({ vertexShader, fragmentShader });\n this.uvAnimationScrollXSpeedFactor = 0.0;\n this.uvAnimationScrollYSpeedFactor = 0.0;\n this.uvAnimationRotationSpeedFactor = 0.0;\n /**\n * Whether the material is affected by fog.\n * `true` by default.\n */\n this.fog = true;\n /**\n * Will be read in WebGLPrograms\n *\n * See: https://github.com/mrdoob/three.js/blob/4f5236ac3d6f41d904aa58401b40554e8fbdcb15/src/renderers/webgl/WebGLPrograms.js#L190-L191\n */\n this.normalMapType = three__WEBPACK_IMPORTED_MODULE_0__.TangentSpaceNormalMap;\n /**\n * When this is `true`, vertex colors will be ignored.\n * `true` by default.\n */\n this._ignoreVertexColor = true;\n this._v0CompatShade = false;\n this._debugMode = MToonMaterialDebugMode.None;\n this._outlineWidthMode = MToonMaterialOutlineWidthMode.None;\n this._isOutline = false;\n // override depthWrite with transparentWithZWrite\n if (parameters.transparentWithZWrite) {\n parameters.depthWrite = true;\n }\n delete parameters.transparentWithZWrite;\n // == enabling bunch of stuff ==================================================================\n parameters.fog = true;\n parameters.lights = true;\n parameters.clipping = true;\n // COMPAT: pre-r129\n // See: https://github.com/mrdoob/three.js/pull/21788\n if (parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10) < 129) {\n parameters.skinning = parameters.skinning || false;\n }\n // COMPAT: pre-r131\n // See: https://github.com/mrdoob/three.js/pull/22169\n if (parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10) < 131) {\n parameters.morphTargets = parameters.morphTargets || false;\n parameters.morphNormals = parameters.morphNormals || false;\n }\n // == uniforms =================================================================================\n this.uniforms = three__WEBPACK_IMPORTED_MODULE_0__.UniformsUtils.merge([\n three__WEBPACK_IMPORTED_MODULE_0__.UniformsLib.common,\n three__WEBPACK_IMPORTED_MODULE_0__.UniformsLib.normalmap,\n three__WEBPACK_IMPORTED_MODULE_0__.UniformsLib.emissivemap,\n three__WEBPACK_IMPORTED_MODULE_0__.UniformsLib.fog,\n three__WEBPACK_IMPORTED_MODULE_0__.UniformsLib.lights,\n {\n litFactor: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Color(1.0, 1.0, 1.0) },\n mapUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n colorAlpha: { value: 1.0 },\n normalMapUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n shadeColorFactor: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Color(0.97, 0.81, 0.86) },\n shadeMultiplyTexture: { value: null },\n shadeMultiplyTextureUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n shadingShiftFactor: { value: 0.0 },\n shadingShiftTexture: { value: null },\n shadingShiftTextureUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n shadingShiftTextureScale: { value: 1.0 },\n shadingToonyFactor: { value: 0.9 },\n giEqualizationFactor: { value: 0.9 },\n matcapFactor: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Color(0.0, 0.0, 0.0) },\n matcapTexture: { value: null },\n matcapTextureUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n parametricRimColorFactor: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Color(0.0, 0.0, 0.0) },\n rimMultiplyTexture: { value: null },\n rimMultiplyTextureUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n rimLightingMixFactor: { value: 0.0 },\n parametricRimFresnelPowerFactor: { value: 1.0 },\n parametricRimLiftFactor: { value: 0.0 },\n emissive: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Color(0.0, 0.0, 0.0) },\n emissiveIntensity: { value: 1.0 },\n emissiveMapUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n outlineWidthMultiplyTexture: { value: null },\n outlineWidthMultiplyTextureUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n outlineWidthFactor: { value: 0.5 },\n outlineColorFactor: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Color(0.0, 0.0, 0.0) },\n outlineLightingMixFactor: { value: 1.0 },\n uvAnimationMaskTexture: { value: null },\n uvAnimationMaskTextureUvTransform: { value: new three__WEBPACK_IMPORTED_MODULE_0__.Matrix3() },\n uvAnimationScrollXOffset: { value: 0.0 },\n uvAnimationScrollYOffset: { value: 0.0 },\n uvAnimationRotationPhase: { value: 0.0 },\n },\n (_a = parameters.uniforms) !== null && _a !== void 0 ? _a : {},\n ]);\n // == finally compile the shader program =======================================================\n this.setValues(parameters);\n // == upload uniforms that need to upload ======================================================\n this._uploadUniformsWorkaround();\n // == update shader stuff ======================================================================\n this.customProgramCacheKey = () => [\n ...Object.entries(this._generateDefines()).map(([token, macro]) => `${token}:${macro}`),\n this.matcapTexture ? `matcapTextureColorSpace:${getTextureColorSpace(this.matcapTexture)}` : '',\n this.shadeMultiplyTexture\n ? `shadeMultiplyTextureColorSpace:${getTextureColorSpace(this.shadeMultiplyTexture)}`\n : '',\n this.rimMultiplyTexture ? `rimMultiplyTextureColorSpace:${getTextureColorSpace(this.rimMultiplyTexture)}` : '',\n ].join(',');\n this.onBeforeCompile = (shader) => {\n const threeRevision = parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10);\n const defines = Object.entries(Object.assign(Object.assign({}, this._generateDefines()), this.defines))\n .filter(([token, macro]) => !!macro)\n .map(([token, macro]) => `#define ${token} ${macro}`)\n .join('\\n') + '\\n';\n // -- generate shader code -------------------------------------------------------------------\n shader.vertexShader = defines + shader.vertexShader;\n shader.fragmentShader = defines + shader.fragmentShader;\n // -- compat ---------------------------------------------------------------------------------\n // COMPAT: pre-r154\n // Three.js r154 renames the shader chunk to \n if (threeRevision < 154) {\n shader.fragmentShader = shader.fragmentShader.replace('#include ', '#include ');\n }\n // COMPAT: pre-r132\n // Three.js r132 introduces new shader chunks and \n if (threeRevision < 132) {\n shader.fragmentShader = shader.fragmentShader.replace('#include ', '');\n shader.fragmentShader = shader.fragmentShader.replace('#include ', '');\n }\n };\n }\n /**\n * Update this material.\n *\n * @param delta deltaTime since last update\n */\n update(delta) {\n this._uploadUniformsWorkaround();\n this._updateUVAnimation(delta);\n }\n copy(source) {\n super.copy(source);\n // uniforms are already copied at this moment\n // Beginning from r133, uniform textures will be cloned instead of reference\n // See: https://github.com/mrdoob/three.js/blob/a8813be04a849bd155f7cf6f1b23d8ee2e0fb48b/examples/jsm/loaders/GLTFLoader.js#L3047\n // See: https://github.com/mrdoob/three.js/blob/a8813be04a849bd155f7cf6f1b23d8ee2e0fb48b/src/renderers/shaders/UniformsUtils.js#L22\n // This will leave their `.version` to be `0`\n // and these textures won't be uploaded to GPU\n // We are going to workaround this in here\n // I've opened an issue for this: https://github.com/mrdoob/three.js/issues/22718\n this.map = source.map;\n this.normalMap = source.normalMap;\n this.emissiveMap = source.emissiveMap;\n this.shadeMultiplyTexture = source.shadeMultiplyTexture;\n this.shadingShiftTexture = source.shadingShiftTexture;\n this.matcapTexture = source.matcapTexture;\n this.rimMultiplyTexture = source.rimMultiplyTexture;\n this.outlineWidthMultiplyTexture = source.outlineWidthMultiplyTexture;\n this.uvAnimationMaskTexture = source.uvAnimationMaskTexture;\n // == copy members =============================================================================\n this.normalMapType = source.normalMapType;\n this.uvAnimationScrollXSpeedFactor = source.uvAnimationScrollXSpeedFactor;\n this.uvAnimationScrollYSpeedFactor = source.uvAnimationScrollYSpeedFactor;\n this.uvAnimationRotationSpeedFactor = source.uvAnimationRotationSpeedFactor;\n this.ignoreVertexColor = source.ignoreVertexColor;\n this.v0CompatShade = source.v0CompatShade;\n this.debugMode = source.debugMode;\n this.outlineWidthMode = source.outlineWidthMode;\n this.isOutline = source.isOutline;\n // == update shader stuff ======================================================================\n this.needsUpdate = true;\n return this;\n }\n /**\n * Update UV animation state.\n * Intended to be called via {@link update}.\n * @param delta deltaTime\n */\n _updateUVAnimation(delta) {\n this.uniforms.uvAnimationScrollXOffset.value += delta * this.uvAnimationScrollXSpeedFactor;\n this.uniforms.uvAnimationScrollYOffset.value += delta * this.uvAnimationScrollYSpeedFactor;\n this.uniforms.uvAnimationRotationPhase.value += delta * this.uvAnimationRotationSpeedFactor;\n this.uniformsNeedUpdate = true;\n }\n /**\n * Upload uniforms that need to upload but doesn't automatically because of reasons.\n * Intended to be called via {@link constructor} and {@link update}.\n */\n _uploadUniformsWorkaround() {\n // workaround: since opacity is defined as a property in THREE.Material\n // and cannot be overridden as an accessor,\n // We are going to update opacity here\n this.uniforms.opacity.value = this.opacity;\n // workaround: texture transforms are not updated automatically\n this._updateTextureMatrix(this.uniforms.map, this.uniforms.mapUvTransform);\n this._updateTextureMatrix(this.uniforms.normalMap, this.uniforms.normalMapUvTransform);\n this._updateTextureMatrix(this.uniforms.emissiveMap, this.uniforms.emissiveMapUvTransform);\n this._updateTextureMatrix(this.uniforms.shadeMultiplyTexture, this.uniforms.shadeMultiplyTextureUvTransform);\n this._updateTextureMatrix(this.uniforms.shadingShiftTexture, this.uniforms.shadingShiftTextureUvTransform);\n this._updateTextureMatrix(this.uniforms.matcapTexture, this.uniforms.matcapTextureUvTransform);\n this._updateTextureMatrix(this.uniforms.rimMultiplyTexture, this.uniforms.rimMultiplyTextureUvTransform);\n this._updateTextureMatrix(this.uniforms.outlineWidthMultiplyTexture, this.uniforms.outlineWidthMultiplyTextureUvTransform);\n this._updateTextureMatrix(this.uniforms.uvAnimationMaskTexture, this.uniforms.uvAnimationMaskTextureUvTransform);\n // COMPAT workaround: starting from r132, alphaTest becomes a uniform instead of preprocessor value\n const threeRevision = parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10);\n if (threeRevision >= 132) {\n this.uniforms.alphaTest.value = this.alphaTest;\n }\n this.uniformsNeedUpdate = true;\n }\n /**\n * Returns a map object of preprocessor token and macro of the shader program.\n */\n _generateDefines() {\n const threeRevision = parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10);\n const useUvInVert = this.outlineWidthMultiplyTexture !== null;\n const useUvInFrag = this.map !== null ||\n this.emissiveMap !== null ||\n this.shadeMultiplyTexture !== null ||\n this.shadingShiftTexture !== null ||\n this.rimMultiplyTexture !== null ||\n this.uvAnimationMaskTexture !== null;\n return {\n // Temporary compat against shader change @ Three.js r126\n // See: #21205, #21307, #21299\n THREE_VRM_THREE_REVISION: threeRevision,\n OUTLINE: this._isOutline,\n MTOON_USE_UV: useUvInVert || useUvInFrag,\n MTOON_UVS_VERTEX_ONLY: useUvInVert && !useUvInFrag,\n V0_COMPAT_SHADE: this._v0CompatShade,\n USE_SHADEMULTIPLYTEXTURE: this.shadeMultiplyTexture !== null,\n USE_SHADINGSHIFTTEXTURE: this.shadingShiftTexture !== null,\n USE_MATCAPTEXTURE: this.matcapTexture !== null,\n USE_RIMMULTIPLYTEXTURE: this.rimMultiplyTexture !== null,\n USE_OUTLINEWIDTHMULTIPLYTEXTURE: this._isOutline && this.outlineWidthMultiplyTexture !== null,\n USE_UVANIMATIONMASKTEXTURE: this.uvAnimationMaskTexture !== null,\n IGNORE_VERTEX_COLOR: this._ignoreVertexColor === true,\n DEBUG_NORMAL: this._debugMode === 'normal',\n DEBUG_LITSHADERATE: this._debugMode === 'litShadeRate',\n DEBUG_UV: this._debugMode === 'uv',\n OUTLINE_WIDTH_WORLD: this._isOutline && this._outlineWidthMode === MToonMaterialOutlineWidthMode.WorldCoordinates,\n OUTLINE_WIDTH_SCREEN: this._isOutline && this._outlineWidthMode === MToonMaterialOutlineWidthMode.ScreenCoordinates,\n };\n }\n _updateTextureMatrix(src, dst) {\n if (src.value) {\n if (src.value.matrixAutoUpdate) {\n src.value.updateMatrix();\n }\n dst.value.copy(src.value.matrix);\n }\n }\n}\n\nconst colorSpaceEncodingMap = {\n '': 3000,\n srgb: 3001,\n};\n/**\n * A compat function to set texture color space.\n *\n * COMPAT: pre-r152\n * Starting from Three.js r152, `texture.encoding` is renamed to `texture.colorSpace`.\n * This function will handle the comapt.\n *\n * @param texture The texture you want to set the color space to\n * @param colorSpace The color space you want to set to the texture\n */\nfunction setTextureColorSpace(texture, colorSpace) {\n if (parseInt(three__WEBPACK_IMPORTED_MODULE_0__.REVISION, 10) >= 152) {\n texture.colorSpace = colorSpace;\n }\n else {\n texture.encoding = colorSpaceEncodingMap[colorSpace];\n }\n}\n\n/**\n * MaterialParameters hates `undefined`. This helper automatically rejects assign of these `undefined`.\n * It also handles asynchronous process of textures.\n * Make sure await for {@link GLTFMToonMaterialParamsAssignHelper.pending}.\n */\nclass GLTFMToonMaterialParamsAssignHelper {\n get pending() {\n return Promise.all(this._pendings);\n }\n constructor(parser, materialParams) {\n this._parser = parser;\n this._materialParams = materialParams;\n this._pendings = [];\n }\n assignPrimitive(key, value) {\n if (value != null) {\n this._materialParams[key] = value;\n }\n }\n assignColor(key, value, convertSRGBToLinear) {\n if (value != null) {\n this._materialParams[key] = new three__WEBPACK_IMPORTED_MODULE_0__.Color().fromArray(value);\n if (convertSRGBToLinear) {\n this._materialParams[key].convertSRGBToLinear();\n }\n }\n }\n assignTexture(key, texture, isColorTexture) {\n return __awaiter$4(this, void 0, void 0, function* () {\n const promise = (() => __awaiter$4(this, void 0, void 0, function* () {\n if (texture != null) {\n yield this._parser.assignTexture(this._materialParams, key, texture);\n if (isColorTexture) {\n setTextureColorSpace(this._materialParams[key], 'srgb');\n }\n }\n }))();\n this._pendings.push(promise);\n return promise;\n });\n }\n assignTextureByIndex(key, textureIndex, isColorTexture) {\n return __awaiter$4(this, void 0, void 0, function* () {\n return this.assignTexture(key, textureIndex != null ? { index: textureIndex } : undefined, isColorTexture);\n });\n }\n}\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS$2 = new Set(['1.0', '1.0-beta']);\nclass MToonMaterialLoaderPlugin {\n get name() {\n return MToonMaterialLoaderPlugin.EXTENSION_NAME;\n }\n constructor(parser, options = {}) {\n var _a, _b, _c;\n this.parser = parser;\n this.renderOrderOffset = (_a = options.renderOrderOffset) !== null && _a !== void 0 ? _a : 0;\n this.v0CompatShade = (_b = options.v0CompatShade) !== null && _b !== void 0 ? _b : false;\n this.debugMode = (_c = options.debugMode) !== null && _c !== void 0 ? _c : 'none';\n this._mToonMaterialSet = new Set();\n }\n beforeRoot() {\n return __awaiter$4(this, void 0, void 0, function* () {\n this._removeUnlitExtensionIfMToonExists();\n });\n }\n afterRoot(gltf) {\n return __awaiter$4(this, void 0, void 0, function* () {\n gltf.userData.vrmMToonMaterials = Array.from(this._mToonMaterialSet);\n });\n }\n getMaterialType(materialIndex) {\n const v1Extension = this._getMToonExtension(materialIndex);\n if (v1Extension) {\n return MToonMaterial;\n }\n return null;\n }\n extendMaterialParams(materialIndex, materialParams) {\n const extension = this._getMToonExtension(materialIndex);\n if (extension) {\n return this._extendMaterialParams(extension, materialParams);\n }\n return null;\n }\n loadMesh(meshIndex) {\n var _a;\n return __awaiter$4(this, void 0, void 0, function* () {\n const parser = this.parser;\n const json = parser.json;\n const meshDef = (_a = json.meshes) === null || _a === void 0 ? void 0 : _a[meshIndex];\n if (meshDef == null) {\n throw new Error(`MToonMaterialLoaderPlugin: Attempt to use meshes[${meshIndex}] of glTF but the mesh doesn't exist`);\n }\n const primitivesDef = meshDef.primitives;\n const meshOrGroup = yield parser.loadMesh(meshIndex);\n if (primitivesDef.length === 1) {\n const mesh = meshOrGroup;\n const materialIndex = primitivesDef[0].material;\n if (materialIndex != null) {\n this._setupPrimitive(mesh, materialIndex);\n }\n }\n else {\n const group = meshOrGroup;\n for (let i = 0; i < primitivesDef.length; i++) {\n const mesh = group.children[i];\n const materialIndex = primitivesDef[i].material;\n if (materialIndex != null) {\n this._setupPrimitive(mesh, materialIndex);\n }\n }\n }\n return meshOrGroup;\n });\n }\n /**\n * Delete use of `KHR_materials_unlit` from its `materials` if the material is using MToon.\n *\n * Since GLTFLoader have so many hardcoded procedure related to `KHR_materials_unlit`\n * we have to delete the extension before we start to parse the glTF.\n */\n _removeUnlitExtensionIfMToonExists() {\n const parser = this.parser;\n const json = parser.json;\n const materialDefs = json.materials;\n materialDefs === null || materialDefs === void 0 ? void 0 : materialDefs.map((materialDef, iMaterial) => {\n var _a;\n const extension = this._getMToonExtension(iMaterial);\n if (extension && ((_a = materialDef.extensions) === null || _a === void 0 ? void 0 : _a['KHR_materials_unlit'])) {\n delete materialDef.extensions['KHR_materials_unlit'];\n }\n });\n }\n _getMToonExtension(materialIndex) {\n var _a, _b;\n const parser = this.parser;\n const json = parser.json;\n const materialDef = (_a = json.materials) === null || _a === void 0 ? void 0 : _a[materialIndex];\n if (materialDef == null) {\n console.warn(`MToonMaterialLoaderPlugin: Attempt to use materials[${materialIndex}] of glTF but the material doesn't exist`);\n return undefined;\n }\n const extension = (_b = materialDef.extensions) === null || _b === void 0 ? void 0 : _b[MToonMaterialLoaderPlugin.EXTENSION_NAME];\n if (extension == null) {\n return undefined;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS$2.has(specVersion)) {\n console.warn(`MToonMaterialLoaderPlugin: Unknown ${MToonMaterialLoaderPlugin.EXTENSION_NAME} specVersion \"${specVersion}\"`);\n return undefined;\n }\n return extension;\n }\n _extendMaterialParams(extension, materialParams) {\n var _a;\n return __awaiter$4(this, void 0, void 0, function* () {\n // Removing material params that is not required to supress warnings.\n delete materialParams.metalness;\n delete materialParams.roughness;\n const assignHelper = new GLTFMToonMaterialParamsAssignHelper(this.parser, materialParams);\n assignHelper.assignPrimitive('transparentWithZWrite', extension.transparentWithZWrite);\n assignHelper.assignColor('shadeColorFactor', extension.shadeColorFactor);\n assignHelper.assignTexture('shadeMultiplyTexture', extension.shadeMultiplyTexture, true);\n assignHelper.assignPrimitive('shadingShiftFactor', extension.shadingShiftFactor);\n assignHelper.assignTexture('shadingShiftTexture', extension.shadingShiftTexture, true);\n assignHelper.assignPrimitive('shadingShiftTextureScale', (_a = extension.shadingShiftTexture) === null || _a === void 0 ? void 0 : _a.scale);\n assignHelper.assignPrimitive('shadingToonyFactor', extension.shadingToonyFactor);\n assignHelper.assignPrimitive('giEqualizationFactor', extension.giEqualizationFactor);\n assignHelper.assignColor('matcapFactor', extension.matcapFactor);\n assignHelper.assignTexture('matcapTexture', extension.matcapTexture, true);\n assignHelper.assignColor('parametricRimColorFactor', extension.parametricRimColorFactor);\n assignHelper.assignTexture('rimMultiplyTexture', extension.rimMultiplyTexture, true);\n assignHelper.assignPrimitive('rimLightingMixFactor', extension.rimLightingMixFactor);\n assignHelper.assignPrimitive('parametricRimFresnelPowerFactor', extension.parametricRimFresnelPowerFactor);\n assignHelper.assignPrimitive('parametricRimLiftFactor', extension.parametricRimLiftFactor);\n assignHelper.assignPrimitive('outlineWidthMode', extension.outlineWidthMode);\n assignHelper.assignPrimitive('outlineWidthFactor', extension.outlineWidthFactor);\n assignHelper.assignTexture('outlineWidthMultiplyTexture', extension.outlineWidthMultiplyTexture, false);\n assignHelper.assignColor('outlineColorFactor', extension.outlineColorFactor);\n assignHelper.assignPrimitive('outlineLightingMixFactor', extension.outlineLightingMixFactor);\n assignHelper.assignTexture('uvAnimationMaskTexture', extension.uvAnimationMaskTexture, false);\n assignHelper.assignPrimitive('uvAnimationScrollXSpeedFactor', extension.uvAnimationScrollXSpeedFactor);\n assignHelper.assignPrimitive('uvAnimationScrollYSpeedFactor', extension.uvAnimationScrollYSpeedFactor);\n assignHelper.assignPrimitive('uvAnimationRotationSpeedFactor', extension.uvAnimationRotationSpeedFactor);\n assignHelper.assignPrimitive('v0CompatShade', this.v0CompatShade);\n assignHelper.assignPrimitive('debugMode', this.debugMode);\n yield assignHelper.pending;\n });\n }\n /**\n * This will do two processes that is required to render MToon properly.\n *\n * - Set render order\n * - Generate outline\n *\n * @param mesh A target GLTF primitive\n * @param materialIndex The material index of the primitive\n */\n _setupPrimitive(mesh, materialIndex) {\n const extension = this._getMToonExtension(materialIndex);\n if (extension) {\n const renderOrder = this._parseRenderOrder(extension);\n mesh.renderOrder = renderOrder + this.renderOrderOffset;\n this._generateOutline(mesh);\n this._addToMaterialSet(mesh);\n return;\n }\n }\n /**\n * Generate outline for the given mesh, if it needs.\n *\n * @param mesh The target mesh\n */\n _generateOutline(mesh) {\n // OK, it's the hacky part.\n // We are going to duplicate the MToonMaterial for outline use.\n // Then we are going to create two geometry groups and refer same buffer but different material.\n // It's how we draw two materials at once using a single mesh.\n // make sure the material is mtoon\n const surfaceMaterial = mesh.material;\n if (!(surfaceMaterial instanceof MToonMaterial)) {\n return;\n }\n // check whether we really have to prepare outline or not\n if (surfaceMaterial.outlineWidthMode === 'none' || surfaceMaterial.outlineWidthFactor <= 0.0) {\n return;\n }\n // make its material an array\n mesh.material = [surfaceMaterial]; // mesh.material is guaranteed to be a Material in GLTFLoader\n // duplicate the material for outline use\n const outlineMaterial = surfaceMaterial.clone();\n outlineMaterial.name += ' (Outline)';\n outlineMaterial.isOutline = true;\n outlineMaterial.side = three__WEBPACK_IMPORTED_MODULE_0__.BackSide;\n mesh.material.push(outlineMaterial);\n // make two geometry groups out of a same buffer\n const geometry = mesh.geometry; // mesh.geometry is guaranteed to be a BufferGeometry in GLTFLoader\n const primitiveVertices = geometry.index ? geometry.index.count : geometry.attributes.position.count / 3;\n geometry.addGroup(0, primitiveVertices, 0);\n geometry.addGroup(0, primitiveVertices, 1);\n }\n _addToMaterialSet(mesh) {\n const materialOrMaterials = mesh.material;\n const materialSet = new Set();\n if (Array.isArray(materialOrMaterials)) {\n materialOrMaterials.forEach((material) => materialSet.add(material));\n }\n else {\n materialSet.add(materialOrMaterials);\n }\n for (const material of materialSet) {\n if (material instanceof MToonMaterial) {\n this._mToonMaterialSet.add(material);\n }\n }\n }\n _parseRenderOrder(extension) {\n var _a;\n // transparentWithZWrite ranges from 0 to +9\n // mere transparent ranges from -9 to 0\n const enabledZWrite = extension.transparentWithZWrite;\n return (enabledZWrite ? 0 : 19) + ((_a = extension.renderQueueOffsetNumber) !== null && _a !== void 0 ? _a : 0);\n }\n}\nMToonMaterialLoaderPlugin.EXTENSION_NAME = 'VRMC_materials_mtoon';\n\n/*!\n * @pixiv/three-vrm-materials-hdr-emissive-multiplier v2.1.1\n * Support VRMC_hdr_emissiveMultiplier for @pixiv/three-vrm\n *\n * Copyright (c) 2020-2024 pixiv Inc.\n * @pixiv/three-vrm-materials-hdr-emissive-multiplier is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter$3(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass VRMMaterialsHDREmissiveMultiplierLoaderPlugin {\n get name() {\n return VRMMaterialsHDREmissiveMultiplierLoaderPlugin.EXTENSION_NAME;\n }\n constructor(parser) {\n this.parser = parser;\n }\n extendMaterialParams(materialIndex, materialParams) {\n return __awaiter$3(this, void 0, void 0, function* () {\n const extension = this._getHDREmissiveMultiplierExtension(materialIndex);\n if (extension == null) {\n return;\n }\n // This extension is archived. Emit warning\n // See: https://github.com/vrm-c/vrm-specification/pull/375\n console.warn('VRMMaterialsHDREmissiveMultiplierLoaderPlugin: `VRMC_materials_hdr_emissiveMultiplier` is archived. Use `KHR_materials_emissive_strength` instead.');\n const emissiveMultiplier = extension.emissiveMultiplier;\n materialParams.emissiveIntensity = emissiveMultiplier;\n });\n }\n _getHDREmissiveMultiplierExtension(materialIndex) {\n var _a, _b;\n const parser = this.parser;\n const json = parser.json;\n const materialDef = (_a = json.materials) === null || _a === void 0 ? void 0 : _a[materialIndex];\n if (materialDef == null) {\n console.warn(`VRMMaterialsHDREmissiveMultiplierLoaderPlugin: Attempt to use materials[${materialIndex}] of glTF but the material doesn't exist`);\n return undefined;\n }\n const extension = (_b = materialDef.extensions) === null || _b === void 0 ? void 0 : _b[VRMMaterialsHDREmissiveMultiplierLoaderPlugin.EXTENSION_NAME];\n if (extension == null) {\n return undefined;\n }\n return extension;\n }\n}\nVRMMaterialsHDREmissiveMultiplierLoaderPlugin.EXTENSION_NAME = 'VRMC_materials_hdr_emissiveMultiplier';\n\n/*!\n * @pixiv/three-vrm-materials-v0compat v2.1.1\n * VRM0.0 materials compatibility layer plugin for @pixiv/three-vrm\n *\n * Copyright (c) 2020-2024 pixiv Inc.\n * @pixiv/three-vrm-materials-v0compat is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter$2(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction gammaEOTF(e) {\n return Math.pow(e, 2.2);\n}\n\nclass VRMMaterialsV0CompatPlugin {\n get name() {\n return 'VRMMaterialsV0CompatPlugin';\n }\n constructor(parser) {\n var _a;\n this.parser = parser;\n this._renderQueueMapTransparent = new Map();\n this._renderQueueMapTransparentZWrite = new Map();\n // WORKAROUND: Add KHR_texture_transform to extensionsUsed\n // It is too late to add this in beforeRoot\n const json = this.parser.json;\n json.extensionsUsed = (_a = json.extensionsUsed) !== null && _a !== void 0 ? _a : [];\n if (json.extensionsUsed.indexOf('KHR_texture_transform') === -1) {\n json.extensionsUsed.push('KHR_texture_transform');\n }\n }\n beforeRoot() {\n var _a;\n return __awaiter$2(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use V0VRM\n const v0VRMExtension = (_a = json.extensions) === null || _a === void 0 ? void 0 : _a['VRM'];\n const v0MaterialProperties = v0VRMExtension === null || v0VRMExtension === void 0 ? void 0 : v0VRMExtension.materialProperties;\n if (!v0MaterialProperties) {\n return;\n }\n // populate render queue map\n this._populateRenderQueueMap(v0MaterialProperties);\n // convert V0 material properties into V1 compatible format\n v0MaterialProperties.forEach((materialProperties, materialIndex) => {\n var _a, _b;\n const materialDef = (_a = json.materials) === null || _a === void 0 ? void 0 : _a[materialIndex];\n if (materialDef == null) {\n console.warn(`VRMMaterialsV0CompatPlugin: Attempt to use materials[${materialIndex}] of glTF but the material doesn't exist`);\n return;\n }\n if (materialProperties.shader === 'VRM/MToon') {\n const material = this._parseV0MToonProperties(materialProperties, materialDef);\n json.materials[materialIndex] = material;\n }\n else if ((_b = materialProperties.shader) === null || _b === void 0 ? void 0 : _b.startsWith('VRM/Unlit')) {\n const material = this._parseV0UnlitProperties(materialProperties, materialDef);\n json.materials[materialIndex] = material;\n }\n else if (materialProperties.shader === 'VRM_USE_GLTFSHADER') ;\n else {\n console.warn(`VRMMaterialsV0CompatPlugin: Unknown shader: ${materialProperties.shader}`);\n }\n });\n });\n }\n _parseV0MToonProperties(materialProperties, schemaMaterial) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19;\n const isTransparent = (_b = (_a = materialProperties.keywordMap) === null || _a === void 0 ? void 0 : _a['_ALPHABLEND_ON']) !== null && _b !== void 0 ? _b : false;\n const enabledZWrite = ((_c = materialProperties.floatProperties) === null || _c === void 0 ? void 0 : _c['_ZWrite']) === 1;\n const transparentWithZWrite = enabledZWrite && isTransparent;\n const renderQueueOffsetNumber = this._v0ParseRenderQueue(materialProperties);\n const isCutoff = (_e = (_d = materialProperties.keywordMap) === null || _d === void 0 ? void 0 : _d['_ALPHATEST_ON']) !== null && _e !== void 0 ? _e : false;\n const alphaMode = isTransparent ? 'BLEND' : isCutoff ? 'MASK' : 'OPAQUE';\n const alphaCutoff = isCutoff ? (_f = materialProperties.floatProperties) === null || _f === void 0 ? void 0 : _f['_Cutoff'] : undefined;\n const cullMode = (_h = (_g = materialProperties.floatProperties) === null || _g === void 0 ? void 0 : _g['_CullMode']) !== null && _h !== void 0 ? _h : 2; // enum, { Off, Front, Back }\n const doubleSided = cullMode === 0;\n const textureTransformExt = this._portTextureTransform(materialProperties);\n const baseColorFactor = (_k = (_j = materialProperties.vectorProperties) === null || _j === void 0 ? void 0 : _j['_Color']) === null || _k === void 0 ? void 0 : _k.map((v, i) => (i === 3 ? v : gammaEOTF(v)));\n const baseColorTextureIndex = (_l = materialProperties.textureProperties) === null || _l === void 0 ? void 0 : _l['_MainTex'];\n const baseColorTexture = baseColorTextureIndex != null\n ? {\n index: baseColorTextureIndex,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n const normalTextureScale = (_m = materialProperties.floatProperties) === null || _m === void 0 ? void 0 : _m['_BumpScale'];\n const normalTextureIndex = (_o = materialProperties.textureProperties) === null || _o === void 0 ? void 0 : _o['_BumpMap'];\n const normalTexture = normalTextureIndex != null\n ? {\n index: normalTextureIndex,\n scale: normalTextureScale,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n const emissiveFactor = (_q = (_p = materialProperties.vectorProperties) === null || _p === void 0 ? void 0 : _p['_EmissionColor']) === null || _q === void 0 ? void 0 : _q.map(gammaEOTF);\n const emissiveTextureIndex = (_r = materialProperties.textureProperties) === null || _r === void 0 ? void 0 : _r['_EmissionMap'];\n const emissiveTexture = emissiveTextureIndex != null\n ? {\n index: emissiveTextureIndex,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n const shadeColorFactor = (_t = (_s = materialProperties.vectorProperties) === null || _s === void 0 ? void 0 : _s['_ShadeColor']) === null || _t === void 0 ? void 0 : _t.map(gammaEOTF);\n const shadeMultiplyTextureIndex = (_u = materialProperties.textureProperties) === null || _u === void 0 ? void 0 : _u['_ShadeTexture'];\n const shadeMultiplyTexture = shadeMultiplyTextureIndex != null\n ? {\n index: shadeMultiplyTextureIndex,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n // // convert v0 shade shift / shade toony\n let shadingShiftFactor = (_w = (_v = materialProperties.floatProperties) === null || _v === void 0 ? void 0 : _v['_ShadeShift']) !== null && _w !== void 0 ? _w : 0.0;\n let shadingToonyFactor = (_y = (_x = materialProperties.floatProperties) === null || _x === void 0 ? void 0 : _x['_ShadeToony']) !== null && _y !== void 0 ? _y : 0.9;\n shadingToonyFactor = three__WEBPACK_IMPORTED_MODULE_0__.MathUtils.lerp(shadingToonyFactor, 1.0, 0.5 + 0.5 * shadingShiftFactor);\n shadingShiftFactor = -shadingShiftFactor - (1.0 - shadingToonyFactor);\n const giIntensityFactor = (_z = materialProperties.floatProperties) === null || _z === void 0 ? void 0 : _z['_IndirectLightIntensity'];\n const giEqualizationFactor = giIntensityFactor ? 1.0 - giIntensityFactor : undefined;\n const matcapTextureIndex = (_0 = materialProperties.textureProperties) === null || _0 === void 0 ? void 0 : _0['_SphereAdd'];\n const matcapFactor = matcapTextureIndex != null ? [1.0, 1.0, 1.0] : undefined;\n const matcapTexture = matcapTextureIndex != null\n ? {\n index: matcapTextureIndex,\n }\n : undefined;\n const rimLightingMixFactor = (_1 = materialProperties.floatProperties) === null || _1 === void 0 ? void 0 : _1['_RimLightingMix'];\n const rimMultiplyTextureIndex = (_2 = materialProperties.textureProperties) === null || _2 === void 0 ? void 0 : _2['_RimTexture'];\n const rimMultiplyTexture = rimMultiplyTextureIndex != null\n ? {\n index: rimMultiplyTextureIndex,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n const parametricRimColorFactor = (_4 = (_3 = materialProperties.vectorProperties) === null || _3 === void 0 ? void 0 : _3['_RimColor']) === null || _4 === void 0 ? void 0 : _4.map(gammaEOTF);\n const parametricRimFresnelPowerFactor = (_5 = materialProperties.floatProperties) === null || _5 === void 0 ? void 0 : _5['_RimFresnelPower'];\n const parametricRimLiftFactor = (_6 = materialProperties.floatProperties) === null || _6 === void 0 ? void 0 : _6['_RimLift'];\n const outlineWidthMode = ['none', 'worldCoordinates', 'screenCoordinates'][(_8 = (_7 = materialProperties.floatProperties) === null || _7 === void 0 ? void 0 : _7['_OutlineWidthMode']) !== null && _8 !== void 0 ? _8 : 0];\n // // v0 outlineWidthFactor is in centimeter\n let outlineWidthFactor = (_10 = (_9 = materialProperties.floatProperties) === null || _9 === void 0 ? void 0 : _9['_OutlineWidth']) !== null && _10 !== void 0 ? _10 : 0.0;\n outlineWidthFactor = 0.01 * outlineWidthFactor;\n const outlineWidthMultiplyTextureIndex = (_11 = materialProperties.textureProperties) === null || _11 === void 0 ? void 0 : _11['_OutlineWidthTexture'];\n const outlineWidthMultiplyTexture = outlineWidthMultiplyTextureIndex != null\n ? {\n index: outlineWidthMultiplyTextureIndex,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n const outlineColorFactor = (_13 = (_12 = materialProperties.vectorProperties) === null || _12 === void 0 ? void 0 : _12['_OutlineColor']) === null || _13 === void 0 ? void 0 : _13.map(gammaEOTF);\n const outlineColorMode = (_14 = materialProperties.floatProperties) === null || _14 === void 0 ? void 0 : _14['_OutlineColorMode']; // enum, { Fixed, Mixed }\n const outlineLightingMixFactor = outlineColorMode === 1 ? (_15 = materialProperties.floatProperties) === null || _15 === void 0 ? void 0 : _15['_OutlineLightingMix'] : 0.0;\n const uvAnimationMaskTextureIndex = (_16 = materialProperties.textureProperties) === null || _16 === void 0 ? void 0 : _16['_UvAnimMaskTexture'];\n const uvAnimationMaskTexture = uvAnimationMaskTextureIndex != null\n ? {\n index: uvAnimationMaskTextureIndex,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n const uvAnimationScrollXSpeedFactor = (_17 = materialProperties.floatProperties) === null || _17 === void 0 ? void 0 : _17['_UvAnimScrollX'];\n // uvAnimationScrollYSpeedFactor will be opposite between V0 and V1\n let uvAnimationScrollYSpeedFactor = (_18 = materialProperties.floatProperties) === null || _18 === void 0 ? void 0 : _18['_UvAnimScrollY'];\n if (uvAnimationScrollYSpeedFactor != null) {\n uvAnimationScrollYSpeedFactor = -uvAnimationScrollYSpeedFactor;\n }\n const uvAnimationRotationSpeedFactor = (_19 = materialProperties.floatProperties) === null || _19 === void 0 ? void 0 : _19['_UvAnimRotation'];\n const mtoonExtension = {\n specVersion: '1.0',\n transparentWithZWrite,\n renderQueueOffsetNumber,\n shadeColorFactor,\n shadeMultiplyTexture,\n shadingShiftFactor,\n shadingToonyFactor,\n giEqualizationFactor,\n matcapFactor,\n matcapTexture,\n rimLightingMixFactor,\n rimMultiplyTexture,\n parametricRimColorFactor,\n parametricRimFresnelPowerFactor,\n parametricRimLiftFactor,\n outlineWidthMode,\n outlineWidthFactor,\n outlineWidthMultiplyTexture,\n outlineColorFactor,\n outlineLightingMixFactor,\n uvAnimationMaskTexture,\n uvAnimationScrollXSpeedFactor,\n uvAnimationScrollYSpeedFactor,\n uvAnimationRotationSpeedFactor,\n };\n return Object.assign(Object.assign({}, schemaMaterial), { pbrMetallicRoughness: {\n baseColorFactor,\n baseColorTexture,\n }, normalTexture,\n emissiveTexture,\n emissiveFactor,\n alphaMode,\n alphaCutoff,\n doubleSided, extensions: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n VRMC_materials_mtoon: mtoonExtension,\n } });\n }\n _parseV0UnlitProperties(materialProperties, schemaMaterial) {\n var _a, _b, _c, _d;\n const isTransparentZWrite = materialProperties.shader === 'VRM/UnlitTransparentZWrite';\n const isTransparent = materialProperties.shader === 'VRM/UnlitTransparent' || isTransparentZWrite;\n const renderQueueOffsetNumber = this._v0ParseRenderQueue(materialProperties);\n const isCutoff = materialProperties.shader === 'VRM/UnlitCutout';\n const alphaMode = isTransparent ? 'BLEND' : isCutoff ? 'MASK' : 'OPAQUE';\n const alphaCutoff = isCutoff ? (_a = materialProperties.floatProperties) === null || _a === void 0 ? void 0 : _a['_Cutoff'] : undefined;\n const textureTransformExt = this._portTextureTransform(materialProperties);\n const baseColorFactor = (_c = (_b = materialProperties.vectorProperties) === null || _b === void 0 ? void 0 : _b['_Color']) === null || _c === void 0 ? void 0 : _c.map(gammaEOTF);\n const baseColorTextureIndex = (_d = materialProperties.textureProperties) === null || _d === void 0 ? void 0 : _d['_MainTex'];\n const baseColorTexture = baseColorTextureIndex != null\n ? {\n index: baseColorTextureIndex,\n extensions: Object.assign({}, textureTransformExt),\n }\n : undefined;\n // use mtoon instead of unlit, since there might be VRM0.0 specific features that are not supported by gltf\n const mtoonExtension = {\n specVersion: '1.0',\n transparentWithZWrite: isTransparentZWrite,\n renderQueueOffsetNumber,\n shadeColorFactor: baseColorFactor,\n shadeMultiplyTexture: baseColorTexture,\n };\n return Object.assign(Object.assign({}, schemaMaterial), { pbrMetallicRoughness: {\n baseColorFactor,\n baseColorTexture,\n }, alphaMode,\n alphaCutoff, extensions: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n VRMC_materials_mtoon: mtoonExtension,\n } });\n }\n /**\n * Create a glTF `KHR_texture_transform` extension from v0 texture transform info.\n */\n _portTextureTransform(materialProperties) {\n var _a, _b, _c, _d, _e;\n const textureTransform = (_a = materialProperties.vectorProperties) === null || _a === void 0 ? void 0 : _a['_MainTex'];\n if (textureTransform == null) {\n return {};\n }\n const offset = [(_b = textureTransform === null || textureTransform === void 0 ? void 0 : textureTransform[0]) !== null && _b !== void 0 ? _b : 0.0, (_c = textureTransform === null || textureTransform === void 0 ? void 0 : textureTransform[1]) !== null && _c !== void 0 ? _c : 0.0];\n const scale = [(_d = textureTransform === null || textureTransform === void 0 ? void 0 : textureTransform[2]) !== null && _d !== void 0 ? _d : 1.0, (_e = textureTransform === null || textureTransform === void 0 ? void 0 : textureTransform[3]) !== null && _e !== void 0 ? _e : 1.0];\n offset[1] = 1.0 - scale[1] - offset[1];\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n KHR_texture_transform: { offset, scale },\n };\n }\n /**\n * Convert v0 render order into v1 render order.\n * This uses a map from v0 render queue to v1 compliant render queue offset which is generated in {@link _populateRenderQueueMap}.\n */\n _v0ParseRenderQueue(materialProperties) {\n var _a, _b, _c;\n const isTransparent = (_b = (_a = materialProperties.keywordMap) === null || _a === void 0 ? void 0 : _a['_ALPHABLEND_ON']) !== null && _b !== void 0 ? _b : false;\n const enabledZWrite = ((_c = materialProperties.floatProperties) === null || _c === void 0 ? void 0 : _c['_ZWrite']) === 1;\n let offset = 0;\n if (isTransparent) {\n const v0Queue = materialProperties.renderQueue;\n if (v0Queue != null) {\n if (enabledZWrite) {\n offset = this._renderQueueMapTransparentZWrite.get(v0Queue);\n }\n else {\n offset = this._renderQueueMapTransparent.get(v0Queue);\n }\n }\n }\n return offset;\n }\n /**\n * Create a map which maps v0 render queue to v1 compliant render queue offset.\n * This lists up all render queues the model use and creates a map to new render queue offsets in the same order.\n */\n _populateRenderQueueMap(materialPropertiesList) {\n /**\n * A set of used render queues in Transparent materials.\n */\n const renderQueuesTransparent = new Set();\n /**\n * A set of used render queues in TransparentZWrite materials.\n */\n const renderQueuesTransparentZWrite = new Set();\n // populate the render queue set\n materialPropertiesList.forEach((materialProperties) => {\n var _a, _b, _c;\n const isTransparent = (_b = (_a = materialProperties.keywordMap) === null || _a === void 0 ? void 0 : _a['_ALPHABLEND_ON']) !== null && _b !== void 0 ? _b : false;\n const enabledZWrite = ((_c = materialProperties.floatProperties) === null || _c === void 0 ? void 0 : _c['_ZWrite']) === 1;\n if (isTransparent) {\n const v0Queue = materialProperties.renderQueue;\n if (v0Queue != null) {\n if (enabledZWrite) {\n renderQueuesTransparentZWrite.add(v0Queue);\n }\n else {\n renderQueuesTransparent.add(v0Queue);\n }\n }\n }\n });\n // show a warning if the model uses v1 incompatible number of render queues\n if (renderQueuesTransparent.size > 10) {\n console.warn(`VRMMaterialsV0CompatPlugin: This VRM uses ${renderQueuesTransparent.size} render queues for Transparent materials while VRM 1.0 only supports up to 10 render queues. The model might not be rendered correctly.`);\n }\n if (renderQueuesTransparentZWrite.size > 10) {\n console.warn(`VRMMaterialsV0CompatPlugin: This VRM uses ${renderQueuesTransparentZWrite.size} render queues for TransparentZWrite materials while VRM 1.0 only supports up to 10 render queues. The model might not be rendered correctly.`);\n }\n // create a map from v0 render queue to v1 render queue offset\n Array.from(renderQueuesTransparent)\n .sort()\n .forEach((queue, i) => {\n const newQueueOffset = Math.min(Math.max(i - renderQueuesTransparent.size + 1, -9), 0);\n this._renderQueueMapTransparent.set(queue, newQueueOffset);\n });\n Array.from(renderQueuesTransparentZWrite)\n .sort()\n .forEach((queue, i) => {\n const newQueueOffset = Math.min(Math.max(i, 0), 9);\n this._renderQueueMapTransparentZWrite.set(queue, newQueueOffset);\n });\n }\n}\n\n/*!\n * @pixiv/three-vrm-node-constraint v2.1.1\n * Node constraint module for @pixiv/three-vrm\n *\n * Copyright (c) 2020-2024 pixiv Inc.\n * @pixiv/three-vrm-node-constraint is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\nconst _v3A$3$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nclass VRMNodeConstraintHelper extends three__WEBPACK_IMPORTED_MODULE_0__.Group {\n constructor(constraint) {\n super();\n this._attrPosition = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Float32Array([0, 0, 0, 0, 0, 0]), 3);\n this._attrPosition.setUsage(three__WEBPACK_IMPORTED_MODULE_0__.DynamicDrawUsage);\n const geometry = new three__WEBPACK_IMPORTED_MODULE_0__.BufferGeometry();\n geometry.setAttribute('position', this._attrPosition);\n const material = new three__WEBPACK_IMPORTED_MODULE_0__.LineBasicMaterial({\n color: 0xff00ff,\n depthTest: false,\n depthWrite: false,\n });\n this._line = new three__WEBPACK_IMPORTED_MODULE_0__.Line(geometry, material);\n this.add(this._line);\n this.constraint = constraint;\n }\n updateMatrixWorld(force) {\n _v3A$3$1.setFromMatrixPosition(this.constraint.destination.matrixWorld);\n this._attrPosition.setXYZ(0, _v3A$3$1.x, _v3A$3$1.y, _v3A$3$1.z);\n if (this.constraint.source) {\n _v3A$3$1.setFromMatrixPosition(this.constraint.source.matrixWorld);\n }\n this._attrPosition.setXYZ(1, _v3A$3$1.x, _v3A$3$1.y, _v3A$3$1.z);\n this._attrPosition.needsUpdate = true;\n super.updateMatrixWorld(force);\n }\n}\n\nfunction decomposePosition(matrix, target) {\n return target.set(matrix.elements[12], matrix.elements[13], matrix.elements[14]);\n}\n\nconst _v3A$2$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B$1$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nfunction decomposeRotation(matrix, target) {\n matrix.decompose(_v3A$2$1, target, _v3B$1$1);\n return target;\n}\n\n/**\n * A compat function for `Quaternion.invert()` / `Quaternion.inverse()`.\n * `Quaternion.invert()` is introduced in r123 and `Quaternion.inverse()` emits a warning.\n * We are going to use this compat for a while.\n * @param target A target quaternion\n */\nfunction quatInvertCompat(target) {\n if (target.invert) {\n target.invert();\n }\n else {\n target.inverse();\n }\n return target;\n}\n\n/**\n * A base class of VRM constraint classes.\n */\nclass VRMNodeConstraint {\n /**\n * @param destination The destination object\n * @param source The source object\n */\n constructor(destination, source) {\n this.destination = destination;\n this.source = source;\n this.weight = 1.0;\n }\n}\n\nconst _v3A$1$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3C$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatC = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n/**\n * A constraint that makes it look at a source object.\n *\n * See: https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_node_constraint-1.0_beta#roll-constraint\n */\nclass VRMAimConstraint extends VRMNodeConstraint {\n /**\n * The aim axis of the constraint.\n */\n get aimAxis() {\n return this._aimAxis;\n }\n /**\n * The aim axis of the constraint.\n */\n set aimAxis(aimAxis) {\n this._aimAxis = aimAxis;\n this._v3AimAxis.set(aimAxis === 'PositiveX' ? 1.0 : aimAxis === 'NegativeX' ? -1.0 : 0.0, aimAxis === 'PositiveY' ? 1.0 : aimAxis === 'NegativeY' ? -1.0 : 0.0, aimAxis === 'PositiveZ' ? 1.0 : aimAxis === 'NegativeZ' ? -1.0 : 0.0);\n }\n get dependencies() {\n const set = new Set([this.source]);\n if (this.destination.parent) {\n set.add(this.destination.parent);\n }\n return set;\n }\n constructor(destination, source) {\n super(destination, source);\n this._aimAxis = 'PositiveX';\n this._v3AimAxis = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(1, 0, 0);\n this._dstRestQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n }\n setInitState() {\n this._dstRestQuat.copy(this.destination.quaternion);\n }\n update() {\n // update world matrix of destination and source manually\n this.destination.updateWorldMatrix(true, false);\n this.source.updateWorldMatrix(true, false);\n // get world quaternion of the parent of the destination\n const dstParentWorldQuat = _quatA$2.identity();\n const invDstParentWorldQuat = _quatB$2.identity();\n if (this.destination.parent) {\n decomposeRotation(this.destination.parent.matrixWorld, dstParentWorldQuat);\n quatInvertCompat(invDstParentWorldQuat.copy(dstParentWorldQuat));\n }\n // calculate from-to vectors in world coord\n const a0 = _v3A$1$1.copy(this._v3AimAxis).applyQuaternion(this._dstRestQuat).applyQuaternion(dstParentWorldQuat);\n const a1 = decomposePosition(this.source.matrixWorld, _v3B$2)\n .sub(decomposePosition(this.destination.matrixWorld, _v3C$1))\n .normalize();\n // create a from-to quaternion, convert to destination local coord, then multiply rest quaternion\n const targetQuat = _quatC\n .setFromUnitVectors(a0, a1)\n .premultiply(invDstParentWorldQuat)\n .multiply(dstParentWorldQuat)\n .multiply(this._dstRestQuat);\n // blend with the rest quaternion using weight\n this.destination.quaternion.copy(this._dstRestQuat).slerp(targetQuat, this.weight);\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter$1(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\n/**\n * Traverse ancestors of given object and call given callback from root side.\n * It will include the given object itself.\n *\n * @param object The object you want to traverse\n * @param callback The call back function that will be called for each ancestors\n */\nfunction traverseAncestorsFromRoot$1(object, callback) {\n const ancestors = [object];\n let head = object.parent;\n while (head !== null) {\n ancestors.unshift(head);\n head = head.parent;\n }\n ancestors.forEach((ancestor) => {\n callback(ancestor);\n });\n}\n\nclass VRMNodeConstraintManager {\n constructor() {\n this._constraints = new Set();\n this._objectConstraintsMap = new Map();\n }\n get constraints() {\n return this._constraints;\n }\n addConstraint(constraint) {\n this._constraints.add(constraint);\n let objectSet = this._objectConstraintsMap.get(constraint.destination);\n if (objectSet == null) {\n objectSet = new Set();\n this._objectConstraintsMap.set(constraint.destination, objectSet);\n }\n objectSet.add(constraint);\n }\n deleteConstraint(constraint) {\n this._constraints.delete(constraint);\n const objectSet = this._objectConstraintsMap.get(constraint.destination);\n objectSet.delete(constraint);\n }\n setInitState() {\n const constraintsTried = new Set();\n const constraintsDone = new Set();\n for (const constraint of this._constraints) {\n this._processConstraint(constraint, constraintsTried, constraintsDone, (constraint) => constraint.setInitState());\n }\n }\n update() {\n const constraintsTried = new Set();\n const constraintsDone = new Set();\n for (const constraint of this._constraints) {\n this._processConstraint(constraint, constraintsTried, constraintsDone, (constraint) => constraint.update());\n }\n }\n /**\n * Update a constraint.\n * If there are other constraints that are dependant, it will try to update them recursively.\n * It might throw an error if there are circular dependencies.\n *\n * Intended to be used in {@link update} and {@link _processConstraint} itself recursively.\n *\n * @param constraint A constraint you want to update\n * @param constraintsTried Set of constraints that are already tried to be updated\n * @param constraintsDone Set of constraints that are already up to date\n */\n _processConstraint(constraint, constraintsTried, constraintsDone, callback) {\n if (constraintsDone.has(constraint)) {\n return;\n }\n if (constraintsTried.has(constraint)) {\n throw new Error('VRMNodeConstraintManager: Circular dependency detected while updating constraints');\n }\n constraintsTried.add(constraint);\n const depObjects = constraint.dependencies;\n for (const depObject of depObjects) {\n traverseAncestorsFromRoot$1(depObject, (depObjectAncestor) => {\n const objectSet = this._objectConstraintsMap.get(depObjectAncestor);\n if (objectSet) {\n for (const depConstraint of objectSet) {\n this._processConstraint(depConstraint, constraintsTried, constraintsDone, callback);\n }\n }\n });\n }\n callback(constraint);\n constraintsDone.add(constraint);\n }\n}\n\nconst _quatA$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n/**\n * A constraint that transfers a rotation around one axis of a source.\n *\n * See: https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_node_constraint-1.0_beta#roll-constraint\n */\nclass VRMRotationConstraint extends VRMNodeConstraint {\n get dependencies() {\n return new Set([this.source]);\n }\n constructor(destination, source) {\n super(destination, source);\n this._dstRestQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n this._invSrcRestQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n }\n setInitState() {\n this._dstRestQuat.copy(this.destination.quaternion);\n quatInvertCompat(this._invSrcRestQuat.copy(this.source.quaternion));\n }\n update() {\n // calculate the delta rotation from the rest about the source\n const srcDeltaQuat = _quatA$1.copy(this._invSrcRestQuat).multiply(this.source.quaternion);\n // multiply the delta to the rest of the destination\n const targetQuat = _quatB$1.copy(this._dstRestQuat).multiply(srcDeltaQuat);\n // blend with the rest quaternion using weight\n this.destination.quaternion.copy(this._dstRestQuat).slerp(targetQuat, this.weight);\n }\n}\n\nconst _v3A$5 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA$3 = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _quatB = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n/**\n * A constraint that transfers a rotation around one axis of a source.\n *\n * See: https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_node_constraint-1.0_beta#roll-constraint\n */\nclass VRMRollConstraint extends VRMNodeConstraint {\n /**\n * The roll axis of the constraint.\n */\n get rollAxis() {\n return this._rollAxis;\n }\n /**\n * The roll axis of the constraint.\n */\n set rollAxis(rollAxis) {\n this._rollAxis = rollAxis;\n this._v3RollAxis.set(rollAxis === 'X' ? 1.0 : 0.0, rollAxis === 'Y' ? 1.0 : 0.0, rollAxis === 'Z' ? 1.0 : 0.0);\n }\n get dependencies() {\n return new Set([this.source]);\n }\n constructor(destination, source) {\n super(destination, source);\n this._rollAxis = 'X';\n this._v3RollAxis = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(1, 0, 0);\n this._dstRestQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n this._invDstRestQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n this._invSrcRestQuatMulDstRestQuat = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n }\n setInitState() {\n this._dstRestQuat.copy(this.destination.quaternion);\n quatInvertCompat(this._invDstRestQuat.copy(this._dstRestQuat));\n quatInvertCompat(this._invSrcRestQuatMulDstRestQuat.copy(this.source.quaternion)).multiply(this._dstRestQuat);\n }\n update() {\n // calculate the delta rotation from the rest about the source, then convert to the destination local coord\n /**\n * What the quatDelta is intended to be:\n *\n * ```ts\n * const quatSrcDelta = _quatA\n * .copy( this._invSrcRestQuat )\n * .multiply( this.source.quaternion );\n * const quatSrcDeltaInParent = _quatB\n * .copy( this._srcRestQuat )\n * .multiply( quatSrcDelta )\n * .multiply( this._invSrcRestQuat );\n * const quatSrcDeltaInDst = _quatA\n * .copy( this._invDstRestQuat )\n * .multiply( quatSrcDeltaInParent )\n * .multiply( this._dstRestQuat );\n * ```\n */\n const quatDelta = _quatA$3\n .copy(this._invDstRestQuat)\n .multiply(this.source.quaternion)\n .multiply(this._invSrcRestQuatMulDstRestQuat);\n // create a from-to quaternion\n const n1 = _v3A$5.copy(this._v3RollAxis).applyQuaternion(quatDelta);\n /**\n * What the quatFromTo is intended to be:\n *\n * ```ts\n * const quatFromTo = _quatB.setFromUnitVectors( this._v3RollAxis, n1 ).inverse();\n * ```\n */\n const quatFromTo = _quatB.setFromUnitVectors(n1, this._v3RollAxis);\n // quatFromTo * quatDelta == roll extracted from quatDelta\n const targetQuat = quatFromTo.premultiply(this._dstRestQuat).multiply(quatDelta);\n // blend with the rest quaternion using weight\n this.destination.quaternion.copy(this._dstRestQuat).slerp(targetQuat, this.weight);\n }\n}\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS$1 = new Set(['1.0', '1.0-beta']);\nclass VRMNodeConstraintLoaderPlugin {\n get name() {\n return VRMNodeConstraintLoaderPlugin.EXTENSION_NAME;\n }\n constructor(parser, options) {\n this.parser = parser;\n this.helperRoot = options === null || options === void 0 ? void 0 : options.helperRoot;\n }\n afterRoot(gltf) {\n return __awaiter$1(this, void 0, void 0, function* () {\n gltf.userData.vrmNodeConstraintManager = yield this._import(gltf);\n });\n }\n /**\n * Import constraints from a GLTF and returns a {@link VRMNodeConstraintManager}.\n * It might return `null` instead when it does not need to be created or something go wrong.\n *\n * @param gltf A parsed result of GLTF taken from GLTFLoader\n */\n _import(gltf) {\n var _a;\n return __awaiter$1(this, void 0, void 0, function* () {\n const json = this.parser.json;\n // early abort if it doesn't use constraints\n const isConstraintsUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf(VRMNodeConstraintLoaderPlugin.EXTENSION_NAME)) !== -1;\n if (!isConstraintsUsed) {\n return null;\n }\n const manager = new VRMNodeConstraintManager();\n const threeNodes = yield this.parser.getDependencies('node');\n // import constraints for each nodes\n threeNodes.forEach((node, nodeIndex) => {\n var _a;\n const schemaNode = json.nodes[nodeIndex];\n // check if the extension uses the extension\n const extension = (_a = schemaNode === null || schemaNode === void 0 ? void 0 : schemaNode.extensions) === null || _a === void 0 ? void 0 : _a[VRMNodeConstraintLoaderPlugin.EXTENSION_NAME];\n if (extension == null) {\n return;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS$1.has(specVersion)) {\n console.warn(`VRMNodeConstraintLoaderPlugin: Unknown ${VRMNodeConstraintLoaderPlugin.EXTENSION_NAME} specVersion \"${specVersion}\"`);\n return;\n }\n const constraintDef = extension.constraint;\n // import constraints\n if (constraintDef.roll != null) {\n const constraint = this._importRollConstraint(node, threeNodes, constraintDef.roll);\n manager.addConstraint(constraint);\n }\n else if (constraintDef.aim != null) {\n const constraint = this._importAimConstraint(node, threeNodes, constraintDef.aim);\n manager.addConstraint(constraint);\n }\n else if (constraintDef.rotation != null) {\n const constraint = this._importRotationConstraint(node, threeNodes, constraintDef.rotation);\n manager.addConstraint(constraint);\n }\n });\n // init constraints\n gltf.scene.updateMatrixWorld();\n manager.setInitState();\n return manager;\n });\n }\n _importRollConstraint(destination, nodes, rollConstraintDef) {\n const { source: sourceIndex, rollAxis, weight } = rollConstraintDef;\n const source = nodes[sourceIndex];\n const constraint = new VRMRollConstraint(destination, source);\n if (rollAxis != null) {\n constraint.rollAxis = rollAxis;\n }\n if (weight != null) {\n constraint.weight = weight;\n }\n if (this.helperRoot) {\n const helper = new VRMNodeConstraintHelper(constraint);\n this.helperRoot.add(helper);\n }\n return constraint;\n }\n _importAimConstraint(destination, nodes, aimConstraintDef) {\n const { source: sourceIndex, aimAxis, weight } = aimConstraintDef;\n const source = nodes[sourceIndex];\n const constraint = new VRMAimConstraint(destination, source);\n if (aimAxis != null) {\n constraint.aimAxis = aimAxis;\n }\n if (weight != null) {\n constraint.weight = weight;\n }\n if (this.helperRoot) {\n const helper = new VRMNodeConstraintHelper(constraint);\n this.helperRoot.add(helper);\n }\n return constraint;\n }\n _importRotationConstraint(destination, nodes, rotationConstraintDef) {\n const { source: sourceIndex, weight } = rotationConstraintDef;\n const source = nodes[sourceIndex];\n const constraint = new VRMRotationConstraint(destination, source);\n if (weight != null) {\n constraint.weight = weight;\n }\n if (this.helperRoot) {\n const helper = new VRMNodeConstraintHelper(constraint);\n this.helperRoot.add(helper);\n }\n return constraint;\n }\n}\nVRMNodeConstraintLoaderPlugin.EXTENSION_NAME = 'VRMC_node_constraint';\n\n/*!\n * @pixiv/three-vrm-springbone v2.1.1\n * Spring bone module for @pixiv/three-vrm\n *\n * Copyright (c) 2020-2024 pixiv Inc.\n * @pixiv/three-vrm-springbone is distributed under MIT License\n * https://github.com/pixiv/three-vrm/blob/release/LICENSE\n */\n\n/**\n * Represents a shape of a collider.\n */\nclass VRMSpringBoneColliderShape {\n}\n\nconst _v3A$4 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nclass VRMSpringBoneColliderShapeCapsule extends VRMSpringBoneColliderShape {\n get type() {\n return 'capsule';\n }\n constructor(params) {\n var _a, _b, _c;\n super();\n this.offset = (_a = params === null || params === void 0 ? void 0 : params.offset) !== null && _a !== void 0 ? _a : new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 0.0);\n this.tail = (_b = params === null || params === void 0 ? void 0 : params.tail) !== null && _b !== void 0 ? _b : new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 0.0);\n this.radius = (_c = params === null || params === void 0 ? void 0 : params.radius) !== null && _c !== void 0 ? _c : 0.0;\n }\n calculateCollision(colliderMatrix, objectPosition, objectRadius, target) {\n _v3A$4.copy(this.offset).applyMatrix4(colliderMatrix); // transformed head\n _v3B$1.copy(this.tail).applyMatrix4(colliderMatrix); // transformed tail\n _v3B$1.sub(_v3A$4); // from head to tail\n const lengthSqCapsule = _v3B$1.lengthSq();\n target.copy(objectPosition).sub(_v3A$4); // from head to object\n const dot = _v3B$1.dot(target); // dot product of offsetToTail and offsetToObject\n if (dot <= 0.0) ;\n else if (lengthSqCapsule <= dot) {\n // if object is near from the tail\n target.sub(_v3B$1); // from tail to object\n }\n else {\n // if object is between two ends\n _v3B$1.multiplyScalar(dot / lengthSqCapsule); // from head to the nearest point of the shaft\n target.sub(_v3B$1); // from the shaft point to object\n }\n const radius = objectRadius + this.radius;\n const distance = target.length() - radius;\n target.normalize();\n return distance;\n }\n}\n\nclass VRMSpringBoneColliderShapeSphere extends VRMSpringBoneColliderShape {\n get type() {\n return 'sphere';\n }\n constructor(params) {\n var _a, _b;\n super();\n this.offset = (_a = params === null || params === void 0 ? void 0 : params.offset) !== null && _a !== void 0 ? _a : new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 0.0);\n this.radius = (_b = params === null || params === void 0 ? void 0 : params.radius) !== null && _b !== void 0 ? _b : 0.0;\n }\n calculateCollision(colliderMatrix, objectPosition, objectRadius, target) {\n target.copy(this.offset).applyMatrix4(colliderMatrix); // transformed offset\n target.negate().add(objectPosition); // a vector from collider center to object position\n const radius = objectRadius + this.radius;\n const distance = target.length() - radius;\n target.normalize();\n return distance;\n }\n}\n\nconst _v3A$3 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nclass ColliderShapeCapsuleBufferGeometry extends three__WEBPACK_IMPORTED_MODULE_0__.BufferGeometry {\n constructor(shape) {\n super();\n this.worldScale = 1.0;\n this._currentRadius = 0;\n this._currentOffset = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this._currentTail = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this._shape = shape;\n this._attrPos = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Float32Array(396), 3);\n this.setAttribute('position', this._attrPos);\n this._attrIndex = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Uint16Array(264), 1);\n this.setIndex(this._attrIndex);\n this._buildIndex();\n this.update();\n }\n update() {\n let shouldUpdateGeometry = false;\n const radius = this._shape.radius / this.worldScale;\n if (this._currentRadius !== radius) {\n this._currentRadius = radius;\n shouldUpdateGeometry = true;\n }\n if (!this._currentOffset.equals(this._shape.offset)) {\n this._currentOffset.copy(this._shape.offset);\n shouldUpdateGeometry = true;\n }\n const tail = _v3A$3.copy(this._shape.tail).divideScalar(this.worldScale);\n if (this._currentTail.distanceToSquared(tail) > 1e-10) {\n this._currentTail.copy(tail);\n shouldUpdateGeometry = true;\n }\n if (shouldUpdateGeometry) {\n this._buildPosition();\n }\n }\n _buildPosition() {\n _v3A$3.copy(this._currentTail).sub(this._currentOffset);\n const l = _v3A$3.length() / this._currentRadius;\n for (let i = 0; i <= 16; i++) {\n const t = (i / 16.0) * Math.PI;\n this._attrPos.setXYZ(i, -Math.sin(t), -Math.cos(t), 0.0);\n this._attrPos.setXYZ(17 + i, l + Math.sin(t), Math.cos(t), 0.0);\n this._attrPos.setXYZ(34 + i, -Math.sin(t), 0.0, -Math.cos(t));\n this._attrPos.setXYZ(51 + i, l + Math.sin(t), 0.0, Math.cos(t));\n }\n for (let i = 0; i < 32; i++) {\n const t = (i / 16.0) * Math.PI;\n this._attrPos.setXYZ(68 + i, 0.0, Math.sin(t), Math.cos(t));\n this._attrPos.setXYZ(100 + i, l, Math.sin(t), Math.cos(t));\n }\n const theta = Math.atan2(_v3A$3.y, Math.sqrt(_v3A$3.x * _v3A$3.x + _v3A$3.z * _v3A$3.z));\n const phi = -Math.atan2(_v3A$3.z, _v3A$3.x);\n this.rotateZ(theta);\n this.rotateY(phi);\n this.scale(this._currentRadius, this._currentRadius, this._currentRadius);\n this.translate(this._currentOffset.x, this._currentOffset.y, this._currentOffset.z);\n this._attrPos.needsUpdate = true;\n }\n _buildIndex() {\n for (let i = 0; i < 34; i++) {\n const i1 = (i + 1) % 34;\n this._attrIndex.setXY(i * 2, i, i1);\n this._attrIndex.setXY(68 + i * 2, 34 + i, 34 + i1);\n }\n for (let i = 0; i < 32; i++) {\n const i1 = (i + 1) % 32;\n this._attrIndex.setXY(136 + i * 2, 68 + i, 68 + i1);\n this._attrIndex.setXY(200 + i * 2, 100 + i, 100 + i1);\n }\n this._attrIndex.needsUpdate = true;\n }\n}\n\nclass ColliderShapeSphereBufferGeometry extends three__WEBPACK_IMPORTED_MODULE_0__.BufferGeometry {\n constructor(shape) {\n super();\n this.worldScale = 1.0;\n this._currentRadius = 0;\n this._currentOffset = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this._shape = shape;\n this._attrPos = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Float32Array(32 * 3 * 3), 3);\n this.setAttribute('position', this._attrPos);\n this._attrIndex = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Uint16Array(64 * 3), 1);\n this.setIndex(this._attrIndex);\n this._buildIndex();\n this.update();\n }\n update() {\n let shouldUpdateGeometry = false;\n const radius = this._shape.radius / this.worldScale;\n if (this._currentRadius !== radius) {\n this._currentRadius = radius;\n shouldUpdateGeometry = true;\n }\n if (!this._currentOffset.equals(this._shape.offset)) {\n this._currentOffset.copy(this._shape.offset);\n shouldUpdateGeometry = true;\n }\n if (shouldUpdateGeometry) {\n this._buildPosition();\n }\n }\n _buildPosition() {\n for (let i = 0; i < 32; i++) {\n const t = (i / 16.0) * Math.PI;\n this._attrPos.setXYZ(i, Math.cos(t), Math.sin(t), 0.0);\n this._attrPos.setXYZ(32 + i, 0.0, Math.cos(t), Math.sin(t));\n this._attrPos.setXYZ(64 + i, Math.sin(t), 0.0, Math.cos(t));\n }\n this.scale(this._currentRadius, this._currentRadius, this._currentRadius);\n this.translate(this._currentOffset.x, this._currentOffset.y, this._currentOffset.z);\n this._attrPos.needsUpdate = true;\n }\n _buildIndex() {\n for (let i = 0; i < 32; i++) {\n const i1 = (i + 1) % 32;\n this._attrIndex.setXY(i * 2, i, i1);\n this._attrIndex.setXY(64 + i * 2, 32 + i, 32 + i1);\n this._attrIndex.setXY(128 + i * 2, 64 + i, 64 + i1);\n }\n this._attrIndex.needsUpdate = true;\n }\n}\n\nconst _v3A$2 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nclass VRMSpringBoneColliderHelper extends three__WEBPACK_IMPORTED_MODULE_0__.Group {\n constructor(collider) {\n super();\n this.matrixAutoUpdate = false;\n this.collider = collider;\n if (this.collider.shape instanceof VRMSpringBoneColliderShapeSphere) {\n this._geometry = new ColliderShapeSphereBufferGeometry(this.collider.shape);\n }\n else if (this.collider.shape instanceof VRMSpringBoneColliderShapeCapsule) {\n this._geometry = new ColliderShapeCapsuleBufferGeometry(this.collider.shape);\n }\n else {\n throw new Error('VRMSpringBoneColliderHelper: Unknown collider shape type detected');\n }\n const material = new three__WEBPACK_IMPORTED_MODULE_0__.LineBasicMaterial({\n color: 0xff00ff,\n depthTest: false,\n depthWrite: false,\n });\n this._line = new three__WEBPACK_IMPORTED_MODULE_0__.LineSegments(this._geometry, material);\n this.add(this._line);\n }\n dispose() {\n this._geometry.dispose();\n }\n updateMatrixWorld(force) {\n this.collider.updateWorldMatrix(true, false);\n this.matrix.copy(this.collider.matrixWorld);\n const matrixWorldElements = this.matrix.elements;\n this._geometry.worldScale = _v3A$2\n .set(matrixWorldElements[0], matrixWorldElements[1], matrixWorldElements[2])\n .length(); // calculate scale of x component\n this._geometry.update();\n super.updateMatrixWorld(force);\n }\n}\n\nclass SpringBoneBufferGeometry extends three__WEBPACK_IMPORTED_MODULE_0__.BufferGeometry {\n constructor(springBone) {\n super();\n this.worldScale = 1.0;\n this._currentRadius = 0;\n this._currentTail = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this._springBone = springBone;\n this._attrPos = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Float32Array(294), 3);\n this.setAttribute('position', this._attrPos);\n this._attrIndex = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(new Uint16Array(194), 1);\n this.setIndex(this._attrIndex);\n this._buildIndex();\n this.update();\n }\n update() {\n let shouldUpdateGeometry = false;\n const radius = this._springBone.settings.hitRadius / this.worldScale;\n if (this._currentRadius !== radius) {\n this._currentRadius = radius;\n shouldUpdateGeometry = true;\n }\n if (!this._currentTail.equals(this._springBone.initialLocalChildPosition)) {\n this._currentTail.copy(this._springBone.initialLocalChildPosition);\n shouldUpdateGeometry = true;\n }\n if (shouldUpdateGeometry) {\n this._buildPosition();\n }\n }\n _buildPosition() {\n for (let i = 0; i < 32; i++) {\n const t = (i / 16.0) * Math.PI;\n this._attrPos.setXYZ(i, Math.cos(t), Math.sin(t), 0.0);\n this._attrPos.setXYZ(32 + i, 0.0, Math.cos(t), Math.sin(t));\n this._attrPos.setXYZ(64 + i, Math.sin(t), 0.0, Math.cos(t));\n }\n this.scale(this._currentRadius, this._currentRadius, this._currentRadius);\n this.translate(this._currentTail.x, this._currentTail.y, this._currentTail.z);\n this._attrPos.setXYZ(96, 0, 0, 0);\n this._attrPos.setXYZ(97, this._currentTail.x, this._currentTail.y, this._currentTail.z);\n this._attrPos.needsUpdate = true;\n }\n _buildIndex() {\n for (let i = 0; i < 32; i++) {\n const i1 = (i + 1) % 32;\n this._attrIndex.setXY(i * 2, i, i1);\n this._attrIndex.setXY(64 + i * 2, 32 + i, 32 + i1);\n this._attrIndex.setXY(128 + i * 2, 64 + i, 64 + i1);\n }\n this._attrIndex.setXY(192, 96, 97);\n this._attrIndex.needsUpdate = true;\n }\n}\n\nconst _v3A$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nclass VRMSpringBoneJointHelper extends three__WEBPACK_IMPORTED_MODULE_0__.Group {\n constructor(springBone) {\n super();\n this.matrixAutoUpdate = false;\n this.springBone = springBone;\n this._geometry = new SpringBoneBufferGeometry(this.springBone);\n const material = new three__WEBPACK_IMPORTED_MODULE_0__.LineBasicMaterial({\n color: 0xffff00,\n depthTest: false,\n depthWrite: false,\n });\n this._line = new three__WEBPACK_IMPORTED_MODULE_0__.LineSegments(this._geometry, material);\n this.add(this._line);\n }\n dispose() {\n this._geometry.dispose();\n }\n updateMatrixWorld(force) {\n this.springBone.bone.updateWorldMatrix(true, false);\n this.matrix.copy(this.springBone.bone.matrixWorld);\n const matrixWorldElements = this.matrix.elements;\n this._geometry.worldScale = _v3A$1\n .set(matrixWorldElements[0], matrixWorldElements[1], matrixWorldElements[2])\n .length(); // calculate scale of x component\n this._geometry.update();\n super.updateMatrixWorld(force);\n }\n}\n\n/**\n * Represents a collider of a VRM.\n */\nclass VRMSpringBoneCollider extends three__WEBPACK_IMPORTED_MODULE_0__.Object3D {\n constructor(shape) {\n super();\n this.shape = shape;\n }\n}\n\nconst _matA$1 = new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4();\n/**\n * A compat function for `Matrix4.invert()` / `Matrix4.getInverse()`.\n * `Matrix4.invert()` is introduced in r123 and `Matrix4.getInverse()` emits a warning.\n * We are going to use this compat for a while.\n * @param target A target matrix\n */\nfunction mat4InvertCompat(target) {\n if (target.invert) {\n target.invert();\n }\n else {\n target.getInverse(_matA$1.copy(target));\n }\n return target;\n}\n\nclass Matrix4InverseCache {\n /**\n * Inverse of given matrix.\n * Note that it will return its internal private instance.\n * Make sure copying this before mutate this.\n */\n get inverse() {\n if (this._shouldUpdateInverse) {\n this._inverseCache.copy(this.matrix);\n mat4InvertCompat(this._inverseCache);\n this._shouldUpdateInverse = false;\n }\n return this._inverseCache;\n }\n constructor(matrix) {\n /**\n * A cache of inverse of current matrix.\n */\n this._inverseCache = new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4();\n /**\n * A flag that makes it want to recalculate its {@link _inverseCache}.\n * Will be set `true` when `elements` are mutated and be used in `getInverse`.\n */\n this._shouldUpdateInverse = true;\n this.matrix = matrix;\n const handler = {\n set: (obj, prop, newVal) => {\n this._shouldUpdateInverse = true;\n obj[prop] = newVal;\n return true;\n },\n };\n this._originalElements = matrix.elements;\n matrix.elements = new Proxy(matrix.elements, handler);\n }\n revert() {\n this.matrix.elements = this._originalElements;\n }\n}\n\n// based on\n// http://rocketjump.skr.jp/unity3d/109/\n// https://github.com/dwango/UniVRM/blob/master/Scripts/SpringBone/VRMSpringBone.cs\nconst IDENTITY_MATRIX4 = new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4();\n// 計算中の一時保存用変数(一度インスタンスを作ったらあとは使い回す)\nconst _v3A = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3B = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _v3C = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n/**\n * A temporary variable which is used in `update`\n */\nconst _worldSpacePosition = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n/**\n * A temporary variable which is used in `update`\n */\nconst _centerSpacePosition = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n/**\n * A temporary variable which is used in `update`\n */\nconst _nextTail = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\nconst _quatA = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\nconst _matA = new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4();\nconst _matB = new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4();\n/**\n * A class represents a single joint of a spring bone.\n * It should be managed by a [[VRMSpringBoneManager]].\n */\nclass VRMSpringBoneJoint {\n get center() {\n return this._center;\n }\n set center(center) {\n var _a;\n // uninstall inverse cache\n if ((_a = this._center) === null || _a === void 0 ? void 0 : _a.userData.inverseCacheProxy) {\n this._center.userData.inverseCacheProxy.revert();\n delete this._center.userData.inverseCacheProxy;\n }\n // change the center\n this._center = center;\n // install inverse cache\n if (this._center) {\n if (!this._center.userData.inverseCacheProxy) {\n this._center.userData.inverseCacheProxy = new Matrix4InverseCache(this._center.matrixWorld);\n }\n }\n }\n get initialLocalChildPosition() {\n return this._initialLocalChildPosition;\n }\n /**\n * Returns the world matrix of its parent object.\n * Note that it returns a reference to the matrix. Don't mutate this directly!\n */\n get _parentMatrixWorld() {\n return this.bone.parent ? this.bone.parent.matrixWorld : IDENTITY_MATRIX4;\n }\n /**\n * Create a new VRMSpringBone.\n *\n * @param bone An Object3D that will be attached to this bone\n * @param child An Object3D that will be used as a tail of this spring bone. It can be null when the spring bone is imported from VRM 0.0\n * @param settings Several parameters related to behavior of the spring bone\n * @param colliderGroups Collider groups that will be collided with this spring bone\n */\n constructor(bone, child, settings = {}, colliderGroups = []) {\n var _a, _b, _c, _d, _e, _f;\n /**\n * Current position of child tail, in center unit. Will be used for verlet integration.\n */\n this._currentTail = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n /**\n * Previous position of child tail, in center unit. Will be used for verlet integration.\n */\n this._prevTail = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n /**\n * Initial axis of the bone, in local unit.\n */\n this._boneAxis = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n /**\n * Length of the bone in world unit.\n * Will be used for normalization in update loop, will be updated by {@link _calcWorldSpaceBoneLength}.\n *\n * It's same as local unit length unless there are scale transformations in the world space.\n */\n this._worldSpaceBoneLength = 0.0;\n /**\n * This springbone will be calculated based on the space relative from this object.\n * If this is `null`, springbone will be calculated in world space.\n */\n this._center = null;\n /**\n * Initial state of the local matrix of the bone.\n */\n this._initialLocalMatrix = new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4();\n /**\n * Initial state of the rotation of the bone.\n */\n this._initialLocalRotation = new three__WEBPACK_IMPORTED_MODULE_0__.Quaternion();\n /**\n * Initial state of the position of its child.\n */\n this._initialLocalChildPosition = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n this.bone = bone; // uniVRMでの parent\n this.bone.matrixAutoUpdate = false; // updateにより計算されるのでthree.js内での自動処理は不要\n this.child = child;\n this.settings = {\n hitRadius: (_a = settings.hitRadius) !== null && _a !== void 0 ? _a : 0.0,\n stiffness: (_b = settings.stiffness) !== null && _b !== void 0 ? _b : 1.0,\n gravityPower: (_c = settings.gravityPower) !== null && _c !== void 0 ? _c : 0.0,\n gravityDir: (_e = (_d = settings.gravityDir) === null || _d === void 0 ? void 0 : _d.clone()) !== null && _e !== void 0 ? _e : new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, -1.0, 0.0),\n dragForce: (_f = settings.dragForce) !== null && _f !== void 0 ? _f : 0.4,\n };\n this.colliderGroups = colliderGroups;\n }\n /**\n * Set the initial state of this spring bone.\n * You might want to call {@link VRMSpringBoneManager.setInitState} instead.\n */\n setInitState() {\n // remember initial position of itself\n this._initialLocalMatrix.copy(this.bone.matrix);\n this._initialLocalRotation.copy(this.bone.quaternion);\n // see initial position of its local child\n if (this.child) {\n this._initialLocalChildPosition.copy(this.child.position);\n }\n else {\n // vrm0 requires a 7cm fixed bone length for the final node in a chain\n // See: https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_springBone-1.0#about-spring-configuration\n this._initialLocalChildPosition.copy(this.bone.position).normalize().multiplyScalar(0.07);\n }\n // copy the child position to tails\n const matrixWorldToCenter = this._getMatrixWorldToCenter(_matA);\n this.bone.localToWorld(this._currentTail.copy(this._initialLocalChildPosition)).applyMatrix4(matrixWorldToCenter);\n this._prevTail.copy(this._currentTail);\n // set initial states that are related to local child position\n this._boneAxis.copy(this._initialLocalChildPosition).normalize();\n }\n /**\n * Reset the state of this bone.\n * You might want to call [[VRMSpringBoneManager.reset]] instead.\n */\n reset() {\n this.bone.quaternion.copy(this._initialLocalRotation);\n // We need to update its matrixWorld manually, since we tweaked the bone by our hand\n this.bone.updateMatrix();\n this.bone.matrixWorld.multiplyMatrices(this._parentMatrixWorld, this.bone.matrix);\n // Apply updated position to tail states\n const matrixWorldToCenter = this._getMatrixWorldToCenter(_matA);\n this.bone.localToWorld(this._currentTail.copy(this._initialLocalChildPosition)).applyMatrix4(matrixWorldToCenter);\n this._prevTail.copy(this._currentTail);\n }\n /**\n * Update the state of this bone.\n * You might want to call [[VRMSpringBoneManager.update]] instead.\n *\n * @param delta deltaTime\n */\n update(delta) {\n if (delta <= 0)\n return;\n // Update the _worldSpaceBoneLength\n this._calcWorldSpaceBoneLength();\n // Get bone position in center space\n _worldSpacePosition.setFromMatrixPosition(this.bone.matrixWorld);\n let matrixWorldToCenter = this._getMatrixWorldToCenter(_matA);\n _centerSpacePosition.copy(_worldSpacePosition).applyMatrix4(matrixWorldToCenter);\n const quatWorldToCenter = _quatA.setFromRotationMatrix(matrixWorldToCenter);\n // Get parent matrix in center space\n const centerSpaceParentMatrix = _matB.copy(matrixWorldToCenter).multiply(this._parentMatrixWorld);\n // Get boneAxis in center space\n const centerSpaceBoneAxis = _v3B\n .copy(this._boneAxis)\n .applyMatrix4(this._initialLocalMatrix)\n .applyMatrix4(centerSpaceParentMatrix)\n .sub(_centerSpacePosition)\n .normalize();\n // gravity in center space\n const centerSpaceGravity = _v3C.copy(this.settings.gravityDir).applyQuaternion(quatWorldToCenter).normalize();\n const matrixCenterToWorld = this._getMatrixCenterToWorld(_matA);\n // verlet積分で次の位置を計算\n _nextTail\n .copy(this._currentTail)\n .add(_v3A\n .copy(this._currentTail)\n .sub(this._prevTail)\n .multiplyScalar(1 - this.settings.dragForce)) // 前フレームの移動を継続する(減衰もあるよ)\n .add(_v3A.copy(centerSpaceBoneAxis).multiplyScalar(this.settings.stiffness * delta)) // 親の回転による子ボーンの移動目標\n .add(_v3A.copy(centerSpaceGravity).multiplyScalar(this.settings.gravityPower * delta)) // 外力による移動量\n .applyMatrix4(matrixCenterToWorld); // tailをworld spaceに戻す\n // normalize bone length\n _nextTail.sub(_worldSpacePosition).normalize().multiplyScalar(this._worldSpaceBoneLength).add(_worldSpacePosition);\n // Collisionで移動\n this._collision(_nextTail);\n // update prevTail and currentTail\n matrixWorldToCenter = this._getMatrixWorldToCenter(_matA);\n this._prevTail.copy(this._currentTail);\n this._currentTail.copy(_v3A.copy(_nextTail).applyMatrix4(matrixWorldToCenter));\n // Apply rotation, convert vector3 thing into actual quaternion\n // Original UniVRM is doing center unit calculus at here but we're gonna do this on local unit\n const worldSpaceInitialMatrixInv = mat4InvertCompat(_matA.copy(this._parentMatrixWorld).multiply(this._initialLocalMatrix));\n const applyRotation = _quatA.setFromUnitVectors(this._boneAxis, _v3A.copy(_nextTail).applyMatrix4(worldSpaceInitialMatrixInv).normalize());\n this.bone.quaternion.copy(this._initialLocalRotation).multiply(applyRotation);\n // We need to update its matrixWorld manually, since we tweaked the bone by our hand\n this.bone.updateMatrix();\n this.bone.matrixWorld.multiplyMatrices(this._parentMatrixWorld, this.bone.matrix);\n }\n /**\n * Do collision math against every colliders attached to this bone.\n *\n * @param tail The tail you want to process\n */\n _collision(tail) {\n this.colliderGroups.forEach((colliderGroup) => {\n colliderGroup.colliders.forEach((collider) => {\n const dist = collider.shape.calculateCollision(collider.matrixWorld, tail, this.settings.hitRadius, _v3A);\n if (dist < 0.0) {\n // hit\n tail.add(_v3A.multiplyScalar(-dist));\n // normalize bone length\n tail.sub(_worldSpacePosition).normalize().multiplyScalar(this._worldSpaceBoneLength).add(_worldSpacePosition);\n }\n });\n });\n }\n /**\n * Calculate the {@link _worldSpaceBoneLength}.\n * Intended to be used in {@link update}.\n */\n _calcWorldSpaceBoneLength() {\n _v3A.setFromMatrixPosition(this.bone.matrixWorld); // get world position of this.bone\n if (this.child) {\n _v3B.setFromMatrixPosition(this.child.matrixWorld); // get world position of this.child\n }\n else {\n _v3B.copy(this._initialLocalChildPosition);\n _v3B.applyMatrix4(this.bone.matrixWorld);\n }\n this._worldSpaceBoneLength = _v3A.sub(_v3B).length();\n }\n /**\n * Create a matrix that converts center space into world space.\n * @param target Target matrix\n */\n _getMatrixCenterToWorld(target) {\n if (this._center) {\n target.copy(this._center.matrixWorld);\n }\n else {\n target.identity();\n }\n return target;\n }\n /**\n * Create a matrix that converts world space into center space.\n * @param target Target matrix\n */\n _getMatrixWorldToCenter(target) {\n if (this._center) {\n target.copy(this._center.userData.inverseCacheProxy.inverse);\n }\n else {\n target.identity();\n }\n return target;\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction traverseAncestorsFromRoot(object, callback) {\n const ancestors = [];\n let head = object;\n while (head !== null) {\n ancestors.unshift(head);\n head = head.parent;\n }\n ancestors.forEach((ancestor) => {\n callback(ancestor);\n });\n}\n\n/**\n * Traverse children of given object and execute given callback.\n * The given object itself wont be given to the callback.\n * If the return value of the callback is `true`, it will halt the traversal of its children.\n * @param object A root object\n * @param callback A callback function called for each children\n */\nfunction traverseChildrenUntilConditionMet(object, callback) {\n object.children.forEach((child) => {\n const result = callback(child);\n if (!result) {\n traverseChildrenUntilConditionMet(child, callback);\n }\n });\n}\n\nclass VRMSpringBoneManager {\n constructor() {\n this._joints = new Set();\n this._objectSpringBonesMap = new Map();\n }\n get joints() {\n return this._joints;\n }\n /**\n * @deprecated Use {@link joints} instead.\n */\n get springBones() {\n console.warn('VRMSpringBoneManager: springBones is deprecated. use joints instead.');\n return this._joints;\n }\n get colliderGroups() {\n const set = new Set();\n this._joints.forEach((springBone) => {\n springBone.colliderGroups.forEach((colliderGroup) => {\n set.add(colliderGroup);\n });\n });\n return Array.from(set);\n }\n get colliders() {\n const set = new Set();\n this.colliderGroups.forEach((colliderGroup) => {\n colliderGroup.colliders.forEach((collider) => {\n set.add(collider);\n });\n });\n return Array.from(set);\n }\n addJoint(joint) {\n this._joints.add(joint);\n let objectSet = this._objectSpringBonesMap.get(joint.bone);\n if (objectSet == null) {\n objectSet = new Set();\n this._objectSpringBonesMap.set(joint.bone, objectSet);\n }\n objectSet.add(joint);\n }\n /**\n * @deprecated Use {@link addJoint} instead.\n */\n addSpringBone(joint) {\n console.warn('VRMSpringBoneManager: addSpringBone() is deprecated. use addJoint() instead.');\n this.addJoint(joint);\n }\n deleteJoint(joint) {\n this._joints.delete(joint);\n const objectSet = this._objectSpringBonesMap.get(joint.bone);\n objectSet.delete(joint);\n }\n /**\n * @deprecated Use {@link deleteJoint} instead.\n */\n deleteSpringBone(joint) {\n console.warn('VRMSpringBoneManager: deleteSpringBone() is deprecated. use deleteJoint() instead.');\n this.deleteJoint(joint);\n }\n setInitState() {\n const springBonesTried = new Set();\n const springBonesDone = new Set();\n const objectUpdated = new Set();\n for (const springBone of this._joints) {\n this._processSpringBone(springBone, springBonesTried, springBonesDone, objectUpdated, (springBone) => springBone.setInitState());\n }\n }\n reset() {\n const springBonesTried = new Set();\n const springBonesDone = new Set();\n const objectUpdated = new Set();\n for (const springBone of this._joints) {\n this._processSpringBone(springBone, springBonesTried, springBonesDone, objectUpdated, (springBone) => springBone.reset());\n }\n }\n update(delta) {\n const springBonesTried = new Set();\n const springBonesDone = new Set();\n const objectUpdated = new Set();\n for (const springBone of this._joints) {\n // update the springbone\n this._processSpringBone(springBone, springBonesTried, springBonesDone, objectUpdated, (springBone) => springBone.update(delta));\n // update children world matrices\n // it is required when the spring bone chain is sparse\n traverseChildrenUntilConditionMet(springBone.bone, (object) => {\n var _a, _b;\n // if the object has attached springbone, halt the traversal\n if (((_b = (_a = this._objectSpringBonesMap.get(object)) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0) > 0) {\n return true;\n }\n // otherwise update its world matrix\n object.updateWorldMatrix(false, false);\n return false;\n });\n }\n }\n /**\n * Update a spring bone.\n * If there are other spring bone that are dependant, it will try to update them recursively.\n * It updates matrixWorld of all ancestors and myself.\n * It might throw an error if there are circular dependencies.\n *\n * Intended to be used in {@link update} and {@link _processSpringBone} itself recursively.\n *\n * @param springBone A springBone you want to update\n * @param springBonesTried Set of springBones that are already tried to be updated\n * @param springBonesDone Set of springBones that are already up to date\n * @param objectUpdated Set of object3D whose matrixWorld is updated\n */\n _processSpringBone(springBone, springBonesTried, springBonesDone, objectUpdated, callback) {\n if (springBonesDone.has(springBone)) {\n return;\n }\n if (springBonesTried.has(springBone)) {\n throw new Error('VRMSpringBoneManager: Circular dependency detected while updating springbones');\n }\n springBonesTried.add(springBone);\n const depObjects = this._getDependencies(springBone);\n for (const depObject of depObjects) {\n traverseAncestorsFromRoot(depObject, (depObjectAncestor) => {\n const objectSet = this._objectSpringBonesMap.get(depObjectAncestor);\n if (objectSet) {\n for (const depSpringBone of objectSet) {\n this._processSpringBone(depSpringBone, springBonesTried, springBonesDone, objectUpdated, callback);\n }\n }\n else if (!objectUpdated.has(depObjectAncestor)) {\n // update matrix of non-springbone\n depObjectAncestor.updateWorldMatrix(false, false);\n objectUpdated.add(depObjectAncestor);\n }\n });\n }\n // update my matrix\n springBone.bone.updateMatrix();\n springBone.bone.updateWorldMatrix(false, false);\n callback(springBone);\n objectUpdated.add(springBone.bone);\n springBonesDone.add(springBone);\n }\n /**\n * Return a set of objects that are dependant of given spring bone.\n * @param springBone A spring bone\n * @return A set of objects that are dependant of given spring bone\n */\n _getDependencies(springBone) {\n const set = new Set();\n const parent = springBone.bone.parent;\n if (parent) {\n set.add(parent);\n }\n springBone.colliderGroups.forEach((colliderGroup) => {\n colliderGroup.colliders.forEach((collider) => {\n set.add(collider);\n });\n });\n return set;\n }\n}\n\n/**\n * Possible spec versions it recognizes.\n */\nconst POSSIBLE_SPEC_VERSIONS = new Set(['1.0', '1.0-beta']);\nclass VRMSpringBoneLoaderPlugin {\n get name() {\n return VRMSpringBoneLoaderPlugin.EXTENSION_NAME;\n }\n constructor(parser, options) {\n this.parser = parser;\n this.jointHelperRoot = options === null || options === void 0 ? void 0 : options.jointHelperRoot;\n this.colliderHelperRoot = options === null || options === void 0 ? void 0 : options.colliderHelperRoot;\n }\n afterRoot(gltf) {\n return __awaiter(this, void 0, void 0, function* () {\n gltf.userData.vrmSpringBoneManager = yield this._import(gltf);\n });\n }\n /**\n * Import spring bones from a GLTF and return a {@link VRMSpringBoneManager}.\n * It might return `null` instead when it does not need to be created or something go wrong.\n *\n * @param gltf A parsed result of GLTF taken from GLTFLoader\n */\n _import(gltf) {\n return __awaiter(this, void 0, void 0, function* () {\n const v1Result = yield this._v1Import(gltf);\n if (v1Result != null) {\n return v1Result;\n }\n const v0Result = yield this._v0Import(gltf);\n if (v0Result != null) {\n return v0Result;\n }\n return null;\n });\n }\n _v1Import(gltf) {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function* () {\n const json = gltf.parser.json;\n // early abort if it doesn't use spring bones\n const isSpringBoneUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf(VRMSpringBoneLoaderPlugin.EXTENSION_NAME)) !== -1;\n if (!isSpringBoneUsed) {\n return null;\n }\n const manager = new VRMSpringBoneManager();\n const threeNodes = yield gltf.parser.getDependencies('node');\n const extension = (_b = json.extensions) === null || _b === void 0 ? void 0 : _b[VRMSpringBoneLoaderPlugin.EXTENSION_NAME];\n if (!extension) {\n return null;\n }\n const specVersion = extension.specVersion;\n if (!POSSIBLE_SPEC_VERSIONS.has(specVersion)) {\n console.warn(`VRMSpringBoneLoaderPlugin: Unknown ${VRMSpringBoneLoaderPlugin.EXTENSION_NAME} specVersion \"${specVersion}\"`);\n return null;\n }\n const colliders = (_c = extension.colliders) === null || _c === void 0 ? void 0 : _c.map((schemaCollider, iCollider) => {\n var _a, _b, _c, _d, _e;\n const node = threeNodes[schemaCollider.node];\n const schemaShape = schemaCollider.shape;\n if (schemaShape.sphere) {\n return this._importSphereCollider(node, {\n offset: new three__WEBPACK_IMPORTED_MODULE_0__.Vector3().fromArray((_a = schemaShape.sphere.offset) !== null && _a !== void 0 ? _a : [0.0, 0.0, 0.0]),\n radius: (_b = schemaShape.sphere.radius) !== null && _b !== void 0 ? _b : 0.0,\n });\n }\n else if (schemaShape.capsule) {\n return this._importCapsuleCollider(node, {\n offset: new three__WEBPACK_IMPORTED_MODULE_0__.Vector3().fromArray((_c = schemaShape.capsule.offset) !== null && _c !== void 0 ? _c : [0.0, 0.0, 0.0]),\n radius: (_d = schemaShape.capsule.radius) !== null && _d !== void 0 ? _d : 0.0,\n tail: new three__WEBPACK_IMPORTED_MODULE_0__.Vector3().fromArray((_e = schemaShape.capsule.tail) !== null && _e !== void 0 ? _e : [0.0, 0.0, 0.0]),\n });\n }\n throw new Error(`VRMSpringBoneLoaderPlugin: The collider #${iCollider} has no valid shape`);\n });\n const colliderGroups = (_d = extension.colliderGroups) === null || _d === void 0 ? void 0 : _d.map((schemaColliderGroup, iColliderGroup) => {\n var _a;\n const cols = ((_a = schemaColliderGroup.colliders) !== null && _a !== void 0 ? _a : []).map((iCollider) => {\n const col = colliders === null || colliders === void 0 ? void 0 : colliders[iCollider];\n if (col == null) {\n throw new Error(`VRMSpringBoneLoaderPlugin: The colliderGroup #${iColliderGroup} attempted to use a collider #${iCollider} but not found`);\n }\n return col;\n });\n return {\n colliders: cols,\n name: schemaColliderGroup.name,\n };\n });\n (_e = extension.springs) === null || _e === void 0 ? void 0 : _e.forEach((schemaSpring, iSpring) => {\n var _a;\n const schemaJoints = schemaSpring.joints;\n // prepare colliders\n const colliderGroupsForSpring = (_a = schemaSpring.colliderGroups) === null || _a === void 0 ? void 0 : _a.map((iColliderGroup) => {\n const group = colliderGroups === null || colliderGroups === void 0 ? void 0 : colliderGroups[iColliderGroup];\n if (group == null) {\n throw new Error(`VRMSpringBoneLoaderPlugin: The spring #${iSpring} attempted to use a colliderGroup ${iColliderGroup} but not found`);\n }\n return group;\n });\n const center = schemaSpring.center != null ? threeNodes[schemaSpring.center] : undefined;\n let prevSchemaJoint;\n schemaJoints.forEach((schemaJoint) => {\n if (prevSchemaJoint) {\n // prepare node\n const nodeIndex = prevSchemaJoint.node;\n const node = threeNodes[nodeIndex];\n const childIndex = schemaJoint.node;\n const child = threeNodes[childIndex];\n // prepare setting\n const setting = {\n hitRadius: prevSchemaJoint.hitRadius,\n dragForce: prevSchemaJoint.dragForce,\n gravityPower: prevSchemaJoint.gravityPower,\n stiffness: prevSchemaJoint.stiffness,\n gravityDir: prevSchemaJoint.gravityDir != null\n ? new three__WEBPACK_IMPORTED_MODULE_0__.Vector3().fromArray(prevSchemaJoint.gravityDir)\n : undefined,\n };\n // create spring bones\n const joint = this._importJoint(node, child, setting, colliderGroupsForSpring);\n if (center) {\n joint.center = center;\n }\n manager.addJoint(joint);\n }\n prevSchemaJoint = schemaJoint;\n });\n });\n // init spring bones\n manager.setInitState();\n return manager;\n });\n }\n _v0Import(gltf) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n const json = gltf.parser.json;\n // early abort if it doesn't use vrm\n const isVRMUsed = ((_a = json.extensionsUsed) === null || _a === void 0 ? void 0 : _a.indexOf('VRM')) !== -1;\n if (!isVRMUsed) {\n return null;\n }\n // early abort if it doesn't have bone groups\n const extension = (_b = json.extensions) === null || _b === void 0 ? void 0 : _b['VRM'];\n const schemaSecondaryAnimation = extension === null || extension === void 0 ? void 0 : extension.secondaryAnimation;\n if (!schemaSecondaryAnimation) {\n return null;\n }\n const schemaBoneGroups = schemaSecondaryAnimation === null || schemaSecondaryAnimation === void 0 ? void 0 : schemaSecondaryAnimation.boneGroups;\n if (!schemaBoneGroups) {\n return null;\n }\n const manager = new VRMSpringBoneManager();\n const threeNodes = yield gltf.parser.getDependencies('node');\n const colliderGroups = (_c = schemaSecondaryAnimation.colliderGroups) === null || _c === void 0 ? void 0 : _c.map((schemaColliderGroup) => {\n var _a;\n const node = threeNodes[schemaColliderGroup.node];\n const colliders = ((_a = schemaColliderGroup.colliders) !== null && _a !== void 0 ? _a : []).map((schemaCollider, iCollider) => {\n var _a, _b, _c;\n const offset = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3(0.0, 0.0, 0.0);\n if (schemaCollider.offset) {\n offset.set((_a = schemaCollider.offset.x) !== null && _a !== void 0 ? _a : 0.0, (_b = schemaCollider.offset.y) !== null && _b !== void 0 ? _b : 0.0, schemaCollider.offset.z ? -schemaCollider.offset.z : 0.0);\n }\n return this._importSphereCollider(node, {\n offset,\n radius: (_c = schemaCollider.radius) !== null && _c !== void 0 ? _c : 0.0,\n });\n });\n return { colliders };\n });\n // import spring bones for each spring bone groups\n schemaBoneGroups === null || schemaBoneGroups === void 0 ? void 0 : schemaBoneGroups.forEach((schemaBoneGroup, iBoneGroup) => {\n const rootIndices = schemaBoneGroup.bones;\n if (!rootIndices) {\n return;\n }\n rootIndices.forEach((rootIndex) => {\n var _a, _b, _c, _d;\n const root = threeNodes[rootIndex];\n // prepare setting\n const gravityDir = new three__WEBPACK_IMPORTED_MODULE_0__.Vector3();\n if (schemaBoneGroup.gravityDir) {\n gravityDir.set((_a = schemaBoneGroup.gravityDir.x) !== null && _a !== void 0 ? _a : 0.0, (_b = schemaBoneGroup.gravityDir.y) !== null && _b !== void 0 ? _b : 0.0, (_c = schemaBoneGroup.gravityDir.z) !== null && _c !== void 0 ? _c : 0.0);\n }\n else {\n gravityDir.set(0.0, -1.0, 0.0);\n }\n const center = schemaBoneGroup.center != null ? threeNodes[schemaBoneGroup.center] : undefined;\n const setting = {\n hitRadius: schemaBoneGroup.hitRadius,\n dragForce: schemaBoneGroup.dragForce,\n gravityPower: schemaBoneGroup.gravityPower,\n stiffness: schemaBoneGroup.stiffiness,\n gravityDir,\n };\n // prepare colliders\n const colliderGroupsForSpring = (_d = schemaBoneGroup.colliderGroups) === null || _d === void 0 ? void 0 : _d.map((iColliderGroup) => {\n const group = colliderGroups === null || colliderGroups === void 0 ? void 0 : colliderGroups[iColliderGroup];\n if (group == null) {\n throw new Error(`VRMSpringBoneLoaderPlugin: The spring #${iBoneGroup} attempted to use a colliderGroup ${iColliderGroup} but not found`);\n }\n return group;\n });\n // create spring bones\n root.traverse((node) => {\n var _a;\n const child = (_a = node.children[0]) !== null && _a !== void 0 ? _a : null;\n const joint = this._importJoint(node, child, setting, colliderGroupsForSpring);\n if (center) {\n joint.center = center;\n }\n manager.addJoint(joint);\n });\n });\n });\n // init spring bones\n gltf.scene.updateMatrixWorld();\n manager.setInitState();\n return manager;\n });\n }\n _importJoint(node, child, setting, colliderGroupsForSpring) {\n const springBone = new VRMSpringBoneJoint(node, child, setting, colliderGroupsForSpring);\n if (this.jointHelperRoot) {\n const helper = new VRMSpringBoneJointHelper(springBone);\n this.jointHelperRoot.add(helper);\n helper.renderOrder = this.jointHelperRoot.renderOrder;\n }\n return springBone;\n }\n _importSphereCollider(destination, params) {\n const { offset, radius } = params;\n const shape = new VRMSpringBoneColliderShapeSphere({ offset, radius });\n const collider = new VRMSpringBoneCollider(shape);\n destination.add(collider);\n if (this.colliderHelperRoot) {\n const helper = new VRMSpringBoneColliderHelper(collider);\n this.colliderHelperRoot.add(helper);\n helper.renderOrder = this.colliderHelperRoot.renderOrder;\n }\n return collider;\n }\n _importCapsuleCollider(destination, params) {\n const { offset, radius, tail } = params;\n const shape = new VRMSpringBoneColliderShapeCapsule({ offset, radius, tail });\n const collider = new VRMSpringBoneCollider(shape);\n destination.add(collider);\n if (this.colliderHelperRoot) {\n const helper = new VRMSpringBoneColliderHelper(collider);\n this.colliderHelperRoot.add(helper);\n helper.renderOrder = this.colliderHelperRoot.renderOrder;\n }\n return collider;\n }\n}\nVRMSpringBoneLoaderPlugin.EXTENSION_NAME = 'VRMC_springBone';\n\nclass VRMLoaderPlugin {\n get name() {\n return 'VRMLoaderPlugin';\n }\n constructor(parser, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.parser = parser;\n const helperRoot = options === null || options === void 0 ? void 0 : options.helperRoot;\n const autoUpdateHumanBones = options === null || options === void 0 ? void 0 : options.autoUpdateHumanBones;\n this.expressionPlugin = (_a = options === null || options === void 0 ? void 0 : options.expressionPlugin) !== null && _a !== void 0 ? _a : new VRMExpressionLoaderPlugin(parser);\n this.firstPersonPlugin = (_b = options === null || options === void 0 ? void 0 : options.firstPersonPlugin) !== null && _b !== void 0 ? _b : new VRMFirstPersonLoaderPlugin(parser);\n this.humanoidPlugin =\n (_c = options === null || options === void 0 ? void 0 : options.humanoidPlugin) !== null && _c !== void 0 ? _c : new VRMHumanoidLoaderPlugin(parser, {\n helperRoot,\n autoUpdateHumanBones,\n });\n this.lookAtPlugin = (_d = options === null || options === void 0 ? void 0 : options.lookAtPlugin) !== null && _d !== void 0 ? _d : new VRMLookAtLoaderPlugin(parser, { helperRoot });\n this.metaPlugin = (_e = options === null || options === void 0 ? void 0 : options.metaPlugin) !== null && _e !== void 0 ? _e : new VRMMetaLoaderPlugin(parser);\n this.mtoonMaterialPlugin = (_f = options === null || options === void 0 ? void 0 : options.mtoonMaterialPlugin) !== null && _f !== void 0 ? _f : new MToonMaterialLoaderPlugin(parser);\n this.materialsHDREmissiveMultiplierPlugin =\n (_g = options === null || options === void 0 ? void 0 : options.materialsHDREmissiveMultiplierPlugin) !== null && _g !== void 0 ? _g : new VRMMaterialsHDREmissiveMultiplierLoaderPlugin(parser);\n this.materialsV0CompatPlugin = (_h = options === null || options === void 0 ? void 0 : options.materialsV0CompatPlugin) !== null && _h !== void 0 ? _h : new VRMMaterialsV0CompatPlugin(parser);\n this.springBonePlugin =\n (_j = options === null || options === void 0 ? void 0 : options.springBonePlugin) !== null && _j !== void 0 ? _j : new VRMSpringBoneLoaderPlugin(parser, {\n colliderHelperRoot: helperRoot,\n jointHelperRoot: helperRoot,\n });\n this.nodeConstraintPlugin =\n (_k = options === null || options === void 0 ? void 0 : options.nodeConstraintPlugin) !== null && _k !== void 0 ? _k : new VRMNodeConstraintLoaderPlugin(parser, { helperRoot });\n }\n beforeRoot() {\n return __awaiter$5(this, void 0, void 0, function* () {\n yield this.materialsV0CompatPlugin.beforeRoot();\n yield this.mtoonMaterialPlugin.beforeRoot();\n });\n }\n loadMesh(meshIndex) {\n return __awaiter$5(this, void 0, void 0, function* () {\n return yield this.mtoonMaterialPlugin.loadMesh(meshIndex);\n });\n }\n getMaterialType(materialIndex) {\n const mtoonType = this.mtoonMaterialPlugin.getMaterialType(materialIndex);\n if (mtoonType != null) {\n return mtoonType;\n }\n return null;\n }\n extendMaterialParams(materialIndex, materialParams) {\n return __awaiter$5(this, void 0, void 0, function* () {\n yield this.materialsHDREmissiveMultiplierPlugin.extendMaterialParams(materialIndex, materialParams);\n yield this.mtoonMaterialPlugin.extendMaterialParams(materialIndex, materialParams);\n });\n }\n afterRoot(gltf) {\n return __awaiter$5(this, void 0, void 0, function* () {\n yield this.metaPlugin.afterRoot(gltf);\n yield this.humanoidPlugin.afterRoot(gltf);\n yield this.expressionPlugin.afterRoot(gltf);\n yield this.lookAtPlugin.afterRoot(gltf);\n yield this.firstPersonPlugin.afterRoot(gltf);\n yield this.springBonePlugin.afterRoot(gltf);\n yield this.nodeConstraintPlugin.afterRoot(gltf);\n yield this.mtoonMaterialPlugin.afterRoot(gltf);\n const meta = gltf.userData.vrmMeta;\n const humanoid = gltf.userData.vrmHumanoid;\n // meta and humanoid are required to be a VRM.\n // Don't create VRM if they are null\n if (meta && humanoid) {\n const vrm = new VRM({\n scene: gltf.scene,\n expressionManager: gltf.userData.vrmExpressionManager,\n firstPerson: gltf.userData.vrmFirstPerson,\n humanoid,\n lookAt: gltf.userData.vrmLookAt,\n meta,\n materials: gltf.userData.vrmMToonMaterials,\n springBoneManager: gltf.userData.vrmSpringBoneManager,\n nodeConstraintManager: gltf.userData.vrmNodeConstraintManager,\n });\n gltf.userData.vrm = vrm;\n }\n });\n }\n}\n\n// See: https://threejs.org/docs/#manual/en/introduction/How-to-dispose-of-objects\nfunction disposeMaterial(material) {\n Object.values(material).forEach((value) => {\n if (value === null || value === void 0 ? void 0 : value.isTexture) {\n const texture = value;\n texture.dispose();\n }\n });\n if (material.isShaderMaterial) {\n const uniforms = material.uniforms;\n if (uniforms) {\n Object.values(uniforms).forEach((uniform) => {\n const value = uniform.value;\n if (value === null || value === void 0 ? void 0 : value.isTexture) {\n const texture = value;\n texture.dispose();\n }\n });\n }\n }\n material.dispose();\n}\nfunction dispose(object3D) {\n const geometry = object3D.geometry;\n if (geometry) {\n geometry.dispose();\n }\n const skeleton = object3D.skeleton;\n if (skeleton) {\n skeleton.dispose();\n }\n const material = object3D.material;\n if (material) {\n if (Array.isArray(material)) {\n material.forEach((material) => disposeMaterial(material));\n }\n else if (material) {\n disposeMaterial(material);\n }\n }\n}\nfunction deepDispose(object3D) {\n object3D.traverse(dispose);\n}\n\n/**\n * Traverse given object and remove unnecessarily bound joints from every `THREE.SkinnedMesh`.\n * Some environments like mobile devices have a lower limit of bones and might be unable to perform mesh skinning, this function might resolve such an issue.\n * Also this function might greatly improve the performance of mesh skinning.\n *\n * @param root Root object that will be traversed\n */\nfunction removeUnnecessaryJoints(root) {\n // some meshes might share a same skinIndex attribute and this map prevents to convert the attribute twice\n const skeletonList = new Map();\n // Traverse an entire tree\n root.traverse((obj) => {\n if (obj.type !== 'SkinnedMesh') {\n return;\n }\n const mesh = obj;\n const geometry = mesh.geometry;\n const attribute = geometry.getAttribute('skinIndex');\n // look for existing skeleton\n let skeleton = skeletonList.get(attribute);\n if (!skeleton) {\n // generate reduced bone list\n const bones = []; // new list of bone\n const boneInverses = []; // new list of boneInverse\n const boneIndexMap = {}; // map of old bone index vs. new bone index\n // create a new bone map\n const array = attribute.array;\n for (let i = 0; i < array.length; i++) {\n const index = array[i];\n // new skinIndex buffer\n if (boneIndexMap[index] === undefined) {\n boneIndexMap[index] = bones.length;\n bones.push(mesh.skeleton.bones[index]);\n boneInverses.push(mesh.skeleton.boneInverses[index]);\n }\n array[i] = boneIndexMap[index];\n }\n // replace with new indices\n attribute.copyArray(array);\n attribute.needsUpdate = true;\n // replace with new indices\n skeleton = new three__WEBPACK_IMPORTED_MODULE_0__.Skeleton(bones, boneInverses);\n skeletonList.set(attribute, skeleton);\n }\n mesh.bind(skeleton, new three__WEBPACK_IMPORTED_MODULE_0__.Matrix4());\n // ^^^^^^^^^^^^^^^^^^^ transform of meshes should be ignored\n // See: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins\n });\n}\n\n/**\n * Traverse given object and remove unnecessary vertices from every BufferGeometries.\n * This only processes buffer geometries with index buffer.\n *\n * Three.js creates morph textures for each geometries and it sometimes consumes unnecessary amount of VRAM for certain models.\n * This function will optimize geometries to reduce the size of morph texture.\n * See: https://github.com/mrdoob/three.js/issues/23095\n *\n * @param root Root object that will be traversed\n */\nfunction removeUnnecessaryVertices(root) {\n const geometryMap = new Map();\n // Traverse an entire tree\n root.traverse((obj) => {\n var _a, _b, _c, _d;\n if (!obj.isMesh) {\n return;\n }\n const mesh = obj;\n const geometry = mesh.geometry;\n // if the geometry does not have an index buffer it does not need to process\n const origianlIndex = geometry.index;\n if (origianlIndex == null) {\n return;\n }\n // skip already processed geometry\n const newGeometryAlreadyExisted = geometryMap.get(geometry);\n if (newGeometryAlreadyExisted != null) {\n mesh.geometry = newGeometryAlreadyExisted;\n return;\n }\n const newGeometry = new three__WEBPACK_IMPORTED_MODULE_0__.BufferGeometry();\n // copy various properties\n // Ref: https://github.com/mrdoob/three.js/blob/1a241ef10048770d56e06d6cd6a64c76cc720f95/src/core/BufferGeometry.js#L1011\n newGeometry.name = geometry.name;\n newGeometry.morphTargetsRelative = geometry.morphTargetsRelative;\n geometry.groups.forEach((group) => {\n newGeometry.addGroup(group.start, group.count, group.materialIndex);\n });\n newGeometry.boundingBox = (_b = (_a = geometry.boundingBox) === null || _a === void 0 ? void 0 : _a.clone()) !== null && _b !== void 0 ? _b : null;\n newGeometry.boundingSphere = (_d = (_c = geometry.boundingSphere) === null || _c === void 0 ? void 0 : _c.clone()) !== null && _d !== void 0 ? _d : null;\n newGeometry.setDrawRange(geometry.drawRange.start, geometry.drawRange.count);\n newGeometry.userData = geometry.userData;\n // set to geometryMap\n geometryMap.set(geometry, newGeometry);\n /** from original index to new index */\n const originalIndexNewIndexMap = [];\n /** from new index to original index */\n const newIndexOriginalIndexMap = [];\n // reorganize indices\n {\n const originalIndexArray = origianlIndex.array;\n const newIndexArray = new originalIndexArray.constructor(originalIndexArray.length);\n let indexHead = 0;\n for (let i = 0; i < originalIndexArray.length; i++) {\n const originalIndex = originalIndexArray[i];\n let newIndex = originalIndexNewIndexMap[originalIndex];\n if (newIndex == null) {\n originalIndexNewIndexMap[originalIndex] = indexHead;\n newIndexOriginalIndexMap[indexHead] = originalIndex;\n newIndex = indexHead;\n indexHead++;\n }\n newIndexArray[i] = newIndex;\n }\n newGeometry.setIndex(new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(newIndexArray, 1, false));\n }\n // reorganize attributes\n Object.keys(geometry.attributes).forEach((attributeName) => {\n const originalAttribute = geometry.attributes[attributeName];\n if (originalAttribute.isInterleavedBufferAttribute) {\n throw new Error('removeUnnecessaryVertices: InterleavedBufferAttribute is not supported');\n }\n const originalAttributeArray = originalAttribute.array;\n const { itemSize, normalized } = originalAttribute;\n const newAttributeArray = new originalAttributeArray.constructor(newIndexOriginalIndexMap.length * itemSize);\n newIndexOriginalIndexMap.forEach((originalIndex, i) => {\n for (let j = 0; j < itemSize; j++) {\n newAttributeArray[i * itemSize + j] = originalAttributeArray[originalIndex * itemSize + j];\n }\n });\n newGeometry.setAttribute(attributeName, new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(newAttributeArray, itemSize, normalized));\n });\n // reorganize morph attributes\n /** True if all morphs are zero. */\n let isNullMorph = true;\n Object.keys(geometry.morphAttributes).forEach((attributeName) => {\n newGeometry.morphAttributes[attributeName] = [];\n const morphs = geometry.morphAttributes[attributeName];\n for (let iMorph = 0; iMorph < morphs.length; iMorph++) {\n const originalAttribute = morphs[iMorph];\n if (originalAttribute.isInterleavedBufferAttribute) {\n throw new Error('removeUnnecessaryVertices: InterleavedBufferAttribute is not supported');\n }\n const originalAttributeArray = originalAttribute.array;\n const { itemSize, normalized } = originalAttribute;\n const newAttributeArray = new originalAttributeArray.constructor(newIndexOriginalIndexMap.length * itemSize);\n newIndexOriginalIndexMap.forEach((originalIndex, i) => {\n for (let j = 0; j < itemSize; j++) {\n newAttributeArray[i * itemSize + j] = originalAttributeArray[originalIndex * itemSize + j];\n }\n });\n isNullMorph = isNullMorph && newAttributeArray.every((v) => v === 0);\n newGeometry.morphAttributes[attributeName][iMorph] = new three__WEBPACK_IMPORTED_MODULE_0__.BufferAttribute(newAttributeArray, itemSize, normalized);\n }\n });\n // If all morphs are zero, just discard the morph attributes we've just made\n if (isNullMorph) {\n newGeometry.morphAttributes = {};\n }\n mesh.geometry = newGeometry;\n });\n Array.from(geometryMap.keys()).forEach((originalGeometry) => {\n originalGeometry.dispose();\n });\n}\n\n/**\n * If the given VRM is VRM0.0, rotate the `vrm.scene` by 180 degrees around the Y axis.\n *\n * @param vrm The target VRM\n */\nfunction rotateVRM0(vrm) {\n var _a;\n if (((_a = vrm.meta) === null || _a === void 0 ? void 0 : _a.metaVersion) === '0') {\n vrm.scene.rotation.y = Math.PI;\n }\n}\n\nclass VRMUtils {\n constructor() {\n // this class is not meant to be instantiated\n }\n}\nVRMUtils.deepDispose = deepDispose;\nVRMUtils.removeUnnecessaryJoints = removeUnnecessaryJoints;\nVRMUtils.removeUnnecessaryVertices = removeUnnecessaryVertices;\nVRMUtils.rotateVRM0 = rotateVRM0;\n\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdnJtLm1vZHVsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vdGhyZWUtdnJtLWNvcmUvbGliL3RocmVlLXZybS1jb3JlLm1vZHVsZS5qcyIsIi4uL3NyYy9WUk0udHMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvdHNsaWIvdHNsaWIuZXM2LmpzIiwiLi4vLi4vdGhyZWUtdnJtLW1hdGVyaWFscy1tdG9vbi9saWIvdGhyZWUtdnJtLW1hdGVyaWFscy1tdG9vbi5tb2R1bGUuanMiLCIuLi8uLi90aHJlZS12cm0tbWF0ZXJpYWxzLWhkci1lbWlzc2l2ZS1tdWx0aXBsaWVyL2xpYi90aHJlZS12cm0tbWF0ZXJpYWxzLWhkci1lbWlzc2l2ZS1tdWx0aXBsaWVyLm1vZHVsZS5qcyIsIi4uLy4uL3RocmVlLXZybS1tYXRlcmlhbHMtdjBjb21wYXQvbGliL3RocmVlLXZybS1tYXRlcmlhbHMtdjBjb21wYXQubW9kdWxlLmpzIiwiLi4vLi4vdGhyZWUtdnJtLW5vZGUtY29uc3RyYWludC9saWIvdGhyZWUtdnJtLW5vZGUtY29uc3RyYWludC5tb2R1bGUuanMiLCIuLi8uLi90aHJlZS12cm0tc3ByaW5nYm9uZS9saWIvdGhyZWUtdnJtLXNwcmluZ2JvbmUubW9kdWxlLmpzIiwiLi4vc3JjL1ZSTUxvYWRlclBsdWdpbi50cyIsIi4uL3NyYy9WUk1VdGlscy9kZWVwRGlzcG9zZS50cyIsIi4uL3NyYy9WUk1VdGlscy9yZW1vdmVVbm5lY2Vzc2FyeUpvaW50cy50cyIsIi4uL3NyYy9WUk1VdGlscy9yZW1vdmVVbm5lY2Vzc2FyeVZlcnRpY2VzLnRzIiwiLi4vc3JjL1ZSTVV0aWxzL3JvdGF0ZVZSTTAudHMiLCIuLi9zcmMvVlJNVXRpbHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAcGl4aXYvdGhyZWUtdnJtLWNvcmUgdjIuMS4xXG4gKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgY29yZSBmZWF0dXJlcyBvZiBWUk0sIGZvciBAcGl4aXYvdGhyZWUtdnJtXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjQgcGl4aXYgSW5jLlxuICogQHBpeGl2L3RocmVlLXZybS1jb3JlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIE1JVCBMaWNlbnNlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGl4aXYvdGhyZWUtdnJtL2Jsb2IvcmVsZWFzZS9MSUNFTlNFXG4gKi9cbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuLy8gYW5pbWF0aW9uTWl4ZXIg44Gu55uj6KaW5a++6LGh44Gv44CBU2NlbmUg44Gu5Lit44Gr5YWl44Gj44Gm44GE44KL5b+F6KaB44GM44GC44KL44CCXG4vLyDjgZ3jga7jgZ/jgoHjgIHooajnpLrjgqrjg5bjgrjjgqfjgq/jg4jjgafjga/jgarjgYTjgZHjgozjganjgIFPYmplY3QzRCDjgpLntpnmib/jgZfjgaYgU2NlbmUg44Gr5oqV5YWl44Gn44GN44KL44KI44GG44Gr44GZ44KL44CCXG5jbGFzcyBWUk1FeHByZXNzaW9uIGV4dGVuZHMgVEhSRUUuT2JqZWN0M0Qge1xuICAgIC8qKlxuICAgICAqIEEgdmFsdWUgcmVwcmVzZW50cyBob3cgbXVjaCBpdCBzaG91bGQgb3ZlcnJpZGUgYmxpbmsgZXhwcmVzc2lvbnMuXG4gICAgICogYDAuMGAgPT0gbm8gb3ZlcnJpZGUgYXQgYWxsLCBgMS4wYCA9PSBjb21wbGV0ZWx5IGJsb2NrIHRoZSBleHByZXNzaW9ucy5cbiAgICAgKi9cbiAgICBnZXQgb3ZlcnJpZGVCbGlua0Ftb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcnJpZGVCbGluayA9PT0gJ2Jsb2NrJykge1xuICAgICAgICAgICAgcmV0dXJuIDAuMCA8IHRoaXMud2VpZ2h0ID8gMS4wIDogMC4wO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMub3ZlcnJpZGVCbGluayA9PT0gJ2JsZW5kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2VpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDAuMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIHZhbHVlIHJlcHJlc2VudHMgaG93IG11Y2ggaXQgc2hvdWxkIG92ZXJyaWRlIGxvb2tBdCBleHByZXNzaW9ucy5cbiAgICAgKiBgMC4wYCA9PSBubyBvdmVycmlkZSBhdCBhbGwsIGAxLjBgID09IGNvbXBsZXRlbHkgYmxvY2sgdGhlIGV4cHJlc3Npb25zLlxuICAgICAqL1xuICAgIGdldCBvdmVycmlkZUxvb2tBdEFtb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcnJpZGVMb29rQXQgPT09ICdibG9jaycpIHtcbiAgICAgICAgICAgIHJldHVybiAwLjAgPCB0aGlzLndlaWdodCA/IDEuMCA6IDAuMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLm92ZXJyaWRlTG9va0F0ID09PSAnYmxlbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy53ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMC4wO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgdmFsdWUgcmVwcmVzZW50cyBob3cgbXVjaCBpdCBzaG91bGQgb3ZlcnJpZGUgbW91dGggZXhwcmVzc2lvbnMuXG4gICAgICogYDAuMGAgPT0gbm8gb3ZlcnJpZGUgYXQgYWxsLCBgMS4wYCA9PSBjb21wbGV0ZWx5IGJsb2NrIHRoZSBleHByZXNzaW9ucy5cbiAgICAgKi9cbiAgICBnZXQgb3ZlcnJpZGVNb3V0aEFtb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcnJpZGVNb3V0aCA9PT0gJ2Jsb2NrJykge1xuICAgICAgICAgICAgcmV0dXJuIDAuMCA8IHRoaXMud2VpZ2h0ID8gMS4wIDogMC4wO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMub3ZlcnJpZGVNb3V0aCA9PT0gJ2JsZW5kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2VpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDAuMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihleHByZXNzaW9uTmFtZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGN1cnJlbnQgd2VpZ2h0IG9mIHRoZSBleHByZXNzaW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy53ZWlnaHQgPSAwLjA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbnRlcnByZXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiAwLjUgYXMgMS4wLCBvcnRoZXJ3aXNlIDAuMC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaXNCaW5hcnkgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZnkgaG93IHRoZSBleHByZXNzaW9uIG92ZXJyaWRlcyBibGluayBleHByZXNzaW9ucy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3ZlcnJpZGVCbGluayA9ICdub25lJztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZnkgaG93IHRoZSBleHByZXNzaW9uIG92ZXJyaWRlcyBsb29rQXQgZXhwcmVzc2lvbnMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm92ZXJyaWRlTG9va0F0ID0gJ25vbmUnO1xuICAgICAgICAvKipcbiAgICAgICAgICogU3BlY2lmeSBob3cgdGhlIGV4cHJlc3Npb24gb3ZlcnJpZGVzIG1vdXRoIGV4cHJlc3Npb25zLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vdmVycmlkZU1vdXRoID0gJ25vbmUnO1xuICAgICAgICB0aGlzLl9iaW5kcyA9IFtdO1xuICAgICAgICB0aGlzLm5hbWUgPSBgVlJNRXhwcmVzc2lvbl8ke2V4cHJlc3Npb25OYW1lfWA7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbk5hbWUgPSBleHByZXNzaW9uTmFtZTtcbiAgICAgICAgLy8gdHJhdmVyc2Ug5pmC44Gu5pWR5riI5omL5q6144Go44GX44GmIE9iamVjdDNEIOOBp+OBr+OBquOBhOOBk+OBqOOCkuaYjuekuuOBl+OBpuOBiuOBj1xuICAgICAgICB0aGlzLnR5cGUgPSAnVlJNRXhwcmVzc2lvbic7XG4gICAgICAgIC8vIOihqOekuuebrueahOOBruOCquODluOCuOOCp+OCr+ODiOOBp+OBr+OBquOBhOOBruOBp+OAgeiyoOiNt+i7vea4m+OBruOBn+OCgeOBqyB2aXNpYmxlIOOCkiBmYWxzZSDjgavjgZfjgabjgYrjgY/jgIJcbiAgICAgICAgLy8g44GT44KM44Gr44KI44KK44CB44GT44Gu44Kk44Oz44K544K/44Oz44K544Gr5a++44GZ44KL5q+O44OV44Os44O844Og44GuIG1hdHJpeCDoh6rli5XoqIjnrpfjgpLnnIHnlaXjgafjgY3jgovjgIJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICAgIGFkZEJpbmQoYmluZCkge1xuICAgICAgICB0aGlzLl9iaW5kcy5wdXNoKGJpbmQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBcHBseSB3ZWlnaHQgdG8gZXZlcnkgYXNzaWduZWQgYmxlbmQgc2hhcGVzLlxuICAgICAqIFNob3VsZCBiZSBjYWxsZWQgZXZlcnkgZnJhbWUuXG4gICAgICovXG4gICAgYXBwbHlXZWlnaHQob3B0aW9ucykge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGxldCBhY3R1YWxXZWlnaHQgPSB0aGlzLmlzQmluYXJ5ID8gKHRoaXMud2VpZ2h0IDw9IDAuNSA/IDAuMCA6IDEuMCkgOiB0aGlzLndlaWdodDtcbiAgICAgICAgYWN0dWFsV2VpZ2h0ICo9IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5tdWx0aXBsaWVyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAxLjA7XG4gICAgICAgIHRoaXMuX2JpbmRzLmZvckVhY2goKGJpbmQpID0+IGJpbmQuYXBwbHlXZWlnaHQoYWN0dWFsV2VpZ2h0KSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFyIHByZXZpb3VzbHkgYXNzaWduZWQgYmxlbmQgc2hhcGVzLlxuICAgICAqL1xuICAgIGNsZWFyQXBwbGllZFdlaWdodCgpIHtcbiAgICAgICAgdGhpcy5fYmluZHMuZm9yRWFjaCgoYmluZCkgPT4gYmluZC5jbGVhckFwcGxpZWRXZWlnaHQoKSk7XG4gICAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuXHJcbmZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbnR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xuXG5mdW5jdGlvbiBleHRyYWN0UHJpbWl0aXZlc0ludGVybmFsKGdsdGYsIG5vZGVJbmRleCwgbm9kZSkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QganNvbiA9IGdsdGYucGFyc2VyLmpzb247XG4gICAgLyoqXG4gICAgICogTGV0J3MgbGlzdCB1cCBldmVyeSBwb3NzaWJsZSBwYXR0ZXJucyB0aGF0IHBhcnNlZCBnbHRmIG5vZGVzIHdpdGggYSBtZXNoIGNhbiBoYXZlLCwsXG4gICAgICpcbiAgICAgKiBcIipcIiBpbmRpY2F0ZXMgdGhhdCB0aG9zZSBtZXNoZXMgc2hvdWxkIGJlIGxpc3RlZCB1cCB1c2luZyB0aGlzIGZ1bmN0aW9uXG4gICAgICpcbiAgICAgKiAjIyMgQSBub2RlIHdpdGggYSAobWVzaCwgYSBzaWdubGUgcHJpbWl0aXZlKVxuICAgICAqXG4gICAgICogLSBgVEhSRUUuTWVzaGA6IFRoZSBvbmx5IHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAqXG4gICAgICpcbiAgICAgKiAjIyMgQSBub2RlIHdpdGggYSAobWVzaCwgbXVsdGlwbGUgcHJpbWl0aXZlcylcbiAgICAgKlxuICAgICAqIC0gYFRIUkVFLkdyb3VwYDogVGhlIHJvb3Qgb2YgdGhlIG1lc2hcbiAgICAgKiAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAqXG4gICAgICogICAtIGBUSFJFRS5NZXNoYDogQSBwcmltaXRpdmUgb2YgdGhlIG1lc2ggKDIpICpcbiAgICAgKlxuICAgICAqICMjIyBBIG5vZGUgd2l0aCBhIChtZXNoLCBtdWx0aXBsZSBwcmltaXRpdmVzKSBBTkQgKGEgY2hpbGQgd2l0aCBhIG1lc2gsIGEgc2luZ2xlIHByaW1pdGl2ZSlcbiAgICAgKlxuICAgICAqIC0gYFRIUkVFLkdyb3VwYDogVGhlIHJvb3Qgb2YgdGhlIG1lc2hcbiAgICAgKiAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAqXG4gICAgICogICAtIGBUSFJFRS5NZXNoYDogQSBwcmltaXRpdmUgb2YgdGhlIG1lc2ggKDIpICpcbiAgICAgKiAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiBhIE1FU0ggT0YgVEhFIENISUxEXG4gICAgICpcbiAgICAgKiAjIyMgQSBub2RlIHdpdGggYSAobWVzaCwgbXVsdGlwbGUgcHJpbWl0aXZlcykgQU5EIChhIGNoaWxkIHdpdGggYSBtZXNoLCBtdWx0aXBsZSBwcmltaXRpdmVzKVxuICAgICAqXG4gICAgICogLSBgVEhSRUUuR3JvdXBgOiBUaGUgcm9vdCBvZiB0aGUgbWVzaFxuICAgICAqICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoICpcbiAgICAgKiAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAoMikgKlxuICAgICAqICAgLSBgVEhSRUUuR3JvdXBgOiBUaGUgcm9vdCBvZiBhIE1FU0ggT0YgVEhFIENISUxEXG4gICAgICogICAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCBvZiB0aGUgY2hpbGRcbiAgICAgKiAgICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoIG9mIHRoZSBjaGlsZCAoMilcbiAgICAgKlxuICAgICAqICMjIyBBIG5vZGUgd2l0aCBhIChtZXNoLCBtdWx0aXBsZSBwcmltaXRpdmVzKSBCVVQgdGhlIG5vZGUgaXMgYSBib25lXG4gICAgICpcbiAgICAgKiAtIGBUSFJFRS5Cb25lYDogVGhlIHJvb3Qgb2YgdGhlIG5vZGUsIGFzIGEgYm9uZVxuICAgICAqICAgLSBgVEhSRUUuR3JvdXBgOiBUaGUgcm9vdCBvZiB0aGUgbWVzaFxuICAgICAqICAgICAtIGBUSFJFRS5NZXNoYDogQSBwcmltaXRpdmUgb2YgdGhlIG1lc2ggKlxuICAgICAqICAgICAtIGBUSFJFRS5NZXNoYDogQSBwcmltaXRpdmUgb2YgdGhlIG1lc2ggKDIpICpcbiAgICAgKlxuICAgICAqICMjIyBBIG5vZGUgd2l0aCBhIChtZXNoLCBtdWx0aXBsZSBwcmltaXRpdmVzKSBBTkQgKGEgY2hpbGQgd2l0aCBhIG1lc2gsIG11bHRpcGxlIHByaW1pdGl2ZXMpIEJVVCB0aGUgbm9kZSBpcyBhIGJvbmVcbiAgICAgKlxuICAgICAqIC0gYFRIUkVFLkJvbmVgOiBUaGUgcm9vdCBvZiB0aGUgbm9kZSwgYXMgYSBib25lXG4gICAgICogICAtIGBUSFJFRS5Hcm91cGA6IFRoZSByb290IG9mIHRoZSBtZXNoXG4gICAgICogICAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAqXG4gICAgICogICAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCAoMikgKlxuICAgICAqICAgLSBgVEhSRUUuR3JvdXBgOiBUaGUgcm9vdCBvZiBhIE1FU0ggT0YgVEhFIENISUxEXG4gICAgICogICAgIC0gYFRIUkVFLk1lc2hgOiBBIHByaW1pdGl2ZSBvZiB0aGUgbWVzaCBvZiB0aGUgY2hpbGRcbiAgICAgKiAgICAgLSBgVEhSRUUuTWVzaGA6IEEgcHJpbWl0aXZlIG9mIHRoZSBtZXNoIG9mIHRoZSBjaGlsZCAoMilcbiAgICAgKlxuICAgICAqIC4uLkkgd2lsbCB0YWtlIGEgc3RyYXRlZ3kgdGhhdCB0cmF2ZXJzZXMgdGhlIHJvb3Qgb2YgdGhlIG5vZGUgYW5kIHRha2UgZmlyc3QgKHByaW1pdGl2ZUNvdW50KSBtZXNoZXMuXG4gICAgICovXG4gICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIG5vZGUgaGFzIGEgbWVzaFxuICAgIGNvbnN0IHNjaGVtYU5vZGUgPSAoX2EgPSBqc29uLm5vZGVzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Fbbm9kZUluZGV4XTtcbiAgICBpZiAoc2NoZW1hTm9kZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgZXh0cmFjdFByaW1pdGl2ZXNJbnRlcm5hbDogQXR0ZW1wdCB0byB1c2Ugbm9kZXNbJHtub2RlSW5kZXh9XSBvZiBnbFRGIGJ1dCB0aGUgbm9kZSBkb2Vzbid0IGV4aXN0YCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBtZXNoSW5kZXggPSBzY2hlbWFOb2RlLm1lc2g7XG4gICAgaWYgKG1lc2hJbmRleCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBIb3cgbWFueSBwcmltaXRpdmVzIHRoZSBtZXNoIGhhcz9cbiAgICBjb25zdCBzY2hlbWFNZXNoID0gKF9iID0ganNvbi5tZXNoZXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYlttZXNoSW5kZXhdO1xuICAgIGlmIChzY2hlbWFNZXNoID09IG51bGwpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBleHRyYWN0UHJpbWl0aXZlc0ludGVybmFsOiBBdHRlbXB0IHRvIHVzZSBtZXNoZXNbJHttZXNoSW5kZXh9XSBvZiBnbFRGIGJ1dCB0aGUgbWVzaCBkb2Vzbid0IGV4aXN0YCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBwcmltaXRpdmVDb3VudCA9IHNjaGVtYU1lc2gucHJpbWl0aXZlcy5sZW5ndGg7XG4gICAgLy8gVHJhdmVyc2UgdGhlIG5vZGUgYW5kIHRha2UgZmlyc3QgKHByaW1pdGl2ZUNvdW50KSBtZXNoZXNcbiAgICBjb25zdCBwcmltaXRpdmVzID0gW107XG4gICAgbm9kZS50cmF2ZXJzZSgob2JqZWN0KSA9PiB7XG4gICAgICAgIGlmIChwcmltaXRpdmVzLmxlbmd0aCA8IHByaW1pdGl2ZUNvdW50KSB7XG4gICAgICAgICAgICBpZiAob2JqZWN0LmlzTWVzaCkge1xuICAgICAgICAgICAgICAgIHByaW1pdGl2ZXMucHVzaChvYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByaW1pdGl2ZXM7XG59XG4vKipcbiAqIEV4dHJhY3QgcHJpbWl0aXZlcyAoIGBUSFJFRS5NZXNoW11gICkgb2YgYSBub2RlIGZyb20gYSBsb2FkZWQgR0xURi5cbiAqIFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBkaXN0aW5ndWlzaCBwcmltaXRpdmVzIGFuZCBjaGlsZHJlbiBmcm9tIGEgbm9kZSB0aGF0IGhhcyBib3RoIG1lc2hlcyBhbmQgY2hpbGRyZW4uXG4gKlxuICogSXQgdXRpbGl6ZXMgdGhlIGJlaGF2aW9yIHRoYXQgR0xURkxvYWRlciBhZGRzIG1lc2ggcHJpbWl0aXZlcyB0byB0aGUgbm9kZSBvYmplY3QgKCBgVEhSRUUuR3JvdXBgICkgZmlyc3QgdGhlbiBhZGRzIGl0cyBjaGlsZHJlbi5cbiAqXG4gKiBAcGFyYW0gZ2x0ZiBBIEdMVEYgb2JqZWN0IHRha2VuIGZyb20gR0xURkxvYWRlclxuICogQHBhcmFtIG5vZGVJbmRleCBUaGUgaW5kZXggb2YgdGhlIG5vZGVcbiAqL1xuZnVuY3Rpb24gZ2x0ZkV4dHJhY3RQcmltaXRpdmVzRnJvbU5vZGUoZ2x0Ziwgbm9kZUluZGV4KSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHlpZWxkIGdsdGYucGFyc2VyLmdldERlcGVuZGVuY3koJ25vZGUnLCBub2RlSW5kZXgpO1xuICAgICAgICByZXR1cm4gZXh0cmFjdFByaW1pdGl2ZXNJbnRlcm5hbChnbHRmLCBub2RlSW5kZXgsIG5vZGUpO1xuICAgIH0pO1xufVxuLyoqXG4gKiBFeHRyYWN0IHByaW1pdGl2ZXMgKCBgVEhSRUUuTWVzaFtdYCApIG9mIG5vZGVzIGZyb20gYSBsb2FkZWQgR0xURi5cbiAqIFNlZSB7QGxpbmsgZ2x0ZkV4dHJhY3RQcmltaXRpdmVzRnJvbU5vZGV9IGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogSXQgcmV0dXJucyBhIG1hcCBmcm9tIG5vZGUgaW5kZXggdG8gZXh0cmFjdGlvbiByZXN1bHQuXG4gKiBJZiBhIG5vZGUgZG9lcyBub3QgaGF2ZSBhIG1lc2gsIHRoZSBlbnRyeSBmb3IgdGhlIG5vZGUgd2lsbCBub3QgYmUgcHV0IGluIHRoZSByZXR1cm5pbmcgbWFwLlxuICpcbiAqIEBwYXJhbSBnbHRmIEEgR0xURiBvYmplY3QgdGFrZW4gZnJvbSBHTFRGTG9hZGVyXG4gKi9cbmZ1bmN0aW9uIGdsdGZFeHRyYWN0UHJpbWl0aXZlc0Zyb21Ob2RlcyhnbHRmKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSB5aWVsZCBnbHRmLnBhcnNlci5nZXREZXBlbmRlbmNpZXMoJ25vZGUnKTtcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICAgICAgICBub2Rlcy5mb3JFYWNoKChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXh0cmFjdFByaW1pdGl2ZXNJbnRlcm5hbChnbHRmLCBpbmRleCwgbm9kZSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBtYXAuc2V0KGluZGV4LCByZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBtYXRlcmlhbCBkZWZpbml0aW9uIGluZGV4IG9mIGdsVEYgZnJvbSBhc3NvY2lhdGVkIG1hdGVyaWFsLlxuICogSXQncyBiYXNpY2FsbHkgYSBjb21hdCBjb2RlIGJldHdlZW4gVGhyZWUuanMgcjEzMyBvciBhYm92ZSBhbmQgcHJldmlvdXMgdmVyc2lvbnMuXG4gKiBAcGFyYW0gcGFyc2VyIEdMVEZQYXJzZXJcbiAqIEBwYXJhbSBtYXRlcmlhbCBBIG1hdGVyaWFsIG9mIGdsdGZcbiAqIEByZXR1cm5zIE1hdGVyaWFsIGRlZmluaXRpb24gaW5kZXggb2YgZ2xURlxuICovXG5mdW5jdGlvbiBnbHRmR2V0QXNzb2NpYXRlZE1hdGVyaWFsSW5kZXgocGFyc2VyLCBtYXRlcmlhbCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgdGhyZWVSZXZpc2lvbiA9IHBhcnNlSW50KFRIUkVFLlJFVklTSU9OLCAxMCk7XG4gICAgbGV0IGluZGV4ID0gbnVsbDtcbiAgICBpZiAodGhyZWVSZXZpc2lvbiA+PSAxMzMpIHtcbiAgICAgICAgaW5kZXggPSAoX2IgPSAoX2EgPSBwYXJzZXIuYXNzb2NpYXRpb25zLmdldChtYXRlcmlhbCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tYXRlcmlhbHMpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBhc3NvY2lhdGlvbnMgPSBwYXJzZXIuYXNzb2NpYXRpb25zO1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBhc3NvY2lhdGlvbnMuZ2V0KG1hdGVyaWFsKTtcbiAgICAgICAgaWYgKChyZWZlcmVuY2UgPT09IG51bGwgfHwgcmVmZXJlbmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZWZlcmVuY2UudHlwZSkgPT09ICdtYXRlcmlhbHMnKSB7XG4gICAgICAgICAgICBpbmRleCA9IHJlZmVyZW5jZS5pbmRleDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5kZXg7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuY29uc3QgVlJNRXhwcmVzc2lvblByZXNldE5hbWUgPSB7XG4gICAgQWE6ICdhYScsXG4gICAgSWg6ICdpaCcsXG4gICAgT3U6ICdvdScsXG4gICAgRWU6ICdlZScsXG4gICAgT2g6ICdvaCcsXG4gICAgQmxpbms6ICdibGluaycsXG4gICAgSGFwcHk6ICdoYXBweScsXG4gICAgQW5ncnk6ICdhbmdyeScsXG4gICAgU2FkOiAnc2FkJyxcbiAgICBSZWxheGVkOiAncmVsYXhlZCcsXG4gICAgTG9va1VwOiAnbG9va1VwJyxcbiAgICBTdXJwcmlzZWQ6ICdzdXJwcmlzZWQnLFxuICAgIExvb2tEb3duOiAnbG9va0Rvd24nLFxuICAgIExvb2tMZWZ0OiAnbG9va0xlZnQnLFxuICAgIExvb2tSaWdodDogJ2xvb2tSaWdodCcsXG4gICAgQmxpbmtMZWZ0OiAnYmxpbmtMZWZ0JyxcbiAgICBCbGlua1JpZ2h0OiAnYmxpbmtSaWdodCcsXG4gICAgTmV1dHJhbDogJ25ldXRyYWwnLFxufTtcblxuLyoqXG4gKiBDbGFtcCB0aGUgaW5wdXQgdmFsdWUgd2l0aGluIFswLjAgLSAxLjBdLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgaW5wdXQgdmFsdWVcbiAqL1xuZnVuY3Rpb24gc2F0dXJhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoTWF0aC5taW4odmFsdWUsIDEuMCksIDAuMCk7XG59XG5cbmNsYXNzIFZSTUV4cHJlc3Npb25NYW5hZ2VyIHtcbiAgICBnZXQgZXhwcmVzc2lvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9leHByZXNzaW9ucy5jb25jYXQoKTtcbiAgICB9XG4gICAgZ2V0IGV4cHJlc3Npb25NYXAoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9leHByZXNzaW9uTWFwKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBtYXAgZnJvbSBuYW1lIHRvIGV4cHJlc3Npb24sIGJ1dCBleGNsdWRpbmcgY3VzdG9tIGV4cHJlc3Npb25zLlxuICAgICAqL1xuICAgIGdldCBwcmVzZXRFeHByZXNzaW9uTWFwKCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICAgICAgY29uc3QgcHJlc2V0TmFtZVNldCA9IG5ldyBTZXQoT2JqZWN0LnZhbHVlcyhWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSkpO1xuICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLl9leHByZXNzaW9uTWFwKS5mb3JFYWNoKChbbmFtZSwgZXhwcmVzc2lvbl0pID0+IHtcbiAgICAgICAgICAgIGlmIChwcmVzZXROYW1lU2V0LmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtuYW1lXSA9IGV4cHJlc3Npb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIG1hcCBmcm9tIG5hbWUgdG8gZXhwcmVzc2lvbiwgYnV0IGV4Y2x1ZGluZyBwcmVzZXQgZXhwcmVzc2lvbnMuXG4gICAgICovXG4gICAgZ2V0IGN1c3RvbUV4cHJlc3Npb25NYXAoKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBjb25zdCBwcmVzZXROYW1lU2V0ID0gbmV3IFNldChPYmplY3QudmFsdWVzKFZSTUV4cHJlc3Npb25QcmVzZXROYW1lKSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX2V4cHJlc3Npb25NYXApLmZvckVhY2goKFtuYW1lLCBleHByZXNzaW9uXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFwcmVzZXROYW1lU2V0LmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtuYW1lXSA9IGV4cHJlc3Npb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIFZSTUV4cHJlc3Npb25NYW5hZ2VyfS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgc2V0IG9mIG5hbWUgb3IgcHJlc2V0IG5hbWUgb2YgZXhwcmVzc2lvbnMgdGhhdCB3aWxsIGJlIG92ZXJyaWRkZW4gYnkge0BsaW5rIFZSTUV4cHJlc3Npb24ub3ZlcnJpZGVCbGlua30uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJsaW5rRXhwcmVzc2lvbk5hbWVzID0gWydibGluaycsICdibGlua0xlZnQnLCAnYmxpbmtSaWdodCddO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXQgb2YgbmFtZSBvciBwcmVzZXQgbmFtZSBvZiBleHByZXNzaW9ucyB0aGF0IHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB7QGxpbmsgVlJNRXhwcmVzc2lvbi5vdmVycmlkZUxvb2tBdH0uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxvb2tBdEV4cHJlc3Npb25OYW1lcyA9IFsnbG9va0xlZnQnLCAnbG9va1JpZ2h0JywgJ2xvb2tVcCcsICdsb29rRG93biddO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXQgb2YgbmFtZSBvciBwcmVzZXQgbmFtZSBvZiBleHByZXNzaW9ucyB0aGF0IHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB7QGxpbmsgVlJNRXhwcmVzc2lvbi5vdmVycmlkZU1vdXRofS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubW91dGhFeHByZXNzaW9uTmFtZXMgPSBbJ2FhJywgJ2VlJywgJ2loJywgJ29oJywgJ291J107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHNldCBvZiB7QGxpbmsgVlJNRXhwcmVzc2lvbn0uXG4gICAgICAgICAqIFdoZW4geW91IHdhbnQgdG8gcmVnaXN0ZXIgZXhwcmVzc2lvbnMsIHVzZSB7QGxpbmsgcmVnaXN0ZXJFeHByZXNzaW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fZXhwcmVzc2lvbnMgPSBbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgbWFwIGZyb20gbmFtZSB0byBleHByZXNzaW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fZXhwcmVzc2lvbk1hcCA9IHt9O1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvcHkgdGhlIGdpdmVuIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn0gaW50byB0aGlzIG9uZS5cbiAgICAgKiBAcGFyYW0gc291cmNlIFRoZSB7QGxpbmsgVlJNRXhwcmVzc2lvbk1hbmFnZXJ9IHlvdSB3YW50IHRvIGNvcHlcbiAgICAgKiBAcmV0dXJucyB0aGlzXG4gICAgICovXG4gICAgY29weShzb3VyY2UpIHtcbiAgICAgICAgLy8gZmlyc3QgdW5yZWdpc3RlciBhbGwgdGhlIGV4cHJlc3Npb24gaXQgaGFzXG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb25zID0gdGhpcy5fZXhwcmVzc2lvbnMuY29uY2F0KCk7XG4gICAgICAgIGV4cHJlc3Npb25zLmZvckVhY2goKGV4cHJlc3Npb24pID0+IHtcbiAgICAgICAgICAgIHRoaXMudW5yZWdpc3RlckV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyB0aGVuIHJlZ2lzdGVyIGFsbCB0aGUgZXhwcmVzc2lvbiBvZiB0aGUgc291cmNlXG4gICAgICAgIHNvdXJjZS5fZXhwcmVzc2lvbnMuZm9yRWFjaCgoZXhwcmVzc2lvbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjb3B5IHJlbWFpbmluZyBtZW1iZXJzXG4gICAgICAgIHRoaXMuYmxpbmtFeHByZXNzaW9uTmFtZXMgPSBzb3VyY2UuYmxpbmtFeHByZXNzaW9uTmFtZXMuY29uY2F0KCk7XG4gICAgICAgIHRoaXMubG9va0F0RXhwcmVzc2lvbk5hbWVzID0gc291cmNlLmxvb2tBdEV4cHJlc3Npb25OYW1lcy5jb25jYXQoKTtcbiAgICAgICAgdGhpcy5tb3V0aEV4cHJlc3Npb25OYW1lcyA9IHNvdXJjZS5tb3V0aEV4cHJlc3Npb25OYW1lcy5jb25jYXQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBjbG9uZSBvZiB0aGlzIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn0uXG4gICAgICogQHJldHVybnMgQ29waWVkIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn1cbiAgICAgKi9cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWUk1FeHByZXNzaW9uTWFuYWdlcigpLmNvcHkodGhpcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIHJlZ2lzdGVyZWQgZXhwcmVzc2lvbi5cbiAgICAgKiBJZiBpdCBjYW5ub3QgZmluZCBhbiBleHByZXNzaW9uLCBpdCB3aWxsIHJldHVybiBgbnVsbGAgaW5zdGVhZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb3IgcHJlc2V0IG5hbWUgb2YgdGhlIGV4cHJlc3Npb25cbiAgICAgKi9cbiAgICBnZXRFeHByZXNzaW9uKG5hbWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gdGhpcy5fZXhwcmVzc2lvbk1hcFtuYW1lXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgYW4gZXhwcmVzc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBleHByZXNzaW9uIHtAbGluayBWUk1FeHByZXNzaW9ufSB0aGF0IGRlc2NyaWJlcyB0aGUgZXhwcmVzc2lvblxuICAgICAqL1xuICAgIHJlZ2lzdGVyRXhwcmVzc2lvbihleHByZXNzaW9uKSB7XG4gICAgICAgIHRoaXMuX2V4cHJlc3Npb25zLnB1c2goZXhwcmVzc2lvbik7XG4gICAgICAgIHRoaXMuX2V4cHJlc3Npb25NYXBbZXhwcmVzc2lvbi5leHByZXNzaW9uTmFtZV0gPSBleHByZXNzaW9uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVbnJlZ2lzdGVyIGFuIGV4cHJlc3Npb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgZXhwcmVzc2lvbiB5b3Ugd2FudCB0byB1bnJlZ2lzdGVyXG4gICAgICovXG4gICAgdW5yZWdpc3RlckV4cHJlc3Npb24oZXhwcmVzc2lvbikge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2V4cHJlc3Npb25zLmluZGV4T2YoZXhwcmVzc2lvbik7XG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVlJNRXhwcmVzc2lvbk1hbmFnZXI6IFRoZSBzcGVjaWZpZWQgZXhwcmVzc2lvbnMgaXMgbm90IHJlZ2lzdGVyZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9leHByZXNzaW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBkZWxldGUgdGhpcy5fZXhwcmVzc2lvbk1hcFtleHByZXNzaW9uLmV4cHJlc3Npb25OYW1lXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBjdXJyZW50IHdlaWdodCBvZiB0aGUgc3BlY2lmaWVkIGV4cHJlc3Npb24uXG4gICAgICogSWYgaXQgZG9lc24ndCBoYXZlIGFuIGV4cHJlc3Npb24gb2YgZ2l2ZW4gbmFtZSwgaXQgd2lsbCByZXR1cm4gYG51bGxgIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBleHByZXNzaW9uXG4gICAgICovXG4gICAgZ2V0VmFsdWUobmFtZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSB0aGlzLmdldEV4cHJlc3Npb24obmFtZSk7XG4gICAgICAgIHJldHVybiAoX2EgPSBleHByZXNzaW9uID09PSBudWxsIHx8IGV4cHJlc3Npb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cHJlc3Npb24ud2VpZ2h0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgYSB3ZWlnaHQgdG8gdGhlIHNwZWNpZmllZCBleHByZXNzaW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgZXhwcmVzc2lvblxuICAgICAqIEBwYXJhbSB3ZWlnaHQgV2VpZ2h0XG4gICAgICovXG4gICAgc2V0VmFsdWUobmFtZSwgd2VpZ2h0KSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSB0aGlzLmdldEV4cHJlc3Npb24obmFtZSk7XG4gICAgICAgIGlmIChleHByZXNzaW9uKSB7XG4gICAgICAgICAgICBleHByZXNzaW9uLndlaWdodCA9IHNhdHVyYXRlKHdlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IGEgdHJhY2sgbmFtZSBvZiBzcGVjaWZpZWQgZXhwcmVzc2lvbi5cbiAgICAgKiBUaGlzIHRyYWNrIG5hbWUgaXMgbmVlZGVkIHRvIG1hbmlwdWxhdGUgaXRzIGV4cHJlc3Npb24gdmlhIGtleWZyYW1lIGFuaW1hdGlvbnMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSBNYW5pcHVsYXRlIGFuIGV4cHJlc3Npb24gdXNpbmcga2V5ZnJhbWUgYW5pbWF0aW9uXG4gICAgICogYGBganNcbiAgICAgKiBjb25zdCB0cmFja05hbWUgPSB2cm0uZXhwcmVzc2lvbk1hbmFnZXIuZ2V0RXhwcmVzc2lvblRyYWNrTmFtZSggJ2JsaW5rJyApO1xuICAgICAqIGNvbnN0IHRyYWNrID0gbmV3IFRIUkVFLk51bWJlcktleWZyYW1lVHJhY2soXG4gICAgICogICBuYW1lLFxuICAgICAqICAgWyAwLjAsIDAuNSwgMS4wIF0sIC8vIHRpbWVzXG4gICAgICogICBbIDAuMCwgMS4wLCAwLjAgXSAvLyB2YWx1ZXNcbiAgICAgKiApO1xuICAgICAqXG4gICAgICogY29uc3QgY2xpcCA9IG5ldyBUSFJFRS5BbmltYXRpb25DbGlwKFxuICAgICAqICAgJ2JsaW5rJywgLy8gbmFtZVxuICAgICAqICAgMS4wLCAvLyBkdXJhdGlvblxuICAgICAqICAgWyB0cmFjayBdIC8vIHRyYWNrc1xuICAgICAqICk7XG4gICAgICpcbiAgICAgKiBjb25zdCBtaXhlciA9IG5ldyBUSFJFRS5BbmltYXRpb25NaXhlciggdnJtLnNjZW5lICk7XG4gICAgICogY29uc3QgYWN0aW9uID0gbWl4ZXIuY2xpcEFjdGlvbiggY2xpcCApO1xuICAgICAqIGFjdGlvbi5wbGF5KCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBleHByZXNzaW9uXG4gICAgICovXG4gICAgZ2V0RXhwcmVzc2lvblRyYWNrTmFtZShuYW1lKSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSB0aGlzLmdldEV4cHJlc3Npb24obmFtZSk7XG4gICAgICAgIHJldHVybiBleHByZXNzaW9uID8gYCR7ZXhwcmVzc2lvbi5uYW1lfS53ZWlnaHRgIDogbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlIGV2ZXJ5IGV4cHJlc3Npb25zLlxuICAgICAqL1xuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgLy8gc2VlIGhvdyBtdWNoIHdlIHNob3VsZCBvdmVycmlkZSBjZXJ0YWluIGV4cHJlc3Npb25zXG4gICAgICAgIGNvbnN0IHdlaWdodE11bHRpcGxpZXJzID0gdGhpcy5fY2FsY3VsYXRlV2VpZ2h0TXVsdGlwbGllcnMoKTtcbiAgICAgICAgLy8gcmVzZXQgZXhwcmVzc2lvbiBiaW5kcyBmaXJzdFxuICAgICAgICB0aGlzLl9leHByZXNzaW9ucy5mb3JFYWNoKChleHByZXNzaW9uKSA9PiB7XG4gICAgICAgICAgICBleHByZXNzaW9uLmNsZWFyQXBwbGllZFdlaWdodCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGhlbiBhcHBseSBiaW5kc1xuICAgICAgICB0aGlzLl9leHByZXNzaW9ucy5mb3JFYWNoKChleHByZXNzaW9uKSA9PiB7XG4gICAgICAgICAgICBsZXQgbXVsdGlwbGllciA9IDEuMDtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBleHByZXNzaW9uLmV4cHJlc3Npb25OYW1lO1xuICAgICAgICAgICAgaWYgKHRoaXMuYmxpbmtFeHByZXNzaW9uTmFtZXMuaW5kZXhPZihuYW1lKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBtdWx0aXBsaWVyICo9IHdlaWdodE11bHRpcGxpZXJzLmJsaW5rO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubG9va0F0RXhwcmVzc2lvbk5hbWVzLmluZGV4T2YobmFtZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGllciAqPSB3ZWlnaHRNdWx0aXBsaWVycy5sb29rQXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5tb3V0aEV4cHJlc3Npb25OYW1lcy5pbmRleE9mKG5hbWUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIG11bHRpcGxpZXIgKj0gd2VpZ2h0TXVsdGlwbGllcnMubW91dGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHByZXNzaW9uLmFwcGx5V2VpZ2h0KHsgbXVsdGlwbGllciB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSBzdW0gb2Ygb3ZlcnJpZGUgYW1vdW50cyB0byBzZWUgaG93IG11Y2ggd2Ugc2hvdWxkIG11bHRpcGx5IHdlaWdodHMgb2YgY2VydGFpbiBleHByZXNzaW9ucy5cbiAgICAgKi9cbiAgICBfY2FsY3VsYXRlV2VpZ2h0TXVsdGlwbGllcnMoKSB7XG4gICAgICAgIGxldCBibGluayA9IDEuMDtcbiAgICAgICAgbGV0IGxvb2tBdCA9IDEuMDtcbiAgICAgICAgbGV0IG1vdXRoID0gMS4wO1xuICAgICAgICB0aGlzLl9leHByZXNzaW9ucy5mb3JFYWNoKChleHByZXNzaW9uKSA9PiB7XG4gICAgICAgICAgICBibGluayAtPSBleHByZXNzaW9uLm92ZXJyaWRlQmxpbmtBbW91bnQ7XG4gICAgICAgICAgICBsb29rQXQgLT0gZXhwcmVzc2lvbi5vdmVycmlkZUxvb2tBdEFtb3VudDtcbiAgICAgICAgICAgIG1vdXRoIC09IGV4cHJlc3Npb24ub3ZlcnJpZGVNb3V0aEFtb3VudDtcbiAgICAgICAgfSk7XG4gICAgICAgIGJsaW5rID0gTWF0aC5tYXgoMC4wLCBibGluayk7XG4gICAgICAgIGxvb2tBdCA9IE1hdGgubWF4KDAuMCwgbG9va0F0KTtcbiAgICAgICAgbW91dGggPSBNYXRoLm1heCgwLjAsIG1vdXRoKTtcbiAgICAgICAgcmV0dXJuIHsgYmxpbmssIGxvb2tBdCwgbW91dGggfTtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuY29uc3QgVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JUeXBlID0ge1xuICAgIENvbG9yOiAnY29sb3InLFxuICAgIEVtaXNzaW9uQ29sb3I6ICdlbWlzc2lvbkNvbG9yJyxcbiAgICBTaGFkZUNvbG9yOiAnc2hhZGVDb2xvcicsXG4gICAgTWF0Y2FwQ29sb3I6ICdtYXRjYXBDb2xvcicsXG4gICAgUmltQ29sb3I6ICdyaW1Db2xvcicsXG4gICAgT3V0bGluZUNvbG9yOiAnb3V0bGluZUNvbG9yJyxcbn07XG5jb25zdCB2MEV4cHJlc3Npb25NYXRlcmlhbENvbG9yTWFwID0ge1xuICAgIF9Db2xvcjogVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JUeXBlLkNvbG9yLFxuICAgIF9FbWlzc2lvbkNvbG9yOiBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvclR5cGUuRW1pc3Npb25Db2xvcixcbiAgICBfU2hhZGVDb2xvcjogVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JUeXBlLlNoYWRlQ29sb3IsXG4gICAgX1JpbUNvbG9yOiBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvclR5cGUuUmltQ29sb3IsXG4gICAgX091dGxpbmVDb2xvcjogVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JUeXBlLk91dGxpbmVDb2xvcixcbn07XG5cbmNvbnN0IF9jb2xvciA9IG5ldyBUSFJFRS5Db2xvcigpO1xuLyoqXG4gKiBBIGJpbmQgb2YgZXhwcmVzc2lvbiBpbmZsdWVuY2VzIHRvIGEgbWF0ZXJpYWwgY29sb3IuXG4gKi9cbmNsYXNzIFZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yQmluZCB7XG4gICAgY29uc3RydWN0b3IoeyBtYXRlcmlhbCwgdHlwZSwgdGFyZ2V0VmFsdWUsIHRhcmdldEFscGhhLCB9KSB7XG4gICAgICAgIHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICAgICAgdGhpcy50YXJnZXRWYWx1ZSA9IHRhcmdldFZhbHVlO1xuICAgICAgICB0aGlzLnRhcmdldEFscGhhID0gdGFyZ2V0QWxwaGEgIT09IG51bGwgJiYgdGFyZ2V0QWxwaGEgIT09IHZvaWQgMCA/IHRhcmdldEFscGhhIDogMS4wO1xuICAgICAgICAvLyBpbml0IGJpbmQgc3RhdGVcbiAgICAgICAgY29uc3QgY29sb3IgPSB0aGlzLl9pbml0Q29sb3JCaW5kU3RhdGUoKTtcbiAgICAgICAgY29uc3QgYWxwaGEgPSB0aGlzLl9pbml0QWxwaGFCaW5kU3RhdGUoKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB7IGNvbG9yLCBhbHBoYSB9O1xuICAgIH1cbiAgICBhcHBseVdlaWdodCh3ZWlnaHQpIHtcbiAgICAgICAgY29uc3QgeyBjb2xvciwgYWxwaGEgfSA9IHRoaXMuX3N0YXRlO1xuICAgICAgICBpZiAoY29sb3IgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgeyBwcm9wZXJ0eU5hbWUsIGRlbHRhVmFsdWUgfSA9IGNvbG9yO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5tYXRlcmlhbFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgaWYgKHRhcmdldCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQuYWRkKF9jb2xvci5jb3B5KGRlbHRhVmFsdWUpLm11bHRpcGx5U2NhbGFyKHdlaWdodCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhbHBoYSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB7IHByb3BlcnR5TmFtZSwgZGVsdGFWYWx1ZSB9ID0gYWxwaGE7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLm1hdGVyaWFsW3Byb3BlcnR5TmFtZV07XG4gICAgICAgICAgICBpZiAodGFyZ2V0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWF0ZXJpYWxbcHJvcGVydHlOYW1lXSArPSBkZWx0YVZhbHVlICogd2VpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGNsZWFyQXBwbGllZFdlaWdodCgpIHtcbiAgICAgICAgY29uc3QgeyBjb2xvciwgYWxwaGEgfSA9IHRoaXMuX3N0YXRlO1xuICAgICAgICBpZiAoY29sb3IgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgeyBwcm9wZXJ0eU5hbWUsIGluaXRpYWxWYWx1ZSB9ID0gY29sb3I7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLm1hdGVyaWFsW3Byb3BlcnR5TmFtZV07XG4gICAgICAgICAgICBpZiAodGFyZ2V0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRhcmdldC5jb3B5KGluaXRpYWxWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFscGhhICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydHlOYW1lLCBpbml0aWFsVmFsdWUgfSA9IGFscGhhO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5tYXRlcmlhbFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgaWYgKHRhcmdldCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hdGVyaWFsW3Byb3BlcnR5TmFtZV0gPSBpbml0aWFsVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2luaXRDb2xvckJpbmRTdGF0ZSgpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IHsgbWF0ZXJpYWwsIHR5cGUsIHRhcmdldFZhbHVlIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWVNYXAgPSB0aGlzLl9nZXRQcm9wZXJ0eU5hbWVNYXAoKTtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gKF9iID0gKF9hID0gcHJvcGVydHlOYW1lTWFwID09PSBudWxsIHx8IHByb3BlcnR5TmFtZU1hcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcGVydHlOYW1lTWFwW3R5cGVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7XG4gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBUcmllZCB0byBhZGQgYSBtYXRlcmlhbCBjb2xvciBiaW5kIHRvIHRoZSBtYXRlcmlhbCAkeyhfYyA9IG1hdGVyaWFsLm5hbWUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcobm8gbmFtZSknfSwgdGhlIHR5cGUgJHt0eXBlfSBidXQgdGhlIG1hdGVyaWFsIG9yIHRoZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuYCk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXQgPSBtYXRlcmlhbFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0YXJnZXQuY2xvbmUoKTtcbiAgICAgICAgLy8g6LKg44Gu5YCk44KS5L+d5oyB44GZ44KL44Gf44KB44GrQ29sb3Iuc3Vi44KS5L2/44KP44Ga44Gr5beu5YiG44KS6KiI566X44GZ44KLXG4gICAgICAgIGNvbnN0IGRlbHRhVmFsdWUgPSBuZXcgVEhSRUUuQ29sb3IodGFyZ2V0VmFsdWUuciAtIGluaXRpYWxWYWx1ZS5yLCB0YXJnZXRWYWx1ZS5nIC0gaW5pdGlhbFZhbHVlLmcsIHRhcmdldFZhbHVlLmIgLSBpbml0aWFsVmFsdWUuYik7XG4gICAgICAgIHJldHVybiB7IHByb3BlcnR5TmFtZSwgaW5pdGlhbFZhbHVlLCBkZWx0YVZhbHVlIH07XG4gICAgfVxuICAgIF9pbml0QWxwaGFCaW5kU3RhdGUoKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCB7IG1hdGVyaWFsLCB0eXBlLCB0YXJnZXRBbHBoYSB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lTWFwID0gdGhpcy5fZ2V0UHJvcGVydHlOYW1lTWFwKCk7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IChfYiA9IChfYSA9IHByb3BlcnR5TmFtZU1hcCA9PT0gbnVsbCB8fCBwcm9wZXJ0eU5hbWVNYXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BlcnR5TmFtZU1hcFt0eXBlXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsO1xuICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IG51bGwgJiYgdGFyZ2V0QWxwaGEgIT09IDEuMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBUcmllZCB0byBhZGQgYSBtYXRlcmlhbCBhbHBoYSBiaW5kIHRvIHRoZSBtYXRlcmlhbCAkeyhfYyA9IG1hdGVyaWFsLm5hbWUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcobm8gbmFtZSknfSwgdGhlIHR5cGUgJHt0eXBlfSBidXQgdGhlIG1hdGVyaWFsIG9yIHRoZSB0eXBlIGRvZXMgbm90IHN1cHBvcnQgYWxwaGEuYCk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IG1hdGVyaWFsW3Byb3BlcnR5TmFtZV07XG4gICAgICAgIGNvbnN0IGRlbHRhVmFsdWUgPSB0YXJnZXRBbHBoYSAtIGluaXRpYWxWYWx1ZTtcbiAgICAgICAgcmV0dXJuIHsgcHJvcGVydHlOYW1lLCBpbml0aWFsVmFsdWUsIGRlbHRhVmFsdWUgfTtcbiAgICB9XG4gICAgX2dldFByb3BlcnR5TmFtZU1hcCgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuICgoX2IgPSAoX2EgPSBPYmplY3QuZW50cmllcyhWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvckJpbmQuX3Byb3BlcnR5TmFtZU1hcE1hcCkuZmluZCgoW2Rpc3Rpbmd1aXNoZXJdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXRlcmlhbFtkaXN0aW5ndWlzaGVyXSA9PT0gdHJ1ZTtcbiAgICAgICAgfSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsxXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbnVsbCk7XG4gICAgfVxufVxuLyoqXG4gKiBNYXBwaW5nIG9mIHByb3BlcnR5IG5hbWVzIGZyb20gVlJNQy9tYXRlcmlhbENvbG9yQmluZHMudHlwZSB0byB0aHJlZS5qcy9NYXRlcmlhbC5cbiAqIFRoZSBmaXJzdCBlbGVtZW50IHN0YW5kcyBmb3IgY29sb3IgY2hhbm5lbHMsIHRoZSBzZWNvbmQgZWxlbWVudCBzdGFuZHMgZm9yIHRoZSBhbHBoYSBjaGFubmVsLlxuICogVGhlIHNlY29uZCBlbGVtZW50IGNhbiBiZSBudWxsIGlmIHRoZSB0YXJnZXQgcHJvcGVydHkgZG9lc24ndCBleGlzdC5cbiAqL1xuLy8gVE9ETzogV2UgbWlnaHQgd2FudCB0byB1c2UgdGhlIGBzYXRpc2ZpZXNgIG9wZXJhdG9yIG9uY2Ugd2UgYnVtcCBUUyB0byA0Ljkgb3IgaGlnaGVyXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9waXhpdi90aHJlZS12cm0vcHVsbC8xMzIzI2Rpc2N1c3Npb25fcjEzNzQwMjAwMzVcblZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yQmluZC5fcHJvcGVydHlOYW1lTWFwTWFwID0ge1xuICAgIGlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw6IHtcbiAgICAgICAgY29sb3I6IFsnY29sb3InLCAnb3BhY2l0eSddLFxuICAgICAgICBlbWlzc2lvbkNvbG9yOiBbJ2VtaXNzaXZlJywgbnVsbF0sXG4gICAgfSxcbiAgICBpc01lc2hCYXNpY01hdGVyaWFsOiB7XG4gICAgICAgIGNvbG9yOiBbJ2NvbG9yJywgJ29wYWNpdHknXSxcbiAgICB9LFxuICAgIGlzTVRvb25NYXRlcmlhbDoge1xuICAgICAgICBjb2xvcjogWydjb2xvcicsICdvcGFjaXR5J10sXG4gICAgICAgIGVtaXNzaW9uQ29sb3I6IFsnZW1pc3NpdmUnLCBudWxsXSxcbiAgICAgICAgb3V0bGluZUNvbG9yOiBbJ291dGxpbmVDb2xvckZhY3RvcicsIG51bGxdLFxuICAgICAgICBtYXRjYXBDb2xvcjogWydtYXRjYXBGYWN0b3InLCBudWxsXSxcbiAgICAgICAgcmltQ29sb3I6IFsncGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yJywgbnVsbF0sXG4gICAgICAgIHNoYWRlQ29sb3I6IFsnc2hhZGVDb2xvckZhY3RvcicsIG51bGxdLFxuICAgIH0sXG59O1xuXG4vKipcbiAqIEEgYmluZCBvZiB7QGxpbmsgVlJNRXhwcmVzc2lvbn0gaW5mbHVlbmNlcyB0byBtb3JwaCB0YXJnZXRzLlxuICovXG5jbGFzcyBWUk1FeHByZXNzaW9uTW9ycGhUYXJnZXRCaW5kIHtcbiAgICBjb25zdHJ1Y3Rvcih7IHByaW1pdGl2ZXMsIGluZGV4LCB3ZWlnaHQsIH0pIHtcbiAgICAgICAgdGhpcy5wcmltaXRpdmVzID0gcHJpbWl0aXZlcztcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLndlaWdodCA9IHdlaWdodDtcbiAgICB9XG4gICAgYXBwbHlXZWlnaHQod2VpZ2h0KSB7XG4gICAgICAgIHRoaXMucHJpbWl0aXZlcy5mb3JFYWNoKChtZXNoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoKChfYSA9IG1lc2gubW9ycGhUYXJnZXRJbmZsdWVuY2VzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbdGhpcy5pbmRleF0pICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBtZXNoLm1vcnBoVGFyZ2V0SW5mbHVlbmNlc1t0aGlzLmluZGV4XSArPSB0aGlzLndlaWdodCAqIHdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNsZWFyQXBwbGllZFdlaWdodCgpIHtcbiAgICAgICAgdGhpcy5wcmltaXRpdmVzLmZvckVhY2goKG1lc2gpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGlmICgoKF9hID0gbWVzaC5tb3JwaFRhcmdldEluZmx1ZW5jZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVt0aGlzLmluZGV4XSkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG1lc2gubW9ycGhUYXJnZXRJbmZsdWVuY2VzW3RoaXMuaW5kZXhdID0gMC4wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmNvbnN0IF92MiA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XG4vKipcbiAqIEEgYmluZCBvZiBleHByZXNzaW9uIGluZmx1ZW5jZXMgdG8gdGV4dHVyZSB0cmFuc2Zvcm1zLlxuICovXG5jbGFzcyBWUk1FeHByZXNzaW9uVGV4dHVyZVRyYW5zZm9ybUJpbmQge1xuICAgIGNvbnN0cnVjdG9yKHsgbWF0ZXJpYWwsIHNjYWxlLCBvZmZzZXQsIH0pIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuICAgICAgICB0aGlzLnNjYWxlID0gc2NhbGU7XG4gICAgICAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWVzID0gKF9hID0gT2JqZWN0LmVudHJpZXMoVlJNRXhwcmVzc2lvblRleHR1cmVUcmFuc2Zvcm1CaW5kLl9wcm9wZXJ0eU5hbWVzTWFwKS5maW5kKChbZGlzdGluZ3Vpc2hlcl0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtYXRlcmlhbFtkaXN0aW5ndWlzaGVyXSA9PT0gdHJ1ZTtcbiAgICAgICAgfSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsxXTtcbiAgICAgICAgaWYgKHByb3BlcnR5TmFtZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBUcmllZCB0byBhZGQgYSB0ZXh0dXJlIHRyYW5zZm9ybSBiaW5kIHRvIHRoZSBtYXRlcmlhbCAkeyhfYiA9IG1hdGVyaWFsLm5hbWUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcobm8gbmFtZSknfSBidXQgdGhlIG1hdGVyaWFsIGlzIG5vdCBzdXBwb3J0ZWQuYCk7XG4gICAgICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gW107XG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmZvckVhY2goKHByb3BlcnR5TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0dXJlID0gKF9hID0gbWF0ZXJpYWxbcHJvcGVydHlOYW1lXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtYXRlcmlhbFtwcm9wZXJ0eU5hbWVdID0gdGV4dHVyZTsgLy8gYmVjYXVzZSB0aGUgdGV4dHVyZSBpcyBjbG9uZWRcbiAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsT2Zmc2V0ID0gdGV4dHVyZS5vZmZzZXQuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFsU2NhbGUgPSB0ZXh0dXJlLnJlcGVhdC5jbG9uZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhT2Zmc2V0ID0gb2Zmc2V0LmNsb25lKCkuc3ViKGluaXRpYWxPZmZzZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhU2NhbGUgPSBzY2FsZS5jbG9uZSgpLnN1Yihpbml0aWFsU2NhbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxTY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFTY2FsZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFwcGx5V2VpZ2h0KHdlaWdodCkge1xuICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLmZvckVhY2goKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLm1hdGVyaWFsW3Byb3BlcnR5Lm5hbWVdO1xuICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSAvLyBUT0RPOiB3ZSBzaG91bGQga2ljayB0aGlzIGF0IGBhZGRNYXRlcmlhbFZhbHVlYFxuICAgICAgICAgICAgdGFyZ2V0Lm9mZnNldC5hZGQoX3YyLmNvcHkocHJvcGVydHkuZGVsdGFPZmZzZXQpLm11bHRpcGx5U2NhbGFyKHdlaWdodCkpO1xuICAgICAgICAgICAgdGFyZ2V0LnJlcGVhdC5hZGQoX3YyLmNvcHkocHJvcGVydHkuZGVsdGFTY2FsZSkubXVsdGlwbHlTY2FsYXIod2VpZ2h0KSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjbGVhckFwcGxpZWRXZWlnaHQoKSB7XG4gICAgICAgIHRoaXMuX3Byb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMubWF0ZXJpYWxbcHJvcGVydHkubmFtZV07XG4gICAgICAgICAgICBpZiAodGFyZ2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IC8vIFRPRE86IHdlIHNob3VsZCBraWNrIHRoaXMgYXQgYGFkZE1hdGVyaWFsVmFsdWVgXG4gICAgICAgICAgICB0YXJnZXQub2Zmc2V0LmNvcHkocHJvcGVydHkuaW5pdGlhbE9mZnNldCk7XG4gICAgICAgICAgICB0YXJnZXQucmVwZWF0LmNvcHkocHJvcGVydHkuaW5pdGlhbFNjYWxlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuVlJNRXhwcmVzc2lvblRleHR1cmVUcmFuc2Zvcm1CaW5kLl9wcm9wZXJ0eU5hbWVzTWFwID0ge1xuICAgIGlzTWVzaFN0YW5kYXJkTWF0ZXJpYWw6IFtcbiAgICAgICAgJ21hcCcsXG4gICAgICAgICdlbWlzc2l2ZU1hcCcsXG4gICAgICAgICdidW1wTWFwJyxcbiAgICAgICAgJ25vcm1hbE1hcCcsXG4gICAgICAgICdkaXNwbGFjZW1lbnRNYXAnLFxuICAgICAgICAncm91Z2huZXNzTWFwJyxcbiAgICAgICAgJ21ldGFsbmVzc01hcCcsXG4gICAgICAgICdhbHBoYU1hcCcsXG4gICAgXSxcbiAgICBpc01lc2hCYXNpY01hdGVyaWFsOiBbJ21hcCcsICdzcGVjdWxhck1hcCcsICdhbHBoYU1hcCddLFxuICAgIGlzTVRvb25NYXRlcmlhbDogW1xuICAgICAgICAnbWFwJyxcbiAgICAgICAgJ25vcm1hbE1hcCcsXG4gICAgICAgICdlbWlzc2l2ZU1hcCcsXG4gICAgICAgICdzaGFkZU11bHRpcGx5VGV4dHVyZScsXG4gICAgICAgICdyaW1NdWx0aXBseVRleHR1cmUnLFxuICAgICAgICAnb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlJyxcbiAgICAgICAgJ3V2QW5pbWF0aW9uTWFza1RleHR1cmUnLFxuICAgIF0sXG59O1xuXG4vKipcbiAqIFBvc3NpYmxlIHNwZWMgdmVyc2lvbnMgaXQgcmVjb2duaXplcy5cbiAqL1xuY29uc3QgUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyQ0ID0gbmV3IFNldChbJzEuMCcsICcxLjAtYmV0YSddKTtcbi8qKlxuICogQSBwbHVnaW4gb2YgR0xURkxvYWRlciB0aGF0IGltcG9ydHMgYSB7QGxpbmsgVlJNRXhwcmVzc2lvbk1hbmFnZXJ9IGZyb20gYSBWUk0gZXh0ZW5zaW9uIG9mIGEgR0xURi5cbiAqL1xuY2xhc3MgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbiB7XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIC8vIFdlIHNob3VsZCB1c2UgdGhlIGV4dGVuc2lvbiBuYW1lIGluc3RlYWQgYnV0IHdlIGhhdmUgbXVsdGlwbGUgcGx1Z2lucyBmb3IgYW4gZXh0ZW5zaW9uLi4uXG4gICAgICAgIHJldHVybiAnVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbic7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcnNlcikge1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB9XG4gICAgYWZ0ZXJSb290KGdsdGYpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGdsdGYudXNlckRhdGEudnJtRXhwcmVzc2lvbk1hbmFnZXIgPSB5aWVsZCB0aGlzLl9pbXBvcnQoZ2x0Zik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbXBvcnQgYSB7QGxpbmsgVlJNRXhwcmVzc2lvbk1hbmFnZXJ9IGZyb20gYSBWUk0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZ2x0ZiBBIHBhcnNlZCByZXN1bHQgb2YgR0xURiB0YWtlbiBmcm9tIEdMVEZMb2FkZXJcbiAgICAgKi9cbiAgICBfaW1wb3J0KGdsdGYpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHYxUmVzdWx0ID0geWllbGQgdGhpcy5fdjFJbXBvcnQoZ2x0Zik7XG4gICAgICAgICAgICBpZiAodjFSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjFSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2MFJlc3VsdCA9IHlpZWxkIHRoaXMuX3YwSW1wb3J0KGdsdGYpO1xuICAgICAgICAgICAgaWYgKHYwUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYwUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjFJbXBvcnQoZ2x0Zikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IHRoaXMucGFyc2VyLmpzb247XG4gICAgICAgICAgICAvLyBlYXJseSBhYm9ydCBpZiBpdCBkb2Vzbid0IHVzZSB2cm1cbiAgICAgICAgICAgIGNvbnN0IGlzVlJNVXNlZCA9ICgoX2EgPSBqc29uLmV4dGVuc2lvbnNVc2VkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5kZXhPZignVlJNQ192cm0nKSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKCFpc1ZSTVVzZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IChfYiA9IGpzb24uZXh0ZW5zaW9ucykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWydWUk1DX3ZybSddO1xuICAgICAgICAgICAgaWYgKCFleHRlbnNpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNwZWNWZXJzaW9uID0gZXh0ZW5zaW9uLnNwZWNWZXJzaW9uO1xuICAgICAgICAgICAgaWYgKCFQT1NTSUJMRV9TUEVDX1ZFUlNJT05TJDQuaGFzKHNwZWNWZXJzaW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbjogVW5rbm93biBWUk1DX3ZybSBzcGVjVmVyc2lvbiBcIiR7c3BlY1ZlcnNpb259XCJgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYUV4cHJlc3Npb25zID0gZXh0ZW5zaW9uLmV4cHJlc3Npb25zO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFFeHByZXNzaW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gbGlzdCBleHByZXNzaW9uc1xuICAgICAgICAgICAgY29uc3QgcHJlc2V0TmFtZVNldCA9IG5ldyBTZXQoT2JqZWN0LnZhbHVlcyhWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSkpO1xuICAgICAgICAgICAgY29uc3QgbmFtZVNjaGVtYUV4cHJlc3Npb25NYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBpZiAoc2NoZW1hRXhwcmVzc2lvbnMucHJlc2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhzY2hlbWFFeHByZXNzaW9ucy5wcmVzZXQpLmZvckVhY2goKFtuYW1lLCBzY2hlbWFFeHByZXNzaW9uXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2NoZW1hRXhwcmVzc2lvbiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH0gLy8gdHlwZXNjcmlwdFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXNldE5hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTUV4cHJlc3Npb25Mb2FkZXJQbHVnaW46IFVua25vd24gcHJlc2V0IG5hbWUgXCIke25hbWV9XCIgZGV0ZWN0ZWQuIElnbm9yaW5nIHRoZSBleHByZXNzaW9uYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmFtZVNjaGVtYUV4cHJlc3Npb25NYXAuc2V0KG5hbWUsIHNjaGVtYUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNjaGVtYUV4cHJlc3Npb25zLmN1c3RvbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc2NoZW1hRXhwcmVzc2lvbnMuY3VzdG9tKS5mb3JFYWNoKChbbmFtZSwgc2NoZW1hRXhwcmVzc2lvbl0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXNldE5hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTUV4cHJlc3Npb25Mb2FkZXJQbHVnaW46IEN1c3RvbSBleHByZXNzaW9uIGNhbm5vdCBoYXZlIHByZXNldCBuYW1lIFwiJHtuYW1lfVwiLiBJZ25vcmluZyB0aGUgZXhwcmVzc2lvbmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWVTY2hlbWFFeHByZXNzaW9uTWFwLnNldChuYW1lLCBzY2hlbWFFeHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHByZXBhcmUgbWFuYWdlclxuICAgICAgICAgICAgY29uc3QgbWFuYWdlciA9IG5ldyBWUk1FeHByZXNzaW9uTWFuYWdlcigpO1xuICAgICAgICAgICAgLy8gbG9hZCBleHByZXNzaW9uc1xuICAgICAgICAgICAgeWllbGQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShuYW1lU2NoZW1hRXhwcmVzc2lvbk1hcC5lbnRyaWVzKCkpLm1hcCgoW25hbWUsIHNjaGVtYUV4cHJlc3Npb25dKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBuZXcgVlJNRXhwcmVzc2lvbihuYW1lKTtcbiAgICAgICAgICAgICAgICBnbHRmLnNjZW5lLmFkZChleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uLmlzQmluYXJ5ID0gKF9jID0gc2NoZW1hRXhwcmVzc2lvbi5pc0JpbmFyeSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5vdmVycmlkZUJsaW5rID0gKF9kID0gc2NoZW1hRXhwcmVzc2lvbi5vdmVycmlkZUJsaW5rKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAnbm9uZSc7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5vdmVycmlkZUxvb2tBdCA9IChfZSA9IHNjaGVtYUV4cHJlc3Npb24ub3ZlcnJpZGVMb29rQXQpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6ICdub25lJztcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uLm92ZXJyaWRlTW91dGggPSAoX2YgPSBzY2hlbWFFeHByZXNzaW9uLm92ZXJyaWRlTW91dGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6ICdub25lJztcbiAgICAgICAgICAgICAgICAoX2cgPSBzY2hlbWFFeHByZXNzaW9uLm1vcnBoVGFyZ2V0QmluZHMpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZy5mb3JFYWNoKChiaW5kKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfaztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJpbmQubm9kZSA9PT0gdW5kZWZpbmVkIHx8IGJpbmQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaW1pdGl2ZXMgPSAoeWllbGQgZ2x0ZkV4dHJhY3RQcmltaXRpdmVzRnJvbU5vZGUoZ2x0ZiwgYmluZC5ub2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vcnBoVGFyZ2V0SW5kZXggPSBiaW5kLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgbWVzaCBoYXMgdGhlIHRhcmdldCBtb3JwaCB0YXJnZXRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVzLmV2ZXJ5KChwcmltaXRpdmUpID0+IEFycmF5LmlzQXJyYXkocHJpbWl0aXZlLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vcnBoVGFyZ2V0SW5kZXggPCBwcmltaXRpdmUubW9ycGhUYXJnZXRJbmZsdWVuY2VzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbjogJHtzY2hlbWFFeHByZXNzaW9uLm5hbWV9IGF0dGVtcHRzIHRvIGluZGV4IG1vcnBoICMke21vcnBoVGFyZ2V0SW5kZXh9IGJ1dCBub3QgZm91bmQuYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5hZGRCaW5kKG5ldyBWUk1FeHByZXNzaW9uTW9ycGhUYXJnZXRCaW5kKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW1pdGl2ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogbW9ycGhUYXJnZXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogKF9rID0gYmluZC53ZWlnaHQpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6IDEuMCxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICBpZiAoc2NoZW1hRXhwcmVzc2lvbi5tYXRlcmlhbENvbG9yQmluZHMgfHwgc2NoZW1hRXhwcmVzc2lvbi50ZXh0dXJlVHJhbnNmb3JtQmluZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbGlzdCB1cCBldmVyeSBtYXRlcmlhbCBpbiBgZ2x0Zi5zY2VuZWBcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2x0Zk1hdGVyaWFscyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBnbHRmLnNjZW5lLnRyYXZlcnNlKChvYmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gb2JqZWN0Lm1hdGVyaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGVyaWFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x0Zk1hdGVyaWFscy5wdXNoKG1hdGVyaWFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIChfaCA9IHNjaGVtYUV4cHJlc3Npb24ubWF0ZXJpYWxDb2xvckJpbmRzKSA9PT0gbnVsbCB8fCBfaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2guZm9yRWFjaCgoYmluZCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxzID0gZ2x0Zk1hdGVyaWFscy5maWx0ZXIoKG1hdGVyaWFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxJbmRleCA9IGdsdGZHZXRBc3NvY2lhdGVkTWF0ZXJpYWxJbmRleCh0aGlzLnBhcnNlciwgbWF0ZXJpYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiaW5kLm1hdGVyaWFsID09PSBtYXRlcmlhbEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbHMuZm9yRWFjaCgobWF0ZXJpYWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uLmFkZEJpbmQobmV3IFZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yQmluZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBiaW5kLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoKS5mcm9tQXJyYXkoYmluZC50YXJnZXRWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEFscGhhOiBiaW5kLnRhcmdldFZhbHVlWzNdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIChfaiA9IHNjaGVtYUV4cHJlc3Npb24udGV4dHVyZVRyYW5zZm9ybUJpbmRzKSA9PT0gbnVsbCB8fCBfaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2ouZm9yRWFjaCgoYmluZCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxzID0gZ2x0Zk1hdGVyaWFscy5maWx0ZXIoKG1hdGVyaWFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxJbmRleCA9IGdsdGZHZXRBc3NvY2lhdGVkTWF0ZXJpYWxJbmRleCh0aGlzLnBhcnNlciwgbWF0ZXJpYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiaW5kLm1hdGVyaWFsID09PSBtYXRlcmlhbEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbHMuZm9yRWFjaCgobWF0ZXJpYWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb24uYWRkQmluZChuZXcgVlJNRXhwcmVzc2lvblRleHR1cmVUcmFuc2Zvcm1CaW5kKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogbmV3IFRIUkVFLlZlY3RvcjIoKS5mcm9tQXJyYXkoKF9hID0gYmluZC5vZmZzZXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFswLjAsIDAuMF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogbmV3IFRIUkVFLlZlY3RvcjIoKS5mcm9tQXJyYXkoKF9iID0gYmluZC5zY2FsZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogWzEuMCwgMS4wXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWFuYWdlci5yZWdpc3RlckV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjBJbXBvcnQoZ2x0Zikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gdGhpcy5wYXJzZXIuanNvbjtcbiAgICAgICAgICAgIC8vIGVhcmx5IGFib3J0IGlmIGl0IGRvZXNuJ3QgdXNlIHZybVxuICAgICAgICAgICAgY29uc3QgdnJtRXh0ID0gKF9hID0ganNvbi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuVlJNO1xuICAgICAgICAgICAgaWYgKCF2cm1FeHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYUJsZW5kU2hhcGUgPSB2cm1FeHQuYmxlbmRTaGFwZU1hc3RlcjtcbiAgICAgICAgICAgIGlmICghc2NoZW1hQmxlbmRTaGFwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWFuYWdlciA9IG5ldyBWUk1FeHByZXNzaW9uTWFuYWdlcigpO1xuICAgICAgICAgICAgY29uc3Qgc2NoZW1hQmxlbmRTaGFwZUdyb3VwcyA9IHNjaGVtYUJsZW5kU2hhcGUuYmxlbmRTaGFwZUdyb3VwcztcbiAgICAgICAgICAgIGlmICghc2NoZW1hQmxlbmRTaGFwZUdyb3Vwcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYW5hZ2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYmxlbmRTaGFwZU5hbWVTZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICB5aWVsZCBQcm9taXNlLmFsbChzY2hlbWFCbGVuZFNoYXBlR3JvdXBzLm1hcCgoc2NoZW1hR3JvdXApID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2I7XG4gICAgICAgICAgICAgICAgY29uc3QgdjBQcmVzZXROYW1lID0gc2NoZW1hR3JvdXAucHJlc2V0TmFtZTtcbiAgICAgICAgICAgICAgICBjb25zdCB2MVByZXNldE5hbWUgPSAodjBQcmVzZXROYW1lICE9IG51bGwgJiYgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbi52MHYxUHJlc2V0TmFtZU1hcFt2MFByZXNldE5hbWVdKSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB2MVByZXNldE5hbWUgIT09IG51bGwgJiYgdjFQcmVzZXROYW1lICE9PSB2b2lkIDAgPyB2MVByZXNldE5hbWUgOiBzY2hlbWFHcm91cC5uYW1lO1xuICAgICAgICAgICAgICAgIGlmIChuYW1lID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luOiBPbmUgb2YgY3VzdG9tIGV4cHJlc3Npb25zIGhhcyBubyBuYW1lLiBJZ25vcmluZyB0aGUgZXhwcmVzc2lvbicpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGR1cGxpY2F0aW9uIGNoZWNrXG4gICAgICAgICAgICAgICAgaWYgKGJsZW5kU2hhcGVOYW1lU2V0LmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTUV4cHJlc3Npb25Mb2FkZXJQbHVnaW46IEFuIGV4cHJlc3Npb24gcHJlc2V0ICR7djBQcmVzZXROYW1lfSBoYXMgZHVwbGljYXRlZCBlbnRyaWVzLiBJZ25vcmluZyB0aGUgZXhwcmVzc2lvbmApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJsZW5kU2hhcGVOYW1lU2V0LmFkZChuYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gbmV3IFZSTUV4cHJlc3Npb24obmFtZSk7XG4gICAgICAgICAgICAgICAgZ2x0Zi5zY2VuZS5hZGQoZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5pc0JpbmFyeSA9IChfYiA9IHNjaGVtYUdyb3VwLmlzQmluYXJ5KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyB2MCBkb2Vzbid0IGhhdmUgaWdub3JlIHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAvLyBCaW5kIG1vcnBoVGFyZ2V0XG4gICAgICAgICAgICAgICAgaWYgKHNjaGVtYUdyb3VwLmJpbmRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYUdyb3VwLmJpbmRzLmZvckVhY2goKGJpbmQpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaW5kLm1lc2ggPT09IHVuZGVmaW5lZCB8fCBiaW5kLmluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2Rlc1VzaW5nTWVzaCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgKF9jID0ganNvbi5ub2RlcykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmZvckVhY2goKG5vZGUsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5tZXNoID09PSBiaW5kLm1lc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXNVc2luZ01lc2gucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vcnBoVGFyZ2V0SW5kZXggPSBiaW5kLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgUHJvbWlzZS5hbGwobm9kZXNVc2luZ01lc2gubWFwKChub2RlSW5kZXgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWl0aXZlcyA9ICh5aWVsZCBnbHRmRXh0cmFjdFByaW1pdGl2ZXNGcm9tTm9kZShnbHRmLCBub2RlSW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgbWVzaCBoYXMgdGhlIHRhcmdldCBtb3JwaCB0YXJnZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZXMuZXZlcnkoKHByaW1pdGl2ZSkgPT4gQXJyYXkuaXNBcnJheShwcmltaXRpdmUubW9ycGhUYXJnZXRJbmZsdWVuY2VzKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JwaFRhcmdldEluZGV4IDwgcHJpbWl0aXZlLm1vcnBoVGFyZ2V0SW5mbHVlbmNlcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbjogJHtzY2hlbWFHcm91cC5uYW1lfSBhdHRlbXB0cyB0byBpbmRleCAke21vcnBoVGFyZ2V0SW5kZXh9dGggbW9ycGggYnV0IG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uLmFkZEJpbmQobmV3IFZSTUV4cHJlc3Npb25Nb3JwaFRhcmdldEJpbmQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltaXRpdmVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogbW9ycGhUYXJnZXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAwLjAxICogKChfZCA9IGJpbmQud2VpZ2h0KSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAxMDApLCAvLyBuYXJyb3dpbmcgdGhlIHJhbmdlIGZyb20gWyAwLjAgLSAxMDAuMCBdIHRvIFsgMC4wIC0gMS4wIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEJpbmQgTWF0ZXJpYWxDb2xvciBhbmQgVGV4dHVyZVRyYW5zZm9ybVxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsVmFsdWVzID0gc2NoZW1hR3JvdXAubWF0ZXJpYWxWYWx1ZXM7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGVyaWFsVmFsdWVzICYmIG1hdGVyaWFsVmFsdWVzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbFZhbHVlcy5mb3JFYWNoKChtYXRlcmlhbFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWxWYWx1ZS5tYXRlcmlhbE5hbWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsVmFsdWUucHJvcGVydHlOYW1lID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbFZhbHVlLnRhcmdldFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOOCouODkOOCv+ODvOOBruOCquODluOCuOOCp+OCr+ODiOOBq+ioreWumuOBleOCjOOBpuOBhOOCi+ODnuODhuODquOCouODq+OBruWGheOBi+OCiVxuICAgICAgICAgICAgICAgICAgICAgICAgICogbWF0ZXJpYWxWYWx1ZeOBp+aMh+WumuOBleOCjOOBpuOBhOOCi+ODnuODhuODquOCouODq+OCkumbhuOCgeOCi+OAglxuICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOeJueWumuOBq+OBr+WQjeWJjeOCkuS9v+eUqOOBmeOCi+OAglxuICAgICAgICAgICAgICAgICAgICAgICAgICog44Ki44Km44OI44Op44Kk44Oz5o+P55S755So44Gu44Oe44OG44Oq44Ki44Or44KC5ZCM5pmC44Gr6ZuG44KB44KL44CCXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFscyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2x0Zi5zY2VuZS50cmF2ZXJzZSgob2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9iamVjdC5tYXRlcmlhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG9iamVjdC5tYXRlcmlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWF0ZXJpYWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbHMucHVzaCguLi5tYXRlcmlhbC5maWx0ZXIoKG10bCkgPT4gKG10bC5uYW1lID09PSBtYXRlcmlhbFZhbHVlLm1hdGVyaWFsTmFtZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10bC5uYW1lID09PSBtYXRlcmlhbFZhbHVlLm1hdGVyaWFsTmFtZSArICcgKE91dGxpbmUpJykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbHMuaW5kZXhPZihtdGwpID09PSAtMSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1hdGVyaWFsLm5hbWUgPT09IG1hdGVyaWFsVmFsdWUubWF0ZXJpYWxOYW1lICYmIG1hdGVyaWFscy5pbmRleE9mKG1hdGVyaWFsKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFscy5wdXNoKG1hdGVyaWFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxQcm9wZXJ0eU5hbWUgPSBtYXRlcmlhbFZhbHVlLnByb3BlcnR5TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFscy5mb3JFYWNoKChtYXRlcmlhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRleHR1cmVUcmFuc2Zvcm1CaW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGVyaWFsUHJvcGVydHlOYW1lID09PSAnX01haW5UZXhfU1QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjYWxlID0gbmV3IFRIUkVFLlZlY3RvcjIobWF0ZXJpYWxWYWx1ZS50YXJnZXRWYWx1ZVswXSwgbWF0ZXJpYWxWYWx1ZS50YXJnZXRWYWx1ZVsxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IG5ldyBUSFJFRS5WZWN0b3IyKG1hdGVyaWFsVmFsdWUudGFyZ2V0VmFsdWVbMl0sIG1hdGVyaWFsVmFsdWUudGFyZ2V0VmFsdWVbM10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQueSA9IDEuMCAtIG9mZnNldC55IC0gc2NhbGUueTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5hZGRCaW5kKG5ldyBWUk1FeHByZXNzaW9uVGV4dHVyZVRyYW5zZm9ybUJpbmQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1hdGVyaWFsQ29sb3JCaW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxDb2xvclR5cGUgPSB2MEV4cHJlc3Npb25NYXRlcmlhbENvbG9yTWFwW21hdGVyaWFsUHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWxDb2xvclR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5hZGRCaW5kKG5ldyBWUk1FeHByZXNzaW9uTWF0ZXJpYWxDb2xvckJpbmQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBtYXRlcmlhbENvbG9yVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoKS5mcm9tQXJyYXkobWF0ZXJpYWxWYWx1ZS50YXJnZXRWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBbHBoYTogbWF0ZXJpYWxWYWx1ZS50YXJnZXRWYWx1ZVszXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihtYXRlcmlhbFByb3BlcnR5TmFtZSArICcgaXMgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0pKSk7XG4gICAgICAgICAgICByZXR1cm4gbWFuYWdlcjtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbi52MHYxUHJlc2V0TmFtZU1hcCA9IHtcbiAgICBhOiAnYWEnLFxuICAgIGU6ICdlZScsXG4gICAgaTogJ2loJyxcbiAgICBvOiAnb2gnLFxuICAgIHU6ICdvdScsXG4gICAgYmxpbms6ICdibGluaycsXG4gICAgam95OiAnaGFwcHknLFxuICAgIGFuZ3J5OiAnYW5ncnknLFxuICAgIHNvcnJvdzogJ3NhZCcsXG4gICAgZnVuOiAncmVsYXhlZCcsXG4gICAgbG9va3VwOiAnbG9va1VwJyxcbiAgICBsb29rZG93bjogJ2xvb2tEb3duJyxcbiAgICBsb29rbGVmdDogJ2xvb2tMZWZ0JyxcbiAgICBsb29rcmlnaHQ6ICdsb29rUmlnaHQnLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICBibGlua19sOiAnYmxpbmtMZWZ0JyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgYmxpbmtfcjogJ2JsaW5rUmlnaHQnLFxuICAgIG5ldXRyYWw6ICduZXV0cmFsJyxcbn07XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuY29uc3QgVlJNRXhwcmVzc2lvbk92ZXJyaWRlVHlwZSA9IHtcbiAgICBOb25lOiAnbm9uZScsXG4gICAgQmxvY2s6ICdibG9jaycsXG4gICAgQmxlbmQ6ICdibGVuZCcsXG59O1xuXG5jbGFzcyBWUk1GaXJzdFBlcnNvbiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IFZSTUZpcnN0UGVyc29uIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBodW1hbm9pZCBBIHtAbGluayBWUk1IdW1hbm9pZH1cbiAgICAgKiBAcGFyYW0gbWVzaEFubm90YXRpb25zIEEgcmVuZGVyZXIgc2V0dGluZ3MuIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgW1tSZW5kZXJlckZpcnN0UGVyc29uRmxhZ3NdXSBmb3IgbW9yZSBpbmZvXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoaHVtYW5vaWQsIG1lc2hBbm5vdGF0aW9ucykge1xuICAgICAgICB0aGlzLl9maXJzdFBlcnNvbk9ubHlMYXllciA9IFZSTUZpcnN0UGVyc29uLkRFRkFVTFRfRklSU1RQRVJTT05fT05MWV9MQVlFUjtcbiAgICAgICAgdGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIgPSBWUk1GaXJzdFBlcnNvbi5ERUZBVUxUX1RISVJEUEVSU09OX09OTFlfTEFZRVI7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkTGF5ZXJzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaHVtYW5vaWQgPSBodW1hbm9pZDtcbiAgICAgICAgdGhpcy5tZXNoQW5ub3RhdGlvbnMgPSBtZXNoQW5ub3RhdGlvbnM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvcHkgdGhlIGdpdmVuIHtAbGluayBWUk1GaXJzdFBlcnNvbn0gaW50byB0aGlzIG9uZS5cbiAgICAgKiB7QGxpbmsgaHVtYW5vaWR9IG11c3QgYmUgc2FtZSBhcyB0aGUgc291cmNlIG9uZS5cbiAgICAgKiBAcGFyYW0gc291cmNlIFRoZSB7QGxpbmsgVlJNRmlyc3RQZXJzb259IHlvdSB3YW50IHRvIGNvcHlcbiAgICAgKiBAcmV0dXJucyB0aGlzXG4gICAgICovXG4gICAgY29weShzb3VyY2UpIHtcbiAgICAgICAgaWYgKHRoaXMuaHVtYW5vaWQgIT09IHNvdXJjZS5odW1hbm9pZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWUk1GaXJzdFBlcnNvbjogaHVtYW5vaWQgbXVzdCBiZSBzYW1lIGluIG9yZGVyIHRvIGNvcHknKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lc2hBbm5vdGF0aW9ucyA9IHNvdXJjZS5tZXNoQW5ub3RhdGlvbnMubWFwKChhbm5vdGF0aW9uKSA9PiAoe1xuICAgICAgICAgICAgbWVzaGVzOiBhbm5vdGF0aW9uLm1lc2hlcy5jb25jYXQoKSxcbiAgICAgICAgICAgIHR5cGU6IGFubm90YXRpb24udHlwZSxcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNsb25lIG9mIHRoaXMge0BsaW5rIFZSTUZpcnN0UGVyc29ufS5cbiAgICAgKiBAcmV0dXJucyBDb3BpZWQge0BsaW5rIFZSTUZpcnN0UGVyc29ufVxuICAgICAqL1xuICAgIGNsb25lKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZSTUZpcnN0UGVyc29uKHRoaXMuaHVtYW5vaWQsIHRoaXMubWVzaEFubm90YXRpb25zKS5jb3B5KHRoaXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIGNhbWVyYSBsYXllciByZXByZXNlbnRzIGBGaXJzdFBlcnNvbk9ubHlgIGxheWVyLlxuICAgICAqIE5vdGUgdGhhdCAqKnlvdSBtdXN0IGNhbGwge0BsaW5rIHNldHVwfSBmaXJzdCBiZWZvcmUgeW91IHVzZSB0aGUgbGF5ZXIgZmVhdHVyZSoqIG9yIGl0IGRvZXMgbm90IHdvcmsgcHJvcGVybHkuXG4gICAgICpcbiAgICAgKiBUaGUgdmFsdWUgaXMge0BsaW5rIERFRkFVTFRfRklSU1RQRVJTT05fT05MWV9MQVlFUn0gYnkgZGVmYXVsdCBidXQgeW91IGNhbiBjaGFuZ2UgdGhlIGxheWVyIGJ5IHNwZWNpZnlpbmcgdmlhIHtAbGluayBzZXR1cH0gaWYgeW91IHByZWZlci5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly92cm0uZGV2L2VuL3VuaXZybS9hcGkvdW5pdnJtX3VzZV9maXJzdHBlcnNvbi9cbiAgICAgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jYXBpL2VuL2NvcmUvTGF5ZXJzXG4gICAgICovXG4gICAgZ2V0IGZpcnN0UGVyc29uT25seUxheWVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RQZXJzb25Pbmx5TGF5ZXI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgY2FtZXJhIGxheWVyIHJlcHJlc2VudHMgYFRoaXJkUGVyc29uT25seWAgbGF5ZXIuXG4gICAgICogTm90ZSB0aGF0ICoqeW91IG11c3QgY2FsbCB7QGxpbmsgc2V0dXB9IGZpcnN0IGJlZm9yZSB5b3UgdXNlIHRoZSBsYXllciBmZWF0dXJlKiogb3IgaXQgZG9lcyBub3Qgd29yayBwcm9wZXJseS5cbiAgICAgKlxuICAgICAqIFRoZSB2YWx1ZSBpcyB7QGxpbmsgREVGQVVMVF9USElSRFBFUlNPTl9PTkxZX0xBWUVSfSBieSBkZWZhdWx0IGJ1dCB5b3UgY2FuIGNoYW5nZSB0aGUgbGF5ZXIgYnkgc3BlY2lmeWluZyB2aWEge0BsaW5rIHNldHVwfSBpZiB5b3UgcHJlZmVyLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3ZybS5kZXYvZW4vdW5pdnJtL2FwaS91bml2cm1fdXNlX2ZpcnN0cGVyc29uL1xuICAgICAqIEBzZWUgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNhcGkvZW4vY29yZS9MYXllcnNcbiAgICAgKi9cbiAgICBnZXQgdGhpcmRQZXJzb25Pbmx5TGF5ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGlyZFBlcnNvbk9ubHlMYXllcjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW4gdGhpcyBtZXRob2QsIGl0IGFzc2lnbnMgbGF5ZXJzIGZvciBldmVyeSBtZXNoZXMgYmFzZWQgb24gbWVzaCBhbm5vdGF0aW9ucy5cbiAgICAgKiBZb3UgbXVzdCBjYWxsIHRoaXMgbWV0aG9kIGZpcnN0IGJlZm9yZSB5b3UgdXNlIHRoZSBsYXllciBmZWF0dXJlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhbiBlcXVpdmFsZW50IG9mIFtWUk1GaXJzdFBlcnNvbi5TZXR1cF0oaHR0cHM6Ly9naXRodWIuY29tL3ZybS1jL1VuaVZSTS9ibG9iLzczYTViZDhmY2RkYWEyYTdhODczNTA5OWE5N2U2M2M5ZGIzZTVlYTAvQXNzZXRzL1ZSTS9SdW50aW1lL0ZpcnN0UGVyc29uL1ZSTUZpcnN0UGVyc29uLmNzI0wyOTUtTDI5OSkgb2YgdGhlIFVuaVZSTS5cbiAgICAgKlxuICAgICAqIFRoZSBgY2FtZXJhTGF5ZXJgIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggbGF5ZXIgd2lsbCBiZSBhc3NpZ25lZCBmb3IgYEZpcnN0UGVyc29uT25seWAgLyBgVGhpcmRQZXJzb25Pbmx5YC5cbiAgICAgKiBJbiBVbmlWUk0sIHdlIHNwZWNpZmllZCB0aG9zZSBieSBuYW1pbmcgZWFjaCBkZXNpcmVkIGxheWVyIGFzIGBGSVJTVFBFUlNPTl9PTkxZX0xBWUVSYCAvIGBUSElSRFBFUlNPTl9PTkxZX0xBWUVSYFxuICAgICAqIGJ1dCB3ZSBhcmUgZ29pbmcgdG8gc3BlY2lmeSB0aGVzZSBsYXllcnMgYXQgaGVyZSBzaW5jZSB3ZSBhcmUgdW5hYmxlIHRvIG5hbWUgbGF5ZXJzIGluIFRocmVlLmpzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhbWVyYUxheWVyIFNwZWNpZnkgd2hpY2ggbGF5ZXIgd2lsbCBiZSBmb3IgYEZpcnN0UGVyc29uT25seWAgLyBgVGhpcmRQZXJzb25Pbmx5YC5cbiAgICAgKi9cbiAgICBzZXR1cCh7IGZpcnN0UGVyc29uT25seUxheWVyID0gVlJNRmlyc3RQZXJzb24uREVGQVVMVF9GSVJTVFBFUlNPTl9PTkxZX0xBWUVSLCB0aGlyZFBlcnNvbk9ubHlMYXllciA9IFZSTUZpcnN0UGVyc29uLkRFRkFVTFRfVEhJUkRQRVJTT05fT05MWV9MQVlFUiwgfSA9IHt9KSB7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXplZExheWVycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZpcnN0UGVyc29uT25seUxheWVyID0gZmlyc3RQZXJzb25Pbmx5TGF5ZXI7XG4gICAgICAgIHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyID0gdGhpcmRQZXJzb25Pbmx5TGF5ZXI7XG4gICAgICAgIHRoaXMubWVzaEFubm90YXRpb25zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0ubWVzaGVzLmZvckVhY2goKG1lc2gpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS50eXBlID09PSAnZmlyc3RQZXJzb25Pbmx5Jykge1xuICAgICAgICAgICAgICAgICAgICBtZXNoLmxheWVycy5zZXQodGhpcy5fZmlyc3RQZXJzb25Pbmx5TGF5ZXIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNoLnRyYXZlcnNlKChjaGlsZCkgPT4gY2hpbGQubGF5ZXJzLnNldCh0aGlzLl9maXJzdFBlcnNvbk9ubHlMYXllcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICd0aGlyZFBlcnNvbk9ubHknKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lc2gubGF5ZXJzLnNldCh0aGlzLl90aGlyZFBlcnNvbk9ubHlMYXllcik7XG4gICAgICAgICAgICAgICAgICAgIG1lc2gudHJhdmVyc2UoKGNoaWxkKSA9PiBjaGlsZC5sYXllcnMuc2V0KHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ2F1dG8nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUhlYWRsZXNzTW9kZWwobWVzaCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZExheWVycyA9IHRydWU7XG4gICAgfVxuICAgIF9leGNsdWRlVHJpYW5nbGVzKHRyaWFuZ2xlcywgYndzLCBza2luSW5kZXgsIGV4Y2x1ZGUpIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgaWYgKGJ3cyAhPSBudWxsICYmIGJ3cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyaWFuZ2xlcy5sZW5ndGg7IGkgKz0gMykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0cmlhbmdsZXNbaV07XG4gICAgICAgICAgICAgICAgY29uc3QgYiA9IHRyaWFuZ2xlc1tpICsgMV07XG4gICAgICAgICAgICAgICAgY29uc3QgYyA9IHRyaWFuZ2xlc1tpICsgMl07XG4gICAgICAgICAgICAgICAgY29uc3QgYncwID0gYndzW2FdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNraW4wID0gc2tpbkluZGV4W2FdO1xuICAgICAgICAgICAgICAgIGlmIChidzBbMF0gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjBbMF0pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoYncwWzFdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4wWzFdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKGJ3MFsyXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMFsyXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlmIChidzBbM10gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjBbM10pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBidzEgPSBid3NbYl07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2tpbjEgPSBza2luSW5kZXhbYl07XG4gICAgICAgICAgICAgICAgaWYgKGJ3MVswXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMVswXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlmIChidzFbMV0gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjFbMV0pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoYncxWzJdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4xWzJdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKGJ3MVszXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMVszXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ3MiA9IGJ3c1tjXTtcbiAgICAgICAgICAgICAgICBjb25zdCBza2luMiA9IHNraW5JbmRleFtjXTtcbiAgICAgICAgICAgICAgICBpZiAoYncyWzBdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4yWzBdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKGJ3MlsxXSA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhza2luMlsxXSkpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlmIChidzJbMl0gPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMoc2tpbjJbMl0pKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoYncyWzNdID4gMCAmJiBleGNsdWRlLmluY2x1ZGVzKHNraW4yWzNdKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgdHJpYW5nbGVzW2NvdW50KytdID0gYTtcbiAgICAgICAgICAgICAgICB0cmlhbmdsZXNbY291bnQrK10gPSBiO1xuICAgICAgICAgICAgICAgIHRyaWFuZ2xlc1tjb3VudCsrXSA9IGM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvdW50O1xuICAgIH1cbiAgICBfY3JlYXRlRXJhc2VkTWVzaChzcmMsIGVyYXNpbmdCb25lc0luZGV4KSB7XG4gICAgICAgIGNvbnN0IGRzdCA9IG5ldyBUSFJFRS5Ta2lubmVkTWVzaChzcmMuZ2VvbWV0cnkuY2xvbmUoKSwgc3JjLm1hdGVyaWFsKTtcbiAgICAgICAgZHN0Lm5hbWUgPSBgJHtzcmMubmFtZX0oZXJhc2UpYDtcbiAgICAgICAgZHN0LmZydXN0dW1DdWxsZWQgPSBzcmMuZnJ1c3R1bUN1bGxlZDtcbiAgICAgICAgZHN0LmxheWVycy5zZXQodGhpcy5fZmlyc3RQZXJzb25Pbmx5TGF5ZXIpO1xuICAgICAgICBjb25zdCBnZW9tZXRyeSA9IGRzdC5nZW9tZXRyeTtcbiAgICAgICAgY29uc3Qgc2tpbkluZGV4QXR0ciA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnc2tpbkluZGV4Jyk7XG4gICAgICAgIGNvbnN0IHNraW5JbmRleEF0dHJBcnJheSA9IHNraW5JbmRleEF0dHIgaW5zdGFuY2VvZiBUSFJFRS5HTEJ1ZmZlckF0dHJpYnV0ZSA/IFtdIDogc2tpbkluZGV4QXR0ci5hcnJheTtcbiAgICAgICAgY29uc3Qgc2tpbkluZGV4ID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2tpbkluZGV4QXR0ckFycmF5Lmxlbmd0aDsgaSArPSA0KSB7XG4gICAgICAgICAgICBza2luSW5kZXgucHVzaChbXG4gICAgICAgICAgICAgICAgc2tpbkluZGV4QXR0ckFycmF5W2ldLFxuICAgICAgICAgICAgICAgIHNraW5JbmRleEF0dHJBcnJheVtpICsgMV0sXG4gICAgICAgICAgICAgICAgc2tpbkluZGV4QXR0ckFycmF5W2kgKyAyXSxcbiAgICAgICAgICAgICAgICBza2luSW5kZXhBdHRyQXJyYXlbaSArIDNdLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2tpbldlaWdodEF0dHIgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3NraW5XZWlnaHQnKTtcbiAgICAgICAgY29uc3Qgc2tpbldlaWdodEF0dHJBcnJheSA9IHNraW5XZWlnaHRBdHRyIGluc3RhbmNlb2YgVEhSRUUuR0xCdWZmZXJBdHRyaWJ1dGUgPyBbXSA6IHNraW5XZWlnaHRBdHRyLmFycmF5O1xuICAgICAgICBjb25zdCBza2luV2VpZ2h0ID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2tpbldlaWdodEF0dHJBcnJheS5sZW5ndGg7IGkgKz0gNCkge1xuICAgICAgICAgICAgc2tpbldlaWdodC5wdXNoKFtcbiAgICAgICAgICAgICAgICBza2luV2VpZ2h0QXR0ckFycmF5W2ldLFxuICAgICAgICAgICAgICAgIHNraW5XZWlnaHRBdHRyQXJyYXlbaSArIDFdLFxuICAgICAgICAgICAgICAgIHNraW5XZWlnaHRBdHRyQXJyYXlbaSArIDJdLFxuICAgICAgICAgICAgICAgIHNraW5XZWlnaHRBdHRyQXJyYXlbaSArIDNdLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBnZW9tZXRyeS5nZXRJbmRleCgpO1xuICAgICAgICBpZiAoIWluZGV4KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZ2VvbWV0cnkgZG9lc24ndCBoYXZlIGFuIGluZGV4IGJ1ZmZlclwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvbGRUcmlhbmdsZXMgPSBBcnJheS5mcm9tKGluZGV4LmFycmF5KTtcbiAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLl9leGNsdWRlVHJpYW5nbGVzKG9sZFRyaWFuZ2xlcywgc2tpbldlaWdodCwgc2tpbkluZGV4LCBlcmFzaW5nQm9uZXNJbmRleCk7XG4gICAgICAgIGNvbnN0IG5ld1RyaWFuZ2xlID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgbmV3VHJpYW5nbGVbaV0gPSBvbGRUcmlhbmdsZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgZ2VvbWV0cnkuc2V0SW5kZXgobmV3VHJpYW5nbGUpO1xuICAgICAgICAvLyBtdG9vbiBtYXRlcmlhbCBpbmNsdWRlcyBvbkJlZm9yZVJlbmRlci4gdGhpcyBpcyB1bnN1cHBvcnRlZCBhdCBTa2lubmVkTWVzaCNjbG9uZVxuICAgICAgICBpZiAoc3JjLm9uQmVmb3JlUmVuZGVyKSB7XG4gICAgICAgICAgICBkc3Qub25CZWZvcmVSZW5kZXIgPSBzcmMub25CZWZvcmVSZW5kZXI7XG4gICAgICAgIH1cbiAgICAgICAgZHN0LmJpbmQobmV3IFRIUkVFLlNrZWxldG9uKHNyYy5za2VsZXRvbi5ib25lcywgc3JjLnNrZWxldG9uLmJvbmVJbnZlcnNlcyksIG5ldyBUSFJFRS5NYXRyaXg0KCkpO1xuICAgICAgICByZXR1cm4gZHN0O1xuICAgIH1cbiAgICBfY3JlYXRlSGVhZGxlc3NNb2RlbEZvclNraW5uZWRNZXNoKHBhcmVudCwgbWVzaCkge1xuICAgICAgICBjb25zdCBlcmFzZUJvbmVJbmRleGVzID0gW107XG4gICAgICAgIG1lc2guc2tlbGV0b24uYm9uZXMuZm9yRWFjaCgoYm9uZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0VyYXNlVGFyZ2V0KGJvbmUpKVxuICAgICAgICAgICAgICAgIGVyYXNlQm9uZUluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBVbmxpa2UgVW5pVlJNIHdlIGRvbid0IGNvcHkgbWVzaCBpZiBubyBpbnZpc2libGUgYm9uZSB3YXMgZm91bmRcbiAgICAgICAgaWYgKCFlcmFzZUJvbmVJbmRleGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgbWVzaC5sYXllcnMuZW5hYmxlKHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyKTtcbiAgICAgICAgICAgIG1lc2gubGF5ZXJzLmVuYWJsZSh0aGlzLl9maXJzdFBlcnNvbk9ubHlMYXllcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbWVzaC5sYXllcnMuc2V0KHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyKTtcbiAgICAgICAgY29uc3QgbmV3TWVzaCA9IHRoaXMuX2NyZWF0ZUVyYXNlZE1lc2gobWVzaCwgZXJhc2VCb25lSW5kZXhlcyk7XG4gICAgICAgIHBhcmVudC5hZGQobmV3TWVzaCk7XG4gICAgfVxuICAgIF9jcmVhdGVIZWFkbGVzc01vZGVsKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ0dyb3VwJykge1xuICAgICAgICAgICAgbm9kZS5sYXllcnMuc2V0KHRoaXMuX3RoaXJkUGVyc29uT25seUxheWVyKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0VyYXNlVGFyZ2V0KG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgbm9kZS50cmF2ZXJzZSgoY2hpbGQpID0+IGNoaWxkLmxheWVycy5zZXQodGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xuICAgICAgICAgICAgICAgIHBhcmVudC5uYW1lID0gYF9oZWFkbGVzc18ke25vZGUubmFtZX1gO1xuICAgICAgICAgICAgICAgIHBhcmVudC5sYXllcnMuc2V0KHRoaXMuX2ZpcnN0UGVyc29uT25seUxheWVyKTtcbiAgICAgICAgICAgICAgICBub2RlLnBhcmVudC5hZGQocGFyZW50KTtcbiAgICAgICAgICAgICAgICBub2RlLmNoaWxkcmVuXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGNoaWxkKSA9PiBjaGlsZC50eXBlID09PSAnU2tpbm5lZE1lc2gnKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2tpbm5lZE1lc2ggPSBjaGlsZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlSGVhZGxlc3NNb2RlbEZvclNraW5uZWRNZXNoKHBhcmVudCwgc2tpbm5lZE1lc2gpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG5vZGUudHlwZSA9PT0gJ1NraW5uZWRNZXNoJykge1xuICAgICAgICAgICAgY29uc3Qgc2tpbm5lZE1lc2ggPSBub2RlO1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlSGVhZGxlc3NNb2RlbEZvclNraW5uZWRNZXNoKG5vZGUucGFyZW50LCBza2lubmVkTWVzaCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNFcmFzZVRhcmdldChub2RlKSkge1xuICAgICAgICAgICAgICAgIG5vZGUubGF5ZXJzLnNldCh0aGlzLl90aGlyZFBlcnNvbk9ubHlMYXllcik7XG4gICAgICAgICAgICAgICAgbm9kZS50cmF2ZXJzZSgoY2hpbGQpID0+IGNoaWxkLmxheWVycy5zZXQodGhpcy5fdGhpcmRQZXJzb25Pbmx5TGF5ZXIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBfaXNFcmFzZVRhcmdldChib25lKSB7XG4gICAgICAgIGlmIChib25lID09PSB0aGlzLmh1bWFub2lkLmdldFJhd0JvbmVOb2RlKCdoZWFkJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFib25lLnBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzRXJhc2VUYXJnZXQoYm9uZS5wYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBBIGRlZmF1bHQgY2FtZXJhIGxheWVyIGZvciBgRmlyc3RQZXJzb25Pbmx5YCBsYXllci5cbiAqXG4gKiBAc2VlIFtbZ2V0Rmlyc3RQZXJzb25Pbmx5TGF5ZXJdXVxuICovXG5WUk1GaXJzdFBlcnNvbi5ERUZBVUxUX0ZJUlNUUEVSU09OX09OTFlfTEFZRVIgPSA5O1xuLyoqXG4gKiBBIGRlZmF1bHQgY2FtZXJhIGxheWVyIGZvciBgVGhpcmRQZXJzb25Pbmx5YCBsYXllci5cbiAqXG4gKiBAc2VlIFtbZ2V0VGhpcmRQZXJzb25Pbmx5TGF5ZXJdXVxuICovXG5WUk1GaXJzdFBlcnNvbi5ERUZBVUxUX1RISVJEUEVSU09OX09OTFlfTEFZRVIgPSAxMDtcblxuLyoqXG4gKiBQb3NzaWJsZSBzcGVjIHZlcnNpb25zIGl0IHJlY29nbml6ZXMuXG4gKi9cbmNvbnN0IFBPU1NJQkxFX1NQRUNfVkVSU0lPTlMkMyA9IG5ldyBTZXQoWycxLjAnLCAnMS4wLWJldGEnXSk7XG4vKipcbiAqIEEgcGx1Z2luIG9mIEdMVEZMb2FkZXIgdGhhdCBpbXBvcnRzIGEge0BsaW5rIFZSTUZpcnN0UGVyc29ufSBmcm9tIGEgVlJNIGV4dGVuc2lvbiBvZiBhIEdMVEYuXG4gKi9cbmNsYXNzIFZSTUZpcnN0UGVyc29uTG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHVzZSB0aGUgZXh0ZW5zaW9uIG5hbWUgaW5zdGVhZCBidXQgd2UgaGF2ZSBtdWx0aXBsZSBwbHVnaW5zIGZvciBhbiBleHRlbnNpb24uLi5cbiAgICAgICAgcmV0dXJuICdWUk1GaXJzdFBlcnNvbkxvYWRlclBsdWdpbic7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcnNlcikge1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB9XG4gICAgYWZ0ZXJSb290KGdsdGYpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHZybUh1bWFub2lkID0gZ2x0Zi51c2VyRGF0YS52cm1IdW1hbm9pZDtcbiAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgZGlzdGluZ3Vpc2ggbnVsbCBhbmQgdW5kZWZpbmVkXG4gICAgICAgICAgICAvLyBzaW5jZSB2cm1IdW1hbm9pZCBtaWdodCBiZSBudWxsIGFzIGEgcmVzdWx0XG4gICAgICAgICAgICBpZiAodnJtSHVtYW5vaWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh2cm1IdW1hbm9pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWUk1GaXJzdFBlcnNvbkxvYWRlclBsdWdpbjogdnJtSHVtYW5vaWQgaXMgdW5kZWZpbmVkLiBWUk1IdW1hbm9pZExvYWRlclBsdWdpbiBoYXZlIHRvIGJlIHVzZWQgZmlyc3QnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdsdGYudXNlckRhdGEudnJtRmlyc3RQZXJzb24gPSB5aWVsZCB0aGlzLl9pbXBvcnQoZ2x0ZiwgdnJtSHVtYW5vaWQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW1wb3J0IGEge0BsaW5rIFZSTUZpcnN0UGVyc29ufSBmcm9tIGEgVlJNLlxuICAgICAqXG4gICAgICogQHBhcmFtIGdsdGYgQSBwYXJzZWQgcmVzdWx0IG9mIEdMVEYgdGFrZW4gZnJvbSBHTFRGTG9hZGVyXG4gICAgICogQHBhcmFtIGh1bWFub2lkIEEge0BsaW5rIFZSTUh1bWFub2lkfSBpbnN0YW5jZSB0aGF0IHJlcHJlc2VudHMgdGhlIFZSTVxuICAgICAqL1xuICAgIF9pbXBvcnQoZ2x0ZiwgaHVtYW5vaWQpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmIChodW1hbm9pZCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2MVJlc3VsdCA9IHlpZWxkIHRoaXMuX3YxSW1wb3J0KGdsdGYsIGh1bWFub2lkKTtcbiAgICAgICAgICAgIGlmICh2MVJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2MVJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHYwUmVzdWx0ID0geWllbGQgdGhpcy5fdjBJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQpO1xuICAgICAgICAgICAgaWYgKHYwUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYwUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjFJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgdnJtXG4gICAgICAgICAgICBjb25zdCBpc1ZSTVVzZWQgPSAoKF9hID0ganNvbi5leHRlbnNpb25zVXNlZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmluZGV4T2YoJ1ZSTUNfdnJtJykpICE9PSAtMTtcbiAgICAgICAgICAgIGlmICghaXNWUk1Vc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSAoX2IgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYlsnVlJNQ192cm0nXTtcbiAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzcGVjVmVyc2lvbiA9IGV4dGVuc2lvbi5zcGVjVmVyc2lvbjtcbiAgICAgICAgICAgIGlmICghUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyQzLmhhcyhzcGVjVmVyc2lvbikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTUZpcnN0UGVyc29uTG9hZGVyUGx1Z2luOiBVbmtub3duIFZSTUNfdnJtIHNwZWNWZXJzaW9uIFwiJHtzcGVjVmVyc2lvbn1cImApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hRmlyc3RQZXJzb24gPSBleHRlbnNpb24uZmlyc3RQZXJzb247XG4gICAgICAgICAgICBpZiAoIXNjaGVtYUZpcnN0UGVyc29uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtZXNoQW5ub3RhdGlvbnMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVQcmltaXRpdmVzTWFwID0geWllbGQgZ2x0ZkV4dHJhY3RQcmltaXRpdmVzRnJvbU5vZGVzKGdsdGYpO1xuICAgICAgICAgICAgQXJyYXkuZnJvbShub2RlUHJpbWl0aXZlc01hcC5lbnRyaWVzKCkpLmZvckVhY2goKFtub2RlSW5kZXgsIHByaW1pdGl2ZXNdKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFubm90YXRpb24gPSBzY2hlbWFGaXJzdFBlcnNvbi5tZXNoQW5ub3RhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgPyBzY2hlbWFGaXJzdFBlcnNvbi5tZXNoQW5ub3RhdGlvbnMuZmluZCgoYSkgPT4gYS5ub2RlID09PSBub2RlSW5kZXgpXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIG1lc2hBbm5vdGF0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgbWVzaGVzOiBwcmltaXRpdmVzLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAoX2EgPSBhbm5vdGF0aW9uID09PSBudWxsIHx8IGFubm90YXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFubm90YXRpb24udHlwZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2JvdGgnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFZSTUZpcnN0UGVyc29uKGh1bWFub2lkLCBtZXNoQW5ub3RhdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3YwSW1wb3J0KGdsdGYsIGh1bWFub2lkKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgY29uc3QgdnJtRXh0ID0gKF9hID0ganNvbi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuVlJNO1xuICAgICAgICAgICAgaWYgKCF2cm1FeHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYUZpcnN0UGVyc29uID0gdnJtRXh0LmZpcnN0UGVyc29uO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFGaXJzdFBlcnNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWVzaEFubm90YXRpb25zID0gW107XG4gICAgICAgICAgICBjb25zdCBub2RlUHJpbWl0aXZlc01hcCA9IHlpZWxkIGdsdGZFeHRyYWN0UHJpbWl0aXZlc0Zyb21Ob2RlcyhnbHRmKTtcbiAgICAgICAgICAgIEFycmF5LmZyb20obm9kZVByaW1pdGl2ZXNNYXAuZW50cmllcygpKS5mb3JFYWNoKChbbm9kZUluZGV4LCBwcmltaXRpdmVzXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVtYU5vZGUgPSBqc29uLm5vZGVzW25vZGVJbmRleF07XG4gICAgICAgICAgICAgICAgY29uc3QgZmxhZyA9IHNjaGVtYUZpcnN0UGVyc29uLm1lc2hBbm5vdGF0aW9uc1xuICAgICAgICAgICAgICAgICAgICA/IHNjaGVtYUZpcnN0UGVyc29uLm1lc2hBbm5vdGF0aW9ucy5maW5kKChhKSA9PiBhLm1lc2ggPT09IHNjaGVtYU5vZGUubWVzaClcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgbWVzaEFubm90YXRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBtZXNoZXM6IHByaW1pdGl2ZXMsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuX2NvbnZlcnRWMEZsYWdUb1YxVHlwZShmbGFnID09PSBudWxsIHx8IGZsYWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZsYWcuZmlyc3RQZXJzb25GbGFnKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBWUk1GaXJzdFBlcnNvbihodW1hbm9pZCwgbWVzaEFubm90YXRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9jb252ZXJ0VjBGbGFnVG9WMVR5cGUoZmxhZykge1xuICAgICAgICBpZiAoZmxhZyA9PT0gJ0ZpcnN0UGVyc29uT25seScpIHtcbiAgICAgICAgICAgIHJldHVybiAnZmlyc3RQZXJzb25Pbmx5JztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmbGFnID09PSAnVGhpcmRQZXJzb25Pbmx5Jykge1xuICAgICAgICAgICAgcmV0dXJuICd0aGlyZFBlcnNvbk9ubHknO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGZsYWcgPT09ICdBdXRvJykge1xuICAgICAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnYm90aCc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuY29uc3QgVlJNRmlyc3RQZXJzb25NZXNoQW5ub3RhdGlvblR5cGUgPSB7XG4gICAgQXV0bzogJ2F1dG8nLFxuICAgIEJvdGg6ICdib3RoJyxcbiAgICBUaGlyZFBlcnNvbk9ubHk6ICd0aGlyZFBlcnNvbk9ubHknLFxuICAgIEZpcnN0UGVyc29uT25seTogJ2ZpcnN0UGVyc29uT25seScsXG59O1xuXG5jb25zdCBfdjNBJDQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3YzQiQyID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF9xdWF0QSQ1ID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbmNsYXNzIFZSTUh1bWFub2lkSGVscGVyIGV4dGVuZHMgVEhSRUUuR3JvdXAge1xuICAgIGNvbnN0cnVjdG9yKGh1bWFub2lkKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudnJtSHVtYW5vaWQgPSBodW1hbm9pZDtcbiAgICAgICAgdGhpcy5fYm9uZUF4ZXNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIE9iamVjdC52YWx1ZXMoaHVtYW5vaWQuaHVtYW5Cb25lcykuZm9yRWFjaCgoYm9uZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IFRIUkVFLkF4ZXNIZWxwZXIoMS4wKTtcbiAgICAgICAgICAgIGhlbHBlci5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICBoZWxwZXIubWF0ZXJpYWwuZGVwdGhUZXN0ID0gZmFsc2U7XG4gICAgICAgICAgICBoZWxwZXIubWF0ZXJpYWwuZGVwdGhXcml0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5hZGQoaGVscGVyKTtcbiAgICAgICAgICAgIHRoaXMuX2JvbmVBeGVzTWFwLnNldChib25lLCBoZWxwZXIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZGlzcG9zZSgpIHtcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLl9ib25lQXhlc01hcC52YWx1ZXMoKSkuZm9yRWFjaCgoYXhlcykgPT4ge1xuICAgICAgICAgICAgYXhlcy5nZW9tZXRyeS5kaXNwb3NlKCk7XG4gICAgICAgICAgICBheGVzLm1hdGVyaWFsLmRpc3Bvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHVwZGF0ZU1hdHJpeFdvcmxkKGZvcmNlKSB7XG4gICAgICAgIEFycmF5LmZyb20odGhpcy5fYm9uZUF4ZXNNYXAuZW50cmllcygpKS5mb3JFYWNoKChbYm9uZSwgYXhlc10pID0+IHtcbiAgICAgICAgICAgIGJvbmUubm9kZS51cGRhdGVXb3JsZE1hdHJpeCh0cnVlLCBmYWxzZSk7XG4gICAgICAgICAgICBib25lLm5vZGUubWF0cml4V29ybGQuZGVjb21wb3NlKF92M0EkNCwgX3F1YXRBJDUsIF92M0IkMik7XG4gICAgICAgICAgICBjb25zdCBzY2FsZSA9IF92M0EkNC5zZXQoMC4xLCAwLjEsIDAuMSkuZGl2aWRlKF92M0IkMik7XG4gICAgICAgICAgICBheGVzLm1hdHJpeC5jb3B5KGJvbmUubm9kZS5tYXRyaXhXb3JsZCkuc2NhbGUoc2NhbGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3VwZXIudXBkYXRlTWF0cml4V29ybGQoZm9yY2UpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKipcbiAqIFRoZSBsaXN0IG9mIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfS4gRGVwZW5kZW5jeSBhd2FyZS5cbiAqL1xuY29uc3QgVlJNSHVtYW5Cb25lTGlzdCA9IFtcbiAgICAnaGlwcycsXG4gICAgJ3NwaW5lJyxcbiAgICAnY2hlc3QnLFxuICAgICd1cHBlckNoZXN0JyxcbiAgICAnbmVjaycsXG4gICAgJ2hlYWQnLFxuICAgICdsZWZ0RXllJyxcbiAgICAncmlnaHRFeWUnLFxuICAgICdqYXcnLFxuICAgICdsZWZ0VXBwZXJMZWcnLFxuICAgICdsZWZ0TG93ZXJMZWcnLFxuICAgICdsZWZ0Rm9vdCcsXG4gICAgJ2xlZnRUb2VzJyxcbiAgICAncmlnaHRVcHBlckxlZycsXG4gICAgJ3JpZ2h0TG93ZXJMZWcnLFxuICAgICdyaWdodEZvb3QnLFxuICAgICdyaWdodFRvZXMnLFxuICAgICdsZWZ0U2hvdWxkZXInLFxuICAgICdsZWZ0VXBwZXJBcm0nLFxuICAgICdsZWZ0TG93ZXJBcm0nLFxuICAgICdsZWZ0SGFuZCcsXG4gICAgJ3JpZ2h0U2hvdWxkZXInLFxuICAgICdyaWdodFVwcGVyQXJtJyxcbiAgICAncmlnaHRMb3dlckFybScsXG4gICAgJ3JpZ2h0SGFuZCcsXG4gICAgJ2xlZnRUaHVtYk1ldGFjYXJwYWwnLFxuICAgICdsZWZ0VGh1bWJQcm94aW1hbCcsXG4gICAgJ2xlZnRUaHVtYkRpc3RhbCcsXG4gICAgJ2xlZnRJbmRleFByb3hpbWFsJyxcbiAgICAnbGVmdEluZGV4SW50ZXJtZWRpYXRlJyxcbiAgICAnbGVmdEluZGV4RGlzdGFsJyxcbiAgICAnbGVmdE1pZGRsZVByb3hpbWFsJyxcbiAgICAnbGVmdE1pZGRsZUludGVybWVkaWF0ZScsXG4gICAgJ2xlZnRNaWRkbGVEaXN0YWwnLFxuICAgICdsZWZ0UmluZ1Byb3hpbWFsJyxcbiAgICAnbGVmdFJpbmdJbnRlcm1lZGlhdGUnLFxuICAgICdsZWZ0UmluZ0Rpc3RhbCcsXG4gICAgJ2xlZnRMaXR0bGVQcm94aW1hbCcsXG4gICAgJ2xlZnRMaXR0bGVJbnRlcm1lZGlhdGUnLFxuICAgICdsZWZ0TGl0dGxlRGlzdGFsJyxcbiAgICAncmlnaHRUaHVtYk1ldGFjYXJwYWwnLFxuICAgICdyaWdodFRodW1iUHJveGltYWwnLFxuICAgICdyaWdodFRodW1iRGlzdGFsJyxcbiAgICAncmlnaHRJbmRleFByb3hpbWFsJyxcbiAgICAncmlnaHRJbmRleEludGVybWVkaWF0ZScsXG4gICAgJ3JpZ2h0SW5kZXhEaXN0YWwnLFxuICAgICdyaWdodE1pZGRsZVByb3hpbWFsJyxcbiAgICAncmlnaHRNaWRkbGVJbnRlcm1lZGlhdGUnLFxuICAgICdyaWdodE1pZGRsZURpc3RhbCcsXG4gICAgJ3JpZ2h0UmluZ1Byb3hpbWFsJyxcbiAgICAncmlnaHRSaW5nSW50ZXJtZWRpYXRlJyxcbiAgICAncmlnaHRSaW5nRGlzdGFsJyxcbiAgICAncmlnaHRMaXR0bGVQcm94aW1hbCcsXG4gICAgJ3JpZ2h0TGl0dGxlSW50ZXJtZWRpYXRlJyxcbiAgICAncmlnaHRMaXR0bGVEaXN0YWwnLFxuXTtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG4vKipcbiAqIFRoZSBuYW1lcyBvZiB7QGxpbmsgVlJNSHVtYW5vaWR9IGJvbmUgbmFtZXMuXG4gKlxuICogUmVmOiBodHRwczovL2dpdGh1Yi5jb20vdnJtLWMvdnJtLXNwZWNpZmljYXRpb24vYmxvYi9tYXN0ZXIvc3BlY2lmaWNhdGlvbi9WUk1DX3ZybS0xLjAvaHVtYW5vaWQubWRcbiAqL1xuY29uc3QgVlJNSHVtYW5Cb25lTmFtZSA9IHtcbiAgICBIaXBzOiAnaGlwcycsXG4gICAgU3BpbmU6ICdzcGluZScsXG4gICAgQ2hlc3Q6ICdjaGVzdCcsXG4gICAgVXBwZXJDaGVzdDogJ3VwcGVyQ2hlc3QnLFxuICAgIE5lY2s6ICduZWNrJyxcbiAgICBIZWFkOiAnaGVhZCcsXG4gICAgTGVmdEV5ZTogJ2xlZnRFeWUnLFxuICAgIFJpZ2h0RXllOiAncmlnaHRFeWUnLFxuICAgIEphdzogJ2phdycsXG4gICAgTGVmdFVwcGVyTGVnOiAnbGVmdFVwcGVyTGVnJyxcbiAgICBMZWZ0TG93ZXJMZWc6ICdsZWZ0TG93ZXJMZWcnLFxuICAgIExlZnRGb290OiAnbGVmdEZvb3QnLFxuICAgIExlZnRUb2VzOiAnbGVmdFRvZXMnLFxuICAgIFJpZ2h0VXBwZXJMZWc6ICdyaWdodFVwcGVyTGVnJyxcbiAgICBSaWdodExvd2VyTGVnOiAncmlnaHRMb3dlckxlZycsXG4gICAgUmlnaHRGb290OiAncmlnaHRGb290JyxcbiAgICBSaWdodFRvZXM6ICdyaWdodFRvZXMnLFxuICAgIExlZnRTaG91bGRlcjogJ2xlZnRTaG91bGRlcicsXG4gICAgTGVmdFVwcGVyQXJtOiAnbGVmdFVwcGVyQXJtJyxcbiAgICBMZWZ0TG93ZXJBcm06ICdsZWZ0TG93ZXJBcm0nLFxuICAgIExlZnRIYW5kOiAnbGVmdEhhbmQnLFxuICAgIFJpZ2h0U2hvdWxkZXI6ICdyaWdodFNob3VsZGVyJyxcbiAgICBSaWdodFVwcGVyQXJtOiAncmlnaHRVcHBlckFybScsXG4gICAgUmlnaHRMb3dlckFybTogJ3JpZ2h0TG93ZXJBcm0nLFxuICAgIFJpZ2h0SGFuZDogJ3JpZ2h0SGFuZCcsXG4gICAgTGVmdFRodW1iTWV0YWNhcnBhbDogJ2xlZnRUaHVtYk1ldGFjYXJwYWwnLFxuICAgIExlZnRUaHVtYlByb3hpbWFsOiAnbGVmdFRodW1iUHJveGltYWwnLFxuICAgIExlZnRUaHVtYkRpc3RhbDogJ2xlZnRUaHVtYkRpc3RhbCcsXG4gICAgTGVmdEluZGV4UHJveGltYWw6ICdsZWZ0SW5kZXhQcm94aW1hbCcsXG4gICAgTGVmdEluZGV4SW50ZXJtZWRpYXRlOiAnbGVmdEluZGV4SW50ZXJtZWRpYXRlJyxcbiAgICBMZWZ0SW5kZXhEaXN0YWw6ICdsZWZ0SW5kZXhEaXN0YWwnLFxuICAgIExlZnRNaWRkbGVQcm94aW1hbDogJ2xlZnRNaWRkbGVQcm94aW1hbCcsXG4gICAgTGVmdE1pZGRsZUludGVybWVkaWF0ZTogJ2xlZnRNaWRkbGVJbnRlcm1lZGlhdGUnLFxuICAgIExlZnRNaWRkbGVEaXN0YWw6ICdsZWZ0TWlkZGxlRGlzdGFsJyxcbiAgICBMZWZ0UmluZ1Byb3hpbWFsOiAnbGVmdFJpbmdQcm94aW1hbCcsXG4gICAgTGVmdFJpbmdJbnRlcm1lZGlhdGU6ICdsZWZ0UmluZ0ludGVybWVkaWF0ZScsXG4gICAgTGVmdFJpbmdEaXN0YWw6ICdsZWZ0UmluZ0Rpc3RhbCcsXG4gICAgTGVmdExpdHRsZVByb3hpbWFsOiAnbGVmdExpdHRsZVByb3hpbWFsJyxcbiAgICBMZWZ0TGl0dGxlSW50ZXJtZWRpYXRlOiAnbGVmdExpdHRsZUludGVybWVkaWF0ZScsXG4gICAgTGVmdExpdHRsZURpc3RhbDogJ2xlZnRMaXR0bGVEaXN0YWwnLFxuICAgIFJpZ2h0VGh1bWJNZXRhY2FycGFsOiAncmlnaHRUaHVtYk1ldGFjYXJwYWwnLFxuICAgIFJpZ2h0VGh1bWJQcm94aW1hbDogJ3JpZ2h0VGh1bWJQcm94aW1hbCcsXG4gICAgUmlnaHRUaHVtYkRpc3RhbDogJ3JpZ2h0VGh1bWJEaXN0YWwnLFxuICAgIFJpZ2h0SW5kZXhQcm94aW1hbDogJ3JpZ2h0SW5kZXhQcm94aW1hbCcsXG4gICAgUmlnaHRJbmRleEludGVybWVkaWF0ZTogJ3JpZ2h0SW5kZXhJbnRlcm1lZGlhdGUnLFxuICAgIFJpZ2h0SW5kZXhEaXN0YWw6ICdyaWdodEluZGV4RGlzdGFsJyxcbiAgICBSaWdodE1pZGRsZVByb3hpbWFsOiAncmlnaHRNaWRkbGVQcm94aW1hbCcsXG4gICAgUmlnaHRNaWRkbGVJbnRlcm1lZGlhdGU6ICdyaWdodE1pZGRsZUludGVybWVkaWF0ZScsXG4gICAgUmlnaHRNaWRkbGVEaXN0YWw6ICdyaWdodE1pZGRsZURpc3RhbCcsXG4gICAgUmlnaHRSaW5nUHJveGltYWw6ICdyaWdodFJpbmdQcm94aW1hbCcsXG4gICAgUmlnaHRSaW5nSW50ZXJtZWRpYXRlOiAncmlnaHRSaW5nSW50ZXJtZWRpYXRlJyxcbiAgICBSaWdodFJpbmdEaXN0YWw6ICdyaWdodFJpbmdEaXN0YWwnLFxuICAgIFJpZ2h0TGl0dGxlUHJveGltYWw6ICdyaWdodExpdHRsZVByb3hpbWFsJyxcbiAgICBSaWdodExpdHRsZUludGVybWVkaWF0ZTogJ3JpZ2h0TGl0dGxlSW50ZXJtZWRpYXRlJyxcbiAgICBSaWdodExpdHRsZURpc3RhbDogJ3JpZ2h0TGl0dGxlRGlzdGFsJyxcbn07XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBtYXBzIGZyb20ge0BsaW5rIFZSTUh1bWFuQm9uZU5hbWV9IHRvIGl0cyBwYXJlbnQge0BsaW5rIFZSTUh1bWFuQm9uZU5hbWV9LlxuICpcbiAqIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL3ZybS1jL3ZybS1zcGVjaWZpY2F0aW9uL2Jsb2IvbWFzdGVyL3NwZWNpZmljYXRpb24vVlJNQ192cm0tMS4wL2h1bWFub2lkLm1kXG4gKi9cbmNvbnN0IFZSTUh1bWFuQm9uZVBhcmVudE1hcCA9IHtcbiAgICBoaXBzOiBudWxsLFxuICAgIHNwaW5lOiAnaGlwcycsXG4gICAgY2hlc3Q6ICdzcGluZScsXG4gICAgdXBwZXJDaGVzdDogJ2NoZXN0JyxcbiAgICBuZWNrOiAndXBwZXJDaGVzdCcsXG4gICAgaGVhZDogJ25lY2snLFxuICAgIGxlZnRFeWU6ICdoZWFkJyxcbiAgICByaWdodEV5ZTogJ2hlYWQnLFxuICAgIGphdzogJ2hlYWQnLFxuICAgIGxlZnRVcHBlckxlZzogJ2hpcHMnLFxuICAgIGxlZnRMb3dlckxlZzogJ2xlZnRVcHBlckxlZycsXG4gICAgbGVmdEZvb3Q6ICdsZWZ0TG93ZXJMZWcnLFxuICAgIGxlZnRUb2VzOiAnbGVmdEZvb3QnLFxuICAgIHJpZ2h0VXBwZXJMZWc6ICdoaXBzJyxcbiAgICByaWdodExvd2VyTGVnOiAncmlnaHRVcHBlckxlZycsXG4gICAgcmlnaHRGb290OiAncmlnaHRMb3dlckxlZycsXG4gICAgcmlnaHRUb2VzOiAncmlnaHRGb290JyxcbiAgICBsZWZ0U2hvdWxkZXI6ICd1cHBlckNoZXN0JyxcbiAgICBsZWZ0VXBwZXJBcm06ICdsZWZ0U2hvdWxkZXInLFxuICAgIGxlZnRMb3dlckFybTogJ2xlZnRVcHBlckFybScsXG4gICAgbGVmdEhhbmQ6ICdsZWZ0TG93ZXJBcm0nLFxuICAgIHJpZ2h0U2hvdWxkZXI6ICd1cHBlckNoZXN0JyxcbiAgICByaWdodFVwcGVyQXJtOiAncmlnaHRTaG91bGRlcicsXG4gICAgcmlnaHRMb3dlckFybTogJ3JpZ2h0VXBwZXJBcm0nLFxuICAgIHJpZ2h0SGFuZDogJ3JpZ2h0TG93ZXJBcm0nLFxuICAgIGxlZnRUaHVtYk1ldGFjYXJwYWw6ICdsZWZ0SGFuZCcsXG4gICAgbGVmdFRodW1iUHJveGltYWw6ICdsZWZ0VGh1bWJNZXRhY2FycGFsJyxcbiAgICBsZWZ0VGh1bWJEaXN0YWw6ICdsZWZ0VGh1bWJQcm94aW1hbCcsXG4gICAgbGVmdEluZGV4UHJveGltYWw6ICdsZWZ0SGFuZCcsXG4gICAgbGVmdEluZGV4SW50ZXJtZWRpYXRlOiAnbGVmdEluZGV4UHJveGltYWwnLFxuICAgIGxlZnRJbmRleERpc3RhbDogJ2xlZnRJbmRleEludGVybWVkaWF0ZScsXG4gICAgbGVmdE1pZGRsZVByb3hpbWFsOiAnbGVmdEhhbmQnLFxuICAgIGxlZnRNaWRkbGVJbnRlcm1lZGlhdGU6ICdsZWZ0TWlkZGxlUHJveGltYWwnLFxuICAgIGxlZnRNaWRkbGVEaXN0YWw6ICdsZWZ0TWlkZGxlSW50ZXJtZWRpYXRlJyxcbiAgICBsZWZ0UmluZ1Byb3hpbWFsOiAnbGVmdEhhbmQnLFxuICAgIGxlZnRSaW5nSW50ZXJtZWRpYXRlOiAnbGVmdFJpbmdQcm94aW1hbCcsXG4gICAgbGVmdFJpbmdEaXN0YWw6ICdsZWZ0UmluZ0ludGVybWVkaWF0ZScsXG4gICAgbGVmdExpdHRsZVByb3hpbWFsOiAnbGVmdEhhbmQnLFxuICAgIGxlZnRMaXR0bGVJbnRlcm1lZGlhdGU6ICdsZWZ0TGl0dGxlUHJveGltYWwnLFxuICAgIGxlZnRMaXR0bGVEaXN0YWw6ICdsZWZ0TGl0dGxlSW50ZXJtZWRpYXRlJyxcbiAgICByaWdodFRodW1iTWV0YWNhcnBhbDogJ3JpZ2h0SGFuZCcsXG4gICAgcmlnaHRUaHVtYlByb3hpbWFsOiAncmlnaHRUaHVtYk1ldGFjYXJwYWwnLFxuICAgIHJpZ2h0VGh1bWJEaXN0YWw6ICdyaWdodFRodW1iUHJveGltYWwnLFxuICAgIHJpZ2h0SW5kZXhQcm94aW1hbDogJ3JpZ2h0SGFuZCcsXG4gICAgcmlnaHRJbmRleEludGVybWVkaWF0ZTogJ3JpZ2h0SW5kZXhQcm94aW1hbCcsXG4gICAgcmlnaHRJbmRleERpc3RhbDogJ3JpZ2h0SW5kZXhJbnRlcm1lZGlhdGUnLFxuICAgIHJpZ2h0TWlkZGxlUHJveGltYWw6ICdyaWdodEhhbmQnLFxuICAgIHJpZ2h0TWlkZGxlSW50ZXJtZWRpYXRlOiAncmlnaHRNaWRkbGVQcm94aW1hbCcsXG4gICAgcmlnaHRNaWRkbGVEaXN0YWw6ICdyaWdodE1pZGRsZUludGVybWVkaWF0ZScsXG4gICAgcmlnaHRSaW5nUHJveGltYWw6ICdyaWdodEhhbmQnLFxuICAgIHJpZ2h0UmluZ0ludGVybWVkaWF0ZTogJ3JpZ2h0UmluZ1Byb3hpbWFsJyxcbiAgICByaWdodFJpbmdEaXN0YWw6ICdyaWdodFJpbmdJbnRlcm1lZGlhdGUnLFxuICAgIHJpZ2h0TGl0dGxlUHJveGltYWw6ICdyaWdodEhhbmQnLFxuICAgIHJpZ2h0TGl0dGxlSW50ZXJtZWRpYXRlOiAncmlnaHRMaXR0bGVQcm94aW1hbCcsXG4gICAgcmlnaHRMaXR0bGVEaXN0YWw6ICdyaWdodExpdHRsZUludGVybWVkaWF0ZScsXG59O1xuXG4vKipcbiAqIEEgY29tcGF0IGZ1bmN0aW9uIGZvciBgUXVhdGVybmlvbi5pbnZlcnQoKWAgLyBgUXVhdGVybmlvbi5pbnZlcnNlKClgLlxuICogYFF1YXRlcm5pb24uaW52ZXJ0KClgIGlzIGludHJvZHVjZWQgaW4gcjEyMyBhbmQgYFF1YXRlcm5pb24uaW52ZXJzZSgpYCBlbWl0cyBhIHdhcm5pbmcuXG4gKiBXZSBhcmUgZ29pbmcgdG8gdXNlIHRoaXMgY29tcGF0IGZvciBhIHdoaWxlLlxuICogQHBhcmFtIHRhcmdldCBBIHRhcmdldCBxdWF0ZXJuaW9uXG4gKi9cbmZ1bmN0aW9uIHF1YXRJbnZlcnRDb21wYXQodGFyZ2V0KSB7XG4gICAgaWYgKHRhcmdldC5pbnZlcnQpIHtcbiAgICAgICAgdGFyZ2V0LmludmVydCgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGFyZ2V0LmludmVyc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cblxuY29uc3QgX3YzQSQzID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF9xdWF0QSQ0ID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbi8qKlxuICogQSBjbGFzcyByZXByZXNlbnRzIHRoZSBSaWcgb2YgYSBWUk0uXG4gKi9cbmNsYXNzIFZSTVJpZyB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IHtAbGluayBWUk1IdW1hbm9pZH0uXG4gICAgICogQHBhcmFtIGh1bWFuQm9uZXMgQSB7QGxpbmsgVlJNSHVtYW5Cb25lc30gY29udGFpbnMgYWxsIHRoZSBib25lcyBvZiB0aGUgbmV3IGh1bWFub2lkXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoaHVtYW5Cb25lcykge1xuICAgICAgICB0aGlzLmh1bWFuQm9uZXMgPSBodW1hbkJvbmVzO1xuICAgICAgICB0aGlzLnJlc3RQb3NlID0gdGhpcy5nZXRBYnNvbHV0ZVBvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBjdXJyZW50IGFic29sdXRlIHBvc2Ugb2YgdGhpcyBodW1hbm9pZCBhcyBhIHtAbGluayBWUk1Qb3NlfS5cbiAgICAgKiBOb3RlIHRoYXQgdGhlIG91dHB1dCByZXN1bHQgd2lsbCBjb250YWluIGluaXRpYWwgc3RhdGUgb2YgdGhlIFZSTSBhbmQgbm90IGNvbXBhdGlibGUgYmV0d2VlbiBkaWZmZXJlbnQgbW9kZWxzLlxuICAgICAqIFlvdSBtaWdodCB3YW50IHRvIHVzZSB7QGxpbmsgZ2V0UG9zZX0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBnZXRBYnNvbHV0ZVBvc2UoKSB7XG4gICAgICAgIGNvbnN0IHBvc2UgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5odW1hbkJvbmVzKS5mb3JFYWNoKCh2cm1Cb25lTmFtZVN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdnJtQm9uZU5hbWUgPSB2cm1Cb25lTmFtZVN0cmluZztcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldEJvbmVOb2RlKHZybUJvbmVOYW1lKTtcbiAgICAgICAgICAgIC8vIElnbm9yZSB3aGVuIHRoZXJlIGFyZSBubyBib25lIG9uIHRoZSBWUk1IdW1hbm9pZFxuICAgICAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiAvIHJvdGF0aW9uIGZyb20gdGhlIG5vZGVcbiAgICAgICAgICAgIF92M0EkMy5jb3B5KG5vZGUucG9zaXRpb24pO1xuICAgICAgICAgICAgX3F1YXRBJDQuY29weShub2RlLnF1YXRlcm5pb24pO1xuICAgICAgICAgICAgLy8gQ29udmVydCB0byByYXcgYXJyYXlzXG4gICAgICAgICAgICBwb3NlW3ZybUJvbmVOYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogX3YzQSQzLnRvQXJyYXkoKSxcbiAgICAgICAgICAgICAgICByb3RhdGlvbjogX3F1YXRBJDQudG9BcnJheSgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwb3NlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgcG9zZSBvZiB0aGlzIGh1bWFub2lkIGFzIGEge0BsaW5rIFZSTVBvc2V9LlxuICAgICAqXG4gICAgICogRWFjaCB0cmFuc2Zvcm0gaXMgYSBsb2NhbCB0cmFuc2Zvcm0gcmVsYXRpdmUgZnJvbSByZXN0IHBvc2UgKFQtcG9zZSkuXG4gICAgICovXG4gICAgZ2V0UG9zZSgpIHtcbiAgICAgICAgY29uc3QgcG9zZSA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmh1bWFuQm9uZXMpLmZvckVhY2goKGJvbmVOYW1lU3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBib25lTmFtZSA9IGJvbmVOYW1lU3RyaW5nO1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Qm9uZU5vZGUoYm9uZU5hbWUpO1xuICAgICAgICAgICAgLy8gSWdub3JlIHdoZW4gdGhlcmUgYXJlIG5vIGJvbmUgb24gdGhlIFZSTUh1bWFub2lkXG4gICAgICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUYWtlIGEgZGlmZiBmcm9tIHJlc3RQb3NlXG4gICAgICAgICAgICBfdjNBJDMuc2V0KDAsIDAsIDApO1xuICAgICAgICAgICAgX3F1YXRBJDQuaWRlbnRpdHkoKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3RTdGF0ZSA9IHRoaXMucmVzdFBvc2VbYm9uZU5hbWVdO1xuICAgICAgICAgICAgaWYgKHJlc3RTdGF0ZSA9PT0gbnVsbCB8fCByZXN0U3RhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3RTdGF0ZS5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIF92M0EkMy5mcm9tQXJyYXkocmVzdFN0YXRlLnBvc2l0aW9uKS5uZWdhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN0U3RhdGUgPT09IG51bGwgfHwgcmVzdFN0YXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXN0U3RhdGUucm90YXRpb24pIHtcbiAgICAgICAgICAgICAgICBxdWF0SW52ZXJ0Q29tcGF0KF9xdWF0QSQ0LmZyb21BcnJheShyZXN0U3RhdGUucm90YXRpb24pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gLyByb3RhdGlvbiBmcm9tIHRoZSBub2RlXG4gICAgICAgICAgICBfdjNBJDMuYWRkKG5vZGUucG9zaXRpb24pO1xuICAgICAgICAgICAgX3F1YXRBJDQucHJlbXVsdGlwbHkobm9kZS5xdWF0ZXJuaW9uKTtcbiAgICAgICAgICAgIC8vIENvbnZlcnQgdG8gcmF3IGFycmF5c1xuICAgICAgICAgICAgcG9zZVtib25lTmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IF92M0EkMy50b0FycmF5KCksXG4gICAgICAgICAgICAgICAgcm90YXRpb246IF9xdWF0QSQ0LnRvQXJyYXkoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcG9zZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTGV0IHRoZSBodW1hbm9pZCBkbyBhIHNwZWNpZmllZCBwb3NlLlxuICAgICAqXG4gICAgICogRWFjaCB0cmFuc2Zvcm0gaGF2ZSB0byBiZSBhIGxvY2FsIHRyYW5zZm9ybSByZWxhdGl2ZSBmcm9tIHJlc3QgcG9zZSAoVC1wb3NlKS5cbiAgICAgKiBZb3UgY2FuIHBhc3Mgd2hhdCB5b3UgZ290IGZyb20ge0BsaW5rIGdldFBvc2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBvc2VPYmplY3QgQSBbW1ZSTVBvc2VdXSB0aGF0IHJlcHJlc2VudHMgYSBzaW5nbGUgcG9zZVxuICAgICAqL1xuICAgIHNldFBvc2UocG9zZU9iamVjdCkge1xuICAgICAgICBPYmplY3QuZW50cmllcyhwb3NlT2JqZWN0KS5mb3JFYWNoKChbYm9uZU5hbWVTdHJpbmcsIHN0YXRlXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYm9uZU5hbWUgPSBib25lTmFtZVN0cmluZztcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldEJvbmVOb2RlKGJvbmVOYW1lKTtcbiAgICAgICAgICAgIC8vIElnbm9yZSB3aGVuIHRoZXJlIGFyZSBubyBib25lIHRoYXQgaXMgZGVmaW5lZCBpbiB0aGUgcG9zZSBvbiB0aGUgVlJNSHVtYW5vaWRcbiAgICAgICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3RTdGF0ZSA9IHRoaXMucmVzdFBvc2VbYm9uZU5hbWVdO1xuICAgICAgICAgICAgaWYgKCFyZXN0U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBJdCdzIHZlcnkgdW5saWtlbHkuIFBvc3NpYmx5IGEgYnVnXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQXBwbHkgdGhlIHN0YXRlIHRvIHRoZSBhY3R1YWwgYm9uZVxuICAgICAgICAgICAgaWYgKHN0YXRlID09PSBudWxsIHx8IHN0YXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdGF0ZS5wb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIG5vZGUucG9zaXRpb24uZnJvbUFycmF5KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdFN0YXRlLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUucG9zaXRpb24uYWRkKF92M0EkMy5mcm9tQXJyYXkocmVzdFN0YXRlLnBvc2l0aW9uKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN0YXRlID09PSBudWxsIHx8IHN0YXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdGF0ZS5yb3RhdGlvbikge1xuICAgICAgICAgICAgICAgIG5vZGUucXVhdGVybmlvbi5mcm9tQXJyYXkoc3RhdGUucm90YXRpb24pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN0U3RhdGUucm90YXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5xdWF0ZXJuaW9uLm11bHRpcGx5KF9xdWF0QSQ0LmZyb21BcnJheShyZXN0U3RhdGUucm90YXRpb24pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNldCB0aGUgaHVtYW5vaWQgdG8gaXRzIHJlc3QgcG9zZS5cbiAgICAgKi9cbiAgICByZXNldFBvc2UoKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMucmVzdFBvc2UpLmZvckVhY2goKFtib25lTmFtZSwgcmVzdF0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldEJvbmVOb2RlKGJvbmVOYW1lKTtcbiAgICAgICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN0ID09PSBudWxsIHx8IHJlc3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3QucG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBub2RlLnBvc2l0aW9uLmZyb21BcnJheShyZXN0LnBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN0ID09PSBudWxsIHx8IHJlc3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3Qucm90YXRpb24pIHtcbiAgICAgICAgICAgICAgICBub2RlLnF1YXRlcm5pb24uZnJvbUFycmF5KHJlc3Qucm90YXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgYm9uZSBib3VuZCB0byBhIHNwZWNpZmllZCB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0sIGFzIGEge0BsaW5rIFZSTUh1bWFuQm9uZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBib25lIHlvdSB3YW50XG4gICAgICovXG4gICAgZ2V0Qm9uZShuYW1lKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuaHVtYW5Cb25lc1tuYW1lXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBib25lIGJvdW5kIHRvIGEgc3BlY2lmaWVkIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfSwgYXMgYSBgVEhSRUUuT2JqZWN0M0RgLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgYm9uZSB5b3Ugd2FudFxuICAgICAqL1xuICAgIGdldEJvbmVOb2RlKG5hbWUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuIChfYiA9IChfYSA9IHRoaXMuaHVtYW5Cb25lc1tuYW1lXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7XG4gICAgfVxufVxuXG5jb25zdCBfdjNBJDIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3F1YXRBJDMgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX2JvbmVXb3JsZFBvcyA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4vKipcbiAqIEEgY2xhc3MgcmVwcmVzZW50cyB0aGUgbm9ybWFsaXplZCBSaWcgb2YgYSBWUk0uXG4gKi9cbmNsYXNzIFZSTUh1bWFub2lkUmlnIGV4dGVuZHMgVlJNUmlnIHtcbiAgICBzdGF0aWMgX3NldHVwVHJhbnNmb3Jtcyhtb2RlbFJpZykge1xuICAgICAgICBjb25zdCByb290ID0gbmV3IFRIUkVFLk9iamVjdDNEKCk7XG4gICAgICAgIHJvb3QubmFtZSA9ICdWUk1IdW1hbm9pZFJpZyc7XG4gICAgICAgIC8vIHN0b3JlIGJvbmVXb3JsZFBvc2l0aW9ucywgYm9uZVdvcmxkUm90YXRpb25zLCBhbmQgcGFyZW50V29ybGRSb3RhdGlvbnNcbiAgICAgICAgY29uc3QgYm9uZVdvcmxkUG9zaXRpb25zID0ge307XG4gICAgICAgIGNvbnN0IGJvbmVSb3RhdGlvbnMgPSB7fTtcbiAgICAgICAgY29uc3QgcGFyZW50V29ybGRSb3RhdGlvbnMgPSB7fTtcbiAgICAgICAgVlJNSHVtYW5Cb25lTGlzdC5mb3JFYWNoKChib25lTmFtZSkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgYm9uZU5vZGUgPSBtb2RlbFJpZy5nZXRCb25lTm9kZShib25lTmFtZSk7XG4gICAgICAgICAgICBpZiAoYm9uZU5vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib25lV29ybGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9uZVdvcmxkUm90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuICAgICAgICAgICAgICAgIGJvbmVOb2RlLnVwZGF0ZVdvcmxkTWF0cml4KHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBib25lTm9kZS5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoYm9uZVdvcmxkUG9zaXRpb24sIGJvbmVXb3JsZFJvdGF0aW9uLCBfdjNBJDIpO1xuICAgICAgICAgICAgICAgIGJvbmVXb3JsZFBvc2l0aW9uc1tib25lTmFtZV0gPSBib25lV29ybGRQb3NpdGlvbjtcbiAgICAgICAgICAgICAgICBib25lUm90YXRpb25zW2JvbmVOYW1lXSA9IGJvbmVOb2RlLnF1YXRlcm5pb24uY2xvbmUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRXb3JsZFJvdGF0aW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbiAgICAgICAgICAgICAgICAoX2EgPSBib25lTm9kZS5wYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tYXRyaXhXb3JsZC5kZWNvbXBvc2UoX3YzQSQyLCBwYXJlbnRXb3JsZFJvdGF0aW9uLCBfdjNBJDIpO1xuICAgICAgICAgICAgICAgIHBhcmVudFdvcmxkUm90YXRpb25zW2JvbmVOYW1lXSA9IHBhcmVudFdvcmxkUm90YXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBidWlsZCByaWcgaGllcmFyY2h5ICsgc3RvcmUgcGFyZW50V29ybGRSb3RhdGlvbnNcbiAgICAgICAgY29uc3QgcmlnQm9uZXMgPSB7fTtcbiAgICAgICAgVlJNSHVtYW5Cb25lTGlzdC5mb3JFYWNoKChib25lTmFtZSkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgYm9uZU5vZGUgPSBtb2RlbFJpZy5nZXRCb25lTm9kZShib25lTmFtZSk7XG4gICAgICAgICAgICBpZiAoYm9uZU5vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib25lV29ybGRQb3NpdGlvbiA9IGJvbmVXb3JsZFBvc2l0aW9uc1tib25lTmFtZV07XG4gICAgICAgICAgICAgICAgLy8gc2VlIHRoZSBuZWFyZXN0IHBhcmVudCBwb3NpdGlvblxuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50Qm9uZU5hbWUgPSBib25lTmFtZTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyZW50Qm9uZVdvcmxkUG9zaXRpb247XG4gICAgICAgICAgICAgICAgd2hpbGUgKHBhcmVudEJvbmVXb3JsZFBvc2l0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEJvbmVOYW1lID0gVlJNSHVtYW5Cb25lUGFyZW50TWFwW2N1cnJlbnRCb25lTmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Qm9uZU5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Qm9uZVdvcmxkUG9zaXRpb24gPSBib25lV29ybGRQb3NpdGlvbnNbY3VycmVudEJvbmVOYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYWRkIHRvIGhpZXJhcmNoeVxuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ0JvbmVOb2RlID0gbmV3IFRIUkVFLk9iamVjdDNEKCk7XG4gICAgICAgICAgICAgICAgcmlnQm9uZU5vZGUubmFtZSA9ICdOb3JtYWxpemVkXycgKyBib25lTm9kZS5uYW1lO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFJpZ0JvbmVOb2RlID0gKGN1cnJlbnRCb25lTmFtZSA/IChfYSA9IHJpZ0JvbmVzW2N1cnJlbnRCb25lTmFtZV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlIDogcm9vdCk7XG4gICAgICAgICAgICAgICAgcGFyZW50UmlnQm9uZU5vZGUuYWRkKHJpZ0JvbmVOb2RlKTtcbiAgICAgICAgICAgICAgICByaWdCb25lTm9kZS5wb3NpdGlvbi5jb3B5KGJvbmVXb3JsZFBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50Qm9uZVdvcmxkUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnQm9uZU5vZGUucG9zaXRpb24uc3ViKHBhcmVudEJvbmVXb3JsZFBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmlnQm9uZXNbYm9uZU5hbWVdID0geyBub2RlOiByaWdCb25lTm9kZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJpZ0JvbmVzOiByaWdCb25lcyxcbiAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICBwYXJlbnRXb3JsZFJvdGF0aW9ucyxcbiAgICAgICAgICAgIGJvbmVSb3RhdGlvbnMsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGh1bWFub2lkKSB7XG4gICAgICAgIGNvbnN0IHsgcmlnQm9uZXMsIHJvb3QsIHBhcmVudFdvcmxkUm90YXRpb25zLCBib25lUm90YXRpb25zIH0gPSBWUk1IdW1hbm9pZFJpZy5fc2V0dXBUcmFuc2Zvcm1zKGh1bWFub2lkKTtcbiAgICAgICAgc3VwZXIocmlnQm9uZXMpO1xuICAgICAgICB0aGlzLm9yaWdpbmFsID0gaHVtYW5vaWQ7XG4gICAgICAgIHRoaXMucm9vdCA9IHJvb3Q7XG4gICAgICAgIHRoaXMuX3BhcmVudFdvcmxkUm90YXRpb25zID0gcGFyZW50V29ybGRSb3RhdGlvbnM7XG4gICAgICAgIHRoaXMuX2JvbmVSb3RhdGlvbnMgPSBib25lUm90YXRpb25zO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhpcyBodW1hbm9pZCByaWcuXG4gICAgICovXG4gICAgdXBkYXRlKCkge1xuICAgICAgICBWUk1IdW1hbkJvbmVMaXN0LmZvckVhY2goKGJvbmVOYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBib25lTm9kZSA9IHRoaXMub3JpZ2luYWwuZ2V0Qm9uZU5vZGUoYm9uZU5hbWUpO1xuICAgICAgICAgICAgaWYgKGJvbmVOb2RlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByaWdCb25lTm9kZSA9IHRoaXMuZ2V0Qm9uZU5vZGUoYm9uZU5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFdvcmxkUm90YXRpb24gPSB0aGlzLl9wYXJlbnRXb3JsZFJvdGF0aW9uc1tib25lTmFtZV07XG4gICAgICAgICAgICAgICAgY29uc3QgaW52UGFyZW50V29ybGRSb3RhdGlvbiA9IF9xdWF0QSQzLmNvcHkocGFyZW50V29ybGRSb3RhdGlvbikuaW52ZXJ0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9uZVJvdGF0aW9uID0gdGhpcy5fYm9uZVJvdGF0aW9uc1tib25lTmFtZV07XG4gICAgICAgICAgICAgICAgYm9uZU5vZGUucXVhdGVybmlvblxuICAgICAgICAgICAgICAgICAgICAuY29weShyaWdCb25lTm9kZS5xdWF0ZXJuaW9uKVxuICAgICAgICAgICAgICAgICAgICAubXVsdGlwbHkocGFyZW50V29ybGRSb3RhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgLnByZW11bHRpcGx5KGludlBhcmVudFdvcmxkUm90YXRpb24pXG4gICAgICAgICAgICAgICAgICAgIC5tdWx0aXBseShib25lUm90YXRpb24pO1xuICAgICAgICAgICAgICAgIC8vIE1vdmUgdGhlIG1hc3MgY2VudGVyIG9mIHRoZSBWUk1cbiAgICAgICAgICAgICAgICBpZiAoYm9uZU5hbWUgPT09ICdoaXBzJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib25lV29ybGRQb3NpdGlvbiA9IHJpZ0JvbmVOb2RlLmdldFdvcmxkUG9zaXRpb24oX2JvbmVXb3JsZFBvcyk7XG4gICAgICAgICAgICAgICAgICAgIGJvbmVOb2RlLnBhcmVudC51cGRhdGVXb3JsZE1hdHJpeCh0cnVlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFdvcmxkTWF0cml4ID0gYm9uZU5vZGUucGFyZW50Lm1hdHJpeFdvcmxkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsb2NhbFBvc2l0aW9uID0gYm9uZVdvcmxkUG9zaXRpb24uYXBwbHlNYXRyaXg0KHBhcmVudFdvcmxkTWF0cml4LmludmVydCgpKTtcbiAgICAgICAgICAgICAgICAgICAgYm9uZU5vZGUucG9zaXRpb24uY29weShsb2NhbFBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBIGNsYXNzIHJlcHJlc2VudHMgYSBodW1hbm9pZCBvZiBhIFZSTS5cbiAqL1xuY2xhc3MgVlJNSHVtYW5vaWQge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQuIFVzZSBlaXRoZXIge0BsaW5rIHJhd1Jlc3RQb3NlfSBvciB7QGxpbmsgbm9ybWFsaXplZFJlc3RQb3NlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGdldCByZXN0UG9zZSgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1IdW1hbm9pZDogcmVzdFBvc2UgaXMgZGVwcmVjYXRlZC4gVXNlIGVpdGhlciByYXdSZXN0UG9zZSBvciBub3JtYWxpemVkUmVzdFBvc2UgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3UmVzdFBvc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEge0BsaW5rIFZSTVBvc2V9IG9mIGl0cyByYXcgaHVtYW4gYm9uZXMgdGhhdCBpcyBpdHMgZGVmYXVsdCBzdGF0ZS5cbiAgICAgKiBOb3RlIHRoYXQgaXQncyBub3QgY29tcGF0aWJsZSB3aXRoIHtAbGluayBzZXRSYXdQb3NlfSBhbmQge0BsaW5rIGdldFJhd1Bvc2V9LCBzaW5jZSBpdCBjb250YWlucyBub24tcmVsYXRpdmUgdmFsdWVzIG9mIGVhY2ggbG9jYWwgdHJhbnNmb3Jtcy5cbiAgICAgKi9cbiAgICBnZXQgcmF3UmVzdFBvc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYXdIdW1hbkJvbmVzLnJlc3RQb3NlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIHtAbGluayBWUk1Qb3NlfSBvZiBpdHMgbm9ybWFsaXplZCBodW1hbiBib25lcyB0aGF0IGlzIGl0cyBkZWZhdWx0IHN0YXRlLlxuICAgICAqIE5vdGUgdGhhdCBpdCdzIG5vdCBjb21wYXRpYmxlIHdpdGgge0BsaW5rIHNldE5vcm1hbGl6ZWRQb3NlfSBhbmQge0BsaW5rIGdldE5vcm1hbGl6ZWRQb3NlfSwgc2luY2UgaXQgY29udGFpbnMgbm9uLXJlbGF0aXZlIHZhbHVlcyBvZiBlYWNoIGxvY2FsIHRyYW5zZm9ybXMuXG4gICAgICovXG4gICAgZ2V0IG5vcm1hbGl6ZWRSZXN0UG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLnJlc3RQb3NlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIG1hcCBmcm9tIHtAbGluayBWUk1IdW1hbkJvbmVOYW1lfSB0byByYXcge0BsaW5rIFZSTUh1bWFuQm9uZX1zLlxuICAgICAqL1xuICAgIGdldCBodW1hbkJvbmVzKCkge1xuICAgICAgICAvLyBhbiBhbGlhcyBvZiBgcmF3SHVtYW5Cb25lc2BcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jhd0h1bWFuQm9uZXMuaHVtYW5Cb25lcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBtYXAgZnJvbSB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0gdG8gcmF3IHtAbGluayBWUk1IdW1hbkJvbmV9cy5cbiAgICAgKi9cbiAgICBnZXQgcmF3SHVtYW5Cb25lcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jhd0h1bWFuQm9uZXMuaHVtYW5Cb25lcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBtYXAgZnJvbSB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0gdG8gbm9ybWFsaXplZCB7QGxpbmsgVlJNSHVtYW5Cb25lfXMuXG4gICAgICovXG4gICAgZ2V0IG5vcm1hbGl6ZWRIdW1hbkJvbmVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMuaHVtYW5Cb25lcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIHJvb3Qgb2Ygbm9ybWFsaXplZCB7QGxpbmsgVlJNSHVtYW5Cb25lfXMuXG4gICAgICovXG4gICAgZ2V0IG5vcm1hbGl6ZWRIdW1hbkJvbmVzUm9vdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLnJvb3Q7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB7QGxpbmsgVlJNSHVtYW5vaWR9LlxuICAgICAqIEBwYXJhbSBodW1hbkJvbmVzIEEge0BsaW5rIFZSTUh1bWFuQm9uZXN9IGNvbnRhaW5zIGFsbCB0aGUgYm9uZXMgb2YgdGhlIG5ldyBodW1hbm9pZFxuICAgICAqIEBwYXJhbSBhdXRvVXBkYXRlSHVtYW5Cb25lcyBXaGV0aGVyIGl0IGNvcGllcyBwb3NlIGZyb20gbm9ybWFsaXplZEh1bWFuQm9uZXMgdG8gcmF3SHVtYW5Cb25lcyBvbiB7QGxpbmsgdXBkYXRlfS4gYHRydWVgIGJ5IGRlZmF1bHQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoaHVtYW5Cb25lcywgb3B0aW9ucykge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRoaXMuYXV0b1VwZGF0ZUh1bWFuQm9uZXMgPSAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuYXV0b1VwZGF0ZUh1bWFuQm9uZXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRydWU7XG4gICAgICAgIHRoaXMuX3Jhd0h1bWFuQm9uZXMgPSBuZXcgVlJNUmlnKGh1bWFuQm9uZXMpO1xuICAgICAgICB0aGlzLl9ub3JtYWxpemVkSHVtYW5Cb25lcyA9IG5ldyBWUk1IdW1hbm9pZFJpZyh0aGlzLl9yYXdIdW1hbkJvbmVzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29weSB0aGUgZ2l2ZW4ge0BsaW5rIFZSTUh1bWFub2lkfSBpbnRvIHRoaXMgb25lLlxuICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIHtAbGluayBWUk1IdW1hbm9pZH0geW91IHdhbnQgdG8gY29weVxuICAgICAqIEByZXR1cm5zIHRoaXNcbiAgICAgKi9cbiAgICBjb3B5KHNvdXJjZSkge1xuICAgICAgICB0aGlzLmF1dG9VcGRhdGVIdW1hbkJvbmVzID0gc291cmNlLmF1dG9VcGRhdGVIdW1hbkJvbmVzO1xuICAgICAgICB0aGlzLl9yYXdIdW1hbkJvbmVzID0gbmV3IFZSTVJpZyhzb3VyY2UuaHVtYW5Cb25lcyk7XG4gICAgICAgIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzID0gbmV3IFZSTUh1bWFub2lkUmlnKHRoaXMuX3Jhd0h1bWFuQm9uZXMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNsb25lIG9mIHRoaXMge0BsaW5rIFZSTUh1bWFub2lkfS5cbiAgICAgKiBAcmV0dXJucyBDb3BpZWQge0BsaW5rIFZSTUh1bWFub2lkfVxuICAgICAqL1xuICAgIGNsb25lKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZSTUh1bWFub2lkKHRoaXMuaHVtYW5Cb25lcywgeyBhdXRvVXBkYXRlSHVtYW5Cb25lczogdGhpcy5hdXRvVXBkYXRlSHVtYW5Cb25lcyB9KS5jb3B5KHRoaXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBEZXByZWNhdGVkLiBVc2UgZWl0aGVyIHtAbGluayBnZXRSYXdBYnNvbHV0ZVBvc2V9IG9yIHtAbGluayBnZXROb3JtYWxpemVkQWJzb2x1dGVQb3NlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGdldEFic29sdXRlUG9zZSgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1IdW1hbm9pZDogZ2V0QWJzb2x1dGVQb3NlKCkgaXMgZGVwcmVjYXRlZC4gVXNlIGVpdGhlciBnZXRSYXdBYnNvbHV0ZVBvc2UoKSBvciBnZXROb3JtYWxpemVkQWJzb2x1dGVQb3NlKCkgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmF3QWJzb2x1dGVQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgY3VycmVudCBhYnNvbHV0ZSBwb3NlIG9mIHRoaXMgcmF3IGh1bWFuIGJvbmVzIGFzIGEge0BsaW5rIFZSTVBvc2V9LlxuICAgICAqIE5vdGUgdGhhdCB0aGUgb3V0cHV0IHJlc3VsdCB3aWxsIGNvbnRhaW4gaW5pdGlhbCBzdGF0ZSBvZiB0aGUgVlJNIGFuZCBub3QgY29tcGF0aWJsZSBiZXR3ZWVuIGRpZmZlcmVudCBtb2RlbHMuXG4gICAgICogWW91IG1pZ2h0IHdhbnQgdG8gdXNlIHtAbGluayBnZXRSYXdQb3NlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGdldFJhd0Fic29sdXRlUG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jhd0h1bWFuQm9uZXMuZ2V0QWJzb2x1dGVQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgY3VycmVudCBhYnNvbHV0ZSBwb3NlIG9mIHRoaXMgbm9ybWFsaXplZCBodW1hbiBib25lcyBhcyBhIHtAbGluayBWUk1Qb3NlfS5cbiAgICAgKiBOb3RlIHRoYXQgdGhlIG91dHB1dCByZXN1bHQgd2lsbCBjb250YWluIGluaXRpYWwgc3RhdGUgb2YgdGhlIFZSTSBhbmQgbm90IGNvbXBhdGlibGUgYmV0d2VlbiBkaWZmZXJlbnQgbW9kZWxzLlxuICAgICAqIFlvdSBtaWdodCB3YW50IHRvIHVzZSB7QGxpbmsgZ2V0Tm9ybWFsaXplZFBvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0Tm9ybWFsaXplZEFic29sdXRlUG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLmdldEFic29sdXRlUG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBEZXByZWNhdGVkLiBVc2UgZWl0aGVyIHtAbGluayBnZXRSYXdQb3NlfSBvciB7QGxpbmsgZ2V0Tm9ybWFsaXplZFBvc2V9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0UG9zZSgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1IdW1hbm9pZDogZ2V0UG9zZSgpIGlzIGRlcHJlY2F0ZWQuIFVzZSBlaXRoZXIgZ2V0UmF3UG9zZSgpIG9yIGdldE5vcm1hbGl6ZWRQb3NlKCkgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmF3UG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgcG9zZSBvZiByYXcgaHVtYW4gYm9uZXMgYXMgYSB7QGxpbmsgVlJNUG9zZX0uXG4gICAgICpcbiAgICAgKiBFYWNoIHRyYW5zZm9ybSBpcyBhIGxvY2FsIHRyYW5zZm9ybSByZWxhdGl2ZSBmcm9tIHJlc3QgcG9zZSAoVC1wb3NlKS5cbiAgICAgKi9cbiAgICBnZXRSYXdQb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF3SHVtYW5Cb25lcy5nZXRQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgY3VycmVudCBwb3NlIG9mIG5vcm1hbGl6ZWQgaHVtYW4gYm9uZXMgYXMgYSB7QGxpbmsgVlJNUG9zZX0uXG4gICAgICpcbiAgICAgKiBFYWNoIHRyYW5zZm9ybSBpcyBhIGxvY2FsIHRyYW5zZm9ybSByZWxhdGl2ZSBmcm9tIHJlc3QgcG9zZSAoVC1wb3NlKS5cbiAgICAgKi9cbiAgICBnZXROb3JtYWxpemVkUG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLmdldFBvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZC4gVXNlIGVpdGhlciB7QGxpbmsgc2V0UmF3UG9zZX0gb3Ige0BsaW5rIHNldE5vcm1hbGl6ZWRQb3NlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHNldFBvc2UocG9zZU9iamVjdCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUh1bWFub2lkOiBzZXRQb3NlKCkgaXMgZGVwcmVjYXRlZC4gVXNlIGVpdGhlciBzZXRSYXdQb3NlKCkgb3Igc2V0Tm9ybWFsaXplZFBvc2UoKSBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRSYXdQb3NlKHBvc2VPYmplY3QpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBMZXQgdGhlIHJhdyBodW1hbiBib25lcyBkbyBhIHNwZWNpZmllZCBwb3NlLlxuICAgICAqXG4gICAgICogRWFjaCB0cmFuc2Zvcm0gaGF2ZSB0byBiZSBhIGxvY2FsIHRyYW5zZm9ybSByZWxhdGl2ZSBmcm9tIHJlc3QgcG9zZSAoVC1wb3NlKS5cbiAgICAgKiBZb3UgY2FuIHBhc3Mgd2hhdCB5b3UgZ290IGZyb20ge0BsaW5rIGdldFJhd1Bvc2V9LlxuICAgICAqXG4gICAgICogSWYgeW91IGFyZSB1c2luZyB7QGxpbmsgYXV0b1VwZGF0ZUh1bWFuQm9uZXN9LCB5b3UgbWlnaHQgd2FudCB0byB1c2Uge0BsaW5rIHNldE5vcm1hbGl6ZWRQb3NlfSBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBvc2VPYmplY3QgQSB7QGxpbmsgVlJNUG9zZX0gdGhhdCByZXByZXNlbnRzIGEgc2luZ2xlIHBvc2VcbiAgICAgKi9cbiAgICBzZXRSYXdQb3NlKHBvc2VPYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jhd0h1bWFuQm9uZXMuc2V0UG9zZShwb3NlT2JqZWN0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTGV0IHRoZSBub3JtYWxpemVkIGh1bWFuIGJvbmVzIGRvIGEgc3BlY2lmaWVkIHBvc2UuXG4gICAgICpcbiAgICAgKiBFYWNoIHRyYW5zZm9ybSBoYXZlIHRvIGJlIGEgbG9jYWwgdHJhbnNmb3JtIHJlbGF0aXZlIGZyb20gcmVzdCBwb3NlIChULXBvc2UpLlxuICAgICAqIFlvdSBjYW4gcGFzcyB3aGF0IHlvdSBnb3QgZnJvbSB7QGxpbmsgZ2V0Tm9ybWFsaXplZFBvc2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBvc2VPYmplY3QgQSB7QGxpbmsgVlJNUG9zZX0gdGhhdCByZXByZXNlbnRzIGEgc2luZ2xlIHBvc2VcbiAgICAgKi9cbiAgICBzZXROb3JtYWxpemVkUG9zZShwb3NlT2JqZWN0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub3JtYWxpemVkSHVtYW5Cb25lcy5zZXRQb3NlKHBvc2VPYmplY3QpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBEZXByZWNhdGVkLiBVc2UgZWl0aGVyIHtAbGluayByZXNldFJhd1Bvc2V9IG9yIHtAbGluayByZXNldE5vcm1hbGl6ZWRQb3NlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHJlc2V0UG9zZSgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1IdW1hbm9pZDogcmVzZXRQb3NlKCkgaXMgZGVwcmVjYXRlZC4gVXNlIGVpdGhlciByZXNldFJhd1Bvc2UoKSBvciByZXNldE5vcm1hbGl6ZWRQb3NlKCkgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzZXRSYXdQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlc2V0IHRoZSByYXcgaHVtYW5vaWQgdG8gaXRzIHJlc3QgcG9zZS5cbiAgICAgKlxuICAgICAqIElmIHlvdSBhcmUgdXNpbmcge0BsaW5rIGF1dG9VcGRhdGVIdW1hbkJvbmVzfSwgeW91IG1pZ2h0IHdhbnQgdG8gdXNlIHtAbGluayByZXNldE5vcm1hbGl6ZWRQb3NlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHJlc2V0UmF3UG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jhd0h1bWFuQm9uZXMucmVzZXRQb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlc2V0IHRoZSBub3JtYWxpemVkIGh1bWFub2lkIHRvIGl0cyByZXN0IHBvc2UuXG4gICAgICovXG4gICAgcmVzZXROb3JtYWxpemVkUG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLnJlc2V0UG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBEZXByZWNhdGVkLiBVc2UgZWl0aGVyIHtAbGluayBnZXRSYXdCb25lfSBvciB7QGxpbmsgZ2V0Tm9ybWFsaXplZEJvbmV9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0Qm9uZShuYW1lKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignVlJNSHVtYW5vaWQ6IGdldEJvbmUoKSBpcyBkZXByZWNhdGVkLiBVc2UgZWl0aGVyIGdldFJhd0JvbmUoKSBvciBnZXROb3JtYWxpemVkQm9uZSgpIGluc3RlYWQuJyk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJhd0JvbmUobmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIHJhdyB7QGxpbmsgVlJNSHVtYW5Cb25lfSBib3VuZCB0byBhIHNwZWNpZmllZCB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBib25lIHlvdSB3YW50XG4gICAgICovXG4gICAgZ2V0UmF3Qm9uZShuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYXdIdW1hbkJvbmVzLmdldEJvbmUobmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIG5vcm1hbGl6ZWQge0BsaW5rIFZSTUh1bWFuQm9uZX0gYm91bmQgdG8gYSBzcGVjaWZpZWQge0BsaW5rIFZSTUh1bWFuQm9uZU5hbWV9LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgYm9uZSB5b3Ugd2FudFxuICAgICAqL1xuICAgIGdldE5vcm1hbGl6ZWRCb25lKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLmdldEJvbmUobmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQuIFVzZSBlaXRoZXIge0BsaW5rIGdldFJhd0JvbmVOb2RlfSBvciB7QGxpbmsgZ2V0Tm9ybWFsaXplZEJvbmVOb2RlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGdldEJvbmVOb2RlKG5hbWUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1IdW1hbm9pZDogZ2V0Qm9uZU5vZGUoKSBpcyBkZXByZWNhdGVkLiBVc2UgZWl0aGVyIGdldFJhd0JvbmVOb2RlKCkgb3IgZ2V0Tm9ybWFsaXplZEJvbmVOb2RlKCkgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmF3Qm9uZU5vZGUobmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIHJhdyBib25lIGFzIGEgYFRIUkVFLk9iamVjdDNEYCBib3VuZCB0byBhIHNwZWNpZmllZCB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBib25lIHlvdSB3YW50XG4gICAgICovXG4gICAgZ2V0UmF3Qm9uZU5vZGUobmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF3SHVtYW5Cb25lcy5nZXRCb25lTm9kZShuYW1lKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgbm9ybWFsaXplZCBib25lIGFzIGEgYFRIUkVFLk9iamVjdDNEYCBib3VuZCB0byBhIHNwZWNpZmllZCB7QGxpbmsgVlJNSHVtYW5Cb25lTmFtZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBib25lIHlvdSB3YW50XG4gICAgICovXG4gICAgZ2V0Tm9ybWFsaXplZEJvbmVOb2RlKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRIdW1hbkJvbmVzLmdldEJvbmVOb2RlKG5hbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhlIGh1bWFub2lkIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIElmIHtAbGluayBhdXRvVXBkYXRlSHVtYW5Cb25lc30gaXMgYHRydWVgLCBpdCB0cmFuc2ZlcnMgdGhlIHBvc2Ugb2Ygbm9ybWFsaXplZCBodW1hbiBib25lcyB0byByYXcgaHVtYW4gYm9uZXMuXG4gICAgICovXG4gICAgdXBkYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvVXBkYXRlSHVtYW5Cb25lcykge1xuICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplZEh1bWFuQm9uZXMudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuY29uc3QgVlJNUmVxdWlyZWRIdW1hbkJvbmVOYW1lID0ge1xuICAgIEhpcHM6ICdoaXBzJyxcbiAgICBTcGluZTogJ3NwaW5lJyxcbiAgICBIZWFkOiAnaGVhZCcsXG4gICAgTGVmdFVwcGVyTGVnOiAnbGVmdFVwcGVyTGVnJyxcbiAgICBMZWZ0TG93ZXJMZWc6ICdsZWZ0TG93ZXJMZWcnLFxuICAgIExlZnRGb290OiAnbGVmdEZvb3QnLFxuICAgIFJpZ2h0VXBwZXJMZWc6ICdyaWdodFVwcGVyTGVnJyxcbiAgICBSaWdodExvd2VyTGVnOiAncmlnaHRMb3dlckxlZycsXG4gICAgUmlnaHRGb290OiAncmlnaHRGb290JyxcbiAgICBMZWZ0VXBwZXJBcm06ICdsZWZ0VXBwZXJBcm0nLFxuICAgIExlZnRMb3dlckFybTogJ2xlZnRMb3dlckFybScsXG4gICAgTGVmdEhhbmQ6ICdsZWZ0SGFuZCcsXG4gICAgUmlnaHRVcHBlckFybTogJ3JpZ2h0VXBwZXJBcm0nLFxuICAgIFJpZ2h0TG93ZXJBcm06ICdyaWdodExvd2VyQXJtJyxcbiAgICBSaWdodEhhbmQ6ICdyaWdodEhhbmQnLFxufTtcblxuLyoqXG4gKiBQb3NzaWJsZSBzcGVjIHZlcnNpb25zIGl0IHJlY29nbml6ZXMuXG4gKi9cbmNvbnN0IFBPU1NJQkxFX1NQRUNfVkVSU0lPTlMkMiA9IG5ldyBTZXQoWycxLjAnLCAnMS4wLWJldGEnXSk7XG4vKipcbiAqIEEgbWFwIGZyb20gb2xkIHRodW1iIGJvbmUgbmFtZXMgdG8gbmV3IHRodW1iIGJvbmUgbmFtZXNcbiAqL1xuY29uc3QgdGh1bWJCb25lTmFtZU1hcCA9IHtcbiAgICBsZWZ0VGh1bWJQcm94aW1hbDogJ2xlZnRUaHVtYk1ldGFjYXJwYWwnLFxuICAgIGxlZnRUaHVtYkludGVybWVkaWF0ZTogJ2xlZnRUaHVtYlByb3hpbWFsJyxcbiAgICByaWdodFRodW1iUHJveGltYWw6ICdyaWdodFRodW1iTWV0YWNhcnBhbCcsXG4gICAgcmlnaHRUaHVtYkludGVybWVkaWF0ZTogJ3JpZ2h0VGh1bWJQcm94aW1hbCcsXG59O1xuLyoqXG4gKiBBIHBsdWdpbiBvZiBHTFRGTG9hZGVyIHRoYXQgaW1wb3J0cyBhIHtAbGluayBWUk1IdW1hbm9pZH0gZnJvbSBhIFZSTSBleHRlbnNpb24gb2YgYSBHTFRGLlxuICovXG5jbGFzcyBWUk1IdW1hbm9pZExvYWRlclBsdWdpbiB7XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIC8vIFdlIHNob3VsZCB1c2UgdGhlIGV4dGVuc2lvbiBuYW1lIGluc3RlYWQgYnV0IHdlIGhhdmUgbXVsdGlwbGUgcGx1Z2lucyBmb3IgYW4gZXh0ZW5zaW9uLi4uXG4gICAgICAgIHJldHVybiAnVlJNSHVtYW5vaWRMb2FkZXJQbHVnaW4nO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihwYXJzZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5wYXJzZXIgPSBwYXJzZXI7XG4gICAgICAgIHRoaXMuaGVscGVyUm9vdCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWxwZXJSb290O1xuICAgICAgICB0aGlzLmF1dG9VcGRhdGVIdW1hbkJvbmVzID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmF1dG9VcGRhdGVIdW1hbkJvbmVzO1xuICAgIH1cbiAgICBhZnRlclJvb3QoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgZ2x0Zi51c2VyRGF0YS52cm1IdW1hbm9pZCA9IHlpZWxkIHRoaXMuX2ltcG9ydChnbHRmKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEltcG9ydCBhIHtAbGluayBWUk1IdW1hbm9pZH0gZnJvbSBhIFZSTS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBnbHRmIEEgcGFyc2VkIHJlc3VsdCBvZiBHTFRGIHRha2VuIGZyb20gR0xURkxvYWRlclxuICAgICAqL1xuICAgIF9pbXBvcnQoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdjFSZXN1bHQgPSB5aWVsZCB0aGlzLl92MUltcG9ydChnbHRmKTtcbiAgICAgICAgICAgIGlmICh2MVJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2MVJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHYwUmVzdWx0ID0geWllbGQgdGhpcy5fdjBJbXBvcnQoZ2x0Zik7XG4gICAgICAgICAgICBpZiAodjBSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjBSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MUltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gdGhpcy5wYXJzZXIuanNvbjtcbiAgICAgICAgICAgIC8vIGVhcmx5IGFib3J0IGlmIGl0IGRvZXNuJ3QgdXNlIHZybVxuICAgICAgICAgICAgY29uc3QgaXNWUk1Vc2VkID0gKChfYSA9IGpzb24uZXh0ZW5zaW9uc1VzZWQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbmRleE9mKCdWUk1DX3ZybScpKSAhPT0gLTE7XG4gICAgICAgICAgICBpZiAoIWlzVlJNVXNlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gKF9iID0ganNvbi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2JbJ1ZSTUNfdnJtJ107XG4gICAgICAgICAgICBpZiAoIWV4dGVuc2lvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3BlY1ZlcnNpb24gPSBleHRlbnNpb24uc3BlY1ZlcnNpb247XG4gICAgICAgICAgICBpZiAoIVBPU1NJQkxFX1NQRUNfVkVSU0lPTlMkMi5oYXMoc3BlY1ZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1IdW1hbm9pZExvYWRlclBsdWdpbjogVW5rbm93biBWUk1DX3ZybSBzcGVjVmVyc2lvbiBcIiR7c3BlY1ZlcnNpb259XCJgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYUh1bWFub2lkID0gZXh0ZW5zaW9uLmh1bWFub2lkO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFIdW1hbm9pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBjb21wYXQ6IDEuMC1iZXRhIHRodW1iIGJvbmUgbmFtZXNcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBgdHJ1ZWAgaWYgYGxlZnRUaHVtYkludGVybWVkaWF0ZWAgb3IgYHJpZ2h0VGh1bWJJbnRlcm1lZGlhdGVgIGV4aXN0c1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBleGlzdHNQcmV2aW91c1RodW1iTmFtZSA9IHNjaGVtYUh1bWFub2lkLmh1bWFuQm9uZXMubGVmdFRodW1iSW50ZXJtZWRpYXRlICE9IG51bGwgfHxcbiAgICAgICAgICAgICAgICBzY2hlbWFIdW1hbm9pZC5odW1hbkJvbmVzLnJpZ2h0VGh1bWJJbnRlcm1lZGlhdGUgIT0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGh1bWFuQm9uZXMgPSB7fTtcbiAgICAgICAgICAgIGlmIChzY2hlbWFIdW1hbm9pZC5odW1hbkJvbmVzICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCBQcm9taXNlLmFsbChPYmplY3QuZW50cmllcyhzY2hlbWFIdW1hbm9pZC5odW1hbkJvbmVzKS5tYXAoKFtib25lTmFtZVN0cmluZywgc2NoZW1hSHVtYW5Cb25lXSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYm9uZU5hbWUgPSBib25lTmFtZVN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBzY2hlbWFIdW1hbkJvbmUubm9kZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29tcGF0OiAxLjAtYmV0YSBwcmV2aW91cyB0aHVtYiBib25lIG5hbWVzXG4gICAgICAgICAgICAgICAgICAgIGlmIChleGlzdHNQcmV2aW91c1RodW1iTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGh1bWJCb25lTmFtZSA9IHRodW1iQm9uZU5hbWVNYXBbYm9uZU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRodW1iQm9uZU5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvbmVOYW1lID0gdGh1bWJCb25lTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0geWllbGQgdGhpcy5wYXJzZXIuZ2V0RGVwZW5kZW5jeSgnbm9kZScsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHNwZWNpZmllZCBub2RlIGRvZXMgbm90IGV4aXN0LCBlbWl0IGEgd2FybmluZ1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEEgZ2xURiBub2RlIGJvdW5kIHRvIHRoZSBodW1hbm9pZCBib25lICR7Ym9uZU5hbWV9IChpbmRleCA9ICR7aW5kZXh9KSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHNldCB0byB0aGUgYGh1bWFuQm9uZXNgXG4gICAgICAgICAgICAgICAgICAgIGh1bWFuQm9uZXNbYm9uZU5hbWVdID0geyBub2RlIH07XG4gICAgICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGh1bWFub2lkID0gbmV3IFZSTUh1bWFub2lkKHRoaXMuX2Vuc3VyZVJlcXVpcmVkQm9uZXNFeGlzdChodW1hbkJvbmVzKSwge1xuICAgICAgICAgICAgICAgIGF1dG9VcGRhdGVIdW1hbkJvbmVzOiB0aGlzLmF1dG9VcGRhdGVIdW1hbkJvbmVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBnbHRmLnNjZW5lLmFkZChodW1hbm9pZC5ub3JtYWxpemVkSHVtYW5Cb25lc1Jvb3QpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaGVscGVyUm9vdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlbHBlciA9IG5ldyBWUk1IdW1hbm9pZEhlbHBlcihodW1hbm9pZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWxwZXJSb290LmFkZChoZWxwZXIpO1xuICAgICAgICAgICAgICAgIGhlbHBlci5yZW5kZXJPcmRlciA9IHRoaXMuaGVscGVyUm9vdC5yZW5kZXJPcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBodW1hbm9pZDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MEltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgY29uc3QgdnJtRXh0ID0gKF9hID0ganNvbi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuVlJNO1xuICAgICAgICAgICAgaWYgKCF2cm1FeHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYUh1bWFub2lkID0gdnJtRXh0Lmh1bWFub2lkO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFIdW1hbm9pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaHVtYW5Cb25lcyA9IHt9O1xuICAgICAgICAgICAgaWYgKHNjaGVtYUh1bWFub2lkLmh1bWFuQm9uZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHlpZWxkIFByb21pc2UuYWxsKHNjaGVtYUh1bWFub2lkLmh1bWFuQm9uZXMubWFwKChib25lKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvbmVOYW1lID0gYm9uZS5ib25lO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGJvbmUubm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvbmVOYW1lID09IG51bGwgfHwgaW5kZXggPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB5aWVsZCB0aGlzLnBhcnNlci5nZXREZXBlbmRlbmN5KCdub2RlJywgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc3BlY2lmaWVkIG5vZGUgZG9lcyBub3QgZXhpc3QsIGVtaXQgYSB3YXJuaW5nXG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgQSBnbFRGIG5vZGUgYm91bmQgdG8gdGhlIGh1bWFub2lkIGJvbmUgJHtib25lTmFtZX0gKGluZGV4ID0gJHtpbmRleH0pIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gbWFwIHRvIG5ldyBib25lIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGh1bWJCb25lTmFtZSA9IHRodW1iQm9uZU5hbWVNYXBbYm9uZU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdCb25lTmFtZSA9ICh0aHVtYkJvbmVOYW1lICE9PSBudWxsICYmIHRodW1iQm9uZU5hbWUgIT09IHZvaWQgMCA/IHRodW1iQm9uZU5hbWUgOiBib25lTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHYwIFZSTXMgbWlnaHQgaGF2ZSBhIG11bHRpcGxlIG5vZGVzIGF0dGFjaGVkIHRvIGEgc2luZ2xlIGJvbmUuLi5cbiAgICAgICAgICAgICAgICAgICAgLy8gc28gaWYgdGhlcmUgYWxyZWFkeSBpcyBhbiBlbnRyeSBpbiB0aGUgYGh1bWFuQm9uZXNgLCBzaG93IGEgd2FybmluZyBhbmQgaWdub3JlIGl0XG4gICAgICAgICAgICAgICAgICAgIGlmIChodW1hbkJvbmVzW25ld0JvbmVOYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYE11bHRpcGxlIGJvbmUgZW50cmllcyBmb3IgJHtuZXdCb25lTmFtZX0gZGV0ZWN0ZWQgKGluZGV4ID0gJHtpbmRleH0pLCBpZ25vcmluZyBkdXBsaWNhdGVkIGVudHJpZXMuYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRvIHRoZSBgaHVtYW5Cb25lc2BcbiAgICAgICAgICAgICAgICAgICAgaHVtYW5Cb25lc1tuZXdCb25lTmFtZV0gPSB7IG5vZGUgfTtcbiAgICAgICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaHVtYW5vaWQgPSBuZXcgVlJNSHVtYW5vaWQodGhpcy5fZW5zdXJlUmVxdWlyZWRCb25lc0V4aXN0KGh1bWFuQm9uZXMpLCB7XG4gICAgICAgICAgICAgICAgYXV0b1VwZGF0ZUh1bWFuQm9uZXM6IHRoaXMuYXV0b1VwZGF0ZUh1bWFuQm9uZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGdsdGYuc2NlbmUuYWRkKGh1bWFub2lkLm5vcm1hbGl6ZWRIdW1hbkJvbmVzUm9vdCk7XG4gICAgICAgICAgICBpZiAodGhpcy5oZWxwZXJSb290KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IFZSTUh1bWFub2lkSGVscGVyKGh1bWFub2lkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhlbHBlclJvb3QuYWRkKGhlbHBlcik7XG4gICAgICAgICAgICAgICAgaGVscGVyLnJlbmRlck9yZGVyID0gdGhpcy5oZWxwZXJSb290LnJlbmRlck9yZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGh1bWFub2lkO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW5zdXJlIHJlcXVpcmVkIGJvbmVzIGV4aXN0IGluIGdpdmVuIGh1bWFuIGJvbmVzLlxuICAgICAqIEBwYXJhbSBodW1hbkJvbmVzIEh1bWFuIGJvbmVzXG4gICAgICogQHJldHVybnMgSHVtYW4gYm9uZXMsIG5vIGxvbmdlciBwYXJ0aWFsIVxuICAgICAqL1xuICAgIF9lbnN1cmVSZXF1aXJlZEJvbmVzRXhpc3QoaHVtYW5Cb25lcykge1xuICAgICAgICAvLyBlbnN1cmUgcmVxdWlyZWQgYm9uZXMgZXhpc3RcbiAgICAgICAgY29uc3QgbWlzc2luZ1JlcXVpcmVkQm9uZXMgPSBPYmplY3QudmFsdWVzKFZSTVJlcXVpcmVkSHVtYW5Cb25lTmFtZSkuZmlsdGVyKChyZXF1aXJlZEJvbmVOYW1lKSA9PiBodW1hbkJvbmVzW3JlcXVpcmVkQm9uZU5hbWVdID09IG51bGwpO1xuICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciBpZiB0aGVyZSBhcmUgbWlzc2luZyBib25lc1xuICAgICAgICBpZiAobWlzc2luZ1JlcXVpcmVkQm9uZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBWUk1IdW1hbm9pZExvYWRlclBsdWdpbjogVGhlc2UgaHVtYW5vaWQgYm9uZXMgYXJlIHJlcXVpcmVkIGJ1dCBub3QgZXhpc3Q6ICR7bWlzc2luZ1JlcXVpcmVkQm9uZXMuam9pbignLCAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaHVtYW5Cb25lcztcbiAgICB9XG59XG5cbmNsYXNzIEZhbkJ1ZmZlckdlb21ldHJ5IGV4dGVuZHMgVEhSRUUuQnVmZmVyR2VvbWV0cnkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9jdXJyZW50VGhldGEgPSAwO1xuICAgICAgICB0aGlzLl9jdXJyZW50UmFkaXVzID0gMDtcbiAgICAgICAgdGhpcy50aGV0YSA9IDAuMDtcbiAgICAgICAgdGhpcy5yYWRpdXMgPSAwLjA7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUaGV0YSA9IDAuMDtcbiAgICAgICAgdGhpcy5fY3VycmVudFJhZGl1cyA9IDAuMDtcbiAgICAgICAgdGhpcy5fYXR0clBvcyA9IG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheSg2NSAqIDMpLCAzKTtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgdGhpcy5fYXR0clBvcyk7XG4gICAgICAgIHRoaXMuX2F0dHJJbmRleCA9IG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IFVpbnQxNkFycmF5KDMgKiA2MyksIDEpO1xuICAgICAgICB0aGlzLnNldEluZGV4KHRoaXMuX2F0dHJJbmRleCk7XG4gICAgICAgIHRoaXMuX2J1aWxkSW5kZXgoKTtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG4gICAgdXBkYXRlKCkge1xuICAgICAgICBsZXQgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRUaGV0YSAhPT0gdGhpcy50aGV0YSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudFRoZXRhID0gdGhpcy50aGV0YTtcbiAgICAgICAgICAgIHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fY3VycmVudFJhZGl1cyAhPT0gdGhpcy5yYWRpdXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRSYWRpdXMgPSB0aGlzLnJhZGl1cztcbiAgICAgICAgICAgIHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkVXBkYXRlR2VvbWV0cnkpIHtcbiAgICAgICAgICAgIHRoaXMuX2J1aWxkUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfYnVpbGRQb3NpdGlvbigpIHtcbiAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooMCwgMC4wLCAwLjAsIDAuMCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjQ7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdCA9IChpIC8gNjMuMCkgKiB0aGlzLl9jdXJyZW50VGhldGE7XG4gICAgICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWihpICsgMSwgdGhpcy5fY3VycmVudFJhZGl1cyAqIE1hdGguc2luKHQpLCAwLjAsIHRoaXMuX2N1cnJlbnRSYWRpdXMgKiBNYXRoLmNvcyh0KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXR0clBvcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIF9idWlsZEluZGV4KCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDYzOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJJbmRleC5zZXRYWVooaSAqIDMsIDAsIGkgKyAxLCBpICsgMik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXR0ckluZGV4Lm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG59XG5cbmNsYXNzIExpbmVBbmRTcGhlcmVCdWZmZXJHZW9tZXRyeSBleHRlbmRzIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5yYWRpdXMgPSAwLjA7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSYWRpdXMgPSAwLjA7XG4gICAgICAgIHRoaXMudGFpbCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUYWlsID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgdGhpcy5fYXR0clBvcyA9IG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheSgyOTQpLCAzKTtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgdGhpcy5fYXR0clBvcyk7XG4gICAgICAgIHRoaXMuX2F0dHJJbmRleCA9IG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IFVpbnQxNkFycmF5KDE5NCksIDEpO1xuICAgICAgICB0aGlzLnNldEluZGV4KHRoaXMuX2F0dHJJbmRleCk7XG4gICAgICAgIHRoaXMuX2J1aWxkSW5kZXgoKTtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG4gICAgdXBkYXRlKCkge1xuICAgICAgICBsZXQgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRSYWRpdXMgIT09IHRoaXMucmFkaXVzKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50UmFkaXVzID0gdGhpcy5yYWRpdXM7XG4gICAgICAgICAgICBzaG91bGRVcGRhdGVHZW9tZXRyeSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9jdXJyZW50VGFpbC5lcXVhbHModGhpcy50YWlsKSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudFRhaWwuY29weSh0aGlzLnRhaWwpO1xuICAgICAgICAgICAgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRVcGRhdGVHZW9tZXRyeSkge1xuICAgICAgICAgICAgdGhpcy5fYnVpbGRQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9idWlsZFBvc2l0aW9uKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHQgPSAoaSAvIDE2LjApICogTWF0aC5QSTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKGksIE1hdGguY29zKHQpLCBNYXRoLnNpbih0KSwgMC4wKTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKDMyICsgaSwgMC4wLCBNYXRoLmNvcyh0KSwgTWF0aC5zaW4odCkpO1xuICAgICAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooNjQgKyBpLCBNYXRoLnNpbih0KSwgMC4wLCBNYXRoLmNvcyh0KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY2FsZSh0aGlzLl9jdXJyZW50UmFkaXVzLCB0aGlzLl9jdXJyZW50UmFkaXVzLCB0aGlzLl9jdXJyZW50UmFkaXVzKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUodGhpcy5fY3VycmVudFRhaWwueCwgdGhpcy5fY3VycmVudFRhaWwueSwgdGhpcy5fY3VycmVudFRhaWwueik7XG4gICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKDk2LCAwLCAwLCAwKTtcbiAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooOTcsIHRoaXMuX2N1cnJlbnRUYWlsLngsIHRoaXMuX2N1cnJlbnRUYWlsLnksIHRoaXMuX2N1cnJlbnRUYWlsLnopO1xuICAgICAgICB0aGlzLl9hdHRyUG9zLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgX2J1aWxkSW5kZXgoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaTEgPSAoaSArIDEpICUgMzI7XG4gICAgICAgICAgICB0aGlzLl9hdHRySW5kZXguc2V0WFkoaSAqIDIsIGksIGkxKTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJJbmRleC5zZXRYWSg2NCArIGkgKiAyLCAzMiArIGksIDMyICsgaTEpO1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKDEyOCArIGkgKiAyLCA2NCArIGksIDY0ICsgaTEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2F0dHJJbmRleC5zZXRYWSgxOTIsIDk2LCA5Nyk7XG4gICAgICAgIHRoaXMuX2F0dHJJbmRleC5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxufVxuXG5jb25zdCBfcXVhdEEkMiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfcXVhdEIkMiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfdjNBJDEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3YzQiQxID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IFNRUlRfMl9PVkVSXzIgPSBNYXRoLnNxcnQoMi4wKSAvIDIuMDtcbmNvbnN0IFFVQVRfWFlfQ1c5MCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKDAsIDAsIC1TUVJUXzJfT1ZFUl8yLCBTUVJUXzJfT1ZFUl8yKTtcbmNvbnN0IFZFQzNfUE9TSVRJVkVfWSA9IG5ldyBUSFJFRS5WZWN0b3IzKDAuMCwgMS4wLCAwLjApO1xuY2xhc3MgVlJNTG9va0F0SGVscGVyIGV4dGVuZHMgVEhSRUUuR3JvdXAge1xuICAgIGNvbnN0cnVjdG9yKGxvb2tBdCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm1hdHJpeEF1dG9VcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52cm1Mb29rQXQgPSBsb29rQXQ7XG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IEZhbkJ1ZmZlckdlb21ldHJ5KCk7XG4gICAgICAgICAgICBnZW9tZXRyeS5yYWRpdXMgPSAwLjU7XG4gICAgICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XG4gICAgICAgICAgICAgICAgY29sb3I6IDB4MDBmZjAwLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNSxcbiAgICAgICAgICAgICAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxuICAgICAgICAgICAgICAgIGRlcHRoVGVzdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVwdGhXcml0ZTogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX21lc2hQaXRjaCA9IG5ldyBUSFJFRS5NZXNoKGdlb21ldHJ5LCBtYXRlcmlhbCk7XG4gICAgICAgICAgICB0aGlzLmFkZCh0aGlzLl9tZXNoUGl0Y2gpO1xuICAgICAgICB9XG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IEZhbkJ1ZmZlckdlb21ldHJ5KCk7XG4gICAgICAgICAgICBnZW9tZXRyeS5yYWRpdXMgPSAwLjU7XG4gICAgICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XG4gICAgICAgICAgICAgICAgY29sb3I6IDB4ZmYwMDAwLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNSxcbiAgICAgICAgICAgICAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxuICAgICAgICAgICAgICAgIGRlcHRoVGVzdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVwdGhXcml0ZTogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX21lc2hZYXcgPSBuZXcgVEhSRUUuTWVzaChnZW9tZXRyeSwgbWF0ZXJpYWwpO1xuICAgICAgICAgICAgdGhpcy5hZGQodGhpcy5fbWVzaFlhdyk7XG4gICAgICAgIH1cbiAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgTGluZUFuZFNwaGVyZUJ1ZmZlckdlb21ldHJ5KCk7XG4gICAgICAgICAgICBnZW9tZXRyeS5yYWRpdXMgPSAwLjE7XG4gICAgICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7XG4gICAgICAgICAgICAgICAgY29sb3I6IDB4ZmZmZmZmLFxuICAgICAgICAgICAgICAgIGRlcHRoVGVzdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVwdGhXcml0ZTogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2xpbmVUYXJnZXQgPSBuZXcgVEhSRUUuTGluZVNlZ21lbnRzKGdlb21ldHJ5LCBtYXRlcmlhbCk7XG4gICAgICAgICAgICB0aGlzLl9saW5lVGFyZ2V0LmZydXN0dW1DdWxsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYWRkKHRoaXMuX2xpbmVUYXJnZXQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRpc3Bvc2UoKSB7XG4gICAgICAgIHRoaXMuX21lc2hZYXcuZ2VvbWV0cnkuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLl9tZXNoWWF3Lm1hdGVyaWFsLmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5fbWVzaFBpdGNoLmdlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5fbWVzaFBpdGNoLm1hdGVyaWFsLmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5fbGluZVRhcmdldC5nZW9tZXRyeS5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMuX2xpbmVUYXJnZXQubWF0ZXJpYWwuZGlzcG9zZSgpO1xuICAgIH1cbiAgICB1cGRhdGVNYXRyaXhXb3JsZChmb3JjZSkge1xuICAgICAgICAvLyB1cGRhdGUgZ2VvbWV0cmllc1xuICAgICAgICBjb25zdCB5YXcgPSBUSFJFRS5NYXRoVXRpbHMuREVHMlJBRCAqIHRoaXMudnJtTG9va0F0LnlhdztcbiAgICAgICAgdGhpcy5fbWVzaFlhdy5nZW9tZXRyeS50aGV0YSA9IHlhdztcbiAgICAgICAgdGhpcy5fbWVzaFlhdy5nZW9tZXRyeS51cGRhdGUoKTtcbiAgICAgICAgY29uc3QgcGl0Y2ggPSBUSFJFRS5NYXRoVXRpbHMuREVHMlJBRCAqIHRoaXMudnJtTG9va0F0LnBpdGNoO1xuICAgICAgICB0aGlzLl9tZXNoUGl0Y2guZ2VvbWV0cnkudGhldGEgPSBwaXRjaDtcbiAgICAgICAgdGhpcy5fbWVzaFBpdGNoLmdlb21ldHJ5LnVwZGF0ZSgpO1xuICAgICAgICAvLyBnZXQgd29ybGQgcG9zaXRpb24gYW5kIHF1YXRlcm5pb25cbiAgICAgICAgdGhpcy52cm1Mb29rQXQuZ2V0TG9va0F0V29ybGRQb3NpdGlvbihfdjNBJDEpO1xuICAgICAgICB0aGlzLnZybUxvb2tBdC5nZXRMb29rQXRXb3JsZFF1YXRlcm5pb24oX3F1YXRBJDIpO1xuICAgICAgICAvLyBjYWxjdWxhdGUgcm90YXRpb24gdXNpbmcgZmFjZUZyb250XG4gICAgICAgIF9xdWF0QSQyLm11bHRpcGx5KHRoaXMudnJtTG9va0F0LmdldEZhY2VGcm9udFF1YXRlcm5pb24oX3F1YXRCJDIpKTtcbiAgICAgICAgLy8gc2V0IHRyYW5zZm9ybSB0byBtZXNoZXNcbiAgICAgICAgdGhpcy5fbWVzaFlhdy5wb3NpdGlvbi5jb3B5KF92M0EkMSk7XG4gICAgICAgIHRoaXMuX21lc2hZYXcucXVhdGVybmlvbi5jb3B5KF9xdWF0QSQyKTtcbiAgICAgICAgdGhpcy5fbWVzaFBpdGNoLnBvc2l0aW9uLmNvcHkoX3YzQSQxKTtcbiAgICAgICAgdGhpcy5fbWVzaFBpdGNoLnF1YXRlcm5pb24uY29weShfcXVhdEEkMik7XG4gICAgICAgIHRoaXMuX21lc2hQaXRjaC5xdWF0ZXJuaW9uLm11bHRpcGx5KF9xdWF0QiQyLnNldEZyb21BeGlzQW5nbGUoVkVDM19QT1NJVElWRV9ZLCB5YXcpKTtcbiAgICAgICAgdGhpcy5fbWVzaFBpdGNoLnF1YXRlcm5pb24ubXVsdGlwbHkoUVVBVF9YWV9DVzkwKTtcbiAgICAgICAgLy8gdXBkYXRlIHRhcmdldCBsaW5lIGFuZCBzcGhlcmVcbiAgICAgICAgY29uc3QgeyB0YXJnZXQsIGF1dG9VcGRhdGUgfSA9IHRoaXMudnJtTG9va0F0O1xuICAgICAgICBpZiAodGFyZ2V0ICE9IG51bGwgJiYgYXV0b1VwZGF0ZSkge1xuICAgICAgICAgICAgdGFyZ2V0LmdldFdvcmxkUG9zaXRpb24oX3YzQiQxKS5zdWIoX3YzQSQxKTtcbiAgICAgICAgICAgIHRoaXMuX2xpbmVUYXJnZXQuZ2VvbWV0cnkudGFpbC5jb3B5KF92M0IkMSk7XG4gICAgICAgICAgICB0aGlzLl9saW5lVGFyZ2V0Lmdlb21ldHJ5LnVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5fbGluZVRhcmdldC5wb3NpdGlvbi5jb3B5KF92M0EkMSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYXBwbHkgdHJhbnNmb3JtIHRvIG1lc2hlc1xuICAgICAgICBzdXBlci51cGRhdGVNYXRyaXhXb3JsZChmb3JjZSk7XG4gICAgfVxufVxuXG5jb25zdCBfcG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3NjYWxlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbi8qKlxuICogQSByZXBsYWNlbWVudCBvZiBgT2JqZWN0M0QuZ2V0V29ybGRRdWF0ZXJuaW9uYC5cbiAqIEV4dHJhY3QgdGhlIHdvcmxkIHF1YXRlcm5pb24gb2YgYW4gb2JqZWN0IGZyb20gaXRzIHdvcmxkIHNwYWNlIG1hdHJpeCwgd2l0aG91dCBjYWxsaW5nIGBPYmplY3QzRC51cGRhdGVXb3JsZE1hdHJpeGAuXG4gKiBVc2UgdGhpcyB3aGVuIHlvdSdyZSBzdXJlIHRoYXQgdGhlIHdvcmxkIG1hdHJpeCBpcyB1cC10by1kYXRlLlxuICpcbiAqIEBwYXJhbSBvYmplY3QgVGhlIG9iamVjdFxuICogQHBhcmFtIG91dCBBIHRhcmdldCBxdWF0ZXJuaW9uXG4gKi9cbmZ1bmN0aW9uIGdldFdvcmxkUXVhdGVybmlvbkxpdGUob2JqZWN0LCBvdXQpIHtcbiAgICBvYmplY3QubWF0cml4V29ybGQuZGVjb21wb3NlKF9wb3NpdGlvbiwgb3V0LCBfc2NhbGUpO1xuICAgIHJldHVybiBvdXQ7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIGF6aW11dGggLyBhbHRpdHVkZSBhbmdsZXMgZnJvbSBhIHZlY3Rvci5cbiAqXG4gKiBUaGlzIHJldHVybnMgYSBkaWZmZXJlbmNlIG9mIGFuZ2xlcyBmcm9tICgxLCAwLCAwKS5cbiAqIEF6aW11dGggcmVwcmVzZW50cyBhbiBhbmdsZSBhcm91bmQgWSBheGlzLlxuICogQWx0aXR1ZGUgcmVwcmVzZW50cyBhbiBhbmdsZSBhcm91bmQgWiBheGlzLlxuICogSXQgaXMgcm90YXRlZCBpbiBpbnRyaW5zaWMgWS1aIG9yZGVyLlxuICpcbiAqIEBwYXJhbSB2ZWN0b3IgVGhlIHZlY3RvclxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWlucyB0d28gYW5nbGVzLCBgWyBhemltdXRoLCBhbHRpdHVkZSBdYFxuICovXG5mdW5jdGlvbiBjYWxjQXppbXV0aEFsdGl0dWRlKHZlY3Rvcikge1xuICAgIHJldHVybiBbTWF0aC5hdGFuMigtdmVjdG9yLnosIHZlY3Rvci54KSwgTWF0aC5hdGFuMih2ZWN0b3IueSwgTWF0aC5zcXJ0KHZlY3Rvci54ICogdmVjdG9yLnggKyB2ZWN0b3IueiAqIHZlY3Rvci56KSldO1xufVxuXG4vKipcbiAqIE1ha2Ugc3VyZSB0aGUgYW5nbGUgaXMgd2l0aGluIC1QSSB0byBQSS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIHNhbml0aXplQW5nbGUoMS41ICogTWF0aC5QSSkgLy8gLTAuNSAqIFBJXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYW5nbGUgQW4gaW5wdXQgYW5nbGVcbiAqL1xuZnVuY3Rpb24gc2FuaXRpemVBbmdsZShhbmdsZSkge1xuICAgIGNvbnN0IHJvdW5kVHVybiA9IE1hdGgucm91bmQoYW5nbGUgLyAyLjAgLyBNYXRoLlBJKTtcbiAgICByZXR1cm4gYW5nbGUgLSAyLjAgKiBNYXRoLlBJICogcm91bmRUdXJuO1xufVxuXG5jb25zdCBWRUMzX1BPU0lUSVZFX1okMSA9IG5ldyBUSFJFRS5WZWN0b3IzKDAuMCwgMC4wLCAxLjApO1xuY29uc3QgX3YzQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfdjNCID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF92M0MgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3F1YXRBJDEgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX3F1YXRCJDEgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX3F1YXRDID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbmNvbnN0IF9xdWF0RCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfZXVsZXJBJDEgPSBuZXcgVEhSRUUuRXVsZXIoKTtcbi8qKlxuICogQSBjbGFzcyBjb250cm9scyBleWUgZ2F6ZSBtb3ZlbWVudHMgb2YgYSBWUk0uXG4gKi9cbmNsYXNzIFZSTUxvb2tBdCB7XG4gICAgLyoqXG4gICAgICogSXRzIGN1cnJlbnQgYW5nbGUgYXJvdW5kIFkgYXhpcywgaW4gZGVncmVlLlxuICAgICAqL1xuICAgIGdldCB5YXcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl95YXc7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEl0cyBjdXJyZW50IGFuZ2xlIGFyb3VuZCBZIGF4aXMsIGluIGRlZ3JlZS5cbiAgICAgKi9cbiAgICBzZXQgeWF3KHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3lhdyA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEl0cyBjdXJyZW50IGFuZ2xlIGFyb3VuZCBYIGF4aXMsIGluIGRlZ3JlZS5cbiAgICAgKi9cbiAgICBnZXQgcGl0Y2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9waXRjaDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSXRzIGN1cnJlbnQgYW5nbGUgYXJvdW5kIFggYXhpcywgaW4gZGVncmVlLlxuICAgICAqL1xuICAgIHNldCBwaXRjaCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9waXRjaCA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgZ2V0RXVsZXJ9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0IGV1bGVyKCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUxvb2tBdDogZXVsZXIgaXMgZGVwcmVjYXRlZC4gdXNlIGdldEV1bGVyKCkgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXVsZXIobmV3IFRIUkVFLkV1bGVyKCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIFZSTUxvb2tBdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaHVtYW5vaWQgQSB7QGxpbmsgVlJNSHVtYW5vaWR9XG4gICAgICogQHBhcmFtIGFwcGxpZXIgQSB7QGxpbmsgVlJNTG9va0F0QXBwbGllcn1cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihodW1hbm9pZCwgYXBwbGllcikge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIG9yaWdpbiBvZiBMb29rQXQuIFBvc2l0aW9uIG9mZnNldCBmcm9tIHRoZSBoZWFkIGJvbmUuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm9mZnNldEZyb21IZWFkQm9uZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIGlzIHRydWUsIHRoZSBMb29rQXQgd2lsbCBiZSB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYnkgY2FsbGluZyB7QGxpbmsgdXBkYXRlfSwgdG93YXJkaW5nIHRoZSBkaXJlY3Rpb24gdG8gdGhlIHtAbGluayB0YXJnZXR9LlxuICAgICAgICAgKiBgdHJ1ZWAgYnkgZGVmYXVsdC5cbiAgICAgICAgICpcbiAgICAgICAgICogU2VlIGFsc286IHtAbGluayB0YXJnZXR9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmF1dG9VcGRhdGUgPSB0cnVlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGZyb250IGRpcmVjdGlvbiBvZiB0aGUgZmFjZS5cbiAgICAgICAgICogSW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgVlJNIDAuMCBjb21wYXQgKFZSTSAwLjAgbW9kZWxzIGFyZSBmYWNpbmcgWi0gaW5zdGVhZCBvZiBaKykuXG4gICAgICAgICAqIFlvdSB1c3VhbGx5IGRvbid0IHdhbnQgdG8gdG91Y2ggdGhpcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZmFjZUZyb250ID0gbmV3IFRIUkVFLlZlY3RvcjMoMC4wLCAwLjAsIDEuMCk7XG4gICAgICAgIHRoaXMuaHVtYW5vaWQgPSBodW1hbm9pZDtcbiAgICAgICAgdGhpcy5hcHBsaWVyID0gYXBwbGllcjtcbiAgICAgICAgdGhpcy5feWF3ID0gMC4wO1xuICAgICAgICB0aGlzLl9waXRjaCA9IDAuMDtcbiAgICAgICAgdGhpcy5fbmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9yZXN0SGVhZFdvcmxkUXVhdGVybmlvbiA9IHRoaXMuZ2V0TG9va0F0V29ybGRRdWF0ZXJuaW9uKG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgaXRzIHlhdy1waXRjaCBhbmdsZXMgYXMgYW4gYEV1bGVyYC5cbiAgICAgKiBEb2VzIE5PVCBjb25zaWRlciB7QGxpbmsgZmFjZUZyb250fTsgaXQgcmV0dXJucyBgRXVsZXIoMCwgMCwgMDsgXCJZWFpcIilgIGJ5IGRlZmF1bHQgcmVnYXJkbGVzcyBvZiB0aGUgZmFjZUZyb250IHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IGV1bGVyXG4gICAgICovXG4gICAgZ2V0RXVsZXIodGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQuc2V0KFRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy5fcGl0Y2gsIFRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy5feWF3LCAwLjAsICdZWFonKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29weSB0aGUgZ2l2ZW4ge0BsaW5rIFZSTUxvb2tBdH0gaW50byB0aGlzIG9uZS5cbiAgICAgKiB7QGxpbmsgaHVtYW5vaWR9IG11c3QgYmUgc2FtZSBhcyB0aGUgc291cmNlIG9uZS5cbiAgICAgKiB7QGxpbmsgYXBwbGllcn0gd2lsbCByZWZlcmVuY2UgdGhlIHNhbWUgaW5zdGFuY2UgYXMgdGhlIHNvdXJjZSBvbmUuXG4gICAgICogQHBhcmFtIHNvdXJjZSBUaGUge0BsaW5rIFZSTUxvb2tBdH0geW91IHdhbnQgdG8gY29weVxuICAgICAqIEByZXR1cm5zIHRoaXNcbiAgICAgKi9cbiAgICBjb3B5KHNvdXJjZSkge1xuICAgICAgICBpZiAodGhpcy5odW1hbm9pZCAhPT0gc291cmNlLmh1bWFub2lkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZSTUxvb2tBdDogaHVtYW5vaWQgbXVzdCBiZSBzYW1lIGluIG9yZGVyIHRvIGNvcHknKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9mZnNldEZyb21IZWFkQm9uZS5jb3B5KHNvdXJjZS5vZmZzZXRGcm9tSGVhZEJvbmUpO1xuICAgICAgICB0aGlzLmFwcGxpZXIgPSBzb3VyY2UuYXBwbGllcjtcbiAgICAgICAgdGhpcy5hdXRvVXBkYXRlID0gc291cmNlLmF1dG9VcGRhdGU7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gc291cmNlLnRhcmdldDtcbiAgICAgICAgdGhpcy5mYWNlRnJvbnQuY29weShzb3VyY2UuZmFjZUZyb250KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBjbG9uZSBvZiB0aGlzIHtAbGluayBWUk1Mb29rQXR9LlxuICAgICAqIE5vdGUgdGhhdCB7QGxpbmsgaHVtYW5vaWR9IGFuZCB7QGxpbmsgYXBwbGllcn0gd2lsbCByZWZlcmVuY2UgdGhlIHNhbWUgaW5zdGFuY2UgYXMgdGhpcyBvbmUuXG4gICAgICogQHJldHVybnMgQ29waWVkIHtAbGluayBWUk1Mb29rQXR9XG4gICAgICovXG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVlJNTG9va0F0KHRoaXMuaHVtYW5vaWQsIHRoaXMuYXBwbGllcikuY29weSh0aGlzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVzZXQgdGhlIGxvb2tBdCBkaXJlY3Rpb24gKHlhdyBhbmQgcGl0Y2gpIHRvIHRoZSBpbml0aWFsIGRpcmVjdGlvbi5cbiAgICAgKi9cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5feWF3ID0gMC4wO1xuICAgICAgICB0aGlzLl9waXRjaCA9IDAuMDtcbiAgICAgICAgdGhpcy5fbmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgaXRzIGxvb2tBdCBwb3NpdGlvbiBpbiB3b3JsZCBjb29yZGluYXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhcmdldCBBIHRhcmdldCBgVEhSRUUuVmVjdG9yM2BcbiAgICAgKi9cbiAgICBnZXRMb29rQXRXb3JsZFBvc2l0aW9uKHRhcmdldCkge1xuICAgICAgICBjb25zdCBoZWFkID0gdGhpcy5odW1hbm9pZC5nZXRSYXdCb25lTm9kZSgnaGVhZCcpO1xuICAgICAgICByZXR1cm4gdGFyZ2V0LmNvcHkodGhpcy5vZmZzZXRGcm9tSGVhZEJvbmUpLmFwcGx5TWF0cml4NChoZWFkLm1hdHJpeFdvcmxkKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IGl0cyBsb29rQXQgcm90YXRpb24gaW4gd29ybGQgY29vcmRpbmF0ZS5cbiAgICAgKiBEb2VzIE5PVCBjb25zaWRlciB7QGxpbmsgZmFjZUZyb250fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQgQSB0YXJnZXQgYFRIUkVFLlF1YXRlcm5pb25gXG4gICAgICovXG4gICAgZ2V0TG9va0F0V29ybGRRdWF0ZXJuaW9uKHRhcmdldCkge1xuICAgICAgICBjb25zdCBoZWFkID0gdGhpcy5odW1hbm9pZC5nZXRSYXdCb25lTm9kZSgnaGVhZCcpO1xuICAgICAgICByZXR1cm4gZ2V0V29ybGRRdWF0ZXJuaW9uTGl0ZShoZWFkLCB0YXJnZXQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgYSBxdWF0ZXJuaW9uIHRoYXQgcm90YXRlcyB0aGUgK1ogdW5pdCB2ZWN0b3Igb2YgdGhlIGh1bWFub2lkIEhlYWQgdG8gdGhlIHtAbGluayBmYWNlRnJvbnR9IGRpcmVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQgQSB0YXJnZXQgYFRIUkVFLlF1YXRlcm5pb25gXG4gICAgICovXG4gICAgZ2V0RmFjZUZyb250UXVhdGVybmlvbih0YXJnZXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZmFjZUZyb250LmRpc3RhbmNlVG9TcXVhcmVkKFZFQzNfUE9TSVRJVkVfWiQxKSA8IDAuMDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQuY29weSh0aGlzLl9yZXN0SGVhZFdvcmxkUXVhdGVybmlvbikuaW52ZXJ0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW2ZhY2VGcm9udEF6aW11dGgsIGZhY2VGcm9udEFsdGl0dWRlXSA9IGNhbGNBemltdXRoQWx0aXR1ZGUodGhpcy5mYWNlRnJvbnQpO1xuICAgICAgICBfZXVsZXJBJDEuc2V0KDAuMCwgMC41ICogTWF0aC5QSSArIGZhY2VGcm9udEF6aW11dGgsIGZhY2VGcm9udEFsdGl0dWRlLCAnWVpYJyk7XG4gICAgICAgIHJldHVybiB0YXJnZXQuc2V0RnJvbUV1bGVyKF9ldWxlckEkMSkucHJlbXVsdGlwbHkoX3F1YXRELmNvcHkodGhpcy5fcmVzdEhlYWRXb3JsZFF1YXRlcm5pb24pLmludmVydCgpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IGl0cyBMb29rQXQgZGlyZWN0aW9uIGluIHdvcmxkIGNvb3JkaW5hdGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFyZ2V0IEEgdGFyZ2V0IGBUSFJFRS5WZWN0b3IzYFxuICAgICAqL1xuICAgIGdldExvb2tBdFdvcmxkRGlyZWN0aW9uKHRhcmdldCkge1xuICAgICAgICB0aGlzLmdldExvb2tBdFdvcmxkUXVhdGVybmlvbihfcXVhdEIkMSk7XG4gICAgICAgIHRoaXMuZ2V0RmFjZUZyb250UXVhdGVybmlvbihfcXVhdEMpO1xuICAgICAgICByZXR1cm4gdGFyZ2V0XG4gICAgICAgICAgICAuY29weShWRUMzX1BPU0lUSVZFX1okMSlcbiAgICAgICAgICAgIC5hcHBseVF1YXRlcm5pb24oX3F1YXRCJDEpXG4gICAgICAgICAgICAuYXBwbHlRdWF0ZXJuaW9uKF9xdWF0QylcbiAgICAgICAgICAgIC5hcHBseUV1bGVyKHRoaXMuZ2V0RXVsZXIoX2V1bGVyQSQxKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCBpdHMgbG9va0F0IHRhcmdldCBwb3NpdGlvbi5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCBpdHMgcmVzdWx0IHdpbGwgYmUgaW5zdGFudGx5IG92ZXJ3cml0dGVuIGlmIHtAbGluayBWUk1Mb29rQXRIZWFkLmF1dG9VcGRhdGV9IGlzIGVuYWJsZWQuXG4gICAgICpcbiAgICAgKiBJZiB5b3Ugd2FudCB0byB0cmFjayBhbiBvYmplY3QgY29udGludW91c2x5LCB5b3UgbWlnaHQgd2FudCB0byB1c2Uge0BsaW5rIHRhcmdldH0gaW5zdGVhZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwb3NpdGlvbiBBIHRhcmdldCBwb3NpdGlvbiwgaW4gd29ybGQgc3BhY2VcbiAgICAgKi9cbiAgICBsb29rQXQocG9zaXRpb24pIHtcbiAgICAgICAgLy8gTG9vayBhdCBkaXJlY3Rpb24gaW4gbG9jYWwgY29vcmRpbmF0ZVxuICAgICAgICBjb25zdCBoZWFkUm90RGlmZkludiA9IF9xdWF0QSQxXG4gICAgICAgICAgICAuY29weSh0aGlzLl9yZXN0SGVhZFdvcmxkUXVhdGVybmlvbilcbiAgICAgICAgICAgIC5tdWx0aXBseShxdWF0SW52ZXJ0Q29tcGF0KHRoaXMuZ2V0TG9va0F0V29ybGRRdWF0ZXJuaW9uKF9xdWF0QiQxKSkpO1xuICAgICAgICBjb25zdCBoZWFkUG9zID0gdGhpcy5nZXRMb29rQXRXb3JsZFBvc2l0aW9uKF92M0IpO1xuICAgICAgICBjb25zdCBsb29rQXREaXIgPSBfdjNDLmNvcHkocG9zaXRpb24pLnN1YihoZWFkUG9zKS5hcHBseVF1YXRlcm5pb24oaGVhZFJvdERpZmZJbnYpLm5vcm1hbGl6ZSgpO1xuICAgICAgICAvLyBjYWxjdWxhdGUgYW5nbGVzXG4gICAgICAgIGNvbnN0IFthemltdXRoRnJvbSwgYWx0aXR1ZGVGcm9tXSA9IGNhbGNBemltdXRoQWx0aXR1ZGUodGhpcy5mYWNlRnJvbnQpO1xuICAgICAgICBjb25zdCBbYXppbXV0aFRvLCBhbHRpdHVkZVRvXSA9IGNhbGNBemltdXRoQWx0aXR1ZGUobG9va0F0RGlyKTtcbiAgICAgICAgY29uc3QgeWF3ID0gc2FuaXRpemVBbmdsZShhemltdXRoVG8gLSBhemltdXRoRnJvbSk7XG4gICAgICAgIGNvbnN0IHBpdGNoID0gc2FuaXRpemVBbmdsZShhbHRpdHVkZUZyb20gLSBhbHRpdHVkZVRvKTsgLy8gc3Bpbm5pbmcgKDEsIDAsIDApIENDVyBhcm91bmQgWiBheGlzIG1ha2VzIHRoZSB2ZWN0b3IgbG9vayB1cCwgd2hpbGUgc3Bpbm5pbmcgKDAsIDAsIDEpIENDVyBhcm91bmQgWCBheGlzIG1ha2VzIHRoZSB2ZWN0b3IgbG9vayBkb3duXG4gICAgICAgIC8vIGFwcGx5IGFuZ2xlc1xuICAgICAgICB0aGlzLl95YXcgPSBUSFJFRS5NYXRoVXRpbHMuUkFEMkRFRyAqIHlhdztcbiAgICAgICAgdGhpcy5fcGl0Y2ggPSBUSFJFRS5NYXRoVXRpbHMuUkFEMkRFRyAqIHBpdGNoO1xuICAgICAgICB0aGlzLl9uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgVlJNTG9va0F0SGVhZC5cbiAgICAgKiBJZiB7QGxpbmsgYXV0b1VwZGF0ZX0gaXMgZW5hYmxlZCwgdGhpcyB3aWxsIG1ha2UgaXQgbG9vayBhdCB0aGUge0BsaW5rIHRhcmdldH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVsdGEgZGVsdGFUaW1lLCBpdCBpc24ndCB1c2VkIHRob3VnaC4gWW91IGNhbiB1c2UgdGhlIHBhcmFtZXRlciBpZiB5b3Ugd2FudCB0byB1c2UgdGhpcyBpbiB5b3VyIG93biBleHRlbmRlZCB7QGxpbmsgVlJNTG9va0F0fS5cbiAgICAgKi9cbiAgICB1cGRhdGUoZGVsdGEpIHtcbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0ICE9IG51bGwgJiYgdGhpcy5hdXRvVXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmxvb2tBdCh0aGlzLnRhcmdldC5nZXRXb3JsZFBvc2l0aW9uKF92M0EpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fbmVlZHNVcGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX25lZWRzVXBkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmFwcGxpZXIuYXBwbHlZYXdQaXRjaCh0aGlzLl95YXcsIHRoaXMuX3BpdGNoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblZSTUxvb2tBdC5FVUxFUl9PUkRFUiA9ICdZWFonOyAvLyB5YXctcGl0Y2gtcm9sbFxuXG5jb25zdCBWRUMzX1BPU0lUSVZFX1ogPSBuZXcgVEhSRUUuVmVjdG9yMygwLjAsIDAuMCwgMS4wKTtcbmNvbnN0IF9xdWF0QSA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfcXVhdEIgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX2V1bGVyQSA9IG5ldyBUSFJFRS5FdWxlcigwLjAsIDAuMCwgMC4wLCAnWVhaJyk7XG4vKipcbiAqIEEgY2xhc3MgdGhhdCBhcHBsaWVzIGV5ZSBnYXplIGRpcmVjdGlvbnMgdG8gYSBWUk0uXG4gKiBJdCB3aWxsIGJlIHVzZWQgYnkge0BsaW5rIFZSTUxvb2tBdH0uXG4gKi9cbmNsYXNzIFZSTUxvb2tBdEJvbmVBcHBsaWVyIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIFZSTUxvb2tBdEJvbmVBcHBsaWVyfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBodW1hbm9pZCBBIHtAbGluayBWUk1IdW1hbm9pZH1cbiAgICAgKiBAcGFyYW0gcmFuZ2VNYXBIb3Jpem9udGFsSW5uZXIgQSB7QGxpbmsgVlJNTG9va0F0UmFuZ2VNYXB9IHVzZWQgZm9yIGlubmVyIHRyYW5zdmVyc2UgZGlyZWN0aW9uXG4gICAgICogQHBhcmFtIHJhbmdlTWFwSG9yaXpvbnRhbE91dGVyIEEge0BsaW5rIFZSTUxvb2tBdFJhbmdlTWFwfSB1c2VkIGZvciBvdXRlciB0cmFuc3ZlcnNlIGRpcmVjdGlvblxuICAgICAqIEBwYXJhbSByYW5nZU1hcFZlcnRpY2FsRG93biBBIHtAbGluayBWUk1Mb29rQXRSYW5nZU1hcH0gdXNlZCBmb3IgZG93biBkaXJlY3Rpb25cbiAgICAgKiBAcGFyYW0gcmFuZ2VNYXBWZXJ0aWNhbFVwIEEge0BsaW5rIFZSTUxvb2tBdFJhbmdlTWFwfSB1c2VkIGZvciB1cCBkaXJlY3Rpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihodW1hbm9pZCwgcmFuZ2VNYXBIb3Jpem9udGFsSW5uZXIsIHJhbmdlTWFwSG9yaXpvbnRhbE91dGVyLCByYW5nZU1hcFZlcnRpY2FsRG93biwgcmFuZ2VNYXBWZXJ0aWNhbFVwKSB7XG4gICAgICAgIHRoaXMuaHVtYW5vaWQgPSBodW1hbm9pZDtcbiAgICAgICAgdGhpcy5yYW5nZU1hcEhvcml6b250YWxJbm5lciA9IHJhbmdlTWFwSG9yaXpvbnRhbElubmVyO1xuICAgICAgICB0aGlzLnJhbmdlTWFwSG9yaXpvbnRhbE91dGVyID0gcmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXI7XG4gICAgICAgIHRoaXMucmFuZ2VNYXBWZXJ0aWNhbERvd24gPSByYW5nZU1hcFZlcnRpY2FsRG93bjtcbiAgICAgICAgdGhpcy5yYW5nZU1hcFZlcnRpY2FsVXAgPSByYW5nZU1hcFZlcnRpY2FsVXA7XG4gICAgICAgIHRoaXMuZmFjZUZyb250ID0gbmV3IFRIUkVFLlZlY3RvcjMoMC4wLCAwLjAsIDEuMCk7XG4gICAgICAgIC8vIHNldCByZXN0IHF1YXRlcm5pb25zXG4gICAgICAgIHRoaXMuX3Jlc3RRdWF0TGVmdEV5ZSA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgICAgIHRoaXMuX3Jlc3RRdWF0UmlnaHRFeWUgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuICAgICAgICB0aGlzLl9yZXN0TGVmdEV5ZVBhcmVudFdvcmxkUXVhdCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgICAgIHRoaXMuX3Jlc3RSaWdodEV5ZVBhcmVudFdvcmxkUXVhdCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgICAgIGNvbnN0IGxlZnRFeWUgPSB0aGlzLmh1bWFub2lkLmdldFJhd0JvbmVOb2RlKCdsZWZ0RXllJyk7XG4gICAgICAgIGNvbnN0IHJpZ2h0RXllID0gdGhpcy5odW1hbm9pZC5nZXRSYXdCb25lTm9kZSgncmlnaHRFeWUnKTtcbiAgICAgICAgaWYgKGxlZnRFeWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc3RRdWF0TGVmdEV5ZS5jb3B5KGxlZnRFeWUucXVhdGVybmlvbik7XG4gICAgICAgICAgICBnZXRXb3JsZFF1YXRlcm5pb25MaXRlKGxlZnRFeWUucGFyZW50LCB0aGlzLl9yZXN0TGVmdEV5ZVBhcmVudFdvcmxkUXVhdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJpZ2h0RXllKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXN0UXVhdFJpZ2h0RXllLmNvcHkocmlnaHRFeWUucXVhdGVybmlvbik7XG4gICAgICAgICAgICBnZXRXb3JsZFF1YXRlcm5pb25MaXRlKHJpZ2h0RXllLnBhcmVudCwgdGhpcy5fcmVzdFJpZ2h0RXllUGFyZW50V29ybGRRdWF0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBcHBseSB0aGUgaW5wdXQgYW5nbGUgdG8gaXRzIGFzc29jaWF0ZWQgVlJNIG1vZGVsLlxuICAgICAqXG4gICAgICogQHBhcmFtIHlhdyBSb3RhdGlvbiBhcm91bmQgWSBheGlzLCBpbiBkZWdyZWVcbiAgICAgKiBAcGFyYW0gcGl0Y2ggUm90YXRpb24gYXJvdW5kIFggYXhpcywgaW4gZGVncmVlXG4gICAgICovXG4gICAgYXBwbHlZYXdQaXRjaCh5YXcsIHBpdGNoKSB7XG4gICAgICAgIGNvbnN0IGxlZnRFeWUgPSB0aGlzLmh1bWFub2lkLmdldFJhd0JvbmVOb2RlKCdsZWZ0RXllJyk7XG4gICAgICAgIGNvbnN0IHJpZ2h0RXllID0gdGhpcy5odW1hbm9pZC5nZXRSYXdCb25lTm9kZSgncmlnaHRFeWUnKTtcbiAgICAgICAgY29uc3QgbGVmdEV5ZU5vcm1hbGl6ZWQgPSB0aGlzLmh1bWFub2lkLmdldE5vcm1hbGl6ZWRCb25lTm9kZSgnbGVmdEV5ZScpO1xuICAgICAgICBjb25zdCByaWdodEV5ZU5vcm1hbGl6ZWQgPSB0aGlzLmh1bWFub2lkLmdldE5vcm1hbGl6ZWRCb25lTm9kZSgncmlnaHRFeWUnKTtcbiAgICAgICAgLy8gbGVmdFxuICAgICAgICBpZiAobGVmdEV5ZSkge1xuICAgICAgICAgICAgaWYgKHBpdGNoIDwgMC4wKSB7XG4gICAgICAgICAgICAgICAgX2V1bGVyQS54ID0gLVRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy5yYW5nZU1hcFZlcnRpY2FsRG93bi5tYXAoLXBpdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9ldWxlckEueCA9IFRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy5yYW5nZU1hcFZlcnRpY2FsVXAubWFwKHBpdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh5YXcgPCAwLjApIHtcbiAgICAgICAgICAgICAgICBfZXVsZXJBLnkgPSAtVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLnJhbmdlTWFwSG9yaXpvbnRhbElubmVyLm1hcCgteWF3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9ldWxlckEueSA9IFRIUkVFLk1hdGhVdGlscy5ERUcyUkFEICogdGhpcy5yYW5nZU1hcEhvcml6b250YWxPdXRlci5tYXAoeWF3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9xdWF0QS5zZXRGcm9tRXVsZXIoX2V1bGVyQSk7XG4gICAgICAgICAgICB0aGlzLl9nZXRXb3JsZEZhY2VGcm9udFF1YXQoX3F1YXRCKTtcbiAgICAgICAgICAgIC8vIF9xdWF0QiAqIF9xdWF0QSAqIF9xdWF0Ql4tMVxuICAgICAgICAgICAgLy8gd2hlcmUgX3F1YXRBIGlzIExvb2tBdCByb3RhdGlvblxuICAgICAgICAgICAgLy8gYW5kIF9xdWF0QiBpcyB3b3JsZEZhY2VGcm9udFF1YXRcbiAgICAgICAgICAgIGxlZnRFeWVOb3JtYWxpemVkLnF1YXRlcm5pb24uY29weShfcXVhdEIpLm11bHRpcGx5KF9xdWF0QSkubXVsdGlwbHkoX3F1YXRCLmludmVydCgpKTtcbiAgICAgICAgICAgIF9xdWF0QS5jb3B5KHRoaXMuX3Jlc3RMZWZ0RXllUGFyZW50V29ybGRRdWF0KTtcbiAgICAgICAgICAgIC8vIF9xdWF0QV4tMSAqIGxlZnRFeWVOb3JtYWxpemVkLnF1YXRlcm5pb24gKiBfcXVhdEEgKiByZXN0UXVhdExlZnRFeWVcbiAgICAgICAgICAgIC8vIHdoZXJlIF9xdWF0QSBpcyByZXN0TGVmdEV5ZVBhcmVudFdvcmxkUXVhdFxuICAgICAgICAgICAgbGVmdEV5ZS5xdWF0ZXJuaW9uXG4gICAgICAgICAgICAgICAgLmNvcHkobGVmdEV5ZU5vcm1hbGl6ZWQucXVhdGVybmlvbilcbiAgICAgICAgICAgICAgICAubXVsdGlwbHkoX3F1YXRBKVxuICAgICAgICAgICAgICAgIC5wcmVtdWx0aXBseShfcXVhdEEuaW52ZXJ0KCkpXG4gICAgICAgICAgICAgICAgLm11bHRpcGx5KHRoaXMuX3Jlc3RRdWF0TGVmdEV5ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmlnaHRcbiAgICAgICAgaWYgKHJpZ2h0RXllKSB7XG4gICAgICAgICAgICBpZiAocGl0Y2ggPCAwLjApIHtcbiAgICAgICAgICAgICAgICBfZXVsZXJBLnggPSAtVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLnJhbmdlTWFwVmVydGljYWxEb3duLm1hcCgtcGl0Y2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2V1bGVyQS54ID0gVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLnJhbmdlTWFwVmVydGljYWxVcC5tYXAocGl0Y2gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHlhdyA8IDAuMCkge1xuICAgICAgICAgICAgICAgIF9ldWxlckEueSA9IC1USFJFRS5NYXRoVXRpbHMuREVHMlJBRCAqIHRoaXMucmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIubWFwKC15YXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgX2V1bGVyQS55ID0gVEhSRUUuTWF0aFV0aWxzLkRFRzJSQUQgKiB0aGlzLnJhbmdlTWFwSG9yaXpvbnRhbElubmVyLm1hcCh5YXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3F1YXRBLnNldEZyb21FdWxlcihfZXVsZXJBKTtcbiAgICAgICAgICAgIHRoaXMuX2dldFdvcmxkRmFjZUZyb250UXVhdChfcXVhdEIpO1xuICAgICAgICAgICAgLy8gX3F1YXRCICogX3F1YXRBICogX3F1YXRCXi0xXG4gICAgICAgICAgICAvLyB3aGVyZSBfcXVhdEEgaXMgTG9va0F0IHJvdGF0aW9uXG4gICAgICAgICAgICAvLyBhbmQgX3F1YXRCIGlzIHdvcmxkRmFjZUZyb250UXVhdFxuICAgICAgICAgICAgcmlnaHRFeWVOb3JtYWxpemVkLnF1YXRlcm5pb24uY29weShfcXVhdEIpLm11bHRpcGx5KF9xdWF0QSkubXVsdGlwbHkoX3F1YXRCLmludmVydCgpKTtcbiAgICAgICAgICAgIF9xdWF0QS5jb3B5KHRoaXMuX3Jlc3RSaWdodEV5ZVBhcmVudFdvcmxkUXVhdCk7XG4gICAgICAgICAgICAvLyBfcXVhdEFeLTEgKiByaWdodEV5ZU5vcm1hbGl6ZWQucXVhdGVybmlvbiAqIF9xdWF0QSAqIHJlc3RRdWF0UmlnaHRFeWVcbiAgICAgICAgICAgIC8vIHdoZXJlIF9xdWF0QSBpcyByZXN0UmlnaHRFeWVQYXJlbnRXb3JsZFF1YXRcbiAgICAgICAgICAgIHJpZ2h0RXllLnF1YXRlcm5pb25cbiAgICAgICAgICAgICAgICAuY29weShyaWdodEV5ZU5vcm1hbGl6ZWQucXVhdGVybmlvbilcbiAgICAgICAgICAgICAgICAubXVsdGlwbHkoX3F1YXRBKVxuICAgICAgICAgICAgICAgIC5wcmVtdWx0aXBseShfcXVhdEEuaW52ZXJ0KCkpXG4gICAgICAgICAgICAgICAgLm11bHRpcGx5KHRoaXMuX3Jlc3RRdWF0UmlnaHRFeWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgYXBwbHlZYXdQaXRjaH0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBsb29rQXQoZXVsZXIpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1Mb29rQXRCb25lQXBwbGllcjogbG9va0F0KCkgaXMgZGVwcmVjYXRlZC4gdXNlIGFwcGx5KCkgaW5zdGVhZC4nKTtcbiAgICAgICAgY29uc3QgeWF3ID0gVEhSRUUuTWF0aFV0aWxzLlJBRDJERUcgKiBldWxlci55O1xuICAgICAgICBjb25zdCBwaXRjaCA9IFRIUkVFLk1hdGhVdGlscy5SQUQyREVHICogZXVsZXIueDtcbiAgICAgICAgdGhpcy5hcHBseVlhd1BpdGNoKHlhdywgcGl0Y2gpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXQgYSBxdWF0ZXJuaW9uIHRoYXQgcm90YXRlcyB0aGUgd29ybGQtc3BhY2UgK1ogdW5pdCB2ZWN0b3IgdG8gdGhlIHtAbGluayBmYWNlRnJvbnR9IGRpcmVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQgQSB0YXJnZXQgYFRIUkVFLlF1YXRlcm5pb25gXG4gICAgICovXG4gICAgX2dldFdvcmxkRmFjZUZyb250UXVhdCh0YXJnZXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZmFjZUZyb250LmRpc3RhbmNlVG9TcXVhcmVkKFZFQzNfUE9TSVRJVkVfWikgPCAwLjAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LmlkZW50aXR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW2ZhY2VGcm9udEF6aW11dGgsIGZhY2VGcm9udEFsdGl0dWRlXSA9IGNhbGNBemltdXRoQWx0aXR1ZGUodGhpcy5mYWNlRnJvbnQpO1xuICAgICAgICBfZXVsZXJBLnNldCgwLjAsIDAuNSAqIE1hdGguUEkgKyBmYWNlRnJvbnRBemltdXRoLCBmYWNlRnJvbnRBbHRpdHVkZSwgJ1laWCcpO1xuICAgICAgICByZXR1cm4gdGFyZ2V0LnNldEZyb21FdWxlcihfZXVsZXJBKTtcbiAgICB9XG59XG4vKipcbiAqIFJlcHJlc2VudCBpdHMgdHlwZSBvZiBhcHBsaWVyLlxuICovXG5WUk1Mb29rQXRCb25lQXBwbGllci50eXBlID0gJ2JvbmUnO1xuXG4vKipcbiAqIEEgY2xhc3MgdGhhdCBhcHBsaWVzIGV5ZSBnYXplIGRpcmVjdGlvbnMgdG8gYSBWUk0uXG4gKiBJdCB3aWxsIGJlIHVzZWQgYnkge0BsaW5rIFZSTUxvb2tBdH0uXG4gKi9cbmNsYXNzIFZSTUxvb2tBdEV4cHJlc3Npb25BcHBsaWVyIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIFZSTUxvb2tBdEV4cHJlc3Npb25BcHBsaWVyfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBleHByZXNzaW9ucyBBIHtAbGluayBWUk1FeHByZXNzaW9uTWFuYWdlcn1cbiAgICAgKiBAcGFyYW0gcmFuZ2VNYXBIb3Jpem9udGFsSW5uZXIgQSB7QGxpbmsgVlJNTG9va0F0UmFuZ2VNYXB9IHVzZWQgZm9yIGlubmVyIHRyYW5zdmVyc2UgZGlyZWN0aW9uXG4gICAgICogQHBhcmFtIHJhbmdlTWFwSG9yaXpvbnRhbE91dGVyIEEge0BsaW5rIFZSTUxvb2tBdFJhbmdlTWFwfSB1c2VkIGZvciBvdXRlciB0cmFuc3ZlcnNlIGRpcmVjdGlvblxuICAgICAqIEBwYXJhbSByYW5nZU1hcFZlcnRpY2FsRG93biBBIHtAbGluayBWUk1Mb29rQXRSYW5nZU1hcH0gdXNlZCBmb3IgZG93biBkaXJlY3Rpb25cbiAgICAgKiBAcGFyYW0gcmFuZ2VNYXBWZXJ0aWNhbFVwIEEge0BsaW5rIFZSTUxvb2tBdFJhbmdlTWFwfSB1c2VkIGZvciB1cCBkaXJlY3Rpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihleHByZXNzaW9ucywgcmFuZ2VNYXBIb3Jpem9udGFsSW5uZXIsIHJhbmdlTWFwSG9yaXpvbnRhbE91dGVyLCByYW5nZU1hcFZlcnRpY2FsRG93biwgcmFuZ2VNYXBWZXJ0aWNhbFVwKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBleHByZXNzaW9ucztcbiAgICAgICAgdGhpcy5yYW5nZU1hcEhvcml6b250YWxJbm5lciA9IHJhbmdlTWFwSG9yaXpvbnRhbElubmVyO1xuICAgICAgICB0aGlzLnJhbmdlTWFwSG9yaXpvbnRhbE91dGVyID0gcmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXI7XG4gICAgICAgIHRoaXMucmFuZ2VNYXBWZXJ0aWNhbERvd24gPSByYW5nZU1hcFZlcnRpY2FsRG93bjtcbiAgICAgICAgdGhpcy5yYW5nZU1hcFZlcnRpY2FsVXAgPSByYW5nZU1hcFZlcnRpY2FsVXA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFwcGx5IHRoZSBpbnB1dCBhbmdsZSB0byBpdHMgYXNzb2NpYXRlZCBWUk0gbW9kZWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0geWF3IFJvdGF0aW9uIGFyb3VuZCBZIGF4aXMsIGluIGRlZ3JlZVxuICAgICAqIEBwYXJhbSBwaXRjaCBSb3RhdGlvbiBhcm91bmQgWCBheGlzLCBpbiBkZWdyZWVcbiAgICAgKi9cbiAgICBhcHBseVlhd1BpdGNoKHlhdywgcGl0Y2gpIHtcbiAgICAgICAgaWYgKHBpdGNoIDwgMC4wKSB7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zLnNldFZhbHVlKCdsb29rRG93bicsIDAuMCk7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zLnNldFZhbHVlKCdsb29rVXAnLCB0aGlzLnJhbmdlTWFwVmVydGljYWxVcC5tYXAoLXBpdGNoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zLnNldFZhbHVlKCdsb29rVXAnLCAwLjApO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9ucy5zZXRWYWx1ZSgnbG9va0Rvd24nLCB0aGlzLnJhbmdlTWFwVmVydGljYWxEb3duLm1hcChwaXRjaCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh5YXcgPCAwLjApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuc2V0VmFsdWUoJ2xvb2tMZWZ0JywgMC4wKTtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuc2V0VmFsdWUoJ2xvb2tSaWdodCcsIHRoaXMucmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIubWFwKC15YXcpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuc2V0VmFsdWUoJ2xvb2tSaWdodCcsIDAuMCk7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zLnNldFZhbHVlKCdsb29rTGVmdCcsIHRoaXMucmFuZ2VNYXBIb3Jpem9udGFsT3V0ZXIubWFwKHlhdykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgYXBwbHlZYXdQaXRjaH0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBsb29rQXQoZXVsZXIpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1Mb29rQXRCb25lQXBwbGllcjogbG9va0F0KCkgaXMgZGVwcmVjYXRlZC4gdXNlIGFwcGx5KCkgaW5zdGVhZC4nKTtcbiAgICAgICAgY29uc3QgeWF3ID0gVEhSRUUuTWF0aFV0aWxzLlJBRDJERUcgKiBldWxlci55O1xuICAgICAgICBjb25zdCBwaXRjaCA9IFRIUkVFLk1hdGhVdGlscy5SQUQyREVHICogZXVsZXIueDtcbiAgICAgICAgdGhpcy5hcHBseVlhd1BpdGNoKHlhdywgcGl0Y2gpO1xuICAgIH1cbn1cbi8qKlxuICogUmVwcmVzZW50IGl0cyB0eXBlIG9mIGFwcGxpZXIuXG4gKi9cblZSTUxvb2tBdEV4cHJlc3Npb25BcHBsaWVyLnR5cGUgPSAnZXhwcmVzc2lvbic7XG5cbmNsYXNzIFZSTUxvb2tBdFJhbmdlTWFwIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIFZSTUxvb2tBdFJhbmdlTWFwfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbnB1dE1heFZhbHVlIFRoZSB7QGxpbmsgaW5wdXRNYXhWYWx1ZX0gb2YgdGhlIG1hcFxuICAgICAqIEBwYXJhbSBvdXRwdXRTY2FsZSBUaGUge0BsaW5rIG91dHB1dFNjYWxlfSBvZiB0aGUgbWFwXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoaW5wdXRNYXhWYWx1ZSwgb3V0cHV0U2NhbGUpIHtcbiAgICAgICAgdGhpcy5pbnB1dE1heFZhbHVlID0gaW5wdXRNYXhWYWx1ZTtcbiAgICAgICAgdGhpcy5vdXRwdXRTY2FsZSA9IG91dHB1dFNjYWxlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFdmFsdWF0ZSBhbiBpbnB1dCB2YWx1ZSBhbmQgb3V0cHV0IGEgbWFwcGVkIHZhbHVlLlxuICAgICAqIEBwYXJhbSBzcmMgVGhlIGlucHV0IHZhbHVlXG4gICAgICovXG4gICAgbWFwKHNyYykge1xuICAgICAgICByZXR1cm4gdGhpcy5vdXRwdXRTY2FsZSAqIHNhdHVyYXRlKHNyYyAvIHRoaXMuaW5wdXRNYXhWYWx1ZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFBvc3NpYmxlIHNwZWMgdmVyc2lvbnMgaXQgcmVjb2duaXplcy5cbiAqL1xuY29uc3QgUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyQxID0gbmV3IFNldChbJzEuMCcsICcxLjAtYmV0YSddKTtcbi8qKlxuICogVGhlIG1pbmltdW0gcGVybWl0dGVkIHZhbHVlIGZvciB7QGxpbmsgVjFWUk1TY2hlbWEuTG9va0F0UmFuZ2VNYXAuaW5wdXRNYXhWYWx1ZX0uXG4gKiBJZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgc21hbGxlciB0aGFuIHRoaXMsIHRoZSBsb2FkZXIgc2hvd3MgYSB3YXJuaW5nIGFuZCBjbGFtcHMgdXAgdGhlIHZhbHVlLlxuICovXG5jb25zdCBJTlBVVF9NQVhfVkFMVUVfTUlOSU1VTSA9IDAuMDE7XG4vKipcbiAqIEEgcGx1Z2luIG9mIEdMVEZMb2FkZXIgdGhhdCBpbXBvcnRzIGEge0BsaW5rIFZSTUxvb2tBdH0gZnJvbSBhIFZSTSBleHRlbnNpb24gb2YgYSBHTFRGLlxuICovXG5jbGFzcyBWUk1Mb29rQXRMb2FkZXJQbHVnaW4ge1xuICAgIGdldCBuYW1lKCkge1xuICAgICAgICAvLyBXZSBzaG91bGQgdXNlIHRoZSBleHRlbnNpb24gbmFtZSBpbnN0ZWFkIGJ1dCB3ZSBoYXZlIG11bHRpcGxlIHBsdWdpbnMgZm9yIGFuIGV4dGVuc2lvbi4uLlxuICAgICAgICByZXR1cm4gJ1ZSTUxvb2tBdExvYWRlclBsdWdpbic7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcnNlciwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICAgICAgdGhpcy5oZWxwZXJSb290ID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmhlbHBlclJvb3Q7XG4gICAgfVxuICAgIGFmdGVyUm9vdChnbHRmKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCB2cm1IdW1hbm9pZCA9IGdsdGYudXNlckRhdGEudnJtSHVtYW5vaWQ7XG4gICAgICAgICAgICAvLyBleHBsaWNpdGx5IGRpc3Rpbmd1aXNoIG51bGwgYW5kIHVuZGVmaW5lZFxuICAgICAgICAgICAgLy8gc2luY2UgdnJtSHVtYW5vaWQgbWlnaHQgYmUgbnVsbCBhcyBhIHJlc3VsdFxuICAgICAgICAgICAgaWYgKHZybUh1bWFub2lkID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodnJtSHVtYW5vaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVlJNTG9va0F0TG9hZGVyUGx1Z2luOiB2cm1IdW1hbm9pZCBpcyB1bmRlZmluZWQuIFZSTUh1bWFub2lkTG9hZGVyUGx1Z2luIGhhdmUgdG8gYmUgdXNlZCBmaXJzdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdnJtRXhwcmVzc2lvbk1hbmFnZXIgPSBnbHRmLnVzZXJEYXRhLnZybUV4cHJlc3Npb25NYW5hZ2VyO1xuICAgICAgICAgICAgaWYgKHZybUV4cHJlc3Npb25NYW5hZ2VyID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodnJtRXhwcmVzc2lvbk1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVlJNTG9va0F0TG9hZGVyUGx1Z2luOiB2cm1FeHByZXNzaW9uTWFuYWdlciBpcyB1bmRlZmluZWQuIFZSTUV4cHJlc3Npb25Mb2FkZXJQbHVnaW4gaGF2ZSB0byBiZSB1c2VkIGZpcnN0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBnbHRmLnVzZXJEYXRhLnZybUxvb2tBdCA9IHlpZWxkIHRoaXMuX2ltcG9ydChnbHRmLCB2cm1IdW1hbm9pZCwgdnJtRXhwcmVzc2lvbk1hbmFnZXIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW1wb3J0IGEge0BsaW5rIFZSTUxvb2tBdH0gZnJvbSBhIFZSTS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBnbHRmIEEgcGFyc2VkIHJlc3VsdCBvZiBHTFRGIHRha2VuIGZyb20gR0xURkxvYWRlclxuICAgICAqIEBwYXJhbSBodW1hbm9pZCBBIHtAbGluayBWUk1IdW1hbm9pZH0gaW5zdGFuY2UgdGhhdCByZXByZXNlbnRzIHRoZSBWUk1cbiAgICAgKiBAcGFyYW0gZXhwcmVzc2lvbnMgQSB7QGxpbmsgVlJNRXhwcmVzc2lvbk1hbmFnZXJ9IGluc3RhbmNlIHRoYXQgcmVwcmVzZW50cyB0aGUgVlJNXG4gICAgICovXG4gICAgX2ltcG9ydChnbHRmLCBodW1hbm9pZCwgZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmIChodW1hbm9pZCA9PSBudWxsIHx8IGV4cHJlc3Npb25zID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHYxUmVzdWx0ID0geWllbGQgdGhpcy5fdjFJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQsIGV4cHJlc3Npb25zKTtcbiAgICAgICAgICAgIGlmICh2MVJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2MVJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHYwUmVzdWx0ID0geWllbGQgdGhpcy5fdjBJbXBvcnQoZ2x0ZiwgaHVtYW5vaWQsIGV4cHJlc3Npb25zKTtcbiAgICAgICAgICAgIGlmICh2MFJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2MFJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3YxSW1wb3J0KGdsdGYsIGh1bWFub2lkLCBleHByZXNzaW9ucykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgdnJtXG4gICAgICAgICAgICBjb25zdCBpc1ZSTVVzZWQgPSAoKF9hID0ganNvbi5leHRlbnNpb25zVXNlZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmluZGV4T2YoJ1ZSTUNfdnJtJykpICE9PSAtMTtcbiAgICAgICAgICAgIGlmICghaXNWUk1Vc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSAoX2IgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYlsnVlJNQ192cm0nXTtcbiAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzcGVjVmVyc2lvbiA9IGV4dGVuc2lvbi5zcGVjVmVyc2lvbjtcbiAgICAgICAgICAgIGlmICghUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyQxLmhhcyhzcGVjVmVyc2lvbikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTUxvb2tBdExvYWRlclBsdWdpbjogVW5rbm93biBWUk1DX3ZybSBzcGVjVmVyc2lvbiBcIiR7c3BlY1ZlcnNpb259XCJgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYUxvb2tBdCA9IGV4dGVuc2lvbi5sb29rQXQ7XG4gICAgICAgICAgICBpZiAoIXNjaGVtYUxvb2tBdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdE91dHB1dFNjYWxlID0gc2NoZW1hTG9va0F0LnR5cGUgPT09ICdleHByZXNzaW9uJyA/IDEuMCA6IDEwLjA7XG4gICAgICAgICAgICBjb25zdCBtYXBISSA9IHRoaXMuX3YxSW1wb3J0UmFuZ2VNYXAoc2NoZW1hTG9va0F0LnJhbmdlTWFwSG9yaXpvbnRhbElubmVyLCBkZWZhdWx0T3V0cHV0U2NhbGUpO1xuICAgICAgICAgICAgY29uc3QgbWFwSE8gPSB0aGlzLl92MUltcG9ydFJhbmdlTWFwKHNjaGVtYUxvb2tBdC5yYW5nZU1hcEhvcml6b250YWxPdXRlciwgZGVmYXVsdE91dHB1dFNjYWxlKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcFZEID0gdGhpcy5fdjFJbXBvcnRSYW5nZU1hcChzY2hlbWFMb29rQXQucmFuZ2VNYXBWZXJ0aWNhbERvd24sIGRlZmF1bHRPdXRwdXRTY2FsZSk7XG4gICAgICAgICAgICBjb25zdCBtYXBWVSA9IHRoaXMuX3YxSW1wb3J0UmFuZ2VNYXAoc2NoZW1hTG9va0F0LnJhbmdlTWFwVmVydGljYWxVcCwgZGVmYXVsdE91dHB1dFNjYWxlKTtcbiAgICAgICAgICAgIGxldCBhcHBsaWVyO1xuICAgICAgICAgICAgaWYgKHNjaGVtYUxvb2tBdC50eXBlID09PSAnZXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgICAgICBhcHBsaWVyID0gbmV3IFZSTUxvb2tBdEV4cHJlc3Npb25BcHBsaWVyKGV4cHJlc3Npb25zLCBtYXBISSwgbWFwSE8sIG1hcFZELCBtYXBWVSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcHBsaWVyID0gbmV3IFZSTUxvb2tBdEJvbmVBcHBsaWVyKGh1bWFub2lkLCBtYXBISSwgbWFwSE8sIG1hcFZELCBtYXBWVSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsb29rQXQgPSB0aGlzLl9pbXBvcnRMb29rQXQoaHVtYW5vaWQsIGFwcGxpZXIpO1xuICAgICAgICAgICAgbG9va0F0Lm9mZnNldEZyb21IZWFkQm9uZS5mcm9tQXJyYXkoKF9jID0gc2NoZW1hTG9va0F0Lm9mZnNldEZyb21IZWFkQm9uZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogWzAuMCwgMC4wNiwgMC4wXSk7XG4gICAgICAgICAgICByZXR1cm4gbG9va0F0O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3YxSW1wb3J0UmFuZ2VNYXAoc2NoZW1hUmFuZ2VNYXAsIGRlZmF1bHRPdXRwdXRTY2FsZSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBsZXQgaW5wdXRNYXhWYWx1ZSA9IChfYSA9IHNjaGVtYVJhbmdlTWFwID09PSBudWxsIHx8IHNjaGVtYVJhbmdlTWFwID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2hlbWFSYW5nZU1hcC5pbnB1dE1heFZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiA5MC4wO1xuICAgICAgICBjb25zdCBvdXRwdXRTY2FsZSA9IChfYiA9IHNjaGVtYVJhbmdlTWFwID09PSBudWxsIHx8IHNjaGVtYVJhbmdlTWFwID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2hlbWFSYW5nZU1hcC5vdXRwdXRTY2FsZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZGVmYXVsdE91dHB1dFNjYWxlO1xuICAgICAgICAvLyBJdCBtaWdodCBjYXVzZSBOYU4gd2hlbiBgaW5wdXRNYXhWYWx1ZWAgaXMgdG9vIHNtYWxsXG4gICAgICAgIC8vIHdoaWNoIG1ha2VzIHRoZSBtZXNoIG9mIHRoZSBoZWFkIGRpc2FwcGVhclxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9waXhpdi90aHJlZS12cm0vaXNzdWVzLzEyMDFcbiAgICAgICAgaWYgKGlucHV0TWF4VmFsdWUgPCBJTlBVVF9NQVhfVkFMVUVfTUlOSU1VTSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdWUk1Mb29rQXRMb2FkZXJQbHVnaW46IGlucHV0TWF4VmFsdWUgb2YgYSByYW5nZSBtYXAgaXMgdG9vIHNtYWxsLiBDb25zaWRlciByZXZpZXdpbmcgdGhlIHJhbmdlIG1hcCEnKTtcbiAgICAgICAgICAgIGlucHV0TWF4VmFsdWUgPSBJTlBVVF9NQVhfVkFMVUVfTUlOSU1VTTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFZSTUxvb2tBdFJhbmdlTWFwKGlucHV0TWF4VmFsdWUsIG91dHB1dFNjYWxlKTtcbiAgICB9XG4gICAgX3YwSW1wb3J0KGdsdGYsIGh1bWFub2lkLCBleHByZXNzaW9ucykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gdGhpcy5wYXJzZXIuanNvbjtcbiAgICAgICAgICAgIC8vIGVhcmx5IGFib3J0IGlmIGl0IGRvZXNuJ3QgdXNlIHZybVxuICAgICAgICAgICAgY29uc3QgdnJtRXh0ID0gKF9hID0ganNvbi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuVlJNO1xuICAgICAgICAgICAgaWYgKCF2cm1FeHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYUZpcnN0UGVyc29uID0gdnJtRXh0LmZpcnN0UGVyc29uO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFGaXJzdFBlcnNvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdE91dHB1dFNjYWxlID0gc2NoZW1hRmlyc3RQZXJzb24ubG9va0F0VHlwZU5hbWUgPT09ICdCbGVuZFNoYXBlJyA/IDEuMCA6IDEwLjA7XG4gICAgICAgICAgICBjb25zdCBtYXBISSA9IHRoaXMuX3YwSW1wb3J0RGVncmVlTWFwKHNjaGVtYUZpcnN0UGVyc29uLmxvb2tBdEhvcml6b250YWxJbm5lciwgZGVmYXVsdE91dHB1dFNjYWxlKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcEhPID0gdGhpcy5fdjBJbXBvcnREZWdyZWVNYXAoc2NoZW1hRmlyc3RQZXJzb24ubG9va0F0SG9yaXpvbnRhbE91dGVyLCBkZWZhdWx0T3V0cHV0U2NhbGUpO1xuICAgICAgICAgICAgY29uc3QgbWFwVkQgPSB0aGlzLl92MEltcG9ydERlZ3JlZU1hcChzY2hlbWFGaXJzdFBlcnNvbi5sb29rQXRWZXJ0aWNhbERvd24sIGRlZmF1bHRPdXRwdXRTY2FsZSk7XG4gICAgICAgICAgICBjb25zdCBtYXBWVSA9IHRoaXMuX3YwSW1wb3J0RGVncmVlTWFwKHNjaGVtYUZpcnN0UGVyc29uLmxvb2tBdFZlcnRpY2FsVXAsIGRlZmF1bHRPdXRwdXRTY2FsZSk7XG4gICAgICAgICAgICBsZXQgYXBwbGllcjtcbiAgICAgICAgICAgIGlmIChzY2hlbWFGaXJzdFBlcnNvbi5sb29rQXRUeXBlTmFtZSA9PT0gJ0JsZW5kU2hhcGUnKSB7XG4gICAgICAgICAgICAgICAgYXBwbGllciA9IG5ldyBWUk1Mb29rQXRFeHByZXNzaW9uQXBwbGllcihleHByZXNzaW9ucywgbWFwSEksIG1hcEhPLCBtYXBWRCwgbWFwVlUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYXBwbGllciA9IG5ldyBWUk1Mb29rQXRCb25lQXBwbGllcihodW1hbm9pZCwgbWFwSEksIG1hcEhPLCBtYXBWRCwgbWFwVlUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbG9va0F0ID0gdGhpcy5faW1wb3J0TG9va0F0KGh1bWFub2lkLCBhcHBsaWVyKTtcbiAgICAgICAgICAgIGlmIChzY2hlbWFGaXJzdFBlcnNvbi5maXJzdFBlcnNvbkJvbmVPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICBsb29rQXQub2Zmc2V0RnJvbUhlYWRCb25lLnNldCgoX2IgPSBzY2hlbWFGaXJzdFBlcnNvbi5maXJzdFBlcnNvbkJvbmVPZmZzZXQueCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMC4wLCAoX2MgPSBzY2hlbWFGaXJzdFBlcnNvbi5maXJzdFBlcnNvbkJvbmVPZmZzZXQueSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMC4wNiwgLSgoX2QgPSBzY2hlbWFGaXJzdFBlcnNvbi5maXJzdFBlcnNvbkJvbmVPZmZzZXQueikgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMC4wKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb29rQXQub2Zmc2V0RnJvbUhlYWRCb25lLnNldCgwLjAsIDAuMDYsIDAuMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBWUk0gMC4wIGFyZSBmYWNpbmcgWi0gaW5zdGVhZCBvZiBaK1xuICAgICAgICAgICAgbG9va0F0LmZhY2VGcm9udC5zZXQoMC4wLCAwLjAsIC0xLjApO1xuICAgICAgICAgICAgaWYgKGFwcGxpZXIgaW5zdGFuY2VvZiBWUk1Mb29rQXRCb25lQXBwbGllcikge1xuICAgICAgICAgICAgICAgIGFwcGxpZXIuZmFjZUZyb250LnNldCgwLjAsIDAuMCwgLTEuMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbG9va0F0O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3YwSW1wb3J0RGVncmVlTWFwKHNjaGVtYURlZ3JlZU1hcCwgZGVmYXVsdE91dHB1dFNjYWxlKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGN1cnZlID0gc2NoZW1hRGVncmVlTWFwID09PSBudWxsIHx8IHNjaGVtYURlZ3JlZU1hcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hRGVncmVlTWFwLmN1cnZlO1xuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoY3VydmUpICE9PSAnWzAsMCwwLDEsMSwxLDEsMF0nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0N1cnZlcyBvZiBMb29rQXREZWdyZWVNYXAgZGVmaW5lZCBpbiBWUk0gMC4wIGFyZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHhSYW5nZSA9IChfYSA9IHNjaGVtYURlZ3JlZU1hcCA9PT0gbnVsbCB8fCBzY2hlbWFEZWdyZWVNYXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYURlZ3JlZU1hcC54UmFuZ2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDkwLjA7XG4gICAgICAgIGNvbnN0IHlSYW5nZSA9IChfYiA9IHNjaGVtYURlZ3JlZU1hcCA9PT0gbnVsbCB8fCBzY2hlbWFEZWdyZWVNYXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYURlZ3JlZU1hcC55UmFuZ2UpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGRlZmF1bHRPdXRwdXRTY2FsZTtcbiAgICAgICAgLy8gSXQgbWlnaHQgY2F1c2UgTmFOIHdoZW4gYHhSYW5nZWAgaXMgdG9vIHNtYWxsXG4gICAgICAgIC8vIHdoaWNoIG1ha2VzIHRoZSBtZXNoIG9mIHRoZSBoZWFkIGRpc2FwcGVhclxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9waXhpdi90aHJlZS12cm0vaXNzdWVzLzEyMDFcbiAgICAgICAgaWYgKHhSYW5nZSA8IElOUFVUX01BWF9WQUxVRV9NSU5JTVVNKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTUxvb2tBdExvYWRlclBsdWdpbjogeFJhbmdlIG9mIGEgZGVncmVlIG1hcCBpcyB0b28gc21hbGwuIENvbnNpZGVyIHJldmlld2luZyB0aGUgZGVncmVlIG1hcCEnKTtcbiAgICAgICAgICAgIHhSYW5nZSA9IElOUFVUX01BWF9WQUxVRV9NSU5JTVVNO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVlJNTG9va0F0UmFuZ2VNYXAoeFJhbmdlLCB5UmFuZ2UpO1xuICAgIH1cbiAgICBfaW1wb3J0TG9va0F0KGh1bWFub2lkLCBhcHBsaWVyKSB7XG4gICAgICAgIGNvbnN0IGxvb2tBdCA9IG5ldyBWUk1Mb29rQXQoaHVtYW5vaWQsIGFwcGxpZXIpO1xuICAgICAgICBpZiAodGhpcy5oZWxwZXJSb290KSB7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXIgPSBuZXcgVlJNTG9va0F0SGVscGVyKGxvb2tBdCk7XG4gICAgICAgICAgICB0aGlzLmhlbHBlclJvb3QuYWRkKGhlbHBlcik7XG4gICAgICAgICAgICBoZWxwZXIucmVuZGVyT3JkZXIgPSB0aGlzLmhlbHBlclJvb3QucmVuZGVyT3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvb2tBdDtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgdHlwZSBvZiBhcHBsaWVyLlxuICovXG5jb25zdCBWUk1Mb29rQXRUeXBlTmFtZSA9IHtcbiAgICBCb25lOiAnYm9uZScsXG4gICAgRXhwcmVzc2lvbjogJ2V4cHJlc3Npb24nLFxufTtcblxuLyoqXG4gKiBZb2lua2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL21hc3Rlci9leGFtcGxlcy9qc20vbG9hZGVycy9HTFRGTG9hZGVyLmpzXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVVUkwodXJsLCBwYXRoKSB7XG4gICAgLy8gSW52YWxpZCBVUkxcbiAgICBpZiAodHlwZW9mIHVybCAhPT0gJ3N0cmluZycgfHwgdXJsID09PSAnJylcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIC8vIEhvc3QgUmVsYXRpdmUgVVJMXG4gICAgaWYgKC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QocGF0aCkgJiYgL15cXC8vLnRlc3QodXJsKSkge1xuICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC8oXmh0dHBzPzpcXC9cXC9bXi9dKykuKi9pLCAnJDEnKTtcbiAgICB9XG4gICAgLy8gQWJzb2x1dGUgVVJMIGh0dHA6Ly8saHR0cHM6Ly8sLy9cbiAgICBpZiAoL14oaHR0cHM/Oik/XFwvXFwvL2kudGVzdCh1cmwpKVxuICAgICAgICByZXR1cm4gdXJsO1xuICAgIC8vIERhdGEgVVJJXG4gICAgaWYgKC9eZGF0YTouKiwuKiQvaS50ZXN0KHVybCkpXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgLy8gQmxvYiBVUkxcbiAgICBpZiAoL15ibG9iOi4qJC9pLnRlc3QodXJsKSlcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICAvLyBSZWxhdGl2ZSBVUkxcbiAgICByZXR1cm4gcGF0aCArIHVybDtcbn1cblxuLyoqXG4gKiBQb3NzaWJsZSBzcGVjIHZlcnNpb25zIGl0IHJlY29nbml6ZXMuXG4gKi9cbmNvbnN0IFBPU1NJQkxFX1NQRUNfVkVSU0lPTlMgPSBuZXcgU2V0KFsnMS4wJywgJzEuMC1iZXRhJ10pO1xuLyoqXG4gKiBBIHBsdWdpbiBvZiBHTFRGTG9hZGVyIHRoYXQgaW1wb3J0cyBhIHtAbGluayBWUk0xTWV0YX0gZnJvbSBhIFZSTSBleHRlbnNpb24gb2YgYSBHTFRGLlxuICovXG5jbGFzcyBWUk1NZXRhTG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHVzZSB0aGUgZXh0ZW5zaW9uIG5hbWUgaW5zdGVhZCBidXQgd2UgaGF2ZSBtdWx0aXBsZSBwbHVnaW5zIGZvciBhbiBleHRlbnNpb24uLi5cbiAgICAgICAgcmV0dXJuICdWUk1NZXRhTG9hZGVyUGx1Z2luJztcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFyc2VyLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICAgICAgdGhpcy5uZWVkVGh1bWJuYWlsSW1hZ2UgPSAoX2EgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubmVlZFRodW1ibmFpbEltYWdlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0cnVlO1xuICAgICAgICB0aGlzLmFjY2VwdExpY2Vuc2VVcmxzID0gKF9iID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmFjY2VwdExpY2Vuc2VVcmxzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBbJ2h0dHBzOi8vdnJtLmRldi9saWNlbnNlcy8xLjAvJ107XG4gICAgICAgIHRoaXMuYWNjZXB0VjBNZXRhID0gKF9jID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmFjY2VwdFYwTWV0YSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogdHJ1ZTtcbiAgICB9XG4gICAgYWZ0ZXJSb290KGdsdGYpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGdsdGYudXNlckRhdGEudnJtTWV0YSA9IHlpZWxkIHRoaXMuX2ltcG9ydChnbHRmKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9pbXBvcnQoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdjFSZXN1bHQgPSB5aWVsZCB0aGlzLl92MUltcG9ydChnbHRmKTtcbiAgICAgICAgICAgIGlmICh2MVJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYxUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdjBSZXN1bHQgPSB5aWVsZCB0aGlzLl92MEltcG9ydChnbHRmKTtcbiAgICAgICAgICAgIGlmICh2MFJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHYwUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjFJbXBvcnQoZ2x0Zikge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgdnJtXG4gICAgICAgICAgICBjb25zdCBpc1ZSTVVzZWQgPSAoKF9hID0ganNvbi5leHRlbnNpb25zVXNlZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmluZGV4T2YoJ1ZSTUNfdnJtJykpICE9PSAtMTtcbiAgICAgICAgICAgIGlmICghaXNWUk1Vc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSAoX2IgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYlsnVlJNQ192cm0nXTtcbiAgICAgICAgICAgIGlmIChleHRlbnNpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3BlY1ZlcnNpb24gPSBleHRlbnNpb24uc3BlY1ZlcnNpb247XG4gICAgICAgICAgICBpZiAoIVBPU1NJQkxFX1NQRUNfVkVSU0lPTlMuaGFzKHNwZWNWZXJzaW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNTWV0YUxvYWRlclBsdWdpbjogVW5rbm93biBWUk1DX3ZybSBzcGVjVmVyc2lvbiBcIiR7c3BlY1ZlcnNpb259XCJgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYU1ldGEgPSBleHRlbnNpb24ubWV0YTtcbiAgICAgICAgICAgIGlmICghc2NoZW1hTWV0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXJyb3IgaWYgYWNjZXB0VjBNZXRhIGlzIGZhbHNlXG4gICAgICAgICAgICBjb25zdCBsaWNlbnNlVXJsID0gc2NoZW1hTWV0YS5saWNlbnNlVXJsO1xuICAgICAgICAgICAgY29uc3QgYWNjZXB0TGljZW5zZVVybHNTZXQgPSBuZXcgU2V0KHRoaXMuYWNjZXB0TGljZW5zZVVybHMpO1xuICAgICAgICAgICAgaWYgKCFhY2NlcHRMaWNlbnNlVXJsc1NldC5oYXMobGljZW5zZVVybCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZSTU1ldGFMb2FkZXJQbHVnaW46IFRoZSBsaWNlbnNlIHVybCBcIiR7bGljZW5zZVVybH1cIiBpcyBub3QgYWNjZXB0ZWRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB0aHVtYm5haWxJbWFnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICh0aGlzLm5lZWRUaHVtYm5haWxJbWFnZSAmJiBzY2hlbWFNZXRhLnRodW1ibmFpbEltYWdlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aHVtYm5haWxJbWFnZSA9IChfYyA9ICh5aWVsZCB0aGlzLl9leHRyYWN0R0xURkltYWdlKHNjaGVtYU1ldGEudGh1bWJuYWlsSW1hZ2UpKSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtZXRhVmVyc2lvbjogJzEnLFxuICAgICAgICAgICAgICAgIG5hbWU6IHNjaGVtYU1ldGEubmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBzY2hlbWFNZXRhLnZlcnNpb24sXG4gICAgICAgICAgICAgICAgYXV0aG9yczogc2NoZW1hTWV0YS5hdXRob3JzLFxuICAgICAgICAgICAgICAgIGNvcHlyaWdodEluZm9ybWF0aW9uOiBzY2hlbWFNZXRhLmNvcHlyaWdodEluZm9ybWF0aW9uLFxuICAgICAgICAgICAgICAgIGNvbnRhY3RJbmZvcm1hdGlvbjogc2NoZW1hTWV0YS5jb250YWN0SW5mb3JtYXRpb24sXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogc2NoZW1hTWV0YS5yZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgIHRoaXJkUGFydHlMaWNlbnNlczogc2NoZW1hTWV0YS50aGlyZFBhcnR5TGljZW5zZXMsXG4gICAgICAgICAgICAgICAgdGh1bWJuYWlsSW1hZ2UsXG4gICAgICAgICAgICAgICAgbGljZW5zZVVybDogc2NoZW1hTWV0YS5saWNlbnNlVXJsLFxuICAgICAgICAgICAgICAgIGF2YXRhclBlcm1pc3Npb246IHNjaGVtYU1ldGEuYXZhdGFyUGVybWlzc2lvbixcbiAgICAgICAgICAgICAgICBhbGxvd0V4Y2Vzc2l2ZWx5VmlvbGVudFVzYWdlOiBzY2hlbWFNZXRhLmFsbG93RXhjZXNzaXZlbHlWaW9sZW50VXNhZ2UsXG4gICAgICAgICAgICAgICAgYWxsb3dFeGNlc3NpdmVseVNleHVhbFVzYWdlOiBzY2hlbWFNZXRhLmFsbG93RXhjZXNzaXZlbHlTZXh1YWxVc2FnZSxcbiAgICAgICAgICAgICAgICBjb21tZXJjaWFsVXNhZ2U6IHNjaGVtYU1ldGEuY29tbWVyY2lhbFVzYWdlLFxuICAgICAgICAgICAgICAgIGFsbG93UG9saXRpY2FsT3JSZWxpZ2lvdXNVc2FnZTogc2NoZW1hTWV0YS5hbGxvd1BvbGl0aWNhbE9yUmVsaWdpb3VzVXNhZ2UsXG4gICAgICAgICAgICAgICAgYWxsb3dBbnRpc29jaWFsT3JIYXRlVXNhZ2U6IHNjaGVtYU1ldGEuYWxsb3dBbnRpc29jaWFsT3JIYXRlVXNhZ2UsXG4gICAgICAgICAgICAgICAgY3JlZGl0Tm90YXRpb246IHNjaGVtYU1ldGEuY3JlZGl0Tm90YXRpb24sXG4gICAgICAgICAgICAgICAgYWxsb3dSZWRpc3RyaWJ1dGlvbjogc2NoZW1hTWV0YS5hbGxvd1JlZGlzdHJpYnV0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGlmaWNhdGlvbjogc2NoZW1hTWV0YS5tb2RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgb3RoZXJMaWNlbnNlVXJsOiBzY2hlbWFNZXRhLm90aGVyTGljZW5zZVVybCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfdjBJbXBvcnQoZ2x0Zikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gdGhpcy5wYXJzZXIuanNvbjtcbiAgICAgICAgICAgIC8vIGVhcmx5IGFib3J0IGlmIGl0IGRvZXNuJ3QgdXNlIHZybVxuICAgICAgICAgICAgY29uc3QgdnJtRXh0ID0gKF9hID0ganNvbi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuVlJNO1xuICAgICAgICAgICAgaWYgKCF2cm1FeHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYU1ldGEgPSB2cm1FeHQubWV0YTtcbiAgICAgICAgICAgIGlmICghc2NoZW1hTWV0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXJyb3IgaWYgYWNjZXB0VjBNZXRhIGlzIGZhbHNlXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWNjZXB0VjBNZXRhKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWUk1NZXRhTG9hZGVyUGx1Z2luOiBBdHRlbXB0ZWQgdG8gbG9hZCBWUk0wLjAgbWV0YSBidXQgYWNjZXB0VjBNZXRhIGlzIGZhbHNlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBsb2FkIHRodW1ibmFpbCB0ZXh0dXJlXG4gICAgICAgICAgICBsZXQgdGV4dHVyZTtcbiAgICAgICAgICAgIGlmICh0aGlzLm5lZWRUaHVtYm5haWxJbWFnZSAmJiBzY2hlbWFNZXRhLnRleHR1cmUgIT0gbnVsbCAmJiBzY2hlbWFNZXRhLnRleHR1cmUgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGV4dHVyZSA9IHlpZWxkIHRoaXMucGFyc2VyLmdldERlcGVuZGVuY3koJ3RleHR1cmUnLCBzY2hlbWFNZXRhLnRleHR1cmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtZXRhVmVyc2lvbjogJzAnLFxuICAgICAgICAgICAgICAgIGFsbG93ZWRVc2VyTmFtZTogc2NoZW1hTWV0YS5hbGxvd2VkVXNlck5hbWUsXG4gICAgICAgICAgICAgICAgYXV0aG9yOiBzY2hlbWFNZXRhLmF1dGhvcixcbiAgICAgICAgICAgICAgICBjb21tZXJjaWFsVXNzYWdlTmFtZTogc2NoZW1hTWV0YS5jb21tZXJjaWFsVXNzYWdlTmFtZSxcbiAgICAgICAgICAgICAgICBjb250YWN0SW5mb3JtYXRpb246IHNjaGVtYU1ldGEuY29udGFjdEluZm9ybWF0aW9uLFxuICAgICAgICAgICAgICAgIGxpY2Vuc2VOYW1lOiBzY2hlbWFNZXRhLmxpY2Vuc2VOYW1lLFxuICAgICAgICAgICAgICAgIG90aGVyTGljZW5zZVVybDogc2NoZW1hTWV0YS5vdGhlckxpY2Vuc2VVcmwsXG4gICAgICAgICAgICAgICAgb3RoZXJQZXJtaXNzaW9uVXJsOiBzY2hlbWFNZXRhLm90aGVyUGVybWlzc2lvblVybCxcbiAgICAgICAgICAgICAgICByZWZlcmVuY2U6IHNjaGVtYU1ldGEucmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIHNleHVhbFVzc2FnZU5hbWU6IHNjaGVtYU1ldGEuc2V4dWFsVXNzYWdlTmFtZSxcbiAgICAgICAgICAgICAgICB0ZXh0dXJlOiB0ZXh0dXJlICE9PSBudWxsICYmIHRleHR1cmUgIT09IHZvaWQgMCA/IHRleHR1cmUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHNjaGVtYU1ldGEudGl0bGUsXG4gICAgICAgICAgICAgICAgdmVyc2lvbjogc2NoZW1hTWV0YS52ZXJzaW9uLFxuICAgICAgICAgICAgICAgIHZpb2xlbnRVc3NhZ2VOYW1lOiBzY2hlbWFNZXRhLnZpb2xlbnRVc3NhZ2VOYW1lLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9leHRyYWN0R0xURkltYWdlKGluZGV4KSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gKF9hID0ganNvbi5pbWFnZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVtpbmRleF07XG4gICAgICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTU1ldGFMb2FkZXJQbHVnaW46IEF0dGVtcHQgdG8gdXNlIGltYWdlc1ske2luZGV4fV0gb2YgZ2xURiBhcyBhIHRodW1ibmFpbCBidXQgdGhlIGltYWdlIGRvZXNuJ3QgZXhpc3RgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL3IxMjQvZXhhbXBsZXMvanNtL2xvYWRlcnMvR0xURkxvYWRlci5qcyNMMjQ2N1xuICAgICAgICAgICAgLy8gYHNvdXJjZS51cmlgIG1pZ2h0IGJlIGEgcmVmZXJlbmNlIHRvIGEgZmlsZVxuICAgICAgICAgICAgbGV0IHNvdXJjZVVSSSA9IHNvdXJjZS51cmk7XG4gICAgICAgICAgICAvLyBMb2FkIHRoZSBiaW5hcnkgYXMgYSBibG9iXG4gICAgICAgICAgICBpZiAoc291cmNlLmJ1ZmZlclZpZXcgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlclZpZXcgPSB5aWVsZCB0aGlzLnBhcnNlci5nZXREZXBlbmRlbmN5KCdidWZmZXJWaWV3Jywgc291cmNlLmJ1ZmZlclZpZXcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyVmlld10sIHsgdHlwZTogc291cmNlLm1pbWVUeXBlIH0pO1xuICAgICAgICAgICAgICAgIHNvdXJjZVVSSSA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc291cmNlVVJJID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTU1ldGFMb2FkZXJQbHVnaW46IEF0dGVtcHQgdG8gdXNlIGltYWdlc1ske2luZGV4fV0gb2YgZ2xURiBhcyBhIHRodW1ibmFpbCBidXQgdGhlIGltYWdlIGNvdWxkbid0IGxvYWQgcHJvcGVybHlgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxvYWRlciA9IG5ldyBUSFJFRS5JbWFnZUxvYWRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGxvYWRlci5sb2FkQXN5bmMocmVzb2x2ZVVSTChzb3VyY2VVUkksIHRoaXMucGFyc2VyLm9wdGlvbnMucGF0aCkpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignVlJNTWV0YUxvYWRlclBsdWdpbjogRmFpbGVkIHRvIGxvYWQgYSB0aHVtYm5haWwgaW1hZ2UnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYSBzaW5nbGUgVlJNIG1vZGVsLlxuICogVGhpcyBjbGFzcyBvbmx5IGluY2x1ZGVzIGNvcmUgc3BlYyBvZiB0aGUgVlJNIChgVlJNQ192cm1gKS5cbiAqL1xuY2xhc3MgVlJNQ29yZSB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IFZSTSBpbnN0YW5jZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbXMgW1tWUk1QYXJhbWV0ZXJzXV0gdGhhdCByZXByZXNlbnRzIGNvbXBvbmVudHMgb2YgdGhlIFZSTVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHBhcmFtcykge1xuICAgICAgICB0aGlzLnNjZW5lID0gcGFyYW1zLnNjZW5lO1xuICAgICAgICB0aGlzLm1ldGEgPSBwYXJhbXMubWV0YTtcbiAgICAgICAgdGhpcy5odW1hbm9pZCA9IHBhcmFtcy5odW1hbm9pZDtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uTWFuYWdlciA9IHBhcmFtcy5leHByZXNzaW9uTWFuYWdlcjtcbiAgICAgICAgdGhpcy5maXJzdFBlcnNvbiA9IHBhcmFtcy5maXJzdFBlcnNvbjtcbiAgICAgICAgdGhpcy5sb29rQXQgPSBwYXJhbXMubG9va0F0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAqKllvdSBuZWVkIHRvIGNhbGwgdGhpcyBvbiB5b3VyIHVwZGF0ZSBsb29wLioqXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgZXZlcnkgVlJNIGNvbXBvbmVudHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVsdGEgZGVsdGFUaW1lXG4gICAgICovXG4gICAgdXBkYXRlKGRlbHRhKSB7XG4gICAgICAgIHRoaXMuaHVtYW5vaWQudXBkYXRlKCk7XG4gICAgICAgIGlmICh0aGlzLmxvb2tBdCkge1xuICAgICAgICAgICAgdGhpcy5sb29rQXQudXBkYXRlKGRlbHRhKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5leHByZXNzaW9uTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uTWFuYWdlci51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY2xhc3MgVlJNQ29yZUxvYWRlclBsdWdpbiB7XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIC8vIFdlIHNob3VsZCB1c2UgdGhlIGV4dGVuc2lvbiBuYW1lIGluc3RlYWQgYnV0IHdlIGhhdmUgbXVsdGlwbGUgcGx1Z2lucyBmb3IgYW4gZXh0ZW5zaW9uLi4uXG4gICAgICAgIHJldHVybiAnVlJNQ192cm0nO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihwYXJzZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgdGhpcy5wYXJzZXIgPSBwYXJzZXI7XG4gICAgICAgIGNvbnN0IGhlbHBlclJvb3QgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaGVscGVyUm9vdDtcbiAgICAgICAgY29uc3QgYXV0b1VwZGF0ZUh1bWFuQm9uZXMgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuYXV0b1VwZGF0ZUh1bWFuQm9uZXM7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvblBsdWdpbiA9IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5leHByZXNzaW9uUGx1Z2luKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBuZXcgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbihwYXJzZXIpO1xuICAgICAgICB0aGlzLmZpcnN0UGVyc29uUGx1Z2luID0gKF9iID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmZpcnN0UGVyc29uUGx1Z2luKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBuZXcgVlJNRmlyc3RQZXJzb25Mb2FkZXJQbHVnaW4ocGFyc2VyKTtcbiAgICAgICAgdGhpcy5odW1hbm9pZFBsdWdpbiA9XG4gICAgICAgICAgICAoX2MgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuaHVtYW5vaWRQbHVnaW4pICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IG5ldyBWUk1IdW1hbm9pZExvYWRlclBsdWdpbihwYXJzZXIsIHsgaGVscGVyUm9vdCwgYXV0b1VwZGF0ZUh1bWFuQm9uZXMgfSk7XG4gICAgICAgIHRoaXMubG9va0F0UGx1Z2luID0gKF9kID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmxvb2tBdFBsdWdpbikgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogbmV3IFZSTUxvb2tBdExvYWRlclBsdWdpbihwYXJzZXIsIHsgaGVscGVyUm9vdCB9KTtcbiAgICAgICAgdGhpcy5tZXRhUGx1Z2luID0gKF9lID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1ldGFQbHVnaW4pICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IG5ldyBWUk1NZXRhTG9hZGVyUGx1Z2luKHBhcnNlcik7XG4gICAgfVxuICAgIGFmdGVyUm9vdChnbHRmKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLm1ldGFQbHVnaW4uYWZ0ZXJSb290KGdsdGYpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5odW1hbm9pZFBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmV4cHJlc3Npb25QbHVnaW4uYWZ0ZXJSb290KGdsdGYpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5sb29rQXRQbHVnaW4uYWZ0ZXJSb290KGdsdGYpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5maXJzdFBlcnNvblBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgICAgICAgICBjb25zdCBtZXRhID0gZ2x0Zi51c2VyRGF0YS52cm1NZXRhO1xuICAgICAgICAgICAgY29uc3QgaHVtYW5vaWQgPSBnbHRmLnVzZXJEYXRhLnZybUh1bWFub2lkO1xuICAgICAgICAgICAgLy8gbWV0YSBhbmQgaHVtYW5vaWQgYXJlIHJlcXVpcmVkIHRvIGJlIGEgVlJNLlxuICAgICAgICAgICAgLy8gRG9uJ3QgY3JlYXRlIFZSTSBpZiB0aGV5IGFyZSBudWxsXG4gICAgICAgICAgICBpZiAobWV0YSAmJiBodW1hbm9pZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZybUNvcmUgPSBuZXcgVlJNQ29yZSh7XG4gICAgICAgICAgICAgICAgICAgIHNjZW5lOiBnbHRmLnNjZW5lLFxuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uTWFuYWdlcjogZ2x0Zi51c2VyRGF0YS52cm1FeHByZXNzaW9uTWFuYWdlcixcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RQZXJzb246IGdsdGYudXNlckRhdGEudnJtRmlyc3RQZXJzb24sXG4gICAgICAgICAgICAgICAgICAgIGh1bWFub2lkLFxuICAgICAgICAgICAgICAgICAgICBsb29rQXQ6IGdsdGYudXNlckRhdGEudnJtTG9va0F0LFxuICAgICAgICAgICAgICAgICAgICBtZXRhLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGdsdGYudXNlckRhdGEudnJtQ29yZSA9IHZybUNvcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgVlJNQ29yZSwgVlJNQ29yZUxvYWRlclBsdWdpbiwgVlJNRXhwcmVzc2lvbiwgVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbiwgVlJNRXhwcmVzc2lvbk1hbmFnZXIsIFZSTUV4cHJlc3Npb25NYXRlcmlhbENvbG9yQmluZCwgVlJNRXhwcmVzc2lvbk1hdGVyaWFsQ29sb3JUeXBlLCBWUk1FeHByZXNzaW9uTW9ycGhUYXJnZXRCaW5kLCBWUk1FeHByZXNzaW9uT3ZlcnJpZGVUeXBlLCBWUk1FeHByZXNzaW9uUHJlc2V0TmFtZSwgVlJNRXhwcmVzc2lvblRleHR1cmVUcmFuc2Zvcm1CaW5kLCBWUk1GaXJzdFBlcnNvbiwgVlJNRmlyc3RQZXJzb25Mb2FkZXJQbHVnaW4sIFZSTUZpcnN0UGVyc29uTWVzaEFubm90YXRpb25UeXBlLCBWUk1IdW1hbkJvbmVMaXN0LCBWUk1IdW1hbkJvbmVOYW1lLCBWUk1IdW1hbkJvbmVQYXJlbnRNYXAsIFZSTUh1bWFub2lkLCBWUk1IdW1hbm9pZEhlbHBlciwgVlJNSHVtYW5vaWRMb2FkZXJQbHVnaW4sIFZSTUxvb2tBdCwgVlJNTG9va0F0Qm9uZUFwcGxpZXIsIFZSTUxvb2tBdEV4cHJlc3Npb25BcHBsaWVyLCBWUk1Mb29rQXRIZWxwZXIsIFZSTUxvb2tBdExvYWRlclBsdWdpbiwgVlJNTG9va0F0UmFuZ2VNYXAsIFZSTUxvb2tBdFR5cGVOYW1lLCBWUk1NZXRhTG9hZGVyUGx1Z2luLCBWUk1SZXF1aXJlZEh1bWFuQm9uZU5hbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEdoeVpXVXRkbkp0TFdOdmNtVXViVzlrZFd4bExtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOXpjbU12Wlhod2NtVnpjMmx2Ym5NdlZsSk5SWGh3Y21WemMybHZiaTUwY3lJc0lpNHVMeTR1THk0dUwyNXZaR1ZmYlc5a2RXeGxjeTkwYzJ4cFlpOTBjMnhwWWk1bGN6WXVhbk1pTENJdUxpOXpjbU12ZFhScGJITXZaMngwWmtWNGRISmhZM1JRY21sdGFYUnBkbVZ6Um5KdmJVNXZaR1V1ZEhNaUxDSXVMaTl6Y21NdmRYUnBiSE12WjJ4MFprZGxkRUZ6YzI5amFXRjBaV1JOWVhSbGNtbGhiRWx1WkdWNExuUnpJaXdpTGk0dmMzSmpMMlY0Y0hKbGMzTnBiMjV6TDFaU1RVVjRjSEpsYzNOcGIyNVFjbVZ6WlhST1lXMWxMblJ6SWl3aUxpNHZjM0pqTDNWMGFXeHpMM05oZEhWeVlYUmxMblJ6SWl3aUxpNHZjM0pqTDJWNGNISmxjM05wYjI1ekwxWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlMblJ6SWl3aUxpNHZjM0pqTDJWNGNISmxjM05wYjI1ekwxWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVZIbHdaUzUwY3lJc0lpNHVMM055WXk5bGVIQnlaWE56YVc5dWN5OVdVazFGZUhCeVpYTnphVzl1VFdGMFpYSnBZV3hEYjJ4dmNrSnBibVF1ZEhNaUxDSXVMaTl6Y21NdlpYaHdjbVZ6YzJsdmJuTXZWbEpOUlhod2NtVnpjMmx2YmsxdmNuQm9WR0Z5WjJWMFFtbHVaQzUwY3lJc0lpNHVMM055WXk5bGVIQnlaWE56YVc5dWN5OVdVazFGZUhCeVpYTnphVzl1VkdWNGRIVnlaVlJ5WVc1elptOXliVUpwYm1RdWRITWlMQ0l1TGk5emNtTXZaWGh3Y21WemMybHZibk12VmxKTlJYaHdjbVZ6YzJsdmJreHZZV1JsY2xCc2RXZHBiaTUwY3lJc0lpNHVMM055WXk5bGVIQnlaWE56YVc5dWN5OVdVazFGZUhCeVpYTnphVzl1VDNabGNuSnBaR1ZVZVhCbExuUnpJaXdpTGk0dmMzSmpMMlpwY25OMFVHVnljMjl1TDFaU1RVWnBjbk4wVUdWeWMyOXVMblJ6SWl3aUxpNHZjM0pqTDJacGNuTjBVR1Z5YzI5dUwxWlNUVVpwY25OMFVHVnljMjl1VEc5aFpHVnlVR3gxWjJsdUxuUnpJaXdpTGk0dmMzSmpMMlpwY25OMFVHVnljMjl1TDFaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1VWVYQmxMblJ6SWl3aUxpNHZjM0pqTDJoMWJXRnViMmxrTDJobGJIQmxjbk12VmxKTlNIVnRZVzV2YVdSSVpXeHdaWEl1ZEhNaUxDSXVMaTl6Y21NdmFIVnRZVzV2YVdRdlZsSk5TSFZ0WVc1Q2IyNWxUR2x6ZEM1MGN5SXNJaTR1TDNOeVl5OW9kVzFoYm05cFpDOVdVazFJZFcxaGJrSnZibVZPWVcxbExuUnpJaXdpTGk0dmMzSmpMMmgxYldGdWIybGtMMVpTVFVoMWJXRnVRbTl1WlZCaGNtVnVkRTFoY0M1MGN5SXNJaTR1TDNOeVl5OTFkR2xzY3k5eGRXRjBTVzUyWlhKMFEyOXRjR0YwTG5Seklpd2lMaTR2YzNKakwyaDFiV0Z1YjJsa0wxWlNUVkpwWnk1MGN5SXNJaTR1TDNOeVl5OW9kVzFoYm05cFpDOVdVazFJZFcxaGJtOXBaRkpwWnk1MGN5SXNJaTR1TDNOeVl5OW9kVzFoYm05cFpDOVdVazFJZFcxaGJtOXBaQzUwY3lJc0lpNHVMM055WXk5b2RXMWhibTlwWkM5V1VrMVNaWEYxYVhKbFpFaDFiV0Z1UW05dVpVNWhiV1V1ZEhNaUxDSXVMaTl6Y21NdmFIVnRZVzV2YVdRdlZsSk5TSFZ0WVc1dmFXUk1iMkZrWlhKUWJIVm5hVzR1ZEhNaUxDSXVMaTl6Y21NdmJHOXZhMEYwTDJobGJIQmxjbk12ZFhScGJITXZSbUZ1UW5WbVptVnlSMlZ2YldWMGNua3VkSE1pTENJdUxpOXpjbU12Ykc5dmEwRjBMMmhsYkhCbGNuTXZkWFJwYkhNdlRHbHVaVUZ1WkZOd2FHVnlaVUoxWm1abGNrZGxiMjFsZEhKNUxuUnpJaXdpTGk0dmMzSmpMMnh2YjJ0QmRDOW9aV3h3WlhKekwxWlNUVXh2YjJ0QmRFaGxiSEJsY2k1MGN5SXNJaTR1TDNOeVl5OTFkR2xzY3k5blpYUlhiM0pzWkZGMVlYUmxjbTVwYjI1TWFYUmxMblJ6SWl3aUxpNHZjM0pqTDJ4dmIydEJkQzkxZEdsc2N5OWpZV3hqUVhwcGJYVjBhRUZzZEdsMGRXUmxMblJ6SWl3aUxpNHZjM0pqTDJ4dmIydEJkQzkxZEdsc2N5OXpZVzVwZEdsNlpVRnVaMnhsTG5Seklpd2lMaTR2YzNKakwyeHZiMnRCZEM5V1VrMU1iMjlyUVhRdWRITWlMQ0l1TGk5emNtTXZiRzl2YTBGMEwxWlNUVXh2YjJ0QmRFSnZibVZCY0hCc2FXVnlMblJ6SWl3aUxpNHZjM0pqTDJ4dmIydEJkQzlXVWsxTWIyOXJRWFJGZUhCeVpYTnphVzl1UVhCd2JHbGxjaTUwY3lJc0lpNHVMM055WXk5c2IyOXJRWFF2VmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEF1ZEhNaUxDSXVMaTl6Y21NdmJHOXZhMEYwTDFaU1RVeHZiMnRCZEV4dllXUmxjbEJzZFdkcGJpNTBjeUlzSWk0dUwzTnlZeTlzYjI5clFYUXZWbEpOVEc5dmEwRjBWSGx3WlU1aGJXVXVkSE1pTENJdUxpOXpjbU12ZFhScGJITXZjbVZ6YjJ4MlpWVlNUQzUwY3lJc0lpNHVMM055WXk5dFpYUmhMMVpTVFUxbGRHRk1iMkZrWlhKUWJIVm5hVzR1ZEhNaUxDSXVMaTl6Y21NdlZsSk5RMjl5WlM1MGN5SXNJaTR1TDNOeVl5OVdVazFEYjNKbFRHOWhaR1Z5VUd4MVoybHVMblJ6SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYm1sdGNHOXlkQ0I3SUZaU1RVVjRjSEpsYzNOcGIyNUNhVzVrSUgwZ1puSnZiU0FuTGk5V1VrMUZlSEJ5WlhOemFXOXVRbWx1WkNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVVjRjSEpsYzNOcGIyNVBkbVZ5Y21sa1pWUjVjR1VnZlNCbWNtOXRJQ2N1TDFaU1RVVjRjSEpsYzNOcGIyNVBkbVZ5Y21sa1pWUjVjR1VuTzF4dVhHNHZMeUJoYm1sdFlYUnBiMjVOYVhobGNpRGpnYTdubTZQb3BwYmxyNzdvc2FIamdhL2pnSUZUWTJWdVpTRGpnYTdrdUszamdhdmxoYVhqZ2FQamdhYmpnWVRqZ292bHY0WG9wb0hqZ1l6amdZTGpnb3ZqZ0lKY2JpOHZJT09CbmVPQnJ1T0JuK09DZ2VPQWdlaWhxT2VrdXVPQ3F1T0RsdU9DdU9PQ3ArT0NyK09EaU9PQnArT0JyK09CcXVPQmhPT0JrZU9Dak9PQnFlT0FnVTlpYW1WamRETkVJT09Da3VlMm1lYUp2K09CbCtPQnBpQlRZMlZ1WlNEamdhdm1pcFhsaGFYamdhZmpnWTNqZ292amdvampnWWJqZ2F2amdabmpnb3ZqZ0lKY2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxRmVIQnlaWE56YVc5dUlHVjRkR1Z1WkhNZ1ZFaFNSVVV1VDJKcVpXTjBNMFFnZTF4dUlDQXZLaXBjYmlBZ0lDb2dUbUZ0WlNCdlppQjBhR2x6SUdWNGNISmxjM05wYjI0dVhHNGdJQ0FxSUVScGMzUnBibWQxYVhOb1pXUWdkMmwwYUNCZ2JtRnRaV0FnYzJsdVkyVWdZRzVoYldWZ0lIZHBiR3dnWW1VZ1kyOXVabXhwWTNSbFpDQjNhWFJvSUU5aWFtVmpkRE5FTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdWNGNISmxjM05wYjI1T1lXMWxPaUJ6ZEhKcGJtYzdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0JqZFhKeVpXNTBJSGRsYVdkb2RDQnZaaUIwYUdVZ1pYaHdjbVZ6YzJsdmJpNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QjNaV2xuYUhRZ1BTQXdMakE3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWx1ZEdWeWNISmxkQ0IyWVd4MVpYTWdaM0psWVhSbGNpQjBhR0Z1SURBdU5TQmhjeUF4TGpBc0lHOXlkR2hsY25kcGMyVWdNQzR3TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdselFtbHVZWEo1SUQwZ1ptRnNjMlU3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRk53WldOcFpua2dhRzkzSUhSb1pTQmxlSEJ5WlhOemFXOXVJRzkyWlhKeWFXUmxjeUJpYkdsdWF5QmxlSEJ5WlhOemFXOXVjeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ2ZG1WeWNtbGtaVUpzYVc1ck9pQldVazFGZUhCeVpYTnphVzl1VDNabGNuSnBaR1ZVZVhCbElEMGdKMjV2Ym1Vbk8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVGNHVmphV1o1SUdodmR5QjBhR1VnWlhod2NtVnpjMmx2YmlCdmRtVnljbWxrWlhNZ2JHOXZhMEYwSUdWNGNISmxjM05wYjI1ekxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHOTJaWEp5YVdSbFRHOXZhMEYwT2lCV1VrMUZlSEJ5WlhOemFXOXVUM1psY25KcFpHVlVlWEJsSUQwZ0oyNXZibVVuTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJUY0dWamFXWjVJR2h2ZHlCMGFHVWdaWGh3Y21WemMybHZiaUJ2ZG1WeWNtbGtaWE1nYlc5MWRHZ2daWGh3Y21WemMybHZibk11WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYjNabGNuSnBaR1ZOYjNWMGFEb2dWbEpOUlhod2NtVnpjMmx2Yms5MlpYSnlhV1JsVkhsd1pTQTlJQ2R1YjI1bEp6dGNibHh1SUNCd2NtbDJZWFJsSUY5aWFXNWtjem9nVmxKTlJYaHdjbVZ6YzJsdmJrSnBibVJiWFNBOUlGdGRPMXh1WEc0Z0lHOTJaWEp5YVdSbElISmxZV1J2Ym14NUlIUjVjR1U2SUhOMGNtbHVaeUI4SUNkV1VrMUZlSEJ5WlhOemFXOXVKenRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0IyWVd4MVpTQnlaWEJ5WlhObGJuUnpJR2h2ZHlCdGRXTm9JR2wwSUhOb2IzVnNaQ0J2ZG1WeWNtbGtaU0JpYkdsdWF5QmxlSEJ5WlhOemFXOXVjeTVjYmlBZ0lDb2dZREF1TUdBZ1BUMGdibThnYjNabGNuSnBaR1VnWVhRZ1lXeHNMQ0JnTVM0d1lDQTlQU0JqYjIxd2JHVjBaV3g1SUdKc2IyTnJJSFJvWlNCbGVIQnlaWE56YVc5dWN5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFFnYjNabGNuSnBaR1ZDYkdsdWEwRnRiM1Z1ZENncE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG05MlpYSnlhV1JsUW14cGJtc2dQVDA5SUNkaWJHOWpheWNwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUF3TGpBZ1BDQjBhR2x6TG5kbGFXZG9kQ0EvSURFdU1DQTZJREF1TUR0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0hSb2FYTXViM1psY25KcFpHVkNiR2x1YXlBOVBUMGdKMkpzWlc1a0p5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZDJWcFoyaDBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJSFpoYkhWbElISmxjSEpsYzJWdWRITWdhRzkzSUcxMVkyZ2dhWFFnYzJodmRXeGtJRzkyWlhKeWFXUmxJR3h2YjJ0QmRDQmxlSEJ5WlhOemFXOXVjeTVjYmlBZ0lDb2dZREF1TUdBZ1BUMGdibThnYjNabGNuSnBaR1VnWVhRZ1lXeHNMQ0JnTVM0d1lDQTlQU0JqYjIxd2JHVjBaV3g1SUdKc2IyTnJJSFJvWlNCbGVIQnlaWE56YVc5dWN5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFFnYjNabGNuSnBaR1ZNYjI5clFYUkJiVzkxYm5Rb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dmRtVnljbWxrWlV4dmIydEJkQ0E5UFQwZ0oySnNiMk5ySnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SURBdU1DQThJSFJvYVhNdWQyVnBaMmgwSUQ4Z01TNHdJRG9nTUM0d08xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RHaHBjeTV2ZG1WeWNtbGtaVXh2YjJ0QmRDQTlQVDBnSjJKc1pXNWtKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWQyVnBaMmgwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCSUhaaGJIVmxJSEpsY0hKbGMyVnVkSE1nYUc5M0lHMTFZMmdnYVhRZ2MyaHZkV3hrSUc5MlpYSnlhV1JsSUcxdmRYUm9JR1Y0Y0hKbGMzTnBiMjV6TGx4dUlDQWdLaUJnTUM0d1lDQTlQU0J1YnlCdmRtVnljbWxrWlNCaGRDQmhiR3dzSUdBeExqQmdJRDA5SUdOdmJYQnNaWFJsYkhrZ1lteHZZMnNnZEdobElHVjRjSEpsYzNOcGIyNXpMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZENCdmRtVnljbWxrWlUxdmRYUm9RVzF2ZFc1MEtDazZJRzUxYldKbGNpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWIzWmxjbkpwWkdWTmIzVjBhQ0E5UFQwZ0oySnNiMk5ySnlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SURBdU1DQThJSFJvYVhNdWQyVnBaMmgwSUQ4Z01TNHdJRG9nTUM0d08xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RHaHBjeTV2ZG1WeWNtbGtaVTF2ZFhSb0lEMDlQU0FuWW14bGJtUW5LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1M1pXbG5hSFE3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBd0xqQTdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWlhod2NtVnpjMmx2Yms1aGJXVTZJSE4wY21sdVp5a2dlMXh1SUNBZ0lITjFjR1Z5S0NrN1hHNWNiaUFnSUNCMGFHbHpMbTVoYldVZ1BTQmdWbEpOUlhod2NtVnpjMmx2Ymw4a2UyVjRjSEpsYzNOcGIyNU9ZVzFsZldBN1hHNGdJQ0FnZEdocGN5NWxlSEJ5WlhOemFXOXVUbUZ0WlNBOUlHVjRjSEpsYzNOcGIyNU9ZVzFsTzF4dVhHNGdJQ0FnTHk4Z2RISmhkbVZ5YzJVZzVwbUM0NEd1NXBXUjVyaUk1b21MNXE2MTQ0R280NEdYNDRHbUlFOWlhbVZqZERORUlPT0JwK09CcitPQnF1T0JoT09CaytPQnFPT0NrdWFZanVla3V1T0JsK09CcHVPQml1T0JqMXh1SUNBZ0lIUm9hWE11ZEhsd1pTQTlJQ2RXVWsxRmVIQnlaWE56YVc5dUp6dGNibHh1SUNBZ0lDOHZJT2locU9la3V1ZWJydWVhaE9PQnJ1T0NxdU9EbHVPQ3VPT0NwK09DcitPRGlPT0JwK09CcitPQnF1T0JoT09CcnVPQnArT0FnZWl5b09pTnQraTd2ZWE0bStPQnJ1T0JuK09DZ2VPQnF5QjJhWE5wWW14bElPT0NraUJtWVd4elpTRGpnYXZqZ1pmamdhYmpnWXJqZ1kvamdJSmNiaUFnSUNBdkx5RGpnWlBqZ296amdhdmpnb2pqZ29yamdJSGpnWlBqZ2E3amdxVGpnN1BqZ3JuamdyL2pnN1BqZ3JuamdhdmxyNzdqZ1puamdvdm1yNDdqZzVYamc2empnN3pqZzZEamdhNGdiV0YwY21sNElPaUhxdVdMbGVpb2lPZXVsK09Da3VlY2dlZVZwZU9CcCtPQmplT0NpK09BZ2x4dUlDQWdJSFJvYVhNdWRtbHphV0pzWlNBOUlHWmhiSE5sTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdGa1pFSnBibVFvWW1sdVpEb2dWbEpOUlhod2NtVnpjMmx2YmtKcGJtUXBPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbDlpYVc1a2N5NXdkWE5vS0dKcGJtUXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVGd2NHeDVJSGRsYVdkb2RDQjBieUJsZG1WeWVTQmhjM05wWjI1bFpDQmliR1Z1WkNCemFHRndaWE11WEc0Z0lDQXFJRk5vYjNWc1pDQmlaU0JqWVd4c1pXUWdaWFpsY25rZ1puSmhiV1V1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWVhCd2JIbFhaV2xuYUhRb2IzQjBhVzl1Y3o4NklIdGNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQk5kV3gwYVhCc2FXVnpJR0VnZG1Gc2RXVWdkRzhnYVhSeklIZGxhV2RvZENCMGJ5QmhjSEJzZVM1Y2JpQWdJQ0FnS2lCSmJuUmxibVJsWkNCMGJ5QmlaU0IxYzJWa0lHWnZjaUJ2ZG1WeWNtbGthVzVuSUdGdUlHVjRjSEpsYzNOcGIyNGdkMlZwWjJoMElHSjVJR0Z1YjNSb1pYSWdaWGh3Y21WemMybHZiaTVjYmlBZ0lDQWdLaUJUWldVZ1lXeHpiem9nZTBCc2FXNXJJRzkyWlhKeWFXUmxRbXhwYm10OUxDQjdRR3hwYm1zZ2IzWmxjbkpwWkdWTWIyOXJRWFI5TENCN1FHeHBibXNnYjNabGNuSnBaR1ZOYjNWMGFIMWNiaUFnSUNBZ0tpOWNiaUFnSUNCdGRXeDBhWEJzYVdWeVB6b2diblZ0WW1WeU8xeHVJQ0I5S1RvZ2RtOXBaQ0I3WEc0Z0lDQWdiR1YwSUdGamRIVmhiRmRsYVdkb2RDQTlJSFJvYVhNdWFYTkNhVzVoY25rZ1B5QW9kR2hwY3k1M1pXbG5hSFFnUEQwZ01DNDFJRDhnTUM0d0lEb2dNUzR3S1NBNklIUm9hWE11ZDJWcFoyaDBPMXh1SUNBZ0lHRmpkSFZoYkZkbGFXZG9kQ0FxUFNCdmNIUnBiMjV6UHk1dGRXeDBhWEJzYVdWeUlEOC9JREV1TUR0Y2JseHVJQ0FnSUhSb2FYTXVYMkpwYm1SekxtWnZja1ZoWTJnb0tHSnBibVFwSUQwK0lHSnBibVF1WVhCd2JIbFhaV2xuYUhRb1lXTjBkV0ZzVjJWcFoyaDBLU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyeGxZWElnY0hKbGRtbHZkWE5zZVNCaGMzTnBaMjVsWkNCaWJHVnVaQ0J6YUdGd1pYTXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZMnhsWVhKQmNIQnNhV1ZrVjJWcFoyaDBLQ2s2SUhadmFXUWdlMXh1SUNBZ0lIUm9hWE11WDJKcGJtUnpMbVp2Y2tWaFkyZ29LR0pwYm1RcElEMCtJR0pwYm1RdVkyeGxZWEpCY0hCc2FXVmtWMlZwWjJoMEtDa3BPMXh1SUNCOVhHNTlYRzRpTENJdktpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xWEhKY2JrTnZjSGx5YVdkb2RDQW9ZeWtnVFdsamNtOXpiMlowSUVOdmNuQnZjbUYwYVc5dUxseHlYRzVjY2x4dVVHVnliV2x6YzJsdmJpQjBieUIxYzJVc0lHTnZjSGtzSUcxdlpHbG1lU3dnWVc1a0wyOXlJR1JwYzNSeWFXSjFkR1VnZEdocGN5QnpiMlowZDJGeVpTQm1iM0lnWVc1NVhISmNibkIxY25CdmMyVWdkMmwwYUNCdmNpQjNhWFJvYjNWMElHWmxaU0JwY3lCb1pYSmxZbmtnWjNKaGJuUmxaQzVjY2x4dVhISmNibFJJUlNCVFQwWlVWMEZTUlNCSlV5QlFVazlXU1VSRlJDQmNJa0ZUSUVsVFhDSWdRVTVFSUZSSVJTQkJWVlJJVDFJZ1JFbFRRMHhCU1UxVElFRk1UQ0JYUVZKU1FVNVVTVVZUSUZkSlZFaGNjbHh1VWtWSFFWSkVJRlJQSUZSSVNWTWdVMDlHVkZkQlVrVWdTVTVEVEZWRVNVNUhJRUZNVENCSlRWQk1TVVZFSUZkQlVsSkJUbFJKUlZNZ1QwWWdUVVZTUTBoQlRsUkJRa2xNU1ZSWlhISmNia0ZPUkNCR1NWUk9SVk5UTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVWdRVlZVU0U5U0lFSkZJRXhKUVVKTVJTQkdUMUlnUVU1WklGTlFSVU5KUVV3c0lFUkpVa1ZEVkN4Y2NseHVTVTVFU1ZKRlExUXNJRTlTSUVOUFRsTkZVVlZGVGxSSlFVd2dSRUZOUVVkRlV5QlBVaUJCVGxrZ1JFRk5RVWRGVXlCWFNFRlVVMDlGVmtWU0lGSkZVMVZNVkVsT1J5QkdVazlOWEhKY2JreFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQklFOVNJRkJTVDBaSlZGTXNJRmRJUlZSSVJWSWdTVTRnUVU0Z1FVTlVTVTlPSUU5R0lFTlBUbFJTUVVOVUxDQk9SVWRNU1VkRlRrTkZJRTlTWEhKY2JrOVVTRVZTSUZSUFVsUkpUMVZUSUVGRFZFbFBUaXdnUVZKSlUwbE9SeUJQVlZRZ1QwWWdUMUlnU1U0Z1EwOU9Ua1ZEVkVsUFRpQlhTVlJJSUZSSVJTQlZVMFVnVDFKY2NseHVVRVZTUms5U1RVRk9RMFVnVDBZZ1ZFaEpVeUJUVDBaVVYwRlNSUzVjY2x4dUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9nS2k5Y2NseHVMeW9nWjJ4dlltRnNJRkpsWm14bFkzUXNJRkJ5YjIxcGMyVXNJRk4xY0hCeVpYTnpaV1JGY25KdmNpd2dVM2x0WW05c0lDb3ZYSEpjYmx4eVhHNTJZWElnWlhoMFpXNWtVM1JoZEdsamN5QTlJR1oxYm1OMGFXOXVLR1FzSUdJcElIdGNjbHh1SUNBZ0lHVjRkR1Z1WkZOMFlYUnBZM01nUFNCUFltcGxZM1F1YzJWMFVISnZkRzkwZVhCbFQyWWdmSHhjY2x4dUlDQWdJQ0FnSUNBb2V5QmZYM0J5YjNSdlgxODZJRnRkSUgwZ2FXNXpkR0Z1WTJWdlppQkJjbkpoZVNBbUppQm1kVzVqZEdsdmJpQW9aQ3dnWWlrZ2V5QmtMbDlmY0hKdmRHOWZYeUE5SUdJN0lIMHBJSHg4WEhKY2JpQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z0tHUXNJR0lwSUhzZ1ptOXlJQ2gyWVhJZ2NDQnBiaUJpS1NCcFppQW9UMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLR0lzSUhBcEtTQmtXM0JkSUQwZ1lsdHdYVHNnZlR0Y2NseHVJQ0FnSUhKbGRIVnliaUJsZUhSbGJtUlRkR0YwYVdOektHUXNJR0lwTzF4eVhHNTlPMXh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZaWGgwWlc1a2N5aGtMQ0JpS1NCN1hISmNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHSWdJVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQW1KaUJpSUNFOVBTQnVkV3hzS1Z4eVhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pEYkdGemN5QmxlSFJsYm1SeklIWmhiSFZsSUZ3aUlDc2dVM1J5YVc1bktHSXBJQ3NnWENJZ2FYTWdibTkwSUdFZ1kyOXVjM1J5ZFdOMGIzSWdiM0lnYm5Wc2JGd2lLVHRjY2x4dUlDQWdJR1Y0ZEdWdVpGTjBZWFJwWTNNb1pDd2dZaWs3WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJmWHlncElIc2dkR2hwY3k1amIyNXpkSEoxWTNSdmNpQTlJR1E3SUgxY2NseHVJQ0FnSUdRdWNISnZkRzkwZVhCbElEMGdZaUE5UFQwZ2JuVnNiQ0EvSUU5aWFtVmpkQzVqY21WaGRHVW9ZaWtnT2lBb1gxOHVjSEp2ZEc5MGVYQmxJRDBnWWk1d2NtOTBiM1I1Y0dVc0lHNWxkeUJmWHlncEtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJSFpoY2lCZlgyRnpjMmxuYmlBOUlHWjFibU4wYVc5dUtDa2dlMXh5WEc0Z0lDQWdYMTloYzNOcFoyNGdQU0JQWW1wbFkzUXVZWE56YVdkdUlIeDhJR1oxYm1OMGFXOXVJRjlmWVhOemFXZHVLSFFwSUh0Y2NseHVJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQnpMQ0JwSUQwZ01Td2diaUE5SUdGeVozVnRaVzUwY3k1c1pXNW5kR2c3SUdrZ1BDQnVPeUJwS3lzcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2N5QTlJR0Z5WjNWdFpXNTBjMXRwWFR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaDJZWElnY0NCcGJpQnpLU0JwWmlBb1QySnFaV04wTG5CeWIzUnZkSGx3WlM1b1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tITXNJSEFwS1NCMFczQmRJRDBnYzF0d1hUdGNjbHh1SUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhRN1hISmNiaUFnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnWDE5aGMzTnBaMjR1WVhCd2JIa29kR2hwY3l3Z1lYSm5kVzFsYm5SektUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmY21WemRDaHpMQ0JsS1NCN1hISmNiaUFnSUNCMllYSWdkQ0E5SUh0OU8xeHlYRzRnSUNBZ1ptOXlJQ2gyWVhJZ2NDQnBiaUJ6S1NCcFppQW9UMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLSE1zSUhBcElDWW1JR1V1YVc1a1pYaFBaaWh3S1NBOElEQXBYSEpjYmlBZ0lDQWdJQ0FnZEZ0d1hTQTlJSE5iY0YwN1hISmNiaUFnSUNCcFppQW9jeUFoUFNCdWRXeHNJQ1ltSUhSNWNHVnZaaUJQWW1wbFkzUXVaMlYwVDNkdVVISnZjR1Z5ZEhsVGVXMWliMnh6SUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwWEhKY2JpQWdJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2FTQTlJREFzSUhBZ1BTQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxUZVcxaWIyeHpLSE1wT3lCcElEd2djQzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aUzVwYm1SbGVFOW1LSEJiYVYwcElEd2dNQ0FtSmlCUFltcGxZM1F1Y0hKdmRHOTBlWEJsTG5CeWIzQmxjblI1U1hORmJuVnRaWEpoWW14bExtTmhiR3dvY3l3Z2NGdHBYU2twWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMFczQmJhVjFkSUQwZ2MxdHdXMmxkWFR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQnlaWFIxY200Z2REdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWkdWamIzSmhkR1VvWkdWamIzSmhkRzl5Y3l3Z2RHRnlaMlYwTENCclpYa3NJR1JsYzJNcElIdGNjbHh1SUNBZ0lIWmhjaUJqSUQwZ1lYSm5kVzFsYm5SekxteGxibWQwYUN3Z2NpQTlJR01nUENBeklEOGdkR0Z5WjJWMElEb2daR1Z6WXlBOVBUMGdiblZzYkNBL0lHUmxjMk1nUFNCUFltcGxZM1F1WjJWMFQzZHVVSEp2Y0dWeWRIbEVaWE5qY21sd2RHOXlLSFJoY21kbGRDd2dhMlY1S1NBNklHUmxjMk1zSUdRN1hISmNiaUFnSUNCcFppQW9kSGx3Wlc5bUlGSmxabXhsWTNRZ1BUMDlJRndpYjJKcVpXTjBYQ0lnSmlZZ2RIbHdaVzltSUZKbFpteGxZM1F1WkdWamIzSmhkR1VnUFQwOUlGd2lablZ1WTNScGIyNWNJaWtnY2lBOUlGSmxabXhsWTNRdVpHVmpiM0poZEdVb1pHVmpiM0poZEc5eWN5d2dkR0Z5WjJWMExDQnJaWGtzSUdSbGMyTXBPMXh5WEc0Z0lDQWdaV3h6WlNCbWIzSWdLSFpoY2lCcElEMGdaR1ZqYjNKaGRHOXljeTVzWlc1bmRHZ2dMU0F4T3lCcElENDlJREE3SUdrdExTa2dhV1lnS0dRZ1BTQmtaV052Y21GMGIzSnpXMmxkS1NCeUlEMGdLR01nUENBeklEOGdaQ2h5S1NBNklHTWdQaUF6SUQ4Z1pDaDBZWEpuWlhRc0lHdGxlU3dnY2lrZ09pQmtLSFJoY21kbGRDd2dhMlY1S1NrZ2ZId2djanRjY2x4dUlDQWdJSEpsZEhWeWJpQmpJRDRnTXlBbUppQnlJQ1ltSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaDBZWEpuWlhRc0lHdGxlU3dnY2lrc0lISTdYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDNCaGNtRnRLSEJoY21GdFNXNWtaWGdzSUdSbFkyOXlZWFJ2Y2lrZ2UxeHlYRzRnSUNBZ2NtVjBkWEp1SUdaMWJtTjBhVzl1SUNoMFlYSm5aWFFzSUd0bGVTa2dleUJrWldOdmNtRjBiM0lvZEdGeVoyVjBMQ0JyWlhrc0lIQmhjbUZ0U1c1a1pYZ3BPeUI5WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyVnpSR1ZqYjNKaGRHVW9ZM1J2Y2l3Z1pHVnpZM0pwY0hSdmNrbHVMQ0JrWldOdmNtRjBiM0p6TENCamIyNTBaWGgwU1c0c0lHbHVhWFJwWVd4cGVtVnljeXdnWlhoMGNtRkpibWwwYVdGc2FYcGxjbk1wSUh0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUdGalkyVndkQ2htS1NCN0lHbG1JQ2htSUNFOVBTQjJiMmxrSURBZ0ppWWdkSGx3Wlc5bUlHWWdJVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtaMWJtTjBhVzl1SUdWNGNHVmpkR1ZrWENJcE95QnlaWFIxY200Z1pqc2dmVnh5WEc0Z0lDQWdkbUZ5SUd0cGJtUWdQU0JqYjI1MFpYaDBTVzR1YTJsdVpDd2dhMlY1SUQwZ2EybHVaQ0E5UFQwZ1hDSm5aWFIwWlhKY0lpQS9JRndpWjJWMFhDSWdPaUJyYVc1a0lEMDlQU0JjSW5ObGRIUmxjbHdpSUQ4Z1hDSnpaWFJjSWlBNklGd2lkbUZzZFdWY0lqdGNjbHh1SUNBZ0lIWmhjaUIwWVhKblpYUWdQU0FoWkdWelkzSnBjSFJ2Y2tsdUlDWW1JR04wYjNJZ1B5QmpiMjUwWlhoMFNXNWJYQ0p6ZEdGMGFXTmNJbDBnUHlCamRHOXlJRG9nWTNSdmNpNXdjbTkwYjNSNWNHVWdPaUJ1ZFd4c08xeHlYRzRnSUNBZ2RtRnlJR1JsYzJOeWFYQjBiM0lnUFNCa1pYTmpjbWx3ZEc5eVNXNGdmSHdnS0hSaGNtZGxkQ0EvSUU5aWFtVmpkQzVuWlhSUGQyNVFjbTl3WlhKMGVVUmxjMk55YVhCMGIzSW9kR0Z5WjJWMExDQmpiMjUwWlhoMFNXNHVibUZ0WlNrZ09pQjdmU2s3WEhKY2JpQWdJQ0IyWVhJZ1h5d2daRzl1WlNBOUlHWmhiSE5sTzF4eVhHNGdJQ0FnWm05eUlDaDJZWElnYVNBOUlHUmxZMjl5WVhSdmNuTXViR1Z1WjNSb0lDMGdNVHNnYVNBK1BTQXdPeUJwTFMwcElIdGNjbHh1SUNBZ0lDQWdJQ0IyWVhJZ1kyOXVkR1Y0ZENBOUlIdDlPMXh5WEc0Z0lDQWdJQ0FnSUdadmNpQW9kbUZ5SUhBZ2FXNGdZMjl1ZEdWNGRFbHVLU0JqYjI1MFpYaDBXM0JkSUQwZ2NDQTlQVDBnWENKaFkyTmxjM05jSWlBL0lIdDlJRG9nWTI5dWRHVjRkRWx1VzNCZE8xeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJSEFnYVc0Z1kyOXVkR1Y0ZEVsdUxtRmpZMlZ6Y3lrZ1kyOXVkR1Y0ZEM1aFkyTmxjM05iY0YwZ1BTQmpiMjUwWlhoMFNXNHVZV05qWlhOelczQmRPMXh5WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFF1WVdSa1NXNXBkR2xoYkdsNlpYSWdQU0JtZFc1amRHbHZiaUFvWmlrZ2V5QnBaaUFvWkc5dVpTa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtOaGJtNXZkQ0JoWkdRZ2FXNXBkR2xoYkdsNlpYSnpJR0ZtZEdWeUlHUmxZMjl5WVhScGIyNGdhR0Z6SUdOdmJYQnNaWFJsWkZ3aUtUc2daWGgwY21GSmJtbDBhV0ZzYVhwbGNuTXVjSFZ6YUNoaFkyTmxjSFFvWmlCOGZDQnVkV3hzS1NrN0lIMDdYSEpjYmlBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlDZ3dMQ0JrWldOdmNtRjBiM0p6VzJsZEtTaHJhVzVrSUQwOVBTQmNJbUZqWTJWemMyOXlYQ0lnUHlCN0lHZGxkRG9nWkdWelkzSnBjSFJ2Y2k1blpYUXNJSE5sZERvZ1pHVnpZM0pwY0hSdmNpNXpaWFFnZlNBNklHUmxjMk55YVhCMGIzSmJhMlY1WFN3Z1kyOXVkR1Y0ZENrN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0d0cGJtUWdQVDA5SUZ3aVlXTmpaWE56YjNKY0lpa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY21WemRXeDBJRDA5UFNCMmIybGtJREFwSUdOdmJuUnBiblZsTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtVnpkV3gwSUQwOVBTQnVkV3hzSUh4OElIUjVjR1Z2WmlCeVpYTjFiSFFnSVQwOUlGd2liMkpxWldOMFhDSXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKUFltcGxZM1FnWlhod1pXTjBaV1JjSWlrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGZJRDBnWVdOalpYQjBLSEpsYzNWc2RDNW5aWFFwS1NCa1pYTmpjbWx3ZEc5eUxtZGxkQ0E5SUY4N1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGZJRDBnWVdOalpYQjBLSEpsYzNWc2RDNXpaWFFwS1NCa1pYTmpjbWx3ZEc5eUxuTmxkQ0E5SUY4N1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGZJRDBnWVdOalpYQjBLSEpsYzNWc2RDNXBibWwwS1NrZ2FXNXBkR2xoYkdsNlpYSnpMblZ1YzJocFpuUW9YeWs3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLRjhnUFNCaFkyTmxjSFFvY21WemRXeDBLU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2EybHVaQ0E5UFQwZ1hDSm1hV1ZzWkZ3aUtTQnBibWwwYVdGc2FYcGxjbk11ZFc1emFHbG1kQ2hmS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQmtaWE5qY21sd2RHOXlXMnRsZVYwZ1BTQmZPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUgxY2NseHVJQ0FnSUdsbUlDaDBZWEpuWlhRcElFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2gwWVhKblpYUXNJR052Ym5SbGVIUkpiaTV1WVcxbExDQmtaWE5qY21sd2RHOXlLVHRjY2x4dUlDQWdJR1J2Ym1VZ1BTQjBjblZsTzF4eVhHNTlPMXh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZjblZ1U1c1cGRHbGhiR2w2WlhKektIUm9hWE5CY21jc0lHbHVhWFJwWVd4cGVtVnljeXdnZG1Gc2RXVXBJSHRjY2x4dUlDQWdJSFpoY2lCMWMyVldZV3gxWlNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnZ1BpQXlPMXh5WEc0Z0lDQWdabTl5SUNoMllYSWdhU0E5SURBN0lHa2dQQ0JwYm1sMGFXRnNhWHBsY25NdWJHVnVaM1JvT3lCcEt5c3BJSHRjY2x4dUlDQWdJQ0FnSUNCMllXeDFaU0E5SUhWelpWWmhiSFZsSUQ4Z2FXNXBkR2xoYkdsNlpYSnpXMmxkTG1OaGJHd29kR2hwYzBGeVp5d2dkbUZzZFdVcElEb2dhVzVwZEdsaGJHbDZaWEp6VzJsZExtTmhiR3dvZEdocGMwRnlaeWs3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0J5WlhSMWNtNGdkWE5sVm1Gc2RXVWdQeUIyWVd4MVpTQTZJSFp2YVdRZ01EdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDNCeWIzQkxaWGtvZUNrZ2UxeHlYRzRnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUI0SUQwOVBTQmNJbk41YldKdmJGd2lJRDhnZUNBNklGd2lYQ0l1WTI5dVkyRjBLSGdwTzF4eVhHNTlPMXh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZjMlYwUm5WdVkzUnBiMjVPWVcxbEtHWXNJRzVoYldVc0lIQnlaV1pwZUNrZ2UxeHlYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQnVZVzFsSUQwOVBTQmNJbk41YldKdmJGd2lLU0J1WVcxbElEMGdibUZ0WlM1a1pYTmpjbWx3ZEdsdmJpQS9JRndpVzF3aUxtTnZibU5oZENodVlXMWxMbVJsYzJOeWFYQjBhVzl1TENCY0lsMWNJaWtnT2lCY0lsd2lPMXh5WEc0Z0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2htTENCY0ltNWhiV1ZjSWl3Z2V5QmpiMjVtYVdkMWNtRmliR1U2SUhSeWRXVXNJSFpoYkhWbE9pQndjbVZtYVhnZ1B5QmNJbHdpTG1OdmJtTmhkQ2h3Y21WbWFYZ3NJRndpSUZ3aUxDQnVZVzFsS1NBNklHNWhiV1VnZlNrN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl0WlhSaFpHRjBZU2h0WlhSaFpHRjBZVXRsZVN3Z2JXVjBZV1JoZEdGV1lXeDFaU2tnZTF4eVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCU1pXWnNaV04wSUQwOVBTQmNJbTlpYW1WamRGd2lJQ1ltSUhSNWNHVnZaaUJTWldac1pXTjBMbTFsZEdGa1lYUmhJRDA5UFNCY0ltWjFibU4wYVc5dVhDSXBJSEpsZEhWeWJpQlNaV1pzWldOMExtMWxkR0ZrWVhSaEtHMWxkR0ZrWVhSaFMyVjVMQ0J0WlhSaFpHRjBZVlpoYkhWbEtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWVhkaGFYUmxjaWgwYUdselFYSm5MQ0JmWVhKbmRXMWxiblJ6TENCUUxDQm5aVzVsY21GMGIzSXBJSHRjY2x4dUlDQWdJR1oxYm1OMGFXOXVJR0ZrYjNCMEtIWmhiSFZsS1NCN0lISmxkSFZ5YmlCMllXeDFaU0JwYm5OMFlXNWpaVzltSUZBZ1B5QjJZV3gxWlNBNklHNWxkeUJRS0daMWJtTjBhVzl1SUNoeVpYTnZiSFpsS1NCN0lISmxjMjlzZG1Vb2RtRnNkV1VwT3lCOUtUc2dmVnh5WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUFvVUNCOGZDQW9VQ0E5SUZCeWIyMXBjMlVwS1NobWRXNWpkR2x2YmlBb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NCN1hISmNiaUFnSUNBZ0lDQWdablZ1WTNScGIyNGdablZzWm1sc2JHVmtLSFpoYkhWbEtTQjdJSFJ5ZVNCN0lITjBaWEFvWjJWdVpYSmhkRzl5TG01bGVIUW9kbUZzZFdVcEtUc2dmU0JqWVhSamFDQW9aU2tnZXlCeVpXcGxZM1FvWlNrN0lIMGdmVnh5WEc0Z0lDQWdJQ0FnSUdaMWJtTjBhVzl1SUhKbGFtVmpkR1ZrS0haaGJIVmxLU0I3SUhSeWVTQjdJSE4wWlhBb1oyVnVaWEpoZEc5eVcxd2lkR2h5YjNkY0lsMG9kbUZzZFdVcEtUc2dmU0JqWVhSamFDQW9aU2tnZXlCeVpXcGxZM1FvWlNrN0lIMGdmVnh5WEc0Z0lDQWdJQ0FnSUdaMWJtTjBhVzl1SUhOMFpYQW9jbVZ6ZFd4MEtTQjdJSEpsYzNWc2RDNWtiMjVsSUQ4Z2NtVnpiMngyWlNoeVpYTjFiSFF1ZG1Gc2RXVXBJRG9nWVdSdmNIUW9jbVZ6ZFd4MExuWmhiSFZsS1M1MGFHVnVLR1oxYkdacGJHeGxaQ3dnY21WcVpXTjBaV1FwT3lCOVhISmNiaUFnSUNBZ0lDQWdjM1JsY0Nnb1oyVnVaWEpoZEc5eUlEMGdaMlZ1WlhKaGRHOXlMbUZ3Y0d4NUtIUm9hWE5CY21jc0lGOWhjbWQxYldWdWRITWdmSHdnVzEwcEtTNXVaWGgwS0NrcE8xeHlYRzRnSUNBZ2ZTazdYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJkbGJtVnlZWFJ2Y2loMGFHbHpRWEpuTENCaWIyUjVLU0I3WEhKY2JpQWdJQ0IyWVhJZ1h5QTlJSHNnYkdGaVpXdzZJREFzSUhObGJuUTZJR1oxYm1OMGFXOXVLQ2tnZXlCcFppQW9kRnN3WFNBbUlERXBJSFJvY205M0lIUmJNVjA3SUhKbGRIVnliaUIwV3pGZE95QjlMQ0IwY25sek9pQmJYU3dnYjNCek9pQmJYU0I5TENCbUxDQjVMQ0IwTENCbk8xeHlYRzRnSUNBZ2NtVjBkWEp1SUdjZ1BTQjdJRzVsZUhRNklIWmxjbUlvTUNrc0lGd2lkR2h5YjNkY0lqb2dkbVZ5WWlneEtTd2dYQ0p5WlhSMWNtNWNJam9nZG1WeVlpZ3lLU0I5TENCMGVYQmxiMllnVTNsdFltOXNJRDA5UFNCY0ltWjFibU4wYVc5dVhDSWdKaVlnS0dkYlUzbHRZbTlzTG1sMFpYSmhkRzl5WFNBOUlHWjFibU4wYVc5dUtDa2dleUJ5WlhSMWNtNGdkR2hwY3pzZ2ZTa3NJR2M3WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUIyWlhKaUtHNHBJSHNnY21WMGRYSnVJR1oxYm1OMGFXOXVJQ2gyS1NCN0lISmxkSFZ5YmlCemRHVndLRnR1TENCMlhTazdJSDA3SUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhOMFpYQW9iM0FwSUh0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvWmlrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJa2RsYm1WeVlYUnZjaUJwY3lCaGJISmxZV1I1SUdWNFpXTjFkR2x1Wnk1Y0lpazdYSEpjYmlBZ0lDQWdJQ0FnZDJocGJHVWdLR2NnSmlZZ0tHY2dQU0F3TENCdmNGc3dYU0FtSmlBb1h5QTlJREFwS1N3Z1h5a2dkSEo1SUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHWWdQU0F4TENCNUlDWW1JQ2gwSUQwZ2IzQmJNRjBnSmlBeUlEOGdlVnRjSW5KbGRIVnlibHdpWFNBNklHOXdXekJkSUQ4Z2VWdGNJblJvY205M1hDSmRJSHg4SUNnb2RDQTlJSGxiWENKeVpYUjFjbTVjSWwwcElDWW1JSFF1WTJGc2JDaDVLU3dnTUNrZ09pQjVMbTVsZUhRcElDWW1JQ0VvZENBOUlIUXVZMkZzYkNoNUxDQnZjRnN4WFNrcExtUnZibVVwSUhKbGRIVnliaUIwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2VTQTlJREFzSUhRcElHOXdJRDBnVzI5d1d6QmRJQ1lnTWl3Z2RDNTJZV3gxWlYwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhOM2FYUmphQ0FvYjNCYk1GMHBJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdNRG9nWTJGelpTQXhPaUIwSUQwZ2IzQTdJR0p5WldGck8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBME9pQmZMbXhoWW1Wc0t5czdJSEpsZEhWeWJpQjdJSFpoYkhWbE9pQnZjRnN4WFN3Z1pHOXVaVG9nWm1Gc2MyVWdmVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdOVG9nWHk1c1lXSmxiQ3NyT3lCNUlEMGdiM0JiTVYwN0lHOXdJRDBnV3pCZE95QmpiMjUwYVc1MVpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ056b2diM0FnUFNCZkxtOXdjeTV3YjNBb0tUc2dYeTUwY25sekxuQnZjQ2dwT3lCamIyNTBhVzUxWlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmxabUYxYkhRNlhISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRW9kQ0E5SUY4dWRISjVjeXdnZENBOUlIUXViR1Z1WjNSb0lENGdNQ0FtSmlCMFczUXViR1Z1WjNSb0lDMGdNVjBwSUNZbUlDaHZjRnN3WFNBOVBUMGdOaUI4ZkNCdmNGc3dYU0E5UFQwZ01pa3BJSHNnWHlBOUlEQTdJR052Ym5ScGJuVmxPeUI5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c5d1d6QmRJRDA5UFNBeklDWW1JQ2doZENCOGZDQW9iM0JiTVYwZ1BpQjBXekJkSUNZbUlHOXdXekZkSUR3Z2RGc3pYU2twS1NCN0lGOHViR0ZpWld3Z1BTQnZjRnN4WFRzZ1luSmxZV3M3SUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2IzQmJNRjBnUFQwOUlEWWdKaVlnWHk1c1lXSmxiQ0E4SUhSYk1WMHBJSHNnWHk1c1lXSmxiQ0E5SUhSYk1WMDdJSFFnUFNCdmNEc2dZbkpsWVdzN0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kQ0FtSmlCZkxteGhZbVZzSUR3Z2RGc3lYU2tnZXlCZkxteGhZbVZzSUQwZ2RGc3lYVHNnWHk1dmNITXVjSFZ6YUNodmNDazdJR0p5WldGck95QjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJiTWwwcElGOHViM0J6TG5CdmNDZ3BPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGOHVkSEo1Y3k1d2IzQW9LVHNnWTI5dWRHbHVkV1U3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdiM0FnUFNCaWIyUjVMbU5oYkd3b2RHaHBjMEZ5Wnl3Z1h5azdYSEpjYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlNrZ2V5QnZjQ0E5SUZzMkxDQmxYVHNnZVNBOUlEQTdJSDBnWm1sdVlXeHNlU0I3SUdZZ1BTQjBJRDBnTURzZ2ZWeHlYRzRnSUNBZ0lDQWdJR2xtSUNodmNGc3dYU0FtSURVcElIUm9jbTkzSUc5d1d6RmRPeUJ5WlhSMWNtNGdleUIyWVd4MVpUb2diM0JiTUYwZ1B5QnZjRnN4WFNBNklIWnZhV1FnTUN3Z1pHOXVaVG9nZEhKMVpTQjlPMXh5WEc0Z0lDQWdmVnh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnZG1GeUlGOWZZM0psWVhSbFFtbHVaR2x1WnlBOUlFOWlhbVZqZEM1amNtVmhkR1VnUHlBb1puVnVZM1JwYjI0b2J5d2diU3dnYXl3Z2F6SXBJSHRjY2x4dUlDQWdJR2xtSUNock1pQTlQVDBnZFc1a1pXWnBibVZrS1NCck1pQTlJR3M3WEhKY2JpQWdJQ0IyWVhJZ1pHVnpZeUE5SUU5aWFtVmpkQzVuWlhSUGQyNVFjbTl3WlhKMGVVUmxjMk55YVhCMGIzSW9iU3dnYXlrN1hISmNiaUFnSUNCcFppQW9JV1JsYzJNZ2ZId2dLRndpWjJWMFhDSWdhVzRnWkdWell5QS9JQ0Z0TGw5ZlpYTk5iMlIxYkdVZ09pQmtaWE5qTG5keWFYUmhZbXhsSUh4OElHUmxjMk11WTI5dVptbG5kWEpoWW14bEtTa2dlMXh5WEc0Z0lDQWdJQ0FnSUdSbGMyTWdQU0I3SUdWdWRXMWxjbUZpYkdVNklIUnlkV1VzSUdkbGREb2dablZ1WTNScGIyNG9LU0I3SUhKbGRIVnliaUJ0VzJ0ZE95QjlJSDA3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0JQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb2J5d2dheklzSUdSbGMyTXBPMXh5WEc1OUtTQTZJQ2htZFc1amRHbHZiaWh2TENCdExDQnJMQ0JyTWlrZ2UxeHlYRzRnSUNBZ2FXWWdLR3N5SUQwOVBTQjFibVJsWm1sdVpXUXBJR3N5SUQwZ2F6dGNjbHh1SUNBZ0lHOWJhekpkSUQwZ2JWdHJYVHRjY2x4dWZTazdYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWxlSEJ2Y25SVGRHRnlLRzBzSUc4cElIdGNjbHh1SUNBZ0lHWnZjaUFvZG1GeUlIQWdhVzRnYlNrZ2FXWWdLSEFnSVQwOUlGd2laR1ZtWVhWc2RGd2lJQ1ltSUNGUFltcGxZM1F1Y0hKdmRHOTBlWEJsTG1oaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2J5d2djQ2twSUY5ZlkzSmxZWFJsUW1sdVpHbHVaeWh2TENCdExDQndLVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmRtRnNkV1Z6S0c4cElIdGNjbHh1SUNBZ0lIWmhjaUJ6SUQwZ2RIbHdaVzltSUZONWJXSnZiQ0E5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJQ1ltSUZONWJXSnZiQzVwZEdWeVlYUnZjaXdnYlNBOUlITWdKaVlnYjF0elhTd2dhU0E5SURBN1hISmNiaUFnSUNCcFppQW9iU2tnY21WMGRYSnVJRzB1WTJGc2JDaHZLVHRjY2x4dUlDQWdJR2xtSUNodklDWW1JSFI1Y0dWdlppQnZMbXhsYm1kMGFDQTlQVDBnWENKdWRXMWlaWEpjSWlrZ2NtVjBkWEp1SUh0Y2NseHVJQ0FnSUNBZ0lDQnVaWGgwT2lCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h2SUNZbUlHa2dQajBnYnk1c1pXNW5kR2dwSUc4Z1BTQjJiMmxrSURBN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhaaGJIVmxPaUJ2SUNZbUlHOWJhU3NyWFN3Z1pHOXVaVG9nSVc4Z2ZUdGNjbHh1SUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0I5TzF4eVhHNGdJQ0FnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loeklEOGdYQ0pQWW1wbFkzUWdhWE1nYm05MElHbDBaWEpoWW14bExsd2lJRG9nWENKVGVXMWliMnd1YVhSbGNtRjBiM0lnYVhNZ2JtOTBJR1JsWm1sdVpXUXVYQ0lwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXlaV0ZrS0c4c0lHNHBJSHRjY2x4dUlDQWdJSFpoY2lCdElEMGdkSGx3Wlc5bUlGTjViV0p2YkNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUNZbUlHOWJVM2x0WW05c0xtbDBaWEpoZEc5eVhUdGNjbHh1SUNBZ0lHbG1JQ2doYlNrZ2NtVjBkWEp1SUc4N1hISmNiaUFnSUNCMllYSWdhU0E5SUcwdVkyRnNiQ2h2S1N3Z2Npd2dZWElnUFNCYlhTd2daVHRjY2x4dUlDQWdJSFJ5ZVNCN1hISmNiaUFnSUNBZ0lDQWdkMmhwYkdVZ0tDaHVJRDA5UFNCMmIybGtJREFnZkh3Z2JpMHRJRDRnTUNrZ0ppWWdJU2h5SUQwZ2FTNXVaWGgwS0NrcExtUnZibVVwSUdGeUxuQjFjMmdvY2k1MllXeDFaU2s3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0JqWVhSamFDQW9aWEp5YjNJcElIc2daU0E5SUhzZ1pYSnliM0k2SUdWeWNtOXlJSDA3SUgxY2NseHVJQ0FnSUdacGJtRnNiSGtnZTF4eVhHNGdJQ0FnSUNBZ0lIUnllU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoeUlDWW1JQ0Z5TG1SdmJtVWdKaVlnS0cwZ1BTQnBXMXdpY21WMGRYSnVYQ0pkS1NrZ2JTNWpZV3hzS0drcE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCbWFXNWhiR3g1SUhzZ2FXWWdLR1VwSUhSb2NtOTNJR1V1WlhKeWIzSTdJSDFjY2x4dUlDQWdJSDFjY2x4dUlDQWdJSEpsZEhWeWJpQmhjanRjY2x4dWZWeHlYRzVjY2x4dUx5b3FJRUJrWlhCeVpXTmhkR1ZrSUNvdlhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM053Y21WaFpDZ3BJSHRjY2x4dUlDQWdJR1p2Y2lBb2RtRnlJR0Z5SUQwZ1cxMHNJR2tnUFNBd095QnBJRHdnWVhKbmRXMWxiblJ6TG14bGJtZDBhRHNnYVNzcktWeHlYRzRnSUNBZ0lDQWdJR0Z5SUQwZ1lYSXVZMjl1WTJGMEtGOWZjbVZoWkNoaGNtZDFiV1Z1ZEhOYmFWMHBLVHRjY2x4dUlDQWdJSEpsZEhWeWJpQmhjanRjY2x4dWZWeHlYRzVjY2x4dUx5b3FJRUJrWlhCeVpXTmhkR1ZrSUNvdlhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM053Y21WaFpFRnljbUY1Y3lncElIdGNjbHh1SUNBZ0lHWnZjaUFvZG1GeUlITWdQU0F3TENCcElEMGdNQ3dnYVd3Z1BTQmhjbWQxYldWdWRITXViR1Z1WjNSb095QnBJRHdnYVd3N0lHa3JLeWtnY3lBclBTQmhjbWQxYldWdWRITmJhVjB1YkdWdVozUm9PMXh5WEc0Z0lDQWdabTl5SUNoMllYSWdjaUE5SUVGeWNtRjVLSE1wTENCcklEMGdNQ3dnYVNBOUlEQTdJR2tnUENCcGJEc2dhU3NyS1Z4eVhHNGdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlHRWdQU0JoY21kMWJXVnVkSE5iYVYwc0lHb2dQU0F3TENCcWJDQTlJR0V1YkdWdVozUm9PeUJxSUR3Z2FtdzdJR29yS3l3Z2F5c3JLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlXMnRkSUQwZ1lWdHFYVHRjY2x4dUlDQWdJSEpsZEhWeWJpQnlPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5emNISmxZV1JCY25KaGVTaDBieXdnWm5KdmJTd2djR0ZqYXlrZ2UxeHlYRzRnSUNBZ2FXWWdLSEJoWTJzZ2ZId2dZWEpuZFcxbGJuUnpMbXhsYm1kMGFDQTlQVDBnTWlrZ1ptOXlJQ2gyWVhJZ2FTQTlJREFzSUd3Z1BTQm1jbTl0TG14bGJtZDBhQ3dnWVhJN0lHa2dQQ0JzT3lCcEt5c3BJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9ZWElnZkh3Z0lTaHBJR2x1SUdaeWIyMHBLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaFlYSXBJR0Z5SUQwZ1FYSnlZWGt1Y0hKdmRHOTBlWEJsTG5Oc2FXTmxMbU5oYkd3b1puSnZiU3dnTUN3Z2FTazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnlXMmxkSUQwZ1puSnZiVnRwWFR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQnlaWFIxY200Z2RHOHVZMjl1WTJGMEtHRnlJSHg4SUVGeWNtRjVMbkJ5YjNSdmRIbHdaUzV6YkdsalpTNWpZV3hzS0daeWIyMHBLVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZllYZGhhWFFvZGlrZ2UxeHlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTWdhVzV6ZEdGdVkyVnZaaUJmWDJGM1lXbDBJRDhnS0hSb2FYTXVkaUE5SUhZc0lIUm9hWE1wSURvZ2JtVjNJRjlmWVhkaGFYUW9kaWs3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyRnplVzVqUjJWdVpYSmhkRzl5S0hSb2FYTkJjbWNzSUY5aGNtZDFiV1Z1ZEhNc0lHZGxibVZ5WVhSdmNpa2dlMXh5WEc0Z0lDQWdhV1lnS0NGVGVXMWliMnd1WVhONWJtTkpkR1Z5WVhSdmNpa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxONWJXSnZiQzVoYzNsdVkwbDBaWEpoZEc5eUlHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1SUNBZ0lIWmhjaUJuSUQwZ1oyVnVaWEpoZEc5eUxtRndjR3g1S0hSb2FYTkJjbWNzSUY5aGNtZDFiV1Z1ZEhNZ2ZId2dXMTBwTENCcExDQnhJRDBnVzEwN1hISmNiaUFnSUNCeVpYUjFjbTRnYVNBOUlIdDlMQ0IyWlhKaUtGd2libVY0ZEZ3aUtTd2dkbVZ5WWloY0luUm9jbTkzWENJcExDQjJaWEppS0Z3aWNtVjBkWEp1WENJcExDQnBXMU41YldKdmJDNWhjM2x1WTBsMFpYSmhkRzl5WFNBOUlHWjFibU4wYVc5dUlDZ3BJSHNnY21WMGRYSnVJSFJvYVhNN0lIMHNJR2s3WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUIyWlhKaUtHNHBJSHNnYVdZZ0tHZGJibDBwSUdsYmJsMGdQU0JtZFc1amRHbHZiaUFvZGlrZ2V5QnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9ablZ1WTNScGIyNGdLR0VzSUdJcElIc2djUzV3ZFhOb0tGdHVMQ0IyTENCaExDQmlYU2tnUGlBeElIeDhJSEpsYzNWdFpTaHVMQ0IyS1RzZ2ZTazdJSDA3SUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhKbGMzVnRaU2h1TENCMktTQjdJSFJ5ZVNCN0lITjBaWEFvWjF0dVhTaDJLU2s3SUgwZ1kyRjBZMmdnS0dVcElIc2djMlYwZEd4bEtIRmJNRjFiTTEwc0lHVXBPeUI5SUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhOMFpYQW9jaWtnZXlCeUxuWmhiSFZsSUdsdWMzUmhibU5sYjJZZ1gxOWhkMkZwZENBL0lGQnliMjFwYzJVdWNtVnpiMngyWlNoeUxuWmhiSFZsTG5ZcExuUm9aVzRvWm5Wc1ptbHNiQ3dnY21WcVpXTjBLU0E2SUhObGRIUnNaU2h4V3pCZFd6SmRMQ0J5S1RzZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z1puVnNabWxzYkNoMllXeDFaU2tnZXlCeVpYTjFiV1VvWENKdVpYaDBYQ0lzSUhaaGJIVmxLVHNnZlZ4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnY21WcVpXTjBLSFpoYkhWbEtTQjdJSEpsYzNWdFpTaGNJblJvY205M1hDSXNJSFpoYkhWbEtUc2dmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdjMlYwZEd4bEtHWXNJSFlwSUhzZ2FXWWdLR1lvZGlrc0lIRXVjMmhwWm5Rb0tTd2djUzVzWlc1bmRHZ3BJSEpsYzNWdFpTaHhXekJkV3pCZExDQnhXekJkV3pGZEtUc2dmVnh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5aGMzbHVZMFJsYkdWbllYUnZjaWh2S1NCN1hISmNiaUFnSUNCMllYSWdhU3dnY0R0Y2NseHVJQ0FnSUhKbGRIVnliaUJwSUQwZ2UzMHNJSFpsY21Jb1hDSnVaWGgwWENJcExDQjJaWEppS0Z3aWRHaHliM2RjSWl3Z1puVnVZM1JwYjI0Z0tHVXBJSHNnZEdoeWIzY2daVHNnZlNrc0lIWmxjbUlvWENKeVpYUjFjbTVjSWlrc0lHbGJVM2x0WW05c0xtbDBaWEpoZEc5eVhTQTlJR1oxYm1OMGFXOXVJQ2dwSUhzZ2NtVjBkWEp1SUhSb2FYTTdJSDBzSUdrN1hISmNiaUFnSUNCbWRXNWpkR2x2YmlCMlpYSmlLRzRzSUdZcElIc2dhVnR1WFNBOUlHOWJibDBnUHlCbWRXNWpkR2x2YmlBb2Rpa2dleUJ5WlhSMWNtNGdLSEFnUFNBaGNDa2dQeUI3SUhaaGJIVmxPaUJmWDJGM1lXbDBLRzliYmwwb2Rpa3BMQ0JrYjI1bE9pQm1ZV3h6WlNCOUlEb2daaUEvSUdZb2Rpa2dPaUIyT3lCOUlEb2daanNnZlZ4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWhjM2x1WTFaaGJIVmxjeWh2S1NCN1hISmNiaUFnSUNCcFppQW9JVk41YldKdmJDNWhjM2x1WTBsMFpYSmhkRzl5S1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVM2x0WW05c0xtRnplVzVqU1hSbGNtRjBiM0lnYVhNZ2JtOTBJR1JsWm1sdVpXUXVYQ0lwTzF4eVhHNGdJQ0FnZG1GeUlHMGdQU0J2VzFONWJXSnZiQzVoYzNsdVkwbDBaWEpoZEc5eVhTd2dhVHRjY2x4dUlDQWdJSEpsZEhWeWJpQnRJRDhnYlM1allXeHNLRzhwSURvZ0tHOGdQU0IwZVhCbGIyWWdYMTkyWVd4MVpYTWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JRjlmZG1Gc2RXVnpLRzhwSURvZ2IxdFRlVzFpYjJ3dWFYUmxjbUYwYjNKZEtDa3NJR2tnUFNCN2ZTd2dkbVZ5WWloY0ltNWxlSFJjSWlrc0lIWmxjbUlvWENKMGFISnZkMXdpS1N3Z2RtVnlZaWhjSW5KbGRIVnlibHdpS1N3Z2FWdFRlVzFpYjJ3dVlYTjVibU5KZEdWeVlYUnZjbDBnUFNCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQjBhR2x6T3lCOUxDQnBLVHRjY2x4dUlDQWdJR1oxYm1OMGFXOXVJSFpsY21Jb2Jpa2dleUJwVzI1ZElEMGdiMXR1WFNBbUppQm1kVzVqZEdsdmJpQW9kaWtnZXlCeVpYUjFjbTRnYm1WM0lGQnliMjFwYzJVb1puVnVZM1JwYjI0Z0tISmxjMjlzZG1Vc0lISmxhbVZqZENrZ2V5QjJJRDBnYjF0dVhTaDJLU3dnYzJWMGRHeGxLSEpsYzI5c2RtVXNJSEpsYW1WamRDd2dkaTVrYjI1bExDQjJMblpoYkhWbEtUc2dmU2s3SUgwN0lIMWNjbHh1SUNBZ0lHWjFibU4wYVc5dUlITmxkSFJzWlNoeVpYTnZiSFpsTENCeVpXcGxZM1FzSUdRc0lIWXBJSHNnVUhKdmJXbHpaUzV5WlhOdmJIWmxLSFlwTG5Sb1pXNG9ablZ1WTNScGIyNG9kaWtnZXlCeVpYTnZiSFpsS0hzZ2RtRnNkV1U2SUhZc0lHUnZibVU2SUdRZ2ZTazdJSDBzSUhKbGFtVmpkQ2s3SUgxY2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZiV0ZyWlZSbGJYQnNZWFJsVDJKcVpXTjBLR052YjJ0bFpDd2djbUYzS1NCN1hISmNiaUFnSUNCcFppQW9UMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S1NCN0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hqYjI5clpXUXNJRndpY21GM1hDSXNJSHNnZG1Gc2RXVTZJSEpoZHlCOUtUc2dmU0JsYkhObElIc2dZMjl2YTJWa0xuSmhkeUE5SUhKaGR6c2dmVnh5WEc0Z0lDQWdjbVYwZFhKdUlHTnZiMnRsWkR0Y2NseHVmVHRjY2x4dVhISmNiblpoY2lCZlgzTmxkRTF2WkhWc1pVUmxabUYxYkhRZ1BTQlBZbXBsWTNRdVkzSmxZWFJsSUQ4Z0tHWjFibU4wYVc5dUtHOHNJSFlwSUh0Y2NseHVJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaHZMQ0JjSW1SbFptRjFiSFJjSWl3Z2V5QmxiblZ0WlhKaFlteGxPaUIwY25WbExDQjJZV3gxWlRvZ2RpQjlLVHRjY2x4dWZTa2dPaUJtZFc1amRHbHZiaWh2TENCMktTQjdYSEpjYmlBZ0lDQnZXMXdpWkdWbVlYVnNkRndpWFNBOUlIWTdYSEpjYm4wN1hISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5cGJYQnZjblJUZEdGeUtHMXZaQ2tnZTF4eVhHNGdJQ0FnYVdZZ0tHMXZaQ0FtSmlCdGIyUXVYMTlsYzAxdlpIVnNaU2tnY21WMGRYSnVJRzF2WkR0Y2NseHVJQ0FnSUhaaGNpQnlaWE4xYkhRZ1BTQjdmVHRjY2x4dUlDQWdJR2xtSUNodGIyUWdJVDBnYm5Wc2JDa2dabTl5SUNoMllYSWdheUJwYmlCdGIyUXBJR2xtSUNocklDRTlQU0JjSW1SbFptRjFiSFJjSWlBbUppQlBZbXBsWTNRdWNISnZkRzkwZVhCbExtaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29iVzlrTENCcktTa2dYMTlqY21WaGRHVkNhVzVrYVc1bktISmxjM1ZzZEN3Z2JXOWtMQ0JyS1R0Y2NseHVJQ0FnSUY5ZmMyVjBUVzlrZFd4bFJHVm1ZWFZzZENoeVpYTjFiSFFzSUcxdlpDazdYSEpjYmlBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXBiWEJ2Y25SRVpXWmhkV3gwS0cxdlpDa2dlMXh5WEc0Z0lDQWdjbVYwZFhKdUlDaHRiMlFnSmlZZ2JXOWtMbDlmWlhOTmIyUjFiR1VwSUQ4Z2JXOWtJRG9nZXlCa1pXWmhkV3gwT2lCdGIyUWdmVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSSFpYUW9jbVZqWldsMlpYSXNJSE4wWVhSbExDQnJhVzVrTENCbUtTQjdYSEpjYmlBZ0lDQnBaaUFvYTJsdVpDQTlQVDBnWENKaFhDSWdKaVlnSVdZcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pRY21sMllYUmxJR0ZqWTJWemMyOXlJSGRoY3lCa1pXWnBibVZrSUhkcGRHaHZkWFFnWVNCblpYUjBaWEpjSWlrN1hISmNiaUFnSUNCcFppQW9kSGx3Wlc5bUlITjBZWFJsSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnUHlCeVpXTmxhWFpsY2lBaFBUMGdjM1JoZEdVZ2ZId2dJV1lnT2lBaGMzUmhkR1V1YUdGektISmxZMlZwZG1WeUtTa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtOaGJtNXZkQ0J5WldGa0lIQnlhWFpoZEdVZ2JXVnRZbVZ5SUdaeWIyMGdZVzRnYjJKcVpXTjBJSGRvYjNObElHTnNZWE56SUdScFpDQnViM1FnWkdWamJHRnlaU0JwZEZ3aUtUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCcmFXNWtJRDA5UFNCY0ltMWNJaUEvSUdZZ09pQnJhVzVrSUQwOVBTQmNJbUZjSWlBL0lHWXVZMkZzYkNoeVpXTmxhWFpsY2lrZ09pQm1JRDhnWmk1MllXeDFaU0E2SUhOMFlYUmxMbWRsZENoeVpXTmxhWFpsY2lrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtVMlYwS0hKbFkyVnBkbVZ5TENCemRHRjBaU3dnZG1Gc2RXVXNJR3RwYm1Rc0lHWXBJSHRjY2x4dUlDQWdJR2xtSUNocmFXNWtJRDA5UFNCY0ltMWNJaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lsQnlhWFpoZEdVZ2JXVjBhRzlrSUdseklHNXZkQ0IzY21sMFlXSnNaVndpS1R0Y2NseHVJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQmNJbUZjSWlBbUppQWhaaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lsQnlhWFpoZEdVZ1lXTmpaWE56YjNJZ2QyRnpJR1JsWm1sdVpXUWdkMmwwYUc5MWRDQmhJSE5sZEhSbGNsd2lLVHRjY2x4dUlDQWdJR2xtSUNoMGVYQmxiMllnYzNSaGRHVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JSEpsWTJWcGRtVnlJQ0U5UFNCemRHRjBaU0I4ZkNBaFppQTZJQ0Z6ZEdGMFpTNW9ZWE1vY21WalpXbDJaWElwS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lRMkZ1Ym05MElIZHlhWFJsSUhCeWFYWmhkR1VnYldWdFltVnlJSFJ2SUdGdUlHOWlhbVZqZENCM2FHOXpaU0JqYkdGemN5QmthV1FnYm05MElHUmxZMnhoY21VZ2FYUmNJaWs3WEhKY2JpQWdJQ0J5WlhSMWNtNGdLR3RwYm1RZ1BUMDlJRndpWVZ3aUlEOGdaaTVqWVd4c0tISmxZMlZwZG1WeUxDQjJZV3gxWlNrZ09pQm1JRDhnWmk1MllXeDFaU0E5SUhaaGJIVmxJRG9nYzNSaGRHVXVjMlYwS0hKbFkyVnBkbVZ5TENCMllXeDFaU2twTENCMllXeDFaVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSSmJpaHpkR0YwWlN3Z2NtVmpaV2wyWlhJcElIdGNjbHh1SUNBZ0lHbG1JQ2h5WldObGFYWmxjaUE5UFQwZ2JuVnNiQ0I4ZkNBb2RIbHdaVzltSUhKbFkyVnBkbVZ5SUNFOVBTQmNJbTlpYW1WamRGd2lJQ1ltSUhSNWNHVnZaaUJ5WldObGFYWmxjaUFoUFQwZ1hDSm1kVzVqZEdsdmJsd2lLU2tnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrTmhibTV2ZENCMWMyVWdKMmx1SnlCdmNHVnlZWFJ2Y2lCdmJpQnViMjR0YjJKcVpXTjBYQ0lwTzF4eVhHNGdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnpkR0YwWlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUQ4Z2NtVmpaV2wyWlhJZ1BUMDlJSE4wWVhSbElEb2djM1JoZEdVdWFHRnpLSEpsWTJWcGRtVnlLVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZllXUmtSR2x6Y0c5ellXSnNaVkpsYzI5MWNtTmxLR1Z1ZGl3Z2RtRnNkV1VzSUdGemVXNWpLU0I3WEhKY2JpQWdJQ0JwWmlBb2RtRnNkV1VnSVQwOUlHNTFiR3dnSmlZZ2RtRnNkV1VnSVQwOUlIWnZhV1FnTUNrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdJVDA5SUZ3aWIySnFaV04wWENJZ0ppWWdkSGx3Wlc5bUlIWmhiSFZsSUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSlBZbXBsWTNRZ1pYaHdaV04wWldRdVhDSXBPMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQmthWE53YjNObE8xeHlYRzRnSUNBZ0lDQWdJR2xtSUNoaGMzbHVZeWtnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lWTjViV0p2YkM1aGMzbHVZMFJwYzNCdmMyVXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKVGVXMWliMnd1WVhONWJtTkVhWE53YjNObElHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1pHbHpjRzl6WlNBOUlIWmhiSFZsVzFONWJXSnZiQzVoYzNsdVkwUnBjM0J2YzJWZE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCcFppQW9aR2x6Y0c5elpTQTlQVDBnZG05cFpDQXdLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaFUzbHRZbTlzTG1ScGMzQnZjMlVwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSlRlVzFpYjJ3dVpHbHpjRzl6WlNCcGN5QnViM1FnWkdWbWFXNWxaQzVjSWlrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdScGMzQnZjMlVnUFNCMllXeDFaVnRUZVcxaWIyd3VaR2x6Y0c5elpWMDdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdaR2x6Y0c5elpTQWhQVDBnWENKbWRXNWpkR2x2Ymx3aUtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpVDJKcVpXTjBJRzV2ZENCa2FYTndiM05oWW14bExsd2lLVHRjY2x4dUlDQWdJQ0FnSUNCbGJuWXVjM1JoWTJzdWNIVnphQ2g3SUhaaGJIVmxPaUIyWVd4MVpTd2daR2x6Y0c5elpUb2daR2x6Y0c5elpTd2dZWE41Ym1NNklHRnplVzVqSUgwcE8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ1pXeHpaU0JwWmlBb1lYTjVibU1wSUh0Y2NseHVJQ0FnSUNBZ0lDQmxibll1YzNSaFkyc3VjSFZ6YUNoN0lHRnplVzVqT2lCMGNuVmxJSDBwTzF4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHlYRzU5WEhKY2JseHlYRzUyWVhJZ1gxTjFjSEJ5WlhOelpXUkZjbkp2Y2lBOUlIUjVjR1Z2WmlCVGRYQndjbVZ6YzJWa1JYSnliM0lnUFQwOUlGd2lablZ1WTNScGIyNWNJaUEvSUZOMWNIQnlaWE56WldSRmNuSnZjaUE2SUdaMWJtTjBhVzl1SUNobGNuSnZjaXdnYzNWd2NISmxjM05sWkN3Z2JXVnpjMkZuWlNrZ2UxeHlYRzRnSUNBZ2RtRnlJR1VnUFNCdVpYY2dSWEp5YjNJb2JXVnpjMkZuWlNrN1hISmNiaUFnSUNCeVpYUjFjbTRnWlM1dVlXMWxJRDBnWENKVGRYQndjbVZ6YzJWa1JYSnliM0pjSWl3Z1pTNWxjbkp2Y2lBOUlHVnljbTl5TENCbExuTjFjSEJ5WlhOelpXUWdQU0J6ZFhCd2NtVnpjMlZrTENCbE8xeHlYRzU5TzF4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWkdsemNHOXpaVkpsYzI5MWNtTmxjeWhsYm5ZcElIdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlHWmhhV3dvWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJR1Z1ZGk1bGNuSnZjaUE5SUdWdWRpNW9ZWE5GY25KdmNpQS9JRzVsZHlCZlUzVndjSEpsYzNObFpFVnljbTl5S0dVc0lHVnVkaTVsY25KdmNpd2dYQ0pCYmlCbGNuSnZjaUIzWVhNZ2MzVndjSEpsYzNObFpDQmtkWEpwYm1jZ1pHbHpjRzl6WVd3dVhDSXBJRG9nWlR0Y2NseHVJQ0FnSUNBZ0lDQmxibll1YUdGelJYSnliM0lnUFNCMGNuVmxPMXh5WEc0Z0lDQWdmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdibVY0ZENncElIdGNjbHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9aVzUyTG5OMFlXTnJMbXhsYm1kMGFDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnY21WaklEMGdaVzUyTG5OMFlXTnJMbkJ2Y0NncE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCMGNua2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlISmxZeTVrYVhOd2IzTmxJQ1ltSUhKbFl5NWthWE53YjNObExtTmhiR3dvY21WakxuWmhiSFZsS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h5WldNdVlYTjVibU1wSUhKbGRIVnliaUJRY205dGFYTmxMbkpsYzI5c2RtVW9jbVZ6ZFd4MEtTNTBhR1Z1S0c1bGVIUXNJR1oxYm1OMGFXOXVLR1VwSUhzZ1ptRnBiQ2hsS1RzZ2NtVjBkWEp1SUc1bGVIUW9LVHNnZlNrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGMFkyZ2dLR1VwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWmhhV3dvWlNrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHVnVkaTVvWVhORmNuSnZjaWtnZEdoeWIzY2daVzUyTG1WeWNtOXlPMXh5WEc0Z0lDQWdmVnh5WEc0Z0lDQWdjbVYwZFhKdUlHNWxlSFFvS1R0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHUmxabUYxYkhRZ2UxeHlYRzRnSUNBZ1gxOWxlSFJsYm1Sek9pQmZYMlY0ZEdWdVpITXNYSEpjYmlBZ0lDQmZYMkZ6YzJsbmJqb2dYMTloYzNOcFoyNHNYSEpjYmlBZ0lDQmZYM0psYzNRNklGOWZjbVZ6ZEN4Y2NseHVJQ0FnSUY5ZlpHVmpiM0poZEdVNklGOWZaR1ZqYjNKaGRHVXNYSEpjYmlBZ0lDQmZYM0JoY21GdE9pQmZYM0JoY21GdExGeHlYRzRnSUNBZ1gxOXRaWFJoWkdGMFlUb2dYMTl0WlhSaFpHRjBZU3hjY2x4dUlDQWdJRjlmWVhkaGFYUmxjam9nWDE5aGQyRnBkR1Z5TEZ4eVhHNGdJQ0FnWDE5blpXNWxjbUYwYjNJNklGOWZaMlZ1WlhKaGRHOXlMRnh5WEc0Z0lDQWdYMTlqY21WaGRHVkNhVzVrYVc1bk9pQmZYMk55WldGMFpVSnBibVJwYm1jc1hISmNiaUFnSUNCZlgyVjRjRzl5ZEZOMFlYSTZJRjlmWlhod2IzSjBVM1JoY2l4Y2NseHVJQ0FnSUY5ZmRtRnNkV1Z6T2lCZlgzWmhiSFZsY3l4Y2NseHVJQ0FnSUY5ZmNtVmhaRG9nWDE5eVpXRmtMRnh5WEc0Z0lDQWdYMTl6Y0hKbFlXUTZJRjlmYzNCeVpXRmtMRnh5WEc0Z0lDQWdYMTl6Y0hKbFlXUkJjbkpoZVhNNklGOWZjM0J5WldGa1FYSnlZWGx6TEZ4eVhHNGdJQ0FnWDE5emNISmxZV1JCY25KaGVUb2dYMTl6Y0hKbFlXUkJjbkpoZVN4Y2NseHVJQ0FnSUY5ZllYZGhhWFE2SUY5ZllYZGhhWFFzWEhKY2JpQWdJQ0JmWDJGemVXNWpSMlZ1WlhKaGRHOXlPaUJmWDJGemVXNWpSMlZ1WlhKaGRHOXlMRnh5WEc0Z0lDQWdYMTloYzNsdVkwUmxiR1ZuWVhSdmNqb2dYMTloYzNsdVkwUmxiR1ZuWVhSdmNpeGNjbHh1SUNBZ0lGOWZZWE41Ym1OV1lXeDFaWE02SUY5ZllYTjVibU5XWVd4MVpYTXNYSEpjYmlBZ0lDQmZYMjFoYTJWVVpXMXdiR0YwWlU5aWFtVmpkRG9nWDE5dFlXdGxWR1Z0Y0d4aGRHVlBZbXBsWTNRc1hISmNiaUFnSUNCZlgybHRjRzl5ZEZOMFlYSTZJRjlmYVcxd2IzSjBVM1JoY2l4Y2NseHVJQ0FnSUY5ZmFXMXdiM0owUkdWbVlYVnNkRG9nWDE5cGJYQnZjblJFWldaaGRXeDBMRnh5WEc0Z0lDQWdYMTlqYkdGemMxQnlhWFpoZEdWR2FXVnNaRWRsZERvZ1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFZGxkQ3hjY2x4dUlDQWdJRjlmWTJ4aGMzTlFjbWwyWVhSbFJtbGxiR1JUWlhRNklGOWZZMnhoYzNOUWNtbDJZWFJsUm1sbGJHUlRaWFFzWEhKY2JpQWdJQ0JmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrU1c0NklGOWZZMnhoYzNOUWNtbDJZWFJsUm1sbGJHUkpiaXhjY2x4dUlDQWdJRjlmWVdSa1JHbHpjRzl6WVdKc1pWSmxjMjkxY21ObE9pQmZYMkZrWkVScGMzQnZjMkZpYkdWU1pYTnZkWEpqWlN4Y2NseHVJQ0FnSUY5ZlpHbHpjRzl6WlZKbGMyOTFjbU5sY3pvZ1gxOWthWE53YjNObFVtVnpiM1Z5WTJWekxGeHlYRzU5TzF4eVhHNGlMQ0pwYlhCdmNuUWdkSGx3WlNBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dSMHhVUmlCOUlHWnliMjBnSjNSb2NtVmxMMlY0WVcxd2JHVnpMMnB6YlM5c2IyRmtaWEp6TDBkTVZFWk1iMkZrWlhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnUjB4VVJpQmhjeUJIVEZSR1UyTm9aVzFoSUgwZ1puSnZiU0FuUUdkc2RHWXRkSEpoYm5ObWIzSnRMMk52Y21Vbk8xeHVYRzVtZFc1amRHbHZiaUJsZUhSeVlXTjBVSEpwYldsMGFYWmxjMGx1ZEdWeWJtRnNLR2RzZEdZNklFZE1WRVlzSUc1dlpHVkpibVJsZURvZ2JuVnRZbVZ5TENCdWIyUmxPaUJVU0ZKRlJTNVBZbXBsWTNRelJDazZJRlJJVWtWRkxrMWxjMmhiWFNCOElHNTFiR3dnZTF4dUlDQmpiMjV6ZENCcWMyOXVJRDBnWjJ4MFppNXdZWEp6WlhJdWFuTnZiaUJoY3lCSFRGUkdVMk5vWlcxaExrbEhURlJHTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJNWlhRbmN5QnNhWE4wSUhWd0lHVjJaWEo1SUhCdmMzTnBZbXhsSUhCaGRIUmxjbTV6SUhSb1lYUWdjR0Z5YzJWa0lHZHNkR1lnYm05a1pYTWdkMmwwYUNCaElHMWxjMmdnWTJGdUlHaGhkbVVzTEN4Y2JpQWdJQ3BjYmlBZ0lDb2dYQ0lxWENJZ2FXNWthV05oZEdWeklIUm9ZWFFnZEdodmMyVWdiV1Z6YUdWeklITm9iM1ZzWkNCaVpTQnNhWE4wWldRZ2RYQWdkWE5wYm1jZ2RHaHBjeUJtZFc1amRHbHZibHh1SUNBZ0tseHVJQ0FnS2lBakl5TWdRU0J1YjJSbElIZHBkR2dnWVNBb2JXVnphQ3dnWVNCemFXZHViR1VnY0hKcGJXbDBhWFpsS1Z4dUlDQWdLbHh1SUNBZ0tpQXRJR0JVU0ZKRlJTNU5aWE5vWURvZ1ZHaGxJRzl1YkhrZ2NISnBiV2wwYVhabElHOW1JSFJvWlNCdFpYTm9JQ3BjYmlBZ0lDcGNiaUFnSUNvZ0l5TWpJRUVnYm05a1pTQjNhWFJvSUdFZ0tHMWxjMmdzSUcxMWJIUnBjR3hsSUhCeWFXMXBkR2wyWlhNcFhHNGdJQ0FxWEc0Z0lDQXFJQzBnWUZSSVVrVkZMa2R5YjNWd1lEb2dWR2hsSUhKdmIzUWdiMllnZEdobElHMWxjMmhjYmlBZ0lDb2dJQ0F0SUdCVVNGSkZSUzVOWlhOb1lEb2dRU0J3Y21sdGFYUnBkbVVnYjJZZ2RHaGxJRzFsYzJnZ0tseHVJQ0FnS2lBZ0lDMGdZRlJJVWtWRkxrMWxjMmhnT2lCQklIQnlhVzFwZEdsMlpTQnZaaUIwYUdVZ2JXVnphQ0FvTWlrZ0tseHVJQ0FnS2x4dUlDQWdLaUFqSXlNZ1FTQnViMlJsSUhkcGRHZ2dZU0FvYldWemFDd2diWFZzZEdsd2JHVWdjSEpwYldsMGFYWmxjeWtnUVU1RUlDaGhJR05vYVd4a0lIZHBkR2dnWVNCdFpYTm9MQ0JoSUhOcGJtZHNaU0J3Y21sdGFYUnBkbVVwWEc0Z0lDQXFYRzRnSUNBcUlDMGdZRlJJVWtWRkxrZHliM1Z3WURvZ1ZHaGxJSEp2YjNRZ2IyWWdkR2hsSUcxbGMyaGNiaUFnSUNvZ0lDQXRJR0JVU0ZKRlJTNU5aWE5vWURvZ1FTQndjbWx0YVhScGRtVWdiMllnZEdobElHMWxjMmdnS2x4dUlDQWdLaUFnSUMwZ1lGUklVa1ZGTGsxbGMyaGdPaUJCSUhCeWFXMXBkR2wyWlNCdlppQjBhR1VnYldWemFDQW9NaWtnS2x4dUlDQWdLaUFnSUMwZ1lGUklVa1ZGTGsxbGMyaGdPaUJCSUhCeWFXMXBkR2wyWlNCdlppQmhJRTFGVTBnZ1QwWWdWRWhGSUVOSVNVeEVYRzRnSUNBcVhHNGdJQ0FxSUNNakl5QkJJRzV2WkdVZ2QybDBhQ0JoSUNodFpYTm9MQ0J0ZFd4MGFYQnNaU0J3Y21sdGFYUnBkbVZ6S1NCQlRrUWdLR0VnWTJocGJHUWdkMmwwYUNCaElHMWxjMmdzSUcxMWJIUnBjR3hsSUhCeWFXMXBkR2wyWlhNcFhHNGdJQ0FxWEc0Z0lDQXFJQzBnWUZSSVVrVkZMa2R5YjNWd1lEb2dWR2hsSUhKdmIzUWdiMllnZEdobElHMWxjMmhjYmlBZ0lDb2dJQ0F0SUdCVVNGSkZSUzVOWlhOb1lEb2dRU0J3Y21sdGFYUnBkbVVnYjJZZ2RHaGxJRzFsYzJnZ0tseHVJQ0FnS2lBZ0lDMGdZRlJJVWtWRkxrMWxjMmhnT2lCQklIQnlhVzFwZEdsMlpTQnZaaUIwYUdVZ2JXVnphQ0FvTWlrZ0tseHVJQ0FnS2lBZ0lDMGdZRlJJVWtWRkxrZHliM1Z3WURvZ1ZHaGxJSEp2YjNRZ2IyWWdZU0JOUlZOSUlFOUdJRlJJUlNCRFNFbE1SRnh1SUNBZ0tpQWdJQ0FnTFNCZ1ZFaFNSVVV1VFdWemFHQTZJRUVnY0hKcGJXbDBhWFpsSUc5bUlIUm9aU0J0WlhOb0lHOW1JSFJvWlNCamFHbHNaRnh1SUNBZ0tpQWdJQ0FnTFNCZ1ZFaFNSVVV1VFdWemFHQTZJRUVnY0hKcGJXbDBhWFpsSUc5bUlIUm9aU0J0WlhOb0lHOW1JSFJvWlNCamFHbHNaQ0FvTWlsY2JpQWdJQ3BjYmlBZ0lDb2dJeU1qSUVFZ2JtOWtaU0IzYVhSb0lHRWdLRzFsYzJnc0lHMTFiSFJwY0d4bElIQnlhVzFwZEdsMlpYTXBJRUpWVkNCMGFHVWdibTlrWlNCcGN5QmhJR0p2Ym1WY2JpQWdJQ3BjYmlBZ0lDb2dMU0JnVkVoU1JVVXVRbTl1WldBNklGUm9aU0J5YjI5MElHOW1JSFJvWlNCdWIyUmxMQ0JoY3lCaElHSnZibVZjYmlBZ0lDb2dJQ0F0SUdCVVNGSkZSUzVIY205MWNHQTZJRlJvWlNCeWIyOTBJRzltSUhSb1pTQnRaWE5vWEc0Z0lDQXFJQ0FnSUNBdElHQlVTRkpGUlM1TlpYTm9ZRG9nUVNCd2NtbHRhWFJwZG1VZ2IyWWdkR2hsSUcxbGMyZ2dLbHh1SUNBZ0tpQWdJQ0FnTFNCZ1ZFaFNSVVV1VFdWemFHQTZJRUVnY0hKcGJXbDBhWFpsSUc5bUlIUm9aU0J0WlhOb0lDZ3lLU0FxWEc0Z0lDQXFYRzRnSUNBcUlDTWpJeUJCSUc1dlpHVWdkMmwwYUNCaElDaHRaWE5vTENCdGRXeDBhWEJzWlNCd2NtbHRhWFJwZG1WektTQkJUa1FnS0dFZ1kyaHBiR1FnZDJsMGFDQmhJRzFsYzJnc0lHMTFiSFJwY0d4bElIQnlhVzFwZEdsMlpYTXBJRUpWVkNCMGFHVWdibTlrWlNCcGN5QmhJR0p2Ym1WY2JpQWdJQ3BjYmlBZ0lDb2dMU0JnVkVoU1JVVXVRbTl1WldBNklGUm9aU0J5YjI5MElHOW1JSFJvWlNCdWIyUmxMQ0JoY3lCaElHSnZibVZjYmlBZ0lDb2dJQ0F0SUdCVVNGSkZSUzVIY205MWNHQTZJRlJvWlNCeWIyOTBJRzltSUhSb1pTQnRaWE5vWEc0Z0lDQXFJQ0FnSUNBdElHQlVTRkpGUlM1TlpYTm9ZRG9nUVNCd2NtbHRhWFJwZG1VZ2IyWWdkR2hsSUcxbGMyZ2dLbHh1SUNBZ0tpQWdJQ0FnTFNCZ1ZFaFNSVVV1VFdWemFHQTZJRUVnY0hKcGJXbDBhWFpsSUc5bUlIUm9aU0J0WlhOb0lDZ3lLU0FxWEc0Z0lDQXFJQ0FnTFNCZ1ZFaFNSVVV1UjNKdmRYQmdPaUJVYUdVZ2NtOXZkQ0J2WmlCaElFMUZVMGdnVDBZZ1ZFaEZJRU5JU1V4RVhHNGdJQ0FxSUNBZ0lDQXRJR0JVU0ZKRlJTNU5aWE5vWURvZ1FTQndjbWx0YVhScGRtVWdiMllnZEdobElHMWxjMmdnYjJZZ2RHaGxJR05vYVd4a1hHNGdJQ0FxSUNBZ0lDQXRJR0JVU0ZKRlJTNU5aWE5vWURvZ1FTQndjbWx0YVhScGRtVWdiMllnZEdobElHMWxjMmdnYjJZZ2RHaGxJR05vYVd4a0lDZ3lLVnh1SUNBZ0tseHVJQ0FnS2lBdUxpNUpJSGRwYkd3Z2RHRnJaU0JoSUhOMGNtRjBaV2Q1SUhSb1lYUWdkSEpoZG1WeWMyVnpJSFJvWlNCeWIyOTBJRzltSUhSb1pTQnViMlJsSUdGdVpDQjBZV3RsSUdacGNuTjBJQ2h3Y21sdGFYUnBkbVZEYjNWdWRDa2diV1Z6YUdWekxseHVJQ0FnS2k5Y2JseHVJQ0F2THlCTllXdGxJSE4xY21VZ2RHaGhkQ0IwYUdVZ2JtOWtaU0JvWVhNZ1lTQnRaWE5vWEc0Z0lHTnZibk4wSUhOamFHVnRZVTV2WkdVZ1BTQnFjMjl1TG01dlpHVnpQeTViYm05a1pVbHVaR1Y0WFR0Y2JpQWdhV1lnS0hOamFHVnRZVTV2WkdVZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGdaWGgwY21GamRGQnlhVzFwZEdsMlpYTkpiblJsY201aGJEb2dRWFIwWlcxd2RDQjBieUIxYzJVZ2JtOWtaWE5iSkh0dWIyUmxTVzVrWlhoOVhTQnZaaUJuYkZSR0lHSjFkQ0IwYUdVZ2JtOWtaU0JrYjJWemJpZDBJR1Y0YVhOMFlDazdYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0JqYjI1emRDQnRaWE5vU1c1a1pYZ2dQU0J6WTJobGJXRk9iMlJsTG0xbGMyZzdYRzRnSUdsbUlDaHRaWE5vU1c1a1pYZ2dQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnTHk4Z1NHOTNJRzFoYm5rZ2NISnBiV2wwYVhabGN5QjBhR1VnYldWemFDQm9ZWE0vWEc0Z0lHTnZibk4wSUhOamFHVnRZVTFsYzJnZ1BTQnFjMjl1TG0xbGMyaGxjejh1VzIxbGMyaEpibVJsZUYwN1hHNGdJR2xtSUNoelkyaGxiV0ZOWlhOb0lEMDlJRzUxYkd3cElIdGNiaUFnSUNCamIyNXpiMnhsTG5kaGNtNG9ZR1Y0ZEhKaFkzUlFjbWx0YVhScGRtVnpTVzUwWlhKdVlXdzZJRUYwZEdWdGNIUWdkRzhnZFhObElHMWxjMmhsYzFza2UyMWxjMmhKYm1SbGVIMWRJRzltSUdkc1ZFWWdZblYwSUhSb1pTQnRaWE5vSUdSdlpYTnVKM1FnWlhocGMzUmdLVHRjYmlBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSEJ5YVcxcGRHbDJaVU52ZFc1MElEMGdjMk5vWlcxaFRXVnphQzV3Y21sdGFYUnBkbVZ6TG14bGJtZDBhRHRjYmx4dUlDQXZMeUJVY21GMlpYSnpaU0IwYUdVZ2JtOWtaU0JoYm1RZ2RHRnJaU0JtYVhKemRDQW9jSEpwYldsMGFYWmxRMjkxYm5RcElHMWxjMmhsYzF4dUlDQmpiMjV6ZENCd2NtbHRhWFJwZG1Wek9pQlVTRkpGUlM1TlpYTm9XMTBnUFNCYlhUdGNiaUFnYm05a1pTNTBjbUYyWlhKelpTZ29iMkpxWldOMEtTQTlQaUI3WEc0Z0lDQWdhV1lnS0hCeWFXMXBkR2wyWlhNdWJHVnVaM1JvSUR3Z2NISnBiV2wwYVhabFEyOTFiblFwSUh0Y2JpQWdJQ0FnSUdsbUlDZ29iMkpxWldOMElHRnpJR0Z1ZVNrdWFYTk5aWE5vS1NCN1hHNGdJQ0FnSUNBZ0lIQnlhVzFwZEdsMlpYTXVjSFZ6YUNodlltcGxZM1FnWVhNZ1ZFaFNSVVV1VFdWemFDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JseHVJQ0J5WlhSMWNtNGdjSEpwYldsMGFYWmxjenRjYm4xY2JseHVMeW9xWEc0Z0tpQkZlSFJ5WVdOMElIQnlhVzFwZEdsMlpYTWdLQ0JnVkVoU1JVVXVUV1Z6YUZ0ZFlDQXBJRzltSUdFZ2JtOWtaU0JtY205dElHRWdiRzloWkdWa0lFZE1WRVl1WEc0Z0tpQlVhR1VnYldGcGJpQndkWEp3YjNObElHOW1JSFJvYVhNZ1puVnVZM1JwYjI0Z2FYTWdkRzhnWkdsemRHbHVaM1ZwYzJnZ2NISnBiV2wwYVhabGN5QmhibVFnWTJocGJHUnlaVzRnWm5KdmJTQmhJRzV2WkdVZ2RHaGhkQ0JvWVhNZ1ltOTBhQ0J0WlhOb1pYTWdZVzVrSUdOb2FXeGtjbVZ1TGx4dUlDcGNiaUFxSUVsMElIVjBhV3hwZW1WeklIUm9aU0JpWldoaGRtbHZjaUIwYUdGMElFZE1WRVpNYjJGa1pYSWdZV1JrY3lCdFpYTm9JSEJ5YVcxcGRHbDJaWE1nZEc4Z2RHaGxJRzV2WkdVZ2IySnFaV04wSUNnZ1lGUklVa1ZGTGtkeWIzVndZQ0FwSUdacGNuTjBJSFJvWlc0Z1lXUmtjeUJwZEhNZ1kyaHBiR1J5Wlc0dVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUdkc2RHWWdRU0JIVEZSR0lHOWlhbVZqZENCMFlXdGxiaUJtY205dElFZE1WRVpNYjJGa1pYSmNiaUFxSUVCd1lYSmhiU0J1YjJSbFNXNWtaWGdnVkdobElHbHVaR1Y0SUc5bUlIUm9aU0J1YjJSbFhHNGdLaTljYm1WNGNHOXlkQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQm5iSFJtUlhoMGNtRmpkRkJ5YVcxcGRHbDJaWE5HY205dFRtOWtaU2huYkhSbU9pQkhURlJHTENCdWIyUmxTVzVrWlhnNklHNTFiV0psY2lrNklGQnliMjFwYzJVOFZFaFNSVVV1VFdWemFGdGRJSHdnYm5Wc2JENGdlMXh1SUNCamIyNXpkQ0J1YjJSbE9pQlVTRkpGUlM1UFltcGxZM1F6UkNBOUlHRjNZV2wwSUdkc2RHWXVjR0Z5YzJWeUxtZGxkRVJsY0dWdVpHVnVZM2tvSjI1dlpHVW5MQ0J1YjJSbFNXNWtaWGdwTzF4dUlDQnlaWFIxY200Z1pYaDBjbUZqZEZCeWFXMXBkR2wyWlhOSmJuUmxjbTVoYkNobmJIUm1MQ0J1YjJSbFNXNWtaWGdzSUc1dlpHVXBPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFVjRkSEpoWTNRZ2NISnBiV2wwYVhabGN5QW9JR0JVU0ZKRlJTNU5aWE5vVzExZ0lDa2diMllnYm05a1pYTWdabkp2YlNCaElHeHZZV1JsWkNCSFRGUkdMbHh1SUNvZ1UyVmxJSHRBYkdsdWF5Qm5iSFJtUlhoMGNtRmpkRkJ5YVcxcGRHbDJaWE5HY205dFRtOWtaWDBnWm05eUlHMXZjbVVnWkdWMFlXbHNjeTVjYmlBcVhHNGdLaUJKZENCeVpYUjFjbTV6SUdFZ2JXRndJR1p5YjIwZ2JtOWtaU0JwYm1SbGVDQjBieUJsZUhSeVlXTjBhVzl1SUhKbGMzVnNkQzVjYmlBcUlFbG1JR0VnYm05a1pTQmtiMlZ6SUc1dmRDQm9ZWFpsSUdFZ2JXVnphQ3dnZEdobElHVnVkSEo1SUdadmNpQjBhR1VnYm05a1pTQjNhV3hzSUc1dmRDQmlaU0J3ZFhRZ2FXNGdkR2hsSUhKbGRIVnlibWx1WnlCdFlYQXVYRzRnS2x4dUlDb2dRSEJoY21GdElHZHNkR1lnUVNCSFRGUkdJRzlpYW1WamRDQjBZV3RsYmlCbWNtOXRJRWRNVkVaTWIyRmtaWEpjYmlBcUwxeHVaWGh3YjNKMElHRnplVzVqSUdaMWJtTjBhVzl1SUdkc2RHWkZlSFJ5WVdOMFVISnBiV2wwYVhabGMwWnliMjFPYjJSbGN5aG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHhOWVhBOGJuVnRZbVZ5TENCVVNGSkZSUzVOWlhOb1cxMCtQaUI3WEc0Z0lHTnZibk4wSUc1dlpHVnpPaUJVU0ZKRlJTNVBZbXBsWTNRelJGdGRJRDBnWVhkaGFYUWdaMngwWmk1d1lYSnpaWEl1WjJWMFJHVndaVzVrWlc1amFXVnpLQ2R1YjJSbEp5azdYRzRnSUdOdmJuTjBJRzFoY0NBOUlHNWxkeUJOWVhBOGJuVnRZbVZ5TENCVVNGSkZSUzVOWlhOb1cxMCtLQ2s3WEc1Y2JpQWdibTlrWlhNdVptOXlSV0ZqYUNnb2JtOWtaU3dnYVc1a1pYZ3BJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmxlSFJ5WVdOMFVISnBiV2wwYVhabGMwbHVkR1Z5Ym1Gc0tHZHNkR1lzSUdsdVpHVjRMQ0J1YjJSbEtUdGNiaUFnSUNCcFppQW9jbVZ6ZFd4MElDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lHMWhjQzV6WlhRb2FXNWtaWGdzSUhKbGMzVnNkQ2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibHh1SUNCeVpYUjFjbTRnYldGd08xeHVmVnh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSHNnUjB4VVJsQmhjbk5sY2lCOUlHWnliMjBnSjNSb2NtVmxMMlY0WVcxd2JHVnpMMnB6YlM5c2IyRmtaWEp6TDBkTVZFWk1iMkZrWlhJdWFuTW5PMXh1WEc0dktpcGNiaUFxSUVkbGRDQmhJRzFoZEdWeWFXRnNJR1JsWm1sdWFYUnBiMjRnYVc1a1pYZ2diMllnWjJ4VVJpQm1jbTl0SUdGemMyOWphV0YwWldRZ2JXRjBaWEpwWVd3dVhHNGdLaUJKZENkeklHSmhjMmxqWVd4c2VTQmhJR052YldGMElHTnZaR1VnWW1WMGQyVmxiaUJVYUhKbFpTNXFjeUJ5TVRNeklHOXlJR0ZpYjNabElHRnVaQ0J3Y21WMmFXOTFjeUIyWlhKemFXOXVjeTVjYmlBcUlFQndZWEpoYlNCd1lYSnpaWElnUjB4VVJsQmhjbk5sY2x4dUlDb2dRSEJoY21GdElHMWhkR1Z5YVdGc0lFRWdiV0YwWlhKcFlXd2diMllnWjJ4MFpseHVJQ29nUUhKbGRIVnlibk1nVFdGMFpYSnBZV3dnWkdWbWFXNXBkR2x2YmlCcGJtUmxlQ0J2WmlCbmJGUkdYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCbmJIUm1SMlYwUVhOemIyTnBZWFJsWkUxaGRHVnlhV0ZzU1c1a1pYZ29jR0Z5YzJWeU9pQkhURlJHVUdGeWMyVnlMQ0J0WVhSbGNtbGhiRG9nVkVoU1JVVXVUV0YwWlhKcFlXd3BPaUJ1ZFcxaVpYSWdmQ0J1ZFd4c0lIdGNiaUFnWTI5dWMzUWdkR2h5WldWU1pYWnBjMmx2YmlBOUlIQmhjbk5sU1c1MEtGUklVa1ZGTGxKRlZrbFRTVTlPTENBeE1DazdYRzVjYmlBZ2JHVjBJR2x1WkdWNE9pQnVkVzFpWlhJZ2ZDQnVkV3hzSUQwZ2JuVnNiRHRjYmx4dUlDQnBaaUFvZEdoeVpXVlNaWFpwYzJsdmJpQStQU0F4TXpNcElIdGNiaUFnSUNCcGJtUmxlQ0E5SUhCaGNuTmxjaTVoYzNOdlkybGhkR2x2Ym5NdVoyVjBLRzFoZEdWeWFXRnNLVDh1YldGMFpYSnBZV3h6SUQ4L0lHNTFiR3c3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnTHk4Z1EwOU5VRUZVT2lCemRISjFZM1IxY21VZ2IyWWdZSEJoY25ObGNpNWhjM052WTJsaGRHbHZibk5nSUdoaGN5QmlaV1Z1SUdOb1lXNW5aV1FnUUNCeU1UTXpYRzRnSUNBZ0x5OGdVMlZsT2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmJYSmtiMjlpTDNSb2NtVmxMbXB6TDNCMWJHd3ZNakUzTXpkY2JpQWdJQ0F2THlCU1pXWTZJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzkwYUhKbFpTMTBlWEJsY3k5MGFISmxaUzEwY3kxMGVYQmxjeTlqYjIxdGFYUXZOVEkwTmpZM05tVTBOemxpTmpGaE9XWm1NbVJpTnpGa1pqUXhNVGxtTm1ZeE5EWXlOVGd3WkZ4dUlDQWdJSFI1Y0dVZ1IweFVSbEpsWm1WeVpXNWpaVkJ5WlRFek15QTlJSHRjYmlBZ0lDQWdJSFI1Y0dVNklDZHRZWFJsY21saGJITW5JSHdnSjI1dlpHVnpKeUI4SUNkMFpYaDBkWEpsY3ljZ2ZDQW5iV1Z6YUdWekp6dGNiaUFnSUNBZ0lHbHVaR1Y0T2lCdWRXMWlaWEk3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJSFI1Y0dVZ1IweFVSa0Z6YzI5amFXRjBhVzl1YzFCeVpURXpNeUE5SUUxaGNEeFVTRkpGUlM1UFltcGxZM1F6UkNCOElGUklVa1ZGTGsxaGRHVnlhV0ZzSUh3Z1ZFaFNSVVV1VkdWNGRIVnlaU3dnUjB4VVJsSmxabVZ5Wlc1alpWQnlaVEV6TXo0N1hHNWNiaUFnSUNCamIyNXpkQ0JoYzNOdlkybGhkR2x2Ym5NZ1BTQndZWEp6WlhJdVlYTnpiMk5wWVhScGIyNXpJR0Z6SUVkTVZFWkJjM052WTJsaGRHbHZibk5RY21VeE16TTdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpXWmxjbVZ1WTJVZ1BTQmhjM052WTJsaGRHbHZibk11WjJWMEtHMWhkR1Z5YVdGc0tUdGNibHh1SUNBZ0lHbG1JQ2h5WldabGNtVnVZMlUvTG5SNWNHVWdQVDA5SUNkdFlYUmxjbWxoYkhNbktTQjdYRzRnSUNBZ0lDQnBibVJsZUNBOUlISmxabVZ5Wlc1alpTNXBibVJsZUR0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnYVc1a1pYZzdYRzU5WEc0aUxDSXZLaUJsYzJ4cGJuUXRaR2x6WVdKc1pTQkFkSGx3WlhOamNtbHdkQzFsYzJ4cGJuUXZibUZ0YVc1bkxXTnZiblpsYm5ScGIyNGdLaTljYmx4dVpYaHdiM0owSUdOdmJuTjBJRlpTVFVWNGNISmxjM05wYjI1UWNtVnpaWFJPWVcxbElEMGdlMXh1SUNCQllUb2dKMkZoSnl4Y2JpQWdTV2c2SUNkcGFDY3NYRzRnSUU5MU9pQW5iM1VuTEZ4dUlDQkZaVG9nSjJWbEp5eGNiaUFnVDJnNklDZHZhQ2NzWEc0Z0lFSnNhVzVyT2lBbllteHBibXNuTEZ4dUlDQklZWEJ3ZVRvZ0oyaGhjSEI1Snl4Y2JpQWdRVzVuY25rNklDZGhibWR5ZVNjc1hHNGdJRk5oWkRvZ0ozTmhaQ2NzWEc0Z0lGSmxiR0Y0WldRNklDZHlaV3hoZUdWa0p5eGNiaUFnVEc5dmExVndPaUFuYkc5dmExVndKeXhjYmlBZ1UzVnljSEpwYzJWa09pQW5jM1Z5Y0hKcGMyVmtKeXhjYmlBZ1RHOXZhMFJ2ZDI0NklDZHNiMjlyUkc5M2JpY3NYRzRnSUV4dmIydE1aV1owT2lBbmJHOXZhMHhsWm5RbkxGeHVJQ0JNYjI5clVtbG5hSFE2SUNkc2IyOXJVbWxuYUhRbkxGeHVJQ0JDYkdsdWEweGxablE2SUNkaWJHbHVhMHhsWm5RbkxGeHVJQ0JDYkdsdWExSnBaMmgwT2lBbllteHBibXRTYVdkb2RDY3NYRzRnSUU1bGRYUnlZV3c2SUNkdVpYVjBjbUZzSnl4Y2JuMGdZWE1nWTI5dWMzUTdYRzVjYm1WNGNHOXlkQ0IwZVhCbElGWlNUVVY0Y0hKbGMzTnBiMjVRY21WelpYUk9ZVzFsSUQwZ2RIbHdaVzltSUZaU1RVVjRjSEpsYzNOcGIyNVFjbVZ6WlhST1lXMWxXMnRsZVc5bUlIUjVjR1Z2WmlCV1VrMUZlSEJ5WlhOemFXOXVVSEpsYzJWMFRtRnRaVjA3WEc0aUxDSXZLaXBjYmlBcUlFTnNZVzF3SUhSb1pTQnBibkIxZENCMllXeDFaU0IzYVhSb2FXNGdXekF1TUNBdElERXVNRjB1WEc0Z0tseHVJQ29nUUhCaGNtRnRJSFpoYkhWbElGUm9aU0JwYm5CMWRDQjJZV3gxWlZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMkYwZFhKaGRHVW9kbUZzZFdVNklHNTFiV0psY2lrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG0xaGVDaE5ZWFJvTG0xcGJpaDJZV3gxWlN3Z01TNHdLU3dnTUM0d0tUdGNibjFjYmlJc0ltbHRjRzl5ZENCN0lGWlNUVVY0Y0hKbGMzTnBiMjVRY21WelpYUk9ZVzFsSUgwZ1puSnZiU0FuTGk5V1VrMUZlSEJ5WlhOemFXOXVVSEpsYzJWMFRtRnRaU2M3WEc1cGJYQnZjblFnZXlCellYUjFjbUYwWlNCOUlHWnliMjBnSnk0dUwzVjBhV3h6TDNOaGRIVnlZWFJsSnp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVmxKTlJYaHdjbVZ6YzJsdmJpQjlJR1p5YjIwZ0p5NHZWbEpOUlhod2NtVnpjMmx2YmljN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCV1VrMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpQjdYRzRnSUM4cUtseHVJQ0FnS2lCQklITmxkQ0J2WmlCdVlXMWxJRzl5SUhCeVpYTmxkQ0J1WVcxbElHOW1JR1Y0Y0hKbGMzTnBiMjV6SUhSb1lYUWdkMmxzYkNCaVpTQnZkbVZ5Y21sa1pHVnVJR0o1SUh0QWJHbHVheUJXVWsxRmVIQnlaWE56YVc5dUxtOTJaWEp5YVdSbFFteHBibXQ5TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdKc2FXNXJSWGh3Y21WemMybHZiazVoYldWeklEMGdXeWRpYkdsdWF5Y3NJQ2RpYkdsdWEweGxablFuTENBbllteHBibXRTYVdkb2RDZGRPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJSE5sZENCdlppQnVZVzFsSUc5eUlIQnlaWE5sZENCdVlXMWxJRzltSUdWNGNISmxjM05wYjI1eklIUm9ZWFFnZDJsc2JDQmlaU0J2ZG1WeWNtbGtaR1Z1SUdKNUlIdEFiR2x1YXlCV1VrMUZlSEJ5WlhOemFXOXVMbTkyWlhKeWFXUmxURzl2YTBGMGZTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnNiMjlyUVhSRmVIQnlaWE56YVc5dVRtRnRaWE1nUFNCYkoyeHZiMnRNWldaMEp5d2dKMnh2YjJ0U2FXZG9kQ2NzSUNkc2IyOXJWWEFuTENBbmJHOXZhMFJ2ZDI0blhUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQnpaWFFnYjJZZ2JtRnRaU0J2Y2lCd2NtVnpaWFFnYm1GdFpTQnZaaUJsZUhCeVpYTnphVzl1Y3lCMGFHRjBJSGRwYkd3Z1ltVWdiM1psY25KcFpHUmxiaUJpZVNCN1FHeHBibXNnVmxKTlJYaHdjbVZ6YzJsdmJpNXZkbVZ5Y21sa1pVMXZkWFJvZlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCdGIzVjBhRVY0Y0hKbGMzTnBiMjVPWVcxbGN5QTlJRnNuWVdFbkxDQW5aV1VuTENBbmFXZ25MQ0FuYjJnbkxDQW5iM1VuWFR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCelpYUWdiMllnZTBCc2FXNXJJRlpTVFVWNGNISmxjM05wYjI1OUxseHVJQ0FnS2lCWGFHVnVJSGx2ZFNCM1lXNTBJSFJ2SUhKbFoybHpkR1Z5SUdWNGNISmxjM05wYjI1ekxDQjFjMlVnZTBCc2FXNXJJSEpsWjJsemRHVnlSWGh3Y21WemMybHZibjFjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJWNGNISmxjM05wYjI1ek9pQldVazFGZUhCeVpYTnphVzl1VzEwZ1BTQmJYVHRjYmlBZ2NIVmliR2xqSUdkbGRDQmxlSEJ5WlhOemFXOXVjeWdwT2lCV1VrMUZlSEJ5WlhOemFXOXVXMTBnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TGw5bGVIQnlaWE56YVc5dWN5NWpiMjVqWVhRb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCSUcxaGNDQm1jbTl0SUc1aGJXVWdkRzhnWlhod2NtVnpjMmx2Ymk1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1gyVjRjSEpsYzNOcGIyNU5ZWEE2SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUZaU1RVVjRjSEpsYzNOcGIyNGdmU0E5SUh0OU8xeHVJQ0J3ZFdKc2FXTWdaMlYwSUdWNGNISmxjM05wYjI1TllYQW9LVG9nZXlCYmJtRnRaVG9nYzNSeWFXNW5YVG9nVmxKTlJYaHdjbVZ6YzJsdmJpQjlJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2RHaHBjeTVmWlhod2NtVnpjMmx2YmsxaGNDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCdFlYQWdabkp2YlNCdVlXMWxJSFJ2SUdWNGNISmxjM05wYjI0c0lHSjFkQ0JsZUdOc2RXUnBibWNnWTNWemRHOXRJR1Y0Y0hKbGMzTnBiMjV6TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRDQndjbVZ6WlhSRmVIQnlaWE56YVc5dVRXRndLQ2s2SUhzZ1cyNWhiV1VnYVc0Z1ZsSk5SWGh3Y21WemMybHZibEJ5WlhObGRFNWhiV1ZkUHpvZ1ZsSk5SWGh3Y21WemMybHZiaUI5SUh0Y2JpQWdJQ0JqYjI1emRDQnlaWE4xYkhRNklIc2dXMjVoYldVZ2FXNGdWbEpOUlhod2NtVnpjMmx2YmxCeVpYTmxkRTVoYldWZFB6b2dWbEpOUlhod2NtVnpjMmx2YmlCOUlEMGdlMzA3WEc1Y2JpQWdJQ0JqYjI1emRDQndjbVZ6WlhST1lXMWxVMlYwSUQwZ2JtVjNJRk5sZER4emRISnBibWMrS0U5aWFtVmpkQzUyWVd4MVpYTW9WbEpOUlhod2NtVnpjMmx2YmxCeVpYTmxkRTVoYldVcEtUdGNibHh1SUNBZ0lFOWlhbVZqZEM1bGJuUnlhV1Z6S0hSb2FYTXVYMlY0Y0hKbGMzTnBiMjVOWVhBcExtWnZja1ZoWTJnb0tGdHVZVzFsTENCbGVIQnlaWE56YVc5dVhTa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tIQnlaWE5sZEU1aGJXVlRaWFF1YUdGektHNWhiV1VwS1NCN1hHNGdJQ0FnSUNBZ0lISmxjM1ZzZEZ0dVlXMWxJR0Z6SUZaU1RVVjRjSEpsYzNOcGIyNVFjbVZ6WlhST1lXMWxYU0E5SUdWNGNISmxjM05wYjI0N1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2JXRndJR1p5YjIwZ2JtRnRaU0IwYnlCbGVIQnlaWE56YVc5dUxDQmlkWFFnWlhoamJIVmthVzVuSUhCeVpYTmxkQ0JsZUhCeVpYTnphVzl1Y3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUWdZM1Z6ZEc5dFJYaHdjbVZ6YzJsdmJrMWhjQ2dwT2lCN0lGdHVZVzFsT2lCemRISnBibWRkT2lCV1VrMUZlSEJ5WlhOemFXOXVJSDBnZTF4dUlDQWdJR052Ym5OMElISmxjM1ZzZERvZ2V5QmJibUZ0WlRvZ2MzUnlhVzVuWFRvZ1ZsSk5SWGh3Y21WemMybHZiaUI5SUQwZ2UzMDdYRzVjYmlBZ0lDQmpiMjV6ZENCd2NtVnpaWFJPWVcxbFUyVjBJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLRTlpYW1WamRDNTJZV3gxWlhNb1ZsSk5SWGh3Y21WemMybHZibEJ5WlhObGRFNWhiV1VwS1R0Y2JseHVJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdVgyVjRjSEpsYzNOcGIyNU5ZWEFwTG1admNrVmhZMmdvS0Z0dVlXMWxMQ0JsZUhCeVpYTnphVzl1WFNrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0NGd2NtVnpaWFJPWVcxbFUyVjBMbWhoY3lodVlXMWxLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYTjFiSFJiYm1GdFpWMGdQU0JsZUhCeVpYTnphVzl1TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVWdZU0J1WlhjZ2UwQnNhVzVySUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeWZTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWdwSUh0Y2JpQWdJQ0F2THlCa2J5QnViM1JvYVc1blhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl3ZVNCMGFHVWdaMmwyWlc0Z2UwQnNhVzVySUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeWZTQnBiblJ2SUhSb2FYTWdiMjVsTGx4dUlDQWdLaUJBY0dGeVlXMGdjMjkxY21ObElGUm9aU0I3UUd4cGJtc2dWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWEo5SUhsdmRTQjNZVzUwSUhSdklHTnZjSGxjYmlBZ0lDb2dRSEpsZEhWeWJuTWdkR2hwYzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmNIa29jMjkxY21ObE9pQldVazFGZUhCeVpYTnphVzl1VFdGdVlXZGxjaWs2SUhSb2FYTWdlMXh1SUNBZ0lDOHZJR1pwY25OMElIVnVjbVZuYVhOMFpYSWdZV3hzSUhSb1pTQmxlSEJ5WlhOemFXOXVJR2wwSUdoaGMxeHVJQ0FnSUdOdmJuTjBJR1Y0Y0hKbGMzTnBiMjV6SUQwZ2RHaHBjeTVmWlhod2NtVnpjMmx2Ym5NdVkyOXVZMkYwS0NrN1hHNGdJQ0FnWlhod2NtVnpjMmx2Ym5NdVptOXlSV0ZqYUNnb1pYaHdjbVZ6YzJsdmJpa2dQVDRnZTF4dUlDQWdJQ0FnZEdocGN5NTFibkpsWjJsemRHVnlSWGh3Y21WemMybHZiaWhsZUhCeVpYTnphVzl1S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklIUm9aVzRnY21WbmFYTjBaWElnWVd4c0lIUm9aU0JsZUhCeVpYTnphVzl1SUc5bUlIUm9aU0J6YjNWeVkyVmNiaUFnSUNCemIzVnlZMlV1WDJWNGNISmxjM05wYjI1ekxtWnZja1ZoWTJnb0tHVjRjSEpsYzNOcGIyNHBJRDArSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjbVZuYVhOMFpYSkZlSEJ5WlhOemFXOXVLR1Y0Y0hKbGMzTnBiMjRwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnTHk4Z1kyOXdlU0J5WlcxaGFXNXBibWNnYldWdFltVnljMXh1SUNBZ0lIUm9hWE11WW14cGJtdEZlSEJ5WlhOemFXOXVUbUZ0WlhNZ1BTQnpiM1Z5WTJVdVlteHBibXRGZUhCeVpYTnphVzl1VG1GdFpYTXVZMjl1WTJGMEtDazdYRzRnSUNBZ2RHaHBjeTVzYjI5clFYUkZlSEJ5WlhOemFXOXVUbUZ0WlhNZ1BTQnpiM1Z5WTJVdWJHOXZhMEYwUlhod2NtVnpjMmx2Yms1aGJXVnpMbU52Ym1OaGRDZ3BPMXh1SUNBZ0lIUm9hWE11Ylc5MWRHaEZlSEJ5WlhOemFXOXVUbUZ0WlhNZ1BTQnpiM1Z5WTJVdWJXOTFkR2hGZUhCeVpYTnphVzl1VG1GdFpYTXVZMjl1WTJGMEtDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdFZ1kyeHZibVVnYjJZZ2RHaHBjeUI3UUd4cGJtc2dWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWEo5TGx4dUlDQWdLaUJBY21WMGRYSnVjeUJEYjNCcFpXUWdlMEJzYVc1cklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR05zYjI1bEtDazZJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5SUh0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzSUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeUtDa3VZMjl3ZVNoMGFHbHpLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnWVNCeVpXZHBjM1JsY21Wa0lHVjRjSEpsYzNOcGIyNHVYRzRnSUNBcUlFbG1JR2wwSUdOaGJtNXZkQ0JtYVc1a0lHRnVJR1Y0Y0hKbGMzTnBiMjRzSUdsMElIZHBiR3dnY21WMGRYSnVJR0J1ZFd4c1lDQnBibk4wWldGa0xseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdibUZ0WlNCT1lXMWxJRzl5SUhCeVpYTmxkQ0J1WVcxbElHOW1JSFJvWlNCbGVIQnlaWE56YVc5dVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1oyVjBSWGh3Y21WemMybHZiaWh1WVcxbE9pQldVazFGZUhCeVpYTnphVzl1VUhKbGMyVjBUbUZ0WlNCOElITjBjbWx1WnlrNklGWlNUVVY0Y0hKbGMzTnBiMjRnZkNCdWRXeHNJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmWlhod2NtVnpjMmx2YmsxaGNGdHVZVzFsWFNBL1B5QnVkV3hzTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxaMmx6ZEdWeUlHRnVJR1Y0Y0hKbGMzTnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCbGVIQnlaWE56YVc5dUlIdEFiR2x1YXlCV1VrMUZlSEJ5WlhOemFXOXVmU0IwYUdGMElHUmxjMk55YVdKbGN5QjBhR1VnWlhod2NtVnpjMmx2Ymx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbFoybHpkR1Z5Ulhod2NtVnpjMmx2YmlobGVIQnlaWE56YVc5dU9pQldVazFGZUhCeVpYTnphVzl1S1RvZ2RtOXBaQ0I3WEc0Z0lDQWdkR2hwY3k1ZlpYaHdjbVZ6YzJsdmJuTXVjSFZ6YUNobGVIQnlaWE56YVc5dUtUdGNiaUFnSUNCMGFHbHpMbDlsZUhCeVpYTnphVzl1VFdGd1cyVjRjSEpsYzNOcGIyNHVaWGh3Y21WemMybHZiazVoYldWZElEMGdaWGh3Y21WemMybHZianRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVmJuSmxaMmx6ZEdWeUlHRnVJR1Y0Y0hKbGMzTnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCbGVIQnlaWE56YVc5dUlGUm9aU0JsZUhCeVpYTnphVzl1SUhsdmRTQjNZVzUwSUhSdklIVnVjbVZuYVhOMFpYSmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QjFibkpsWjJsemRHVnlSWGh3Y21WemMybHZiaWhsZUhCeVpYTnphVzl1T2lCV1VrMUZlSEJ5WlhOemFXOXVLVG9nZG05cFpDQjdYRzRnSUNBZ1kyOXVjM1FnYVc1a1pYZ2dQU0IwYUdsekxsOWxlSEJ5WlhOemFXOXVjeTVwYm1SbGVFOW1LR1Y0Y0hKbGMzTnBiMjRwTzF4dUlDQWdJR2xtSUNocGJtUmxlQ0E5UFQwZ0xURXBJSHRjYmlBZ0lDQWdJR052Ym5OdmJHVXVkMkZ5YmlnblZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSTZJRlJvWlNCemNHVmphV1pwWldRZ1pYaHdjbVZ6YzJsdmJuTWdhWE1nYm05MElISmxaMmx6ZEdWeVpXUW5LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TGw5bGVIQnlaWE56YVc5dWN5NXpjR3hwWTJVb2FXNWtaWGdzSURFcE8xeHVJQ0FnSUdSbGJHVjBaU0IwYUdsekxsOWxlSEJ5WlhOemFXOXVUV0Z3VzJWNGNISmxjM05wYjI0dVpYaHdjbVZ6YzJsdmJrNWhiV1ZkTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFZGxkQ0IwYUdVZ1kzVnljbVZ1ZENCM1pXbG5hSFFnYjJZZ2RHaGxJSE53WldOcFptbGxaQ0JsZUhCeVpYTnphVzl1TGx4dUlDQWdLaUJKWmlCcGRDQmtiMlZ6YmlkMElHaGhkbVVnWVc0Z1pYaHdjbVZ6YzJsdmJpQnZaaUJuYVhabGJpQnVZVzFsTENCcGRDQjNhV3hzSUhKbGRIVnliaUJnYm5Wc2JHQWdhVzV6ZEdWaFpDNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJRzVoYldVZ1RtRnRaU0J2WmlCMGFHVWdaWGh3Y21WemMybHZibHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZEZaaGJIVmxLRzVoYldVNklGWlNUVVY0Y0hKbGMzTnBiMjVRY21WelpYUk9ZVzFsSUh3Z2MzUnlhVzVuS1RvZ2JuVnRZbVZ5SUh3Z2JuVnNiQ0I3WEc0Z0lDQWdZMjl1YzNRZ1pYaHdjbVZ6YzJsdmJpQTlJSFJvYVhNdVoyVjBSWGh3Y21WemMybHZiaWh1WVcxbEtUdGNiaUFnSUNCeVpYUjFjbTRnWlhod2NtVnpjMmx2Ymo4dWQyVnBaMmgwSUQ4L0lHNTFiR3c3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1UyVjBJR0VnZDJWcFoyaDBJSFJ2SUhSb1pTQnpjR1ZqYVdacFpXUWdaWGh3Y21WemMybHZiaTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUc1aGJXVWdUbUZ0WlNCdlppQjBhR1VnWlhod2NtVnpjMmx2Ymx4dUlDQWdLaUJBY0dGeVlXMGdkMlZwWjJoMElGZGxhV2RvZEZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhObGRGWmhiSFZsS0c1aGJXVTZJRlpTVFVWNGNISmxjM05wYjI1UWNtVnpaWFJPWVcxbElId2djM1J5YVc1bkxDQjNaV2xuYUhRNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR052Ym5OMElHVjRjSEpsYzNOcGIyNGdQU0IwYUdsekxtZGxkRVY0Y0hKbGMzTnBiMjRvYm1GdFpTazdYRzRnSUNBZ2FXWWdLR1Y0Y0hKbGMzTnBiMjRwSUh0Y2JpQWdJQ0FnSUdWNGNISmxjM05wYjI0dWQyVnBaMmgwSUQwZ2MyRjBkWEpoZEdVb2QyVnBaMmgwS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJR0VnZEhKaFkyc2dibUZ0WlNCdlppQnpjR1ZqYVdacFpXUWdaWGh3Y21WemMybHZiaTVjYmlBZ0lDb2dWR2hwY3lCMGNtRmpheUJ1WVcxbElHbHpJRzVsWldSbFpDQjBieUJ0WVc1cGNIVnNZWFJsSUdsMGN5QmxlSEJ5WlhOemFXOXVJSFpwWVNCclpYbG1jbUZ0WlNCaGJtbHRZWFJwYjI1ekxseHVJQ0FnS2x4dUlDQWdLaUJBWlhoaGJYQnNaU0JOWVc1cGNIVnNZWFJsSUdGdUlHVjRjSEpsYzNOcGIyNGdkWE5wYm1jZ2EyVjVabkpoYldVZ1lXNXBiV0YwYVc5dVhHNGdJQ0FxSUdCZ1lHcHpYRzRnSUNBcUlHTnZibk4wSUhSeVlXTnJUbUZ0WlNBOUlIWnliUzVsZUhCeVpYTnphVzl1VFdGdVlXZGxjaTVuWlhSRmVIQnlaWE56YVc5dVZISmhZMnRPWVcxbEtDQW5ZbXhwYm1zbklDazdYRzRnSUNBcUlHTnZibk4wSUhSeVlXTnJJRDBnYm1WM0lGUklVa1ZGTGs1MWJXSmxja3RsZVdaeVlXMWxWSEpoWTJzb1hHNGdJQ0FxSUNBZ2JtRnRaU3hjYmlBZ0lDb2dJQ0JiSURBdU1Dd2dNQzQxTENBeExqQWdYU3dnTHk4Z2RHbHRaWE5jYmlBZ0lDb2dJQ0JiSURBdU1Dd2dNUzR3TENBd0xqQWdYU0F2THlCMllXeDFaWE5jYmlBZ0lDb2dLVHRjYmlBZ0lDcGNiaUFnSUNvZ1kyOXVjM1FnWTJ4cGNDQTlJRzVsZHlCVVNGSkZSUzVCYm1sdFlYUnBiMjVEYkdsd0tGeHVJQ0FnS2lBZ0lDZGliR2x1YXljc0lDOHZJRzVoYldWY2JpQWdJQ29nSUNBeExqQXNJQzh2SUdSMWNtRjBhVzl1WEc0Z0lDQXFJQ0FnV3lCMGNtRmpheUJkSUM4dklIUnlZV05yYzF4dUlDQWdLaUFwTzF4dUlDQWdLbHh1SUNBZ0tpQmpiMjV6ZENCdGFYaGxjaUE5SUc1bGR5QlVTRkpGUlM1QmJtbHRZWFJwYjI1TmFYaGxjaWdnZG5KdExuTmpaVzVsSUNrN1hHNGdJQ0FxSUdOdmJuTjBJR0ZqZEdsdmJpQTlJRzFwZUdWeUxtTnNhWEJCWTNScGIyNG9JR05zYVhBZ0tUdGNiaUFnSUNvZ1lXTjBhVzl1TG5Cc1lYa29LVHRjYmlBZ0lDb2dZR0JnWEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCdVlXMWxJRTVoYldVZ2IyWWdkR2hsSUdWNGNISmxjM05wYjI1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUkZlSEJ5WlhOemFXOXVWSEpoWTJ0T1lXMWxLRzVoYldVNklGWlNUVVY0Y0hKbGMzTnBiMjVRY21WelpYUk9ZVzFsSUh3Z2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh3Z2JuVnNiQ0I3WEc0Z0lDQWdZMjl1YzNRZ1pYaHdjbVZ6YzJsdmJpQTlJSFJvYVhNdVoyVjBSWGh3Y21WemMybHZiaWh1WVcxbEtUdGNiaUFnSUNCeVpYUjFjbTRnWlhod2NtVnpjMmx2YmlBL0lHQWtlMlY0Y0hKbGMzTnBiMjR1Ym1GdFpYMHVkMlZwWjJoMFlDQTZJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWWEJrWVhSbElHVjJaWEo1SUdWNGNISmxjM05wYjI1ekxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklIVndaR0YwWlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0F2THlCelpXVWdhRzkzSUcxMVkyZ2dkMlVnYzJodmRXeGtJRzkyWlhKeWFXUmxJR05sY25SaGFXNGdaWGh3Y21WemMybHZibk5jYmlBZ0lDQmpiMjV6ZENCM1pXbG5hSFJOZFd4MGFYQnNhV1Z5Y3lBOUlIUm9hWE11WDJOaGJHTjFiR0YwWlZkbGFXZG9kRTExYkhScGNHeHBaWEp6S0NrN1hHNWNiaUFnSUNBdkx5QnlaWE5sZENCbGVIQnlaWE56YVc5dUlHSnBibVJ6SUdacGNuTjBYRzRnSUNBZ2RHaHBjeTVmWlhod2NtVnpjMmx2Ym5NdVptOXlSV0ZqYUNnb1pYaHdjbVZ6YzJsdmJpa2dQVDRnZTF4dUlDQWdJQ0FnWlhod2NtVnpjMmx2Ymk1amJHVmhja0Z3Y0d4cFpXUlhaV2xuYUhRb0tUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lDOHZJSFJvWlc0Z1lYQndiSGtnWW1sdVpITmNiaUFnSUNCMGFHbHpMbDlsZUhCeVpYTnphVzl1Y3k1bWIzSkZZV05vS0NobGVIQnlaWE56YVc5dUtTQTlQaUI3WEc0Z0lDQWdJQ0JzWlhRZ2JYVnNkR2x3YkdsbGNpQTlJREV1TUR0Y2JpQWdJQ0FnSUdOdmJuTjBJRzVoYldVZ1BTQmxlSEJ5WlhOemFXOXVMbVY0Y0hKbGMzTnBiMjVPWVcxbE8xeHVYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NWliR2x1YTBWNGNISmxjM05wYjI1T1lXMWxjeTVwYm1SbGVFOW1LRzVoYldVcElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQnRkV3gwYVhCc2FXVnlJQ285SUhkbGFXZG9kRTExYkhScGNHeHBaWEp6TG1Kc2FXNXJPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTVzYjI5clFYUkZlSEJ5WlhOemFXOXVUbUZ0WlhNdWFXNWtaWGhQWmlodVlXMWxLU0FoUFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnYlhWc2RHbHdiR2xsY2lBcVBTQjNaV2xuYUhSTmRXeDBhWEJzYVdWeWN5NXNiMjlyUVhRN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtMXZkWFJvUlhod2NtVnpjMmx2Yms1aGJXVnpMbWx1WkdWNFQyWW9ibUZ0WlNrZ0lUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lHMTFiSFJwY0d4cFpYSWdLajBnZDJWcFoyaDBUWFZzZEdsd2JHbGxjbk11Ylc5MWRHZzdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR1Y0Y0hKbGMzTnBiMjR1WVhCd2JIbFhaV2xuYUhRb2V5QnRkV3gwYVhCc2FXVnlJSDBwTzF4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTmhiR04xYkdGMFpTQnpkVzBnYjJZZ2IzWmxjbkpwWkdVZ1lXMXZkVzUwY3lCMGJ5QnpaV1VnYUc5M0lHMTFZMmdnZDJVZ2MyaHZkV3hrSUcxMWJIUnBjR3g1SUhkbGFXZG9kSE1nYjJZZ1kyVnlkR0ZwYmlCbGVIQnlaWE56YVc5dWN5NWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdYMk5oYkdOMWJHRjBaVmRsYVdkb2RFMTFiSFJwY0d4cFpYSnpLQ2s2SUh0Y2JpQWdJQ0JpYkdsdWF6b2diblZ0WW1WeU8xeHVJQ0FnSUd4dmIydEJkRG9nYm5WdFltVnlPMXh1SUNBZ0lHMXZkWFJvT2lCdWRXMWlaWEk3WEc0Z0lIMGdlMXh1SUNBZ0lHeGxkQ0JpYkdsdWF5QTlJREV1TUR0Y2JpQWdJQ0JzWlhRZ2JHOXZhMEYwSUQwZ01TNHdPMXh1SUNBZ0lHeGxkQ0J0YjNWMGFDQTlJREV1TUR0Y2JseHVJQ0FnSUhSb2FYTXVYMlY0Y0hKbGMzTnBiMjV6TG1admNrVmhZMmdvS0dWNGNISmxjM05wYjI0cElEMCtJSHRjYmlBZ0lDQWdJR0pzYVc1cklDMDlJR1Y0Y0hKbGMzTnBiMjR1YjNabGNuSnBaR1ZDYkdsdWEwRnRiM1Z1ZER0Y2JpQWdJQ0FnSUd4dmIydEJkQ0F0UFNCbGVIQnlaWE56YVc5dUxtOTJaWEp5YVdSbFRHOXZhMEYwUVcxdmRXNTBPMXh1SUNBZ0lDQWdiVzkxZEdnZ0xUMGdaWGh3Y21WemMybHZiaTV2ZG1WeWNtbGtaVTF2ZFhSb1FXMXZkVzUwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnWW14cGJtc2dQU0JOWVhSb0xtMWhlQ2d3TGpBc0lHSnNhVzVyS1R0Y2JpQWdJQ0JzYjI5clFYUWdQU0JOWVhSb0xtMWhlQ2d3TGpBc0lHeHZiMnRCZENrN1hHNGdJQ0FnYlc5MWRHZ2dQU0JOWVhSb0xtMWhlQ2d3TGpBc0lHMXZkWFJvS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUI3SUdKc2FXNXJMQ0JzYjI5clFYUXNJRzF2ZFhSb0lIMDdYRzRnSUgxY2JuMWNiaUlzSWk4cUlHVnpiR2x1ZEMxa2FYTmhZbXhsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dVlXMXBibWN0WTI5dWRtVnVkR2x2YmlBcUwxeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1ZsSk5SWGh3Y21WemMybHZiazFoZEdWeWFXRnNRMjlzYjNKVWVYQmxJRDBnZTF4dUlDQkRiMnh2Y2pvZ0oyTnZiRzl5Snl4Y2JpQWdSVzFwYzNOcGIyNURiMnh2Y2pvZ0oyVnRhWE56YVc5dVEyOXNiM0luTEZ4dUlDQlRhR0ZrWlVOdmJHOXlPaUFuYzJoaFpHVkRiMnh2Y2ljc1hHNGdJRTFoZEdOaGNFTnZiRzl5T2lBbmJXRjBZMkZ3UTI5c2IzSW5MRnh1SUNCU2FXMURiMnh2Y2pvZ0ozSnBiVU52Ykc5eUp5eGNiaUFnVDNWMGJHbHVaVU52Ykc5eU9pQW5iM1YwYkdsdVpVTnZiRzl5Snl4Y2JuMGdZWE1nWTI5dWMzUTdYRzVjYm1WNGNHOXlkQ0IwZVhCbElGWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVZIbHdaU0E5WEc0Z0lIUjVjR1Z2WmlCV1VrMUZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2xSNWNHVmJhMlY1YjJZZ2RIbHdaVzltSUZaU1RVVjRjSEpsYzNOcGIyNU5ZWFJsY21saGJFTnZiRzl5Vkhsd1pWMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQjJNRVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVRXRndPaUI3SUZ0clpYazZJSE4wY21sdVoxMDZJRlpTVFVWNGNISmxjM05wYjI1TllYUmxjbWxoYkVOdmJHOXlWSGx3WlNCOElIVnVaR1ZtYVc1bFpDQjlJRDBnZTF4dUlDQmZRMjlzYjNJNklGWlNUVVY0Y0hKbGMzTnBiMjVOWVhSbGNtbGhiRU52Ykc5eVZIbHdaUzVEYjJ4dmNpeGNiaUFnWDBWdGFYTnphVzl1UTI5c2IzSTZJRlpTVFVWNGNISmxjM05wYjI1TllYUmxjbWxoYkVOdmJHOXlWSGx3WlM1RmJXbHpjMmx2YmtOdmJHOXlMRnh1SUNCZlUyaGhaR1ZEYjJ4dmNqb2dWbEpOUlhod2NtVnpjMmx2YmsxaGRHVnlhV0ZzUTI5c2IzSlVlWEJsTGxOb1lXUmxRMjlzYjNJc1hHNGdJRjlTYVcxRGIyeHZjam9nVmxKTlJYaHdjbVZ6YzJsdmJrMWhkR1Z5YVdGc1EyOXNiM0pVZVhCbExsSnBiVU52Ykc5eUxGeHVJQ0JmVDNWMGJHbHVaVU52Ykc5eU9pQldVazFGZUhCeVpYTnphVzl1VFdGMFpYSnBZV3hEYjJ4dmNsUjVjR1V1VDNWMGJHbHVaVU52Ykc5eUxGeHVmVHRjYmlJc0ltbHRjRzl5ZENBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dWbEpOUlhod2NtVnpjMmx2YmtKcGJtUWdmU0JtY205dElDY3VMMVpTVFVWNGNISmxjM05wYjI1Q2FXNWtKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dWbEpOUlhod2NtVnpjMmx2YmsxaGRHVnlhV0ZzUTI5c2IzSlVlWEJsSUgwZ1puSnZiU0FuTGk5V1VrMUZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2xSNWNHVW5PMXh1WEc1amIyNXpkQ0JmWTI5c2IzSWdQU0J1WlhjZ1ZFaFNSVVV1UTI5c2IzSW9LVHRjYmx4dWFXNTBaWEptWVdObElFTnZiRzl5UW1sdVpGTjBZWFJsSUh0Y2JpQWdjSEp2Y0dWeWRIbE9ZVzFsT2lCemRISnBibWM3WEc0Z0lHbHVhWFJwWVd4V1lXeDFaVG9nVkVoU1JVVXVRMjlzYjNJN1hHNGdJR1JsYkhSaFZtRnNkV1U2SUZSSVVrVkZMa052Ykc5eU8xeHVmVnh1WEc1cGJuUmxjbVpoWTJVZ1FXeHdhR0ZDYVc1a1UzUmhkR1VnZTF4dUlDQndjbTl3WlhKMGVVNWhiV1U2SUhOMGNtbHVaenRjYmlBZ2FXNXBkR2xoYkZaaGJIVmxPaUJ1ZFcxaVpYSTdYRzRnSUdSbGJIUmhWbUZzZFdVNklHNTFiV0psY2p0Y2JuMWNibHh1YVc1MFpYSm1ZV05sSUVKcGJtUlRkR0YwWlNCN1hHNGdJR052Ykc5eU9pQkRiMnh2Y2tKcGJtUlRkR0YwWlNCOElHNTFiR3c3WEc0Z0lHRnNjR2hoT2lCQmJIQm9ZVUpwYm1SVGRHRjBaU0I4SUc1MWJHdzdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FTQmlhVzVrSUc5bUlHVjRjSEpsYzNOcGIyNGdhVzVtYkhWbGJtTmxjeUIwYnlCaElHMWhkR1Z5YVdGc0lHTnZiRzl5TGx4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5SWGh3Y21WemMybHZiazFoZEdWeWFXRnNRMjlzYjNKQ2FXNWtJR2x0Y0d4bGJXVnVkSE1nVmxKTlJYaHdjbVZ6YzJsdmJrSnBibVFnZTF4dUlDQXZLaXBjYmlBZ0lDb2dUV0Z3Y0dsdVp5QnZaaUJ3Y205d1pYSjBlU0J1WVcxbGN5Qm1jbTl0SUZaU1RVTXZiV0YwWlhKcFlXeERiMnh2Y2tKcGJtUnpMblI1Y0dVZ2RHOGdkR2h5WldVdWFuTXZUV0YwWlhKcFlXd3VYRzRnSUNBcUlGUm9aU0JtYVhKemRDQmxiR1Z0Wlc1MElITjBZVzVrY3lCbWIzSWdZMjlzYjNJZ1kyaGhibTVsYkhNc0lIUm9aU0J6WldOdmJtUWdaV3hsYldWdWRDQnpkR0Z1WkhNZ1ptOXlJSFJvWlNCaGJIQm9ZU0JqYUdGdWJtVnNMbHh1SUNBZ0tpQlVhR1VnYzJWamIyNWtJR1ZzWlcxbGJuUWdZMkZ1SUdKbElHNTFiR3dnYVdZZ2RHaGxJSFJoY21kbGRDQndjbTl3WlhKMGVTQmtiMlZ6YmlkMElHVjRhWE4wTGx4dUlDQWdLaTljYmlBZ0x5OGdWRTlFVHpvZ1YyVWdiV2xuYUhRZ2QyRnVkQ0IwYnlCMWMyVWdkR2hsSUdCellYUnBjMlpwWlhOZ0lHOXdaWEpoZEc5eUlHOXVZMlVnZDJVZ1luVnRjQ0JVVXlCMGJ5QTBMamtnYjNJZ2FHbG5hR1Z5WEc0Z0lDOHZJRk5sWlRvZ2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwzQnBlR2wyTDNSb2NtVmxMWFp5YlM5d2RXeHNMekV6TWpNalpHbHpZM1Z6YzJsdmJsOXlNVE0zTkRBeU1EQXpOVnh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJmY0hKdmNHVnlkSGxPWVcxbFRXRndUV0Z3T2lCN1hHNGdJQ0FnVzJScGMzUnBibWQxYVhOb1pYSTZJSE4wY21sdVoxMDZJSHNnVzNSNWNHVWdhVzRnVmxKTlJYaHdjbVZ6YzJsdmJrMWhkR1Z5YVdGc1EyOXNiM0pVZVhCbFhUODZJSEpsWVdSdmJteDVJRnR6ZEhKcGJtY3NJSE4wY21sdVp5QjhJRzUxYkd4ZElIMDdYRzRnSUgwZ1BTQjdYRzRnSUNBZ2FYTk5aWE5vVTNSaGJtUmhjbVJOWVhSbGNtbGhiRG9nZTF4dUlDQWdJQ0FnWTI5c2IzSTZJRnNuWTI5c2IzSW5MQ0FuYjNCaFkybDBlU2RkTEZ4dUlDQWdJQ0FnWlcxcGMzTnBiMjVEYjJ4dmNqb2dXeWRsYldsemMybDJaU2NzSUc1MWJHeGRMRnh1SUNBZ0lIMHNYRzRnSUNBZ2FYTk5aWE5vUW1GemFXTk5ZWFJsY21saGJEb2dlMXh1SUNBZ0lDQWdZMjlzYjNJNklGc25ZMjlzYjNJbkxDQW5iM0JoWTJsMGVTZGRMRnh1SUNBZ0lIMHNYRzRnSUNBZ2FYTk5WRzl2YmsxaGRHVnlhV0ZzT2lCN1hHNGdJQ0FnSUNCamIyeHZjam9nV3lkamIyeHZjaWNzSUNkdmNHRmphWFI1SjEwc1hHNGdJQ0FnSUNCbGJXbHpjMmx2YmtOdmJHOXlPaUJiSjJWdGFYTnphWFpsSnl3Z2JuVnNiRjBzWEc0Z0lDQWdJQ0J2ZFhSc2FXNWxRMjlzYjNJNklGc25iM1YwYkdsdVpVTnZiRzl5Um1GamRHOXlKeXdnYm5Wc2JGMHNYRzRnSUNBZ0lDQnRZWFJqWVhCRGIyeHZjam9nV3lkdFlYUmpZWEJHWVdOMGIzSW5MQ0J1ZFd4c1hTeGNiaUFnSUNBZ0lISnBiVU52Ykc5eU9pQmJKM0JoY21GdFpYUnlhV05TYVcxRGIyeHZja1poWTNSdmNpY3NJRzUxYkd4ZExGeHVJQ0FnSUNBZ2MyaGhaR1ZEYjJ4dmNqb2dXeWR6YUdGa1pVTnZiRzl5Um1GamRHOXlKeXdnYm5Wc2JGMHNYRzRnSUNBZ2ZTeGNiaUFnZlR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElIUmhjbWRsZENCdFlYUmxjbWxoYkM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCdFlYUmxjbWxoYkRvZ1ZFaFNSVVV1VFdGMFpYSnBZV3c3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCMGVYQmxJRzltSUhSb1pTQjBZWEpuWlhRZ2NISnZjR1Z5ZEhrZ2IyWWdkR2hsSUcxaGRHVnlhV0ZzTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUhSNWNHVTZJRlpTVFVWNGNISmxjM05wYjI1TllYUmxjbWxoYkVOdmJHOXlWSGx3WlR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElIUmhjbWRsZENCamIyeHZjaTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0IwWVhKblpYUldZV3gxWlRvZ1ZFaFNSVVV1UTI5c2IzSTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0IwWVhKblpYUWdZV3h3YUdFdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtVmhaRzl1YkhrZ2RHRnlaMlYwUVd4d2FHRTZJRzUxYldKbGNqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1NYUnpJR0pwYm1ScGJtY2djM1JoZEdVdVhHNGdJQ0FxSUVsbUlHbDBJR05oYm01dmRDQm1hVzVrSUhSb1pTQjBZWEpuWlhRZ2NISnZjR1Z5ZEhrZ2FXNGdkR2hsSUdOdmJuTjBjblZqZEc5eUxDQmxZV05vSUhCeWIzQmxjblI1SUhkcGJHd2dZbVVnYm5Wc2JDQnBibk4wWldGa0xseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmZjM1JoZEdVNklFSnBibVJUZEdGMFpUdGNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2UxeHVJQ0FnSUcxaGRHVnlhV0ZzTEZ4dUlDQWdJSFI1Y0dVc1hHNGdJQ0FnZEdGeVoyVjBWbUZzZFdVc1hHNGdJQ0FnZEdGeVoyVjBRV3h3YUdFc1hHNGdJSDA2SUh0Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVWFHVWdkR0Z5WjJWMElHMWhkR1Z5YVdGc0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUcxaGRHVnlhV0ZzT2lCVVNGSkZSUzVOWVhSbGNtbGhiRHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZSb1pTQjBlWEJsSUc5bUlIUm9aU0IwWVhKblpYUWdjSEp2Y0dWeWRIa2diMllnZEdobElHMWhkR1Z5YVdGc0xseHVJQ0FnSUNBcUwxeHVJQ0FnSUhSNWNHVTZJRlpTVFVWNGNISmxjM05wYjI1TllYUmxjbWxoYkVOdmJHOXlWSGx3WlR0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0IwWVhKblpYUWdZMjlzYjNJdVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdGeVoyVjBWbUZzZFdVNklGUklVa1ZGTGtOdmJHOXlPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElIUmhjbWRsZENCaGJIQm9ZUzVjYmlBZ0lDQWdLaTljYmlBZ0lDQjBZWEpuWlhSQmJIQm9ZVDg2SUc1MWJXSmxjanRjYmlBZ2ZTa2dlMXh1SUNBZ0lIUm9hWE11YldGMFpYSnBZV3dnUFNCdFlYUmxjbWxoYkR0Y2JpQWdJQ0IwYUdsekxuUjVjR1VnUFNCMGVYQmxPMXh1SUNBZ0lIUm9hWE11ZEdGeVoyVjBWbUZzZFdVZ1BTQjBZWEpuWlhSV1lXeDFaVHRjYmlBZ0lDQjBhR2x6TG5SaGNtZGxkRUZzY0doaElEMGdkR0Z5WjJWMFFXeHdhR0VnUHo4Z01TNHdPMXh1WEc0Z0lDQWdMeThnYVc1cGRDQmlhVzVrSUhOMFlYUmxYRzRnSUNBZ1kyOXVjM1FnWTI5c2IzSWdQU0IwYUdsekxsOXBibWwwUTI5c2IzSkNhVzVrVTNSaGRHVW9LVHRjYmlBZ0lDQmpiMjV6ZENCaGJIQm9ZU0E5SUhSb2FYTXVYMmx1YVhSQmJIQm9ZVUpwYm1SVGRHRjBaU2dwTzF4dUlDQWdJSFJvYVhNdVgzTjBZWFJsSUQwZ2V5QmpiMnh2Y2l3Z1lXeHdhR0VnZlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCaGNIQnNlVmRsYVdkb2RDaDNaV2xuYUhRNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR052Ym5OMElIc2dZMjlzYjNJc0lHRnNjR2hoSUgwZ1BTQjBhR2x6TGw5emRHRjBaVHRjYmx4dUlDQWdJR2xtSUNoamIyeHZjaUFoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjdJSEJ5YjNCbGNuUjVUbUZ0WlN3Z1pHVnNkR0ZXWVd4MVpTQjlJRDBnWTI5c2IzSTdYRzVjYmlBZ0lDQWdJR052Ym5OMElIUmhjbWRsZENBOUlDaDBhR2x6TG0xaGRHVnlhV0ZzSUdGeklHRnVlU2xiY0hKdmNHVnlkSGxPWVcxbFhTQmhjeUJVU0ZKRlJTNURiMnh2Y2p0Y2JpQWdJQ0FnSUdsbUlDaDBZWEpuWlhRZ0lUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0FnSUhSaGNtZGxkQzVoWkdRb1gyTnZiRzl5TG1OdmNIa29aR1ZzZEdGV1lXeDFaU2t1YlhWc2RHbHdiSGxUWTJGc1lYSW9kMlZwWjJoMEtTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLR0ZzY0doaElDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lHTnZibk4wSUhzZ2NISnZjR1Z5ZEhsT1lXMWxMQ0JrWld4MFlWWmhiSFZsSUgwZ1BTQmhiSEJvWVR0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnZEdGeVoyVjBJRDBnS0hSb2FYTXViV0YwWlhKcFlXd2dZWE1nWVc1NUtWdHdjbTl3WlhKMGVVNWhiV1ZkSUdGeklHNTFiV0psY2p0Y2JpQWdJQ0FnSUdsbUlDaDBZWEpuWlhRZ0lUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0FnSUNnb2RHaHBjeTV0WVhSbGNtbGhiQ0JoY3lCaGJua3BXM0J5YjNCbGNuUjVUbUZ0WlYwZ1lYTWdiblZ0WW1WeUtTQXJQU0JrWld4MFlWWmhiSFZsSUNvZ2QyVnBaMmgwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJqYkdWaGNrRndjR3hwWldSWFpXbG5hSFFvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpiMnh2Y2l3Z1lXeHdhR0VnZlNBOUlIUm9hWE11WDNOMFlYUmxPMXh1WEc0Z0lDQWdhV1lnS0dOdmJHOXlJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIc2djSEp2Y0dWeWRIbE9ZVzFsTENCcGJtbDBhV0ZzVm1Gc2RXVWdmU0E5SUdOdmJHOXlPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQjBZWEpuWlhRZ1BTQW9kR2hwY3k1dFlYUmxjbWxoYkNCaGN5QmhibmtwVzNCeWIzQmxjblI1VG1GdFpWMGdZWE1nVkVoU1JVVXVRMjlzYjNJN1hHNGdJQ0FnSUNCcFppQW9kR0Z5WjJWMElDRTlJSFZ1WkdWbWFXNWxaQ2tnZTF4dUlDQWdJQ0FnSUNCMFlYSm5aWFF1WTI5d2VTaHBibWwwYVdGc1ZtRnNkV1VwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoaGJIQm9ZU0FoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjdJSEJ5YjNCbGNuUjVUbUZ0WlN3Z2FXNXBkR2xoYkZaaGJIVmxJSDBnUFNCaGJIQm9ZVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdkR0Z5WjJWMElEMGdLSFJvYVhNdWJXRjBaWEpwWVd3Z1lYTWdZVzU1S1Z0d2NtOXdaWEowZVU1aGJXVmRJR0Z6SUc1MWJXSmxjanRjYmlBZ0lDQWdJR2xtSUNoMFlYSm5aWFFnSVQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQWdJQ2dvZEdocGN5NXRZWFJsY21saGJDQmhjeUJoYm5rcFczQnliM0JsY25SNVRtRnRaVjBnWVhNZ2JuVnRZbVZ5S1NBOUlHbHVhWFJwWVd4V1lXeDFaVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRjlwYm1sMFEyOXNiM0pDYVc1a1UzUmhkR1VvS1RvZ1EyOXNiM0pDYVc1a1UzUmhkR1VnZkNCdWRXeHNJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHMWhkR1Z5YVdGc0xDQjBlWEJsTENCMFlYSm5aWFJXWVd4MVpTQjlJRDBnZEdocGN6dGNibHh1SUNBZ0lHTnZibk4wSUhCeWIzQmxjblI1VG1GdFpVMWhjQ0E5SUhSb2FYTXVYMmRsZEZCeWIzQmxjblI1VG1GdFpVMWhjQ2dwTzF4dUlDQWdJR052Ym5OMElIQnliM0JsY25SNVRtRnRaU0E5SUhCeWIzQmxjblI1VG1GdFpVMWhjRDh1VzNSNWNHVmRQeTViTUYwZ1B6OGdiblZzYkR0Y2JseHVJQ0FnSUdsbUlDaHdjbTl3WlhKMGVVNWhiV1VnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtGeHVJQ0FnSUNBZ0lDQmdWSEpwWldRZ2RHOGdZV1JrSUdFZ2JXRjBaWEpwWVd3Z1kyOXNiM0lnWW1sdVpDQjBieUIwYUdVZ2JXRjBaWEpwWVd3Z0pIdGNiaUFnSUNBZ0lDQWdJQ0J0WVhSbGNtbGhiQzV1WVcxbElEOC9JQ2NvYm04Z2JtRnRaU2tuWEc0Z0lDQWdJQ0FnSUgwc0lIUm9aU0IwZVhCbElDUjdkSGx3WlgwZ1luVjBJSFJvWlNCdFlYUmxjbWxoYkNCdmNpQjBhR1VnZEhsd1pTQnBjeUJ1YjNRZ2MzVndjRzl5ZEdWa0xtQXNYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQjBZWEpuWlhRZ1BTQW9iV0YwWlhKcFlXd2dZWE1nWVc1NUtWdHdjbTl3WlhKMGVVNWhiV1ZkSUdGeklGUklVa1ZGTGtOdmJHOXlPMXh1WEc0Z0lDQWdZMjl1YzNRZ2FXNXBkR2xoYkZaaGJIVmxJRDBnZEdGeVoyVjBMbU5zYjI1bEtDazdYRzVjYmlBZ0lDQXZMeURvc3FEamdhN2xnS1RqZ3BMa3Y1M21qSUhqZ1puamdvdmpnWi9qZ29IamdhdERiMnh2Y2k1emRXTGpncExrdmIvamdvL2pnWnJqZ2F2bHQ2N2xpSWJqZ3BMb3FJam5ycGZqZ1puamdvdGNiaUFnSUNCamIyNXpkQ0JrWld4MFlWWmhiSFZsSUQwZ2JtVjNJRlJJVWtWRkxrTnZiRzl5S0Z4dUlDQWdJQ0FnZEdGeVoyVjBWbUZzZFdVdWNpQXRJR2x1YVhScFlXeFdZV3gxWlM1eUxGeHVJQ0FnSUNBZ2RHRnlaMlYwVm1Gc2RXVXVaeUF0SUdsdWFYUnBZV3hXWVd4MVpTNW5MRnh1SUNBZ0lDQWdkR0Z5WjJWMFZtRnNkV1V1WWlBdElHbHVhWFJwWVd4V1lXeDFaUzVpTEZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdleUJ3Y205d1pYSjBlVTVoYldVc0lHbHVhWFJwWVd4V1lXeDFaU3dnWkdWc2RHRldZV3gxWlNCOU8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmZhVzVwZEVGc2NHaGhRbWx1WkZOMFlYUmxLQ2s2SUVGc2NHaGhRbWx1WkZOMFlYUmxJSHdnYm5Wc2JDQjdYRzRnSUNBZ1kyOXVjM1FnZXlCdFlYUmxjbWxoYkN3Z2RIbHdaU3dnZEdGeVoyVjBRV3h3YUdFZ2ZTQTlJSFJvYVhNN1hHNWNiaUFnSUNCamIyNXpkQ0J3Y205d1pYSjBlVTVoYldWTllYQWdQU0IwYUdsekxsOW5aWFJRY205d1pYSjBlVTVoYldWTllYQW9LVHRjYmlBZ0lDQmpiMjV6ZENCd2NtOXdaWEowZVU1aGJXVWdQU0J3Y205d1pYSjBlVTVoYldWTllYQS9MbHQwZVhCbFhUOHVXekZkSUQ4L0lHNTFiR3c3WEc1Y2JpQWdJQ0JwWmlBb2NISnZjR1Z5ZEhsT1lXMWxJRDA5SUc1MWJHd2dKaVlnZEdGeVoyVjBRV3h3YUdFZ0lUMDlJREV1TUNrZ2UxeHVJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0JnVkhKcFpXUWdkRzhnWVdSa0lHRWdiV0YwWlhKcFlXd2dZV3h3YUdFZ1ltbHVaQ0IwYnlCMGFHVWdiV0YwWlhKcFlXd2dKSHRjYmlBZ0lDQWdJQ0FnSUNCdFlYUmxjbWxoYkM1dVlXMWxJRDgvSUNjb2JtOGdibUZ0WlNrblhHNGdJQ0FnSUNBZ0lIMHNJSFJvWlNCMGVYQmxJQ1I3ZEhsd1pYMGdZblYwSUhSb1pTQnRZWFJsY21saGJDQnZjaUIwYUdVZ2RIbHdaU0JrYjJWeklHNXZkQ0J6ZFhCd2IzSjBJR0ZzY0doaExtQXNYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2NISnZjR1Z5ZEhsT1lXMWxJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHbHVhWFJwWVd4V1lXeDFaU0E5SUNodFlYUmxjbWxoYkNCaGN5QmhibmtwVzNCeWIzQmxjblI1VG1GdFpWMGdZWE1nYm5WdFltVnlPMXh1WEc0Z0lDQWdZMjl1YzNRZ1pHVnNkR0ZXWVd4MVpTQTlJSFJoY21kbGRFRnNjR2hoSUMwZ2FXNXBkR2xoYkZaaGJIVmxPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIc2djSEp2Y0dWeWRIbE9ZVzFsTENCcGJtbDBhV0ZzVm1Gc2RXVXNJR1JsYkhSaFZtRnNkV1VnZlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gyZGxkRkJ5YjNCbGNuUjVUbUZ0WlUxaGNDZ3BPbHh1SUNBZ0lId2dleUJiZEhsd1pTQnBiaUJXVWsxRmVIQnlaWE56YVc5dVRXRjBaWEpwWVd4RGIyeHZjbFI1Y0dWZFB6b2djbVZoWkc5dWJIa2dXM04wY21sdVp5d2djM1J5YVc1bklId2diblZzYkYwZ2ZWeHVJQ0FnSUh3Z2JuVnNiQ0I3WEc0Z0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lFOWlhbVZqZEM1bGJuUnlhV1Z6S0ZaU1RVVjRjSEpsYzNOcGIyNU5ZWFJsY21saGJFTnZiRzl5UW1sdVpDNWZjSEp2Y0dWeWRIbE9ZVzFsVFdGd1RXRndLUzVtYVc1a0tDaGJaR2x6ZEdsdVozVnBjMmhsY2wwcElEMCtJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2gwYUdsekxtMWhkR1Z5YVdGc0lHRnpJR0Z1ZVNsYlpHbHpkR2x1WjNWcGMyaGxjbDBnUFQwOUlIUnlkV1U3WEc0Z0lDQWdJQ0I5S1Q4dVd6RmRJRDgvSUc1MWJHeGNiaUFnSUNBcE8xeHVJQ0I5WEc1OVhHNGlMQ0pwYlhCdmNuUWdkSGx3WlNBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dWbEpOUlhod2NtVnpjMmx2YmtKcGJtUWdmU0JtY205dElDY3VMMVpTVFVWNGNISmxjM05wYjI1Q2FXNWtKenRjYmx4dUx5b3FYRzRnS2lCQklHSnBibVFnYjJZZ2UwQnNhVzVySUZaU1RVVjRjSEpsYzNOcGIyNTlJR2x1Wm14MVpXNWpaWE1nZEc4Z2JXOXljR2dnZEdGeVoyVjBjeTVjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZaU1RVVjRjSEpsYzNOcGIyNU5iM0p3YUZSaGNtZGxkRUpwYm1RZ2FXMXdiR1Z0Wlc1MGN5QldVazFGZUhCeVpYTnphVzl1UW1sdVpDQjdYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdiV1Z6YUNCd2NtbHRhWFJwZG1WeklIUm9ZWFFnWVhSMFlXTm9aV1FnZEc4Z2RHRnlaMlYwSUcxbGMyZ3VYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbVZoWkc5dWJIa2djSEpwYldsMGFYWmxjem9nVkVoU1JVVXVUV1Z6YUZ0ZE8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdhVzVrWlhnZ2IyWWdkR2hsSUcxdmNuQm9JSFJoY21kbGRDQnBiaUIwYUdVZ2JXVnphQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0JwYm1SbGVEb2diblZ0WW1WeU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdkMlZwWjJoMElIWmhiSFZsSUc5bUlIUmhjbWRsZENCdGIzSndhQ0IwWVhKblpYUXVJRkpoYm1kcGJtY2dhVzRnV3pBdU1DQXRJREV1TUYwdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtVmhaRzl1YkhrZ2QyVnBaMmgwT2lCdWRXMWlaWEk3WEc1Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSHRjYmlBZ0lDQndjbWx0YVhScGRtVnpMRnh1SUNBZ0lHbHVaR1Y0TEZ4dUlDQWdJSGRsYVdkb2RDeGNiaUFnZlRvZ2UxeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGUm9aU0J0WlhOb0lIQnlhVzFwZEdsMlpYTWdkR2hoZENCaGRIUmhZMmhsWkNCMGJ5QjBZWEpuWlhRZ2JXVnphQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQndjbWx0YVhScGRtVnpPaUJVU0ZKRlJTNU5aWE5vVzEwN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlVhR1VnYVc1a1pYZ2diMllnZEdobElHMXZjbkJvSUhSaGNtZGxkQ0JwYmlCMGFHVWdiV1Z6YUM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JwYm1SbGVEb2diblZ0WW1WeU8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUhkbGFXZG9kQ0IyWVd4MVpTQnZaaUIwWVhKblpYUWdiVzl5Y0dnZ2RHRnlaMlYwTGlCU1lXNW5hVzVuSUdsdUlGc3dMakFnTFNBeExqQmRMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lIZGxhV2RvZERvZ2JuVnRZbVZ5TzF4dUlDQjlLU0I3WEc0Z0lDQWdkR2hwY3k1d2NtbHRhWFJwZG1WeklEMGdjSEpwYldsMGFYWmxjenRjYmlBZ0lDQjBhR2x6TG1sdVpHVjRJRDBnYVc1a1pYZzdYRzRnSUNBZ2RHaHBjeTUzWldsbmFIUWdQU0IzWldsbmFIUTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdZWEJ3YkhsWFpXbG5hSFFvZDJWcFoyaDBPaUJ1ZFcxaVpYSXBPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbkJ5YVcxcGRHbDJaWE11Wm05eVJXRmphQ2dvYldWemFDa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tHMWxjMmd1Ylc5eWNHaFVZWEpuWlhSSmJtWnNkV1Z1WTJWelB5NWJkR2hwY3k1cGJtUmxlRjBnSVQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNCdFpYTm9MbTF2Y25Cb1ZHRnlaMlYwU1c1bWJIVmxibU5sYzF0MGFHbHpMbWx1WkdWNFhTQXJQU0IwYUdsekxuZGxhV2RvZENBcUlIZGxhV2RvZER0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamJHVmhja0Z3Y0d4cFpXUlhaV2xuYUhRb0tUb2dkbTlwWkNCN1hHNGdJQ0FnZEdocGN5NXdjbWx0YVhScGRtVnpMbVp2Y2tWaFkyZ29LRzFsYzJncElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNodFpYTm9MbTF2Y25Cb1ZHRnlaMlYwU1c1bWJIVmxibU5sY3o4dVczUm9hWE11YVc1a1pYaGRJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnYldWemFDNXRiM0p3YUZSaGNtZGxkRWx1Wm14MVpXNWpaWE5iZEdocGN5NXBibVJsZUYwZ1BTQXdMakE3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjFjYmlJc0ltbHRjRzl5ZENBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dWbEpOUlhod2NtVnpjMmx2YmtKcGJtUWdmU0JtY205dElDY3VMMVpTVFVWNGNISmxjM05wYjI1Q2FXNWtKenRjYmx4dVkyOXVjM1FnWDNZeUlEMGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqSW9LVHRjYmx4dUx5b3FYRzRnS2lCQklHSnBibVFnYjJZZ1pYaHdjbVZ6YzJsdmJpQnBibVpzZFdWdVkyVnpJSFJ2SUhSbGVIUjFjbVVnZEhKaGJuTm1iM0p0Y3k1Y2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWlNUVVY0Y0hKbGMzTnBiMjVVWlhoMGRYSmxWSEpoYm5ObWIzSnRRbWx1WkNCcGJYQnNaVzFsYm5SeklGWlNUVVY0Y0hKbGMzTnBiMjVDYVc1a0lIdGNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdYM0J5YjNCbGNuUjVUbUZ0WlhOTllYQTZJSHNnVzJScGMzUnBibWQxYVhOb1pYSTZJSE4wY21sdVoxMDZJSE4wY21sdVoxdGRJSDBnUFNCN1hHNGdJQ0FnYVhOTlpYTm9VM1JoYm1SaGNtUk5ZWFJsY21saGJEb2dXMXh1SUNBZ0lDQWdKMjFoY0Njc1hHNGdJQ0FnSUNBblpXMXBjM05wZG1WTllYQW5MRnh1SUNBZ0lDQWdKMkoxYlhCTllYQW5MRnh1SUNBZ0lDQWdKMjV2Y20xaGJFMWhjQ2NzWEc0Z0lDQWdJQ0FuWkdsemNHeGhZMlZ0Wlc1MFRXRndKeXhjYmlBZ0lDQWdJQ2R5YjNWbmFHNWxjM05OWVhBbkxGeHVJQ0FnSUNBZ0oyMWxkR0ZzYm1WemMwMWhjQ2NzWEc0Z0lDQWdJQ0FuWVd4d2FHRk5ZWEFuTEZ4dUlDQWdJRjBzWEc0Z0lDQWdhWE5OWlhOb1FtRnphV05OWVhSbGNtbGhiRG9nV3lkdFlYQW5MQ0FuYzNCbFkzVnNZWEpOWVhBbkxDQW5ZV3h3YUdGTllYQW5YU3hjYmlBZ0lDQnBjMDFVYjI5dVRXRjBaWEpwWVd3NklGdGNiaUFnSUNBZ0lDZHRZWEFuTEZ4dUlDQWdJQ0FnSjI1dmNtMWhiRTFoY0Njc1hHNGdJQ0FnSUNBblpXMXBjM05wZG1WTllYQW5MRnh1SUNBZ0lDQWdKM05vWVdSbFRYVnNkR2x3YkhsVVpYaDBkWEpsSnl4Y2JpQWdJQ0FnSUNkeWFXMU5kV3gwYVhCc2VWUmxlSFIxY21VbkxGeHVJQ0FnSUNBZ0oyOTFkR3hwYm1WWGFXUjBhRTExYkhScGNHeDVWR1Y0ZEhWeVpTY3NYRzRnSUNBZ0lDQW5kWFpCYm1sdFlYUnBiMjVOWVhOclZHVjRkSFZ5WlNjc1hHNGdJQ0FnWFN4Y2JpQWdmVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUhSaGNtZGxkQ0J0WVhSbGNtbGhiQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0J0WVhSbGNtbGhiRG9nVkVoU1JVVXVUV0YwWlhKcFlXdzdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0IxZGlCelkyRnNaU0J2WmlCMGFHVWdkR1Y0ZEhWeVpTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQnpZMkZzWlRvZ1ZFaFNSVVV1Vm1WamRHOXlNanRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUhWMklHOW1abk5sZENCdlppQjBhR1VnZEdWNGRIVnlaUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0J2Wm1aelpYUTZJRlJJVWtWRkxsWmxZM1J2Y2pJN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQnNhWE4wSUc5bUlIUmxlSFIxY21VZ2JtRnRaWE1nWVc1a0lHbDBjeUJ6ZEdGMFpTQjBhR0YwSUhOb2IzVnNaQ0JpWlNCMGNtRnVjMlp2Y20xbFpDQmllU0IwYUdseklHSnBibVF1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5d2NtOXdaWEowYVdWek9pQjdYRzRnSUNBZ2JtRnRaVG9nYzNSeWFXNW5PMXh1SUNBZ0lHbHVhWFJwWVd4UFptWnpaWFE2SUZSSVVrVkZMbFpsWTNSdmNqSTdYRzRnSUNBZ2FXNXBkR2xoYkZOallXeGxPaUJVU0ZKRlJTNVdaV04wYjNJeU8xeHVJQ0FnSUdSbGJIUmhUMlptYzJWME9pQlVTRkpGUlM1V1pXTjBiM0l5TzF4dUlDQWdJR1JsYkhSaFUyTmhiR1U2SUZSSVVrVkZMbFpsWTNSdmNqSTdYRzRnSUgxYlhUdGNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2UxeHVJQ0FnSUcxaGRHVnlhV0ZzTEZ4dUlDQWdJSE5qWVd4bExGeHVJQ0FnSUc5bVpuTmxkQ3hjYmlBZ2ZUb2dlMXh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJvWlNCMFlYSm5aWFFnYldGMFpYSnBZV3d1WEc0Z0lDQWdJQ292WEc0Z0lDQWdiV0YwWlhKcFlXdzZJRlJJVWtWRkxrMWhkR1Z5YVdGc08xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWR2hsSUhWMklITmpZV3hsSUc5bUlIUm9aU0IwWlhoMGRYSmxMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lITmpZV3hsT2lCVVNGSkZSUzVXWldOMGIzSXlPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVkdobElIVjJJRzltWm5ObGRDQnZaaUIwYUdVZ2RHVjRkSFZ5WlM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0J2Wm1aelpYUTZJRlJJVWtWRkxsWmxZM1J2Y2pJN1hHNGdJSDBwSUh0Y2JpQWdJQ0IwYUdsekxtMWhkR1Z5YVdGc0lEMGdiV0YwWlhKcFlXdzdYRzRnSUNBZ2RHaHBjeTV6WTJGc1pTQTlJSE5qWVd4bE8xeHVJQ0FnSUhSb2FYTXViMlptYzJWMElEMGdiMlptYzJWME8xeHVYRzRnSUNBZ1kyOXVjM1FnY0hKdmNHVnlkSGxPWVcxbGN5QTlJRTlpYW1WamRDNWxiblJ5YVdWektGWlNUVVY0Y0hKbGMzTnBiMjVVWlhoMGRYSmxWSEpoYm5ObWIzSnRRbWx1WkM1ZmNISnZjR1Z5ZEhsT1lXMWxjMDFoY0NrdVptbHVaQ2hjYmlBZ0lDQWdJQ2hiWkdsemRHbHVaM1ZwYzJobGNsMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNodFlYUmxjbWxoYkNCaGN5QmhibmtwVzJScGMzUnBibWQxYVhOb1pYSmRJRDA5UFNCMGNuVmxPMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQXBQeTViTVYwN1hHNWNiaUFnSUNCcFppQW9jSEp2Y0dWeWRIbE9ZVzFsY3lBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9YRzRnSUNBZ0lDQWdJR0JVY21sbFpDQjBieUJoWkdRZ1lTQjBaWGgwZFhKbElIUnlZVzV6Wm05eWJTQmlhVzVrSUhSdklIUm9aU0J0WVhSbGNtbGhiQ0FrZTF4dUlDQWdJQ0FnSUNBZ0lHMWhkR1Z5YVdGc0xtNWhiV1VnUHo4Z0p5aHVieUJ1WVcxbEtTZGNiaUFnSUNBZ0lDQWdmU0JpZFhRZ2RHaGxJRzFoZEdWeWFXRnNJR2x6SUc1dmRDQnpkWEJ3YjNKMFpXUXVZQ3hjYmlBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVYM0J5YjNCbGNuUnBaWE1nUFNCYlhUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnZEdocGN5NWZjSEp2Y0dWeWRHbGxjeUE5SUZ0ZE8xeHVYRzRnSUNBZ0lDQndjbTl3WlhKMGVVNWhiV1Z6TG1admNrVmhZMmdvS0hCeWIzQmxjblI1VG1GdFpTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwWlhoMGRYSmxJRDBnS0NodFlYUmxjbWxoYkNCaGN5QmhibmtwVzNCeWIzQmxjblI1VG1GdFpWMGdZWE1nVkVoU1JVVXVWR1Y0ZEhWeVpTQjhJSFZ1WkdWbWFXNWxaQ2svTG1Oc2IyNWxLQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hkR1Y0ZEhWeVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnS0cxaGRHVnlhV0ZzSUdGeklHRnVlU2xiY0hKdmNHVnlkSGxPWVcxbFhTQTlJSFJsZUhSMWNtVTdJQzh2SUdKbFkyRjFjMlVnZEdobElIUmxlSFIxY21VZ2FYTWdZMnh2Ym1Wa1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FXNXBkR2xoYkU5bVpuTmxkQ0E5SUhSbGVIUjFjbVV1YjJabWMyVjBMbU5zYjI1bEtDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHbHVhWFJwWVd4VFkyRnNaU0E5SUhSbGVIUjFjbVV1Y21Wd1pXRjBMbU5zYjI1bEtDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmxiSFJoVDJabWMyVjBJRDBnYjJabWMyVjBMbU5zYjI1bEtDa3VjM1ZpS0dsdWFYUnBZV3hQWm1aelpYUXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmtaV3gwWVZOallXeGxJRDBnYzJOaGJHVXVZMnh2Ym1Vb0tTNXpkV0lvYVc1cGRHbGhiRk5qWVd4bEtUdGNibHh1SUNBZ0lDQWdJQ0IwYUdsekxsOXdjbTl3WlhKMGFXVnpMbkIxYzJnb2UxeHVJQ0FnSUNBZ0lDQWdJRzVoYldVNklIQnliM0JsY25SNVRtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNCcGJtbDBhV0ZzVDJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUdSbGJIUmhUMlptYzJWMExGeHVJQ0FnSUNBZ0lDQWdJR2x1YVhScFlXeFRZMkZzWlN4Y2JpQWdJQ0FnSUNBZ0lDQmtaV3gwWVZOallXeGxMRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCaGNIQnNlVmRsYVdkb2RDaDNaV2xuYUhRNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJSFJvYVhNdVgzQnliM0JsY25ScFpYTXVabTl5UldGamFDZ29jSEp2Y0dWeWRIa3BJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFJoY21kbGRDQTlJQ2gwYUdsekxtMWhkR1Z5YVdGc0lHRnpJR0Z1ZVNsYmNISnZjR1Z5ZEhrdWJtRnRaVjBnWVhNZ1ZFaFNSVVV1VkdWNGRIVnlaVHRjYmlBZ0lDQWdJR2xtSUNoMFlYSm5aWFFnUFQwOUlIVnVaR1ZtYVc1bFpDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlJQzh2SUZSUFJFODZJSGRsSUhOb2IzVnNaQ0JyYVdOcklIUm9hWE1nWVhRZ1lHRmtaRTFoZEdWeWFXRnNWbUZzZFdWZ1hHNWNiaUFnSUNBZ0lIUmhjbWRsZEM1dlptWnpaWFF1WVdSa0tGOTJNaTVqYjNCNUtIQnliM0JsY25SNUxtUmxiSFJoVDJabWMyVjBLUzV0ZFd4MGFYQnNlVk5qWVd4aGNpaDNaV2xuYUhRcEtUdGNiaUFnSUNBZ0lIUmhjbWRsZEM1eVpYQmxZWFF1WVdSa0tGOTJNaTVqYjNCNUtIQnliM0JsY25SNUxtUmxiSFJoVTJOaGJHVXBMbTExYkhScGNHeDVVMk5oYkdGeUtIZGxhV2RvZENrcE8xeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTnNaV0Z5UVhCd2JHbGxaRmRsYVdkb2RDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbDl3Y205d1pYSjBhV1Z6TG1admNrVmhZMmdvS0hCeWIzQmxjblI1S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMFlYSm5aWFFnUFNBb2RHaHBjeTV0WVhSbGNtbGhiQ0JoY3lCaGJua3BXM0J5YjNCbGNuUjVMbTVoYldWZElHRnpJRlJJVWtWRkxsUmxlSFIxY21VN1hHNGdJQ0FnSUNCcFppQW9kR0Z5WjJWMElEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnZlNBdkx5QlVUMFJQT2lCM1pTQnphRzkxYkdRZ2EybGpheUIwYUdseklHRjBJR0JoWkdSTllYUmxjbWxoYkZaaGJIVmxZRnh1WEc0Z0lDQWdJQ0IwWVhKblpYUXViMlptYzJWMExtTnZjSGtvY0hKdmNHVnlkSGt1YVc1cGRHbGhiRTltWm5ObGRDazdYRzRnSUNBZ0lDQjBZWEpuWlhRdWNtVndaV0YwTG1OdmNIa29jSEp2Y0dWeWRIa3VhVzVwZEdsaGJGTmpZV3hsS1R0Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1ZlZ4dUlpd2lhVzF3YjNKMElIUjVjR1VnS2lCaGN5QldNRlpTVFNCbWNtOXRJQ2RBY0dsNGFYWXZkSGx3WlhNdGRuSnRMVEF1TUNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0FxSUdGeklGWXhWbEpOVTJOb1pXMWhJR1p5YjIwZ0owQndhWGhwZGk5MGVYQmxjeTEyY20xakxYWnliUzB4TGpBbk8xeHVhVzF3YjNKMElDb2dZWE1nVkVoU1JVVWdabkp2YlNBbmRHaHlaV1VuTzF4dWFXMXdiM0owSUhzZ1IweFVSaXdnUjB4VVJreHZZV1JsY2xCc2RXZHBiaXdnUjB4VVJsQmhjbk5sY2lCOUlHWnliMjBnSjNSb2NtVmxMMlY0WVcxd2JHVnpMMnB6YlM5c2IyRmtaWEp6TDBkTVZFWk1iMkZrWlhJdWFuTW5PMXh1YVcxd2IzSjBJSHNnWjJ4MFprVjRkSEpoWTNSUWNtbHRhWFJwZG1WelJuSnZiVTV2WkdVZ2ZTQm1jbTl0SUNjdUxpOTFkR2xzY3k5bmJIUm1SWGgwY21GamRGQnlhVzFwZEdsMlpYTkdjbTl0VG05a1pTYzdYRzVwYlhCdmNuUWdleUJuYkhSbVIyVjBRWE56YjJOcFlYUmxaRTFoZEdWeWFXRnNTVzVrWlhnZ2ZTQm1jbTl0SUNjdUxpOTFkR2xzY3k5bmJIUm1SMlYwUVhOemIyTnBZWFJsWkUxaGRHVnlhV0ZzU1c1a1pYZ25PMXh1YVcxd2IzSjBJSHNnVmxKTlJYaHdjbVZ6YzJsdmJpQjlJR1p5YjIwZ0p5NHZWbEpOUlhod2NtVnpjMmx2YmljN1hHNXBiWEJ2Y25RZ2V5QldVazFGZUhCeVpYTnphVzl1VFdGdVlXZGxjaUI5SUdaeWIyMGdKeTR2VmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJbk8xeHVhVzF3YjNKMElIc2dkakJGZUhCeVpYTnphVzl1VFdGMFpYSnBZV3hEYjJ4dmNrMWhjQ0I5SUdaeWIyMGdKeTR2VmxKTlJYaHdjbVZ6YzJsdmJrMWhkR1Z5YVdGc1EyOXNiM0pVZVhCbEp6dGNibWx0Y0c5eWRDQjdJRlpTVFVWNGNISmxjM05wYjI1TllYUmxjbWxoYkVOdmJHOXlRbWx1WkNCOUlHWnliMjBnSnk0dlZsSk5SWGh3Y21WemMybHZiazFoZEdWeWFXRnNRMjlzYjNKQ2FXNWtKenRjYm1sdGNHOXlkQ0I3SUZaU1RVVjRjSEpsYzNOcGIyNU5iM0p3YUZSaGNtZGxkRUpwYm1RZ2ZTQm1jbTl0SUNjdUwxWlNUVVY0Y0hKbGMzTnBiMjVOYjNKd2FGUmhjbWRsZEVKcGJtUW5PMXh1YVcxd2IzSjBJSHNnVmxKTlJYaHdjbVZ6YzJsdmJsQnlaWE5sZEU1aGJXVWdmU0JtY205dElDY3VMMVpTVFVWNGNISmxjM05wYjI1UWNtVnpaWFJPWVcxbEp6dGNibWx0Y0c5eWRDQjdJRlpTVFVWNGNISmxjM05wYjI1VVpYaDBkWEpsVkhKaGJuTm1iM0p0UW1sdVpDQjlJR1p5YjIwZ0p5NHZWbEpOUlhod2NtVnpjMmx2YmxSbGVIUjFjbVZVY21GdWMyWnZjbTFDYVc1a0p6dGNibWx0Y0c5eWRDQjdJRWRNVkVZZ1lYTWdSMHhVUmxOamFHVnRZU0I5SUdaeWIyMGdKMEJuYkhSbUxYUnlZVzV6Wm05eWJTOWpiM0psSnp0Y2JseHVMeW9xWEc0Z0tpQlFiM056YVdKc1pTQnpjR1ZqSUhabGNuTnBiMjV6SUdsMElISmxZMjluYm1sNlpYTXVYRzRnS2k5Y2JtTnZibk4wSUZCUFUxTkpRa3hGWDFOUVJVTmZWa1ZTVTBsUFRsTWdQU0J1WlhjZ1UyVjBLRnNuTVM0d0p5d2dKekV1TUMxaVpYUmhKMTBwTzF4dVhHNHZLaXBjYmlBcUlFRWdjR3gxWjJsdUlHOW1JRWRNVkVaTWIyRmtaWElnZEdoaGRDQnBiWEJ2Y25SeklHRWdlMEJzYVc1cklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlmU0JtY205dElHRWdWbEpOSUdWNGRHVnVjMmx2YmlCdlppQmhJRWRNVkVZdVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QldVazFGZUhCeVpYTnphVzl1VEc5aFpHVnlVR3gxWjJsdUlHbHRjR3hsYldWdWRITWdSMHhVUmt4dllXUmxjbEJzZFdkcGJpQjdYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZoWkc5dWJIa2dkakIyTVZCeVpYTmxkRTVoYldWTllYQTZJSHNnVzNZd1RtRnRaU0JwYmlCV01GWlNUUzVDYkdWdVpGTm9ZWEJsVUhKbGMyVjBUbUZ0WlYwL09pQldVazFGZUhCeVpYTnphVzl1VUhKbGMyVjBUbUZ0WlNCOUlEMGdlMXh1SUNBZ0lHRTZJQ2RoWVNjc1hHNGdJQ0FnWlRvZ0oyVmxKeXhjYmlBZ0lDQnBPaUFuYVdnbkxGeHVJQ0FnSUc4NklDZHZhQ2NzWEc0Z0lDQWdkVG9nSjI5MUp5eGNiaUFnSUNCaWJHbHVhem9nSjJKc2FXNXJKeXhjYmlBZ0lDQnFiM2s2SUNkb1lYQndlU2NzWEc0Z0lDQWdZVzVuY25rNklDZGhibWR5ZVNjc1hHNGdJQ0FnYzI5eWNtOTNPaUFuYzJGa0p5eGNiaUFnSUNCbWRXNDZJQ2R5Wld4aGVHVmtKeXhjYmlBZ0lDQnNiMjlyZFhBNklDZHNiMjlyVlhBbkxGeHVJQ0FnSUd4dmIydGtiM2R1T2lBbmJHOXZhMFJ2ZDI0bkxGeHVJQ0FnSUd4dmIydHNaV1owT2lBbmJHOXZhMHhsWm5RbkxGeHVJQ0FnSUd4dmIydHlhV2RvZERvZ0oyeHZiMnRTYVdkb2RDY3NYRzRnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVZVzFwYm1jdFkyOXVkbVZ1ZEdsdmJseHVJQ0FnSUdKc2FXNXJYMnc2SUNkaWJHbHVhMHhsWm5RbkxGeHVJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtRnRhVzVuTFdOdmJuWmxiblJwYjI1Y2JpQWdJQ0JpYkdsdWExOXlPaUFuWW14cGJtdFNhV2RvZENjc1hHNGdJQ0FnYm1WMWRISmhiRG9nSjI1bGRYUnlZV3duTEZ4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCd1lYSnpaWEk2SUVkTVZFWlFZWEp6WlhJN1hHNWNiaUFnY0hWaWJHbGpJR2RsZENCdVlXMWxLQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdMeThnVjJVZ2MyaHZkV3hrSUhWelpTQjBhR1VnWlhoMFpXNXphVzl1SUc1aGJXVWdhVzV6ZEdWaFpDQmlkWFFnZDJVZ2FHRjJaU0J0ZFd4MGFYQnNaU0J3YkhWbmFXNXpJR1p2Y2lCaGJpQmxlSFJsYm5OcGIyNHVMaTVjYmlBZ0lDQnlaWFIxY200Z0oxWlNUVVY0Y0hKbGMzTnBiMjVNYjJGa1pYSlFiSFZuYVc0bk8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSEJoY25ObGNqb2dSMHhVUmxCaGNuTmxjaWtnZTF4dUlDQWdJSFJvYVhNdWNHRnljMlZ5SUQwZ2NHRnljMlZ5TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdGemVXNWpJR0ZtZEdWeVVtOXZkQ2huYkhSbU9pQkhURlJHS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdaMngwWmk1MWMyVnlSR0YwWVM1MmNtMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpQTlJR0YzWVdsMElIUm9hWE11WDJsdGNHOXlkQ2huYkhSbUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJKYlhCdmNuUWdZU0I3UUd4cGJtc2dWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWEo5SUdaeWIyMGdZU0JXVWswdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQm5iSFJtSUVFZ2NHRnljMlZrSUhKbGMzVnNkQ0J2WmlCSFRGUkdJSFJoYTJWdUlHWnliMjBnUjB4VVJreHZZV1JsY2x4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJmYVcxd2IzSjBLR2RzZEdZNklFZE1WRVlwT2lCUWNtOXRhWE5sUEZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeUlId2diblZzYkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSFl4VW1WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1ZmRqRkpiWEJ2Y25Rb1oyeDBaaWs3WEc0Z0lDQWdhV1lnS0hZeFVtVnpkV3gwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZGpGU1pYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2RqQlNaWE4xYkhRZ1BTQmhkMkZwZENCMGFHbHpMbDkyTUVsdGNHOXlkQ2huYkhSbUtUdGNiaUFnSUNCcFppQW9kakJTWlhOMWJIUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjJNRkpsYzNWc2REdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1gzWXhTVzF3YjNKMEtHZHNkR1k2SUVkTVZFWXBPaUJRY205dGFYTmxQRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5SUh3Z2JuVnNiRDRnZTF4dUlDQWdJR052Ym5OMElHcHpiMjRnUFNCMGFHbHpMbkJoY25ObGNpNXFjMjl1SUdGeklFZE1WRVpUWTJobGJXRXVTVWRNVkVZN1hHNWNiaUFnSUNBdkx5QmxZWEpzZVNCaFltOXlkQ0JwWmlCcGRDQmtiMlZ6YmlkMElIVnpaU0IyY20xY2JpQWdJQ0JqYjI1emRDQnBjMVpTVFZWelpXUWdQU0JxYzI5dUxtVjRkR1Z1YzJsdmJuTlZjMlZrUHk1cGJtUmxlRTltS0NkV1VrMURYM1p5YlNjcElDRTlQU0F0TVR0Y2JpQWdJQ0JwWmlBb0lXbHpWbEpOVlhObFpDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1pYaDBaVzV6YVc5dUlEMGdhbk52Ymk1bGVIUmxibk5wYjI1elB5NWJKMVpTVFVOZmRuSnRKMTBnWVhNZ1ZqRldVazFUWTJobGJXRXVWbEpOUTFaU1RTQjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvSVdWNGRHVnVjMmx2YmlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYzNCbFkxWmxjbk5wYjI0Z1BTQmxlSFJsYm5OcGIyNHVjM0JsWTFabGNuTnBiMjQ3WEc0Z0lDQWdhV1lnS0NGUVQxTlRTVUpNUlY5VFVFVkRYMVpGVWxOSlQwNVRMbWhoY3loemNHVmpWbVZ5YzJsdmJpa3BJSHRjYmlBZ0lDQWdJR052Ym5OdmJHVXVkMkZ5YmloZ1ZsSk5SWGh3Y21WemMybHZia3h2WVdSbGNsQnNkV2RwYmpvZ1ZXNXJibTkzYmlCV1VrMURYM1p5YlNCemNHVmpWbVZ5YzJsdmJpQmNJaVI3YzNCbFkxWmxjbk5wYjI1OVhDSmdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElITmphR1Z0WVVWNGNISmxjM05wYjI1eklEMGdaWGgwWlc1emFXOXVMbVY0Y0hKbGMzTnBiMjV6TzF4dUlDQWdJR2xtSUNnaGMyTm9aVzFoUlhod2NtVnpjMmx2Ym5NcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJR3hwYzNRZ1pYaHdjbVZ6YzJsdmJuTmNiaUFnSUNCamIyNXpkQ0J3Y21WelpYUk9ZVzFsVTJWMElEMGdibVYzSUZObGREeHpkSEpwYm1jK0tFOWlhbVZqZEM1MllXeDFaWE1vVmxKTlJYaHdjbVZ6YzJsdmJsQnlaWE5sZEU1aGJXVXBLVHRjYmlBZ0lDQmpiMjV6ZENCdVlXMWxVMk5vWlcxaFJYaHdjbVZ6YzJsdmJrMWhjQ0E5SUc1bGR5Qk5ZWEE4YzNSeWFXNW5MQ0JXTVZaU1RWTmphR1Z0WVM1RmVIQnlaWE56YVc5dVBpZ3BPMXh1WEc0Z0lDQWdhV1lnS0hOamFHVnRZVVY0Y0hKbGMzTnBiMjV6TG5CeVpYTmxkQ0FoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0JQWW1wbFkzUXVaVzUwY21sbGN5aHpZMmhsYldGRmVIQnlaWE56YVc5dWN5NXdjbVZ6WlhRcExtWnZja1ZoWTJnb0tGdHVZVzFsTENCelkyaGxiV0ZGZUhCeVpYTnphVzl1WFNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb2MyTm9aVzFoUlhod2NtVnpjMmx2YmlBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQjlJQzh2SUhSNWNHVnpZM0pwY0hSY2JseHVJQ0FnSUNBZ0lDQnBaaUFvSVhCeVpYTmxkRTVoYldWVFpYUXVhR0Z6S0c1aGJXVXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLR0JXVWsxRmVIQnlaWE56YVc5dVRHOWhaR1Z5VUd4MVoybHVPaUJWYm10dWIzZHVJSEJ5WlhObGRDQnVZVzFsSUZ3aUpIdHVZVzFsZlZ3aUlHUmxkR1ZqZEdWa0xpQkpaMjV2Y21sdVp5QjBhR1VnWlhod2NtVnpjMmx2Ym1BcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUc1aGJXVlRZMmhsYldGRmVIQnlaWE56YVc5dVRXRndMbk5sZENodVlXMWxMQ0J6WTJobGJXRkZlSEJ5WlhOemFXOXVLVHRjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoelkyaGxiV0ZGZUhCeVpYTnphVzl1Y3k1amRYTjBiMjBnSVQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9jMk5vWlcxaFJYaHdjbVZ6YzJsdmJuTXVZM1Z6ZEc5dEtTNW1iM0pGWVdOb0tDaGJibUZ0WlN3Z2MyTm9aVzFoUlhod2NtVnpjMmx2YmwwcElEMCtJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tIQnlaWE5sZEU1aGJXVlRaWFF1YUdGektHNWhiV1VwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdZRlpTVFVWNGNISmxjM05wYjI1TWIyRmtaWEpRYkhWbmFXNDZJRU4xYzNSdmJTQmxlSEJ5WlhOemFXOXVJR05oYm01dmRDQm9ZWFpsSUhCeVpYTmxkQ0J1WVcxbElGd2lKSHR1WVcxbGZWd2lMaUJKWjI1dmNtbHVaeUIwYUdVZ1pYaHdjbVZ6YzJsdmJtQXNYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0J1WVcxbFUyTm9aVzFoUlhod2NtVnpjMmx2YmsxaGNDNXpaWFFvYm1GdFpTd2djMk5vWlcxaFJYaHdjbVZ6YzJsdmJpazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJ3Y21Wd1lYSmxJRzFoYm1GblpYSmNiaUFnSUNCamIyNXpkQ0J0WVc1aFoyVnlJRDBnYm1WM0lGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlLQ2s3WEc1Y2JpQWdJQ0F2THlCc2IyRmtJR1Y0Y0hKbGMzTnBiMjV6WEc0Z0lDQWdZWGRoYVhRZ1VISnZiV2x6WlM1aGJHd29YRzRnSUNBZ0lDQkJjbkpoZVM1bWNtOXRLRzVoYldWVFkyaGxiV0ZGZUhCeVpYTnphVzl1VFdGd0xtVnVkSEpwWlhNb0tTa3ViV0Z3S0dGemVXNWpJQ2hiYm1GdFpTd2djMk5vWlcxaFJYaHdjbVZ6YzJsdmJsMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWlhod2NtVnpjMmx2YmlBOUlHNWxkeUJXVWsxRmVIQnlaWE56YVc5dUtHNWhiV1VwTzF4dUlDQWdJQ0FnSUNCbmJIUm1Mbk5qWlc1bExtRmtaQ2hsZUhCeVpYTnphVzl1S1R0Y2JseHVJQ0FnSUNBZ0lDQmxlSEJ5WlhOemFXOXVMbWx6UW1sdVlYSjVJRDBnYzJOb1pXMWhSWGh3Y21WemMybHZiaTVwYzBKcGJtRnllU0EvUHlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnWlhod2NtVnpjMmx2Ymk1dmRtVnljbWxrWlVKc2FXNXJJRDBnYzJOb1pXMWhSWGh3Y21WemMybHZiaTV2ZG1WeWNtbGtaVUpzYVc1cklEOC9JQ2R1YjI1bEp6dGNiaUFnSUNBZ0lDQWdaWGh3Y21WemMybHZiaTV2ZG1WeWNtbGtaVXh2YjJ0QmRDQTlJSE5qYUdWdFlVVjRjSEpsYzNOcGIyNHViM1psY25KcFpHVk1iMjlyUVhRZ1B6OGdKMjV2Ym1Vbk8xeHVJQ0FnSUNBZ0lDQmxlSEJ5WlhOemFXOXVMbTkyWlhKeWFXUmxUVzkxZEdnZ1BTQnpZMmhsYldGRmVIQnlaWE56YVc5dUxtOTJaWEp5YVdSbFRXOTFkR2dnUHo4Z0oyNXZibVVuTzF4dVhHNGdJQ0FnSUNBZ0lITmphR1Z0WVVWNGNISmxjM05wYjI0dWJXOXljR2hVWVhKblpYUkNhVzVrY3o4dVptOXlSV0ZqYUNoaGMzbHVZeUFvWW1sdVpDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hpYVc1a0xtNXZaR1VnUFQwOUlIVnVaR1ZtYVc1bFpDQjhmQ0JpYVc1a0xtbHVaR1Y0SUQwOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3Y21sdGFYUnBkbVZ6SUQwZ0tHRjNZV2wwSUdkc2RHWkZlSFJ5WVdOMFVISnBiV2wwYVhabGMwWnliMjFPYjJSbEtHZHNkR1lzSUdKcGJtUXVibTlrWlNrcElUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRiM0p3YUZSaGNtZGxkRWx1WkdWNElEMGdZbWx1WkM1cGJtUmxlRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJR05vWldOcklHbG1JSFJvWlNCdFpYTm9JR2hoY3lCMGFHVWdkR0Z5WjJWMElHMXZjbkJvSUhSaGNtZGxkRnh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNGd2NtbHRhWFJwZG1WekxtVjJaWEo1S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FvY0hKcGJXbDBhWFpsS1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFRnljbUY1TG1selFYSnlZWGtvY0hKcGJXbDBhWFpsTG0xdmNuQm9WR0Z5WjJWMFNXNW1iSFZsYm1ObGN5a2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0YjNKd2FGUmhjbWRsZEVsdVpHVjRJRHdnY0hKcGJXbDBhWFpsTG0xdmNuQm9WR0Z5WjJWMFNXNW1iSFZsYm1ObGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHQldVazFGZUhCeVpYTnphVzl1VEc5aFpHVnlVR3gxWjJsdU9pQWtlM05qYUdWdFlVVjRjSEpsYzNOcGIyNHVibUZ0WlgwZ1lYUjBaVzF3ZEhNZ2RHOGdhVzVrWlhnZ2JXOXljR2dnSXlSN2JXOXljR2hVWVhKblpYUkpibVJsZUgwZ1luVjBJRzV2ZENCbWIzVnVaQzVnTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnSUNCbGVIQnlaWE56YVc5dUxtRmtaRUpwYm1Rb1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhjZ1ZsSk5SWGh3Y21WemMybHZiazF2Y25Cb1ZHRnlaMlYwUW1sdVpDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIQnlhVzFwZEdsMlpYTXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Y0T2lCdGIzSndhRlJoY21kbGRFbHVaR1Y0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0IzWldsbmFIUTZJR0pwYm1RdWQyVnBaMmgwSUQ4L0lERXVNQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaHpZMmhsYldGRmVIQnlaWE56YVc5dUxtMWhkR1Z5YVdGc1EyOXNiM0pDYVc1a2N5QjhmQ0J6WTJobGJXRkZlSEJ5WlhOemFXOXVMblJsZUhSMWNtVlVjbUZ1YzJadmNtMUNhVzVrY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUd4cGMzUWdkWEFnWlhabGNua2diV0YwWlhKcFlXd2dhVzRnWUdkc2RHWXVjMk5sYm1WZ1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1oyeDBaazFoZEdWeWFXRnNjem9nVkVoU1JVVXVUV0YwWlhKcFlXeGJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQWdJR2RzZEdZdWMyTmxibVV1ZEhKaGRtVnljMlVvS0c5aWFtVmpkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwWlhKcFlXd2dQU0FvYjJKcVpXTjBJR0Z6SUdGdWVTa3ViV0YwWlhKcFlXd2dZWE1nVkVoU1JVVXVUV0YwWlhKcFlXd2dmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYldGMFpYSnBZV3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWjJ4MFprMWhkR1Z5YVdGc2N5NXdkWE5vS0cxaGRHVnlhV0ZzS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0FnSUhOamFHVnRZVVY0Y0hKbGMzTnBiMjR1YldGMFpYSnBZV3hEYjJ4dmNrSnBibVJ6UHk1bWIzSkZZV05vS0dGemVXNWpJQ2hpYVc1a0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYUmxjbWxoYkhNZ1BTQm5iSFJtVFdGMFpYSnBZV3h6TG1acGJIUmxjaWdvYldGMFpYSnBZV3dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYldGMFpYSnBZV3hKYm1SbGVDQTlJR2RzZEdaSFpYUkJjM052WTJsaGRHVmtUV0YwWlhKcFlXeEpibVJsZUNoMGFHbHpMbkJoY25ObGNpd2diV0YwWlhKcFlXd3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ltbHVaQzV0WVhSbGNtbGhiQ0E5UFQwZ2JXRjBaWEpwWVd4SmJtUmxlRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWFJsY21saGJITXVabTl5UldGamFDZ29iV0YwWlhKcFlXd3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWlhod2NtVnpjMmx2Ymk1aFpHUkNhVzVrS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1bGR5QldVazFGZUhCeVpYTnphVzl1VFdGMFpYSnBZV3hEYjJ4dmNrSnBibVFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXRjBaWEpwWVd3c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lCaWFXNWtMblI1Y0dVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBZWEpuWlhSV1lXeDFaVG9nYm1WM0lGUklVa1ZGTGtOdmJHOXlLQ2t1Wm5KdmJVRnljbUY1S0dKcGJtUXVkR0Z5WjJWMFZtRnNkV1VwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHRnlaMlYwUVd4d2FHRTZJR0pwYm1RdWRHRnlaMlYwVm1Gc2RXVmJNMTBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lITmphR1Z0WVVWNGNISmxjM05wYjI0dWRHVjRkSFZ5WlZSeVlXNXpabTl5YlVKcGJtUnpQeTVtYjNKRllXTm9LR0Z6ZVc1aklDaGlhVzVrS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSbGNtbGhiSE1nUFNCbmJIUm1UV0YwWlhKcFlXeHpMbVpwYkhSbGNpZ29iV0YwWlhKcFlXd3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwWlhKcFlXeEpibVJsZUNBOUlHZHNkR1pIWlhSQmMzTnZZMmxoZEdWa1RXRjBaWEpwWVd4SmJtUmxlQ2gwYUdsekxuQmhjbk5sY2l3Z2JXRjBaWEpwWVd3cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWW1sdVpDNXRZWFJsY21saGJDQTlQVDBnYldGMFpYSnBZV3hKYm1SbGVEdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNCdFlYUmxjbWxoYkhNdVptOXlSV0ZqYUNnb2JXRjBaWEpwWVd3cElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaWGh3Y21WemMybHZiaTVoWkdSQ2FXNWtLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZHlCV1VrMUZlSEJ5WlhOemFXOXVWR1Y0ZEhWeVpWUnlZVzV6Wm05eWJVSnBibVFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXRjBaWEpwWVd3c1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZabVp6WlhRNklHNWxkeUJVU0ZKRlJTNVdaV04wYjNJeUtDa3Vabkp2YlVGeWNtRjVLR0pwYm1RdWIyWm1jMlYwSUQ4L0lGc3dMakFzSURBdU1GMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJOaGJHVTZJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXlLQ2t1Wm5KdmJVRnljbUY1S0dKcGJtUXVjMk5oYkdVZ1B6OGdXekV1TUN3Z01TNHdYU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHMWhibUZuWlhJdWNtVm5hWE4wWlhKRmVIQnlaWE56YVc5dUtHVjRjSEpsYzNOcGIyNHBPMXh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnRZVzVoWjJWeU8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCZmRqQkpiWEJ2Y25Rb1oyeDBaam9nUjB4VVJpazZJRkJ5YjIxcGMyVThWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWElnZkNCdWRXeHNQaUI3WEc0Z0lDQWdZMjl1YzNRZ2FuTnZiaUE5SUhSb2FYTXVjR0Z5YzJWeUxtcHpiMjRnWVhNZ1IweFVSbE5qYUdWdFlTNUpSMHhVUmp0Y2JseHVJQ0FnSUM4dklHVmhjbXg1SUdGaWIzSjBJR2xtSUdsMElHUnZaWE51SjNRZ2RYTmxJSFp5YlZ4dUlDQWdJR052Ym5OMElIWnliVVY0ZENBOUlHcHpiMjR1WlhoMFpXNXphVzl1Y3o4dVZsSk5JR0Z6SUZZd1ZsSk5MbFpTVFNCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9JWFp5YlVWNGRDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2MyTm9aVzFoUW14bGJtUlRhR0Z3WlNBOUlIWnliVVY0ZEM1aWJHVnVaRk5vWVhCbFRXRnpkR1Z5TzF4dUlDQWdJR2xtSUNnaGMyTm9aVzFoUW14bGJtUlRhR0Z3WlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYldGdVlXZGxjaUE5SUc1bGR5QldVazFGZUhCeVpYTnphVzl1VFdGdVlXZGxjaWdwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjMk5vWlcxaFFteGxibVJUYUdGd1pVZHliM1Z3Y3lBOUlITmphR1Z0WVVKc1pXNWtVMmhoY0dVdVlteGxibVJUYUdGd1pVZHliM1Z3Y3p0Y2JpQWdJQ0JwWmlBb0lYTmphR1Z0WVVKc1pXNWtVMmhoY0dWSGNtOTFjSE1wSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ0WVc1aFoyVnlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdKc1pXNWtVMmhoY0dWT1lXMWxVMlYwSUQwZ2JtVjNJRk5sZER4emRISnBibWMrS0NrN1hHNWNiaUFnSUNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNoY2JpQWdJQ0FnSUhOamFHVnRZVUpzWlc1a1UyaGhjR1ZIY205MWNITXViV0Z3S0dGemVXNWpJQ2h6WTJobGJXRkhjbTkxY0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjJNRkJ5WlhObGRFNWhiV1VnUFNCelkyaGxiV0ZIY205MWNDNXdjbVZ6WlhST1lXMWxPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjJNVkJ5WlhObGRFNWhiV1VnUFZ4dUlDQWdJQ0FnSUNBZ0lDaDJNRkJ5WlhObGRFNWhiV1VnSVQwZ2JuVnNiQ0FtSmlCV1VrMUZlSEJ5WlhOemFXOXVURzloWkdWeVVHeDFaMmx1TG5Zd2RqRlFjbVZ6WlhST1lXMWxUV0Z3VzNZd1VISmxjMlYwVG1GdFpWMHBJSHg4SUc1MWJHdzdYRzRnSUNBZ0lDQWdJR052Ym5OMElHNWhiV1VnUFNCMk1WQnlaWE5sZEU1aGJXVWdQejhnYzJOb1pXMWhSM0p2ZFhBdWJtRnRaVHRjYmx4dUlDQWdJQ0FnSUNCcFppQW9ibUZ0WlNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0NkV1VrMUZlSEJ5WlhOemFXOXVURzloWkdWeVVHeDFaMmx1T2lCUGJtVWdiMllnWTNWemRHOXRJR1Y0Y0hKbGMzTnBiMjV6SUdoaGN5QnVieUJ1WVcxbExpQkpaMjV2Y21sdVp5QjBhR1VnWlhod2NtVnpjMmx2YmljcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUM4dklHUjFjR3hwWTJGMGFXOXVJR05vWldOclhHNGdJQ0FnSUNBZ0lHbG1JQ2hpYkdWdVpGTm9ZWEJsVG1GdFpWTmxkQzVvWVhNb2JtRnRaU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmdWbEpOUlhod2NtVnpjMmx2Ymt4dllXUmxjbEJzZFdkcGJqb2dRVzRnWlhod2NtVnpjMmx2YmlCd2NtVnpaWFFnSkh0Mk1GQnlaWE5sZEU1aGJXVjlJR2hoY3lCa2RYQnNhV05oZEdWa0lHVnVkSEpwWlhNdUlFbG5ibTl5YVc1bklIUm9aU0JsZUhCeVpYTnphVzl1WUN4Y2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHSnNaVzVrVTJoaGNHVk9ZVzFsVTJWMExtRmtaQ2h1WVcxbEtUdGNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQmxlSEJ5WlhOemFXOXVJRDBnYm1WM0lGWlNUVVY0Y0hKbGMzTnBiMjRvYm1GdFpTazdYRzRnSUNBZ0lDQWdJR2RzZEdZdWMyTmxibVV1WVdSa0tHVjRjSEpsYzNOcGIyNHBPMXh1WEc0Z0lDQWdJQ0FnSUdWNGNISmxjM05wYjI0dWFYTkNhVzVoY25rZ1BTQnpZMmhsYldGSGNtOTFjQzVwYzBKcGJtRnllU0EvUHlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnTHk4Z2RqQWdaRzlsYzI0bmRDQm9ZWFpsSUdsbmJtOXlaU0J3Y205d1pYSjBhV1Z6WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdRbWx1WkNCdGIzSndhRlJoY21kbGRGeHVJQ0FnSUNBZ0lDQnBaaUFvYzJOb1pXMWhSM0p2ZFhBdVltbHVaSE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpZMmhsYldGSGNtOTFjQzVpYVc1a2N5NW1iM0pGWVdOb0tHRnplVzVqSUNoaWFXNWtLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1ltbHVaQzV0WlhOb0lEMDlQU0IxYm1SbFptbHVaV1FnZkh3Z1ltbHVaQzVwYm1SbGVDQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYm05a1pYTlZjMmx1WjAxbGMyZzZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JxYzI5dUxtNXZaR1Z6UHk1bWIzSkZZV05vS0NodWIyUmxMQ0JwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h1YjJSbExtMWxjMmdnUFQwOUlHSnBibVF1YldWemFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzV2WkdWelZYTnBibWROWlhOb0xuQjFjMmdvYVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnRiM0p3YUZSaGNtZGxkRWx1WkdWNElEMGdZbWx1WkM1cGJtUmxlRHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdZWGRoYVhRZ1VISnZiV2x6WlM1aGJHd29YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHNXZaR1Z6VlhOcGJtZE5aWE5vTG0xaGNDaGhjM2x1WXlBb2JtOWtaVWx1WkdWNEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjSEpwYldsMGFYWmxjeUE5SUNoaGQyRnBkQ0JuYkhSbVJYaDBjbUZqZEZCeWFXMXBkR2wyWlhOR2NtOXRUbTlrWlNobmJIUm1MQ0J1YjJSbFNXNWtaWGdwS1NFN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJqYUdWamF5QnBaaUIwYUdVZ2JXVnphQ0JvWVhNZ2RHaGxJSFJoY21kbGRDQnRiM0p3YUNCMFlYSm5aWFJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWhjSEpwYldsMGFYWmxjeTVsZG1WeWVTaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS0hCeWFXMXBkR2wyWlNrZ1BUNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCQmNuSmhlUzVwYzBGeWNtRjVLSEJ5YVcxcGRHbDJaUzV0YjNKd2FGUmhjbWRsZEVsdVpteDFaVzVqWlhNcElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JXOXljR2hVWVhKblpYUkpibVJsZUNBOElIQnlhVzFwZEdsMlpTNXRiM0p3YUZSaGNtZGxkRWx1Wm14MVpXNWpaWE11YkdWdVozUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmdWbEpOUlhod2NtVnpjMmx2Ymt4dllXUmxjbEJzZFdkcGJqb2dKSHR6WTJobGJXRkhjbTkxY0M1dVlXMWxmU0JoZEhSbGJYQjBjeUIwYnlCcGJtUmxlQ0FrZTIxdmNuQm9WR0Z5WjJWMFNXNWtaWGg5ZEdnZ2JXOXljR2dnWW5WMElHNXZkQ0JtYjNWdVpDNWdMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxlSEJ5WlhOemFXOXVMbUZrWkVKcGJtUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J1WlhjZ1ZsSk5SWGh3Y21WemMybHZiazF2Y25Cb1ZHRnlaMlYwUW1sdVpDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCeWFXMXBkR2wyWlhNc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWNE9pQnRiM0p3YUZSaGNtZGxkRWx1WkdWNExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IzWldsbmFIUTZJREF1TURFZ0tpQW9ZbWx1WkM1M1pXbG5hSFFnUHo4Z01UQXdLU3dnTHk4Z2JtRnljbTkzYVc1bklIUm9aU0J5WVc1blpTQm1jbTl0SUZzZ01DNHdJQzBnTVRBd0xqQWdYU0IwYnlCYklEQXVNQ0F0SURFdU1DQmRYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQXZMeUJDYVc1a0lFMWhkR1Z5YVdGc1EyOXNiM0lnWVc1a0lGUmxlSFIxY21WVWNtRnVjMlp2Y20xY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYldGMFpYSnBZV3hXWVd4MVpYTWdQU0J6WTJobGJXRkhjbTkxY0M1dFlYUmxjbWxoYkZaaGJIVmxjenRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMWhkR1Z5YVdGc1ZtRnNkV1Z6SUNZbUlHMWhkR1Z5YVdGc1ZtRnNkV1Z6TG14bGJtZDBhQ0FoUFQwZ01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUcxaGRHVnlhV0ZzVm1Gc2RXVnpMbVp2Y2tWaFkyZ29LRzFoZEdWeWFXRnNWbUZzZFdVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiV0YwWlhKcFlXeFdZV3gxWlM1dFlYUmxjbWxoYkU1aGJXVWdQVDA5SUhWdVpHVm1hVzVsWkNCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYUmxjbWxoYkZaaGJIVmxMbkJ5YjNCbGNuUjVUbUZ0WlNBOVBUMGdkVzVrWldacGJtVmtJSHg4WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRzFoZEdWeWFXRnNWbUZzZFdVdWRHRnlaMlYwVm1Gc2RXVWdQVDA5SUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ0FnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQ0FnTHlvcVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnS2lEamdxTGpnNURqZ3Ivamc3empnYTdqZ3Fyamc1YmpncmpqZ3FmamdxL2pnNGpqZ2F2b3FLM2xycHJqZ1pYamdvempnYWJqZ1lUamdvdmpnNTdqZzRiamc2cmpncUxqZzZ2amdhN2xob1hqZ1l2amdvbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBcUlHMWhkR1Z5YVdGc1ZtRnNkV1hqZ2FmbWpJZmxycHJqZ1pYamdvempnYWJqZ1lUamdvdmpnNTdqZzRiamc2cmpncUxqZzZ2amdwTHBtNGJqZ29IamdvdmpnSUpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQXFYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0tpRG5pYm5scnByamdhdmpnYS9sa0kzbGlZM2pncExrdmIvbmxLampnWm5qZ292amdJSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBcUlPT0NvdU9DcHVPRGlPT0RxZU9DcE9PRHMrYVBqK2VVdStlVXFPT0JydU9EbnVPRGh1T0RxdU9Db3VPRHErT0NndVdRak9hWmd1T0JxK21iaHVPQ2dlT0NpK09BZ2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ292WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYUmxjbWxoYkhNNklGUklVa1ZGTGsxaGRHVnlhV0ZzVzEwZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHZHNkR1l1YzJObGJtVXVkSEpoZG1WeWMyVW9LRzlpYW1WamRDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0tHOWlhbVZqZENCaGN5QmhibmtwTG0xaGRHVnlhV0ZzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYldGMFpYSnBZV3c2SUZSSVVrVkZMazFoZEdWeWFXRnNXMTBnZkNCVVNGSkZSUzVOWVhSbGNtbGhiQ0E5SUNodlltcGxZM1FnWVhNZ1lXNTVLUzV0WVhSbGNtbGhiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2h0WVhSbGNtbGhiQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhkR1Z5YVdGc2N5NXdkWE5vS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVMaTV0WVhSbGNtbGhiQzVtYVd4MFpYSW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tHMTBiQ2tnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNodGRHd3VibUZ0WlNBOVBUMGdiV0YwWlhKcFlXeFdZV3gxWlM1dFlYUmxjbWxoYkU1aGJXVWhJSHg4WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxMGJDNXVZVzFsSUQwOVBTQnRZWFJsY21saGJGWmhiSFZsTG0xaGRHVnlhV0ZzVG1GdFpTRWdLeUFuSUNoUGRYUnNhVzVsS1NjcElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRZWFJsY21saGJITXVhVzVrWlhoUFppaHRkR3dwSUQwOVBTQXRNU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNodFlYUmxjbWxoYkM1dVlXMWxJRDA5UFNCdFlYUmxjbWxoYkZaaGJIVmxMbTFoZEdWeWFXRnNUbUZ0WlNBbUppQnRZWFJsY21saGJITXVhVzVrWlhoUFppaHRZWFJsY21saGJDa2dQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0WVhSbGNtbGhiSE11Y0hWemFDaHRZWFJsY21saGJDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYldGMFpYSnBZV3hRY205d1pYSjBlVTVoYldVZ1BTQnRZWFJsY21saGJGWmhiSFZsTG5CeWIzQmxjblI1VG1GdFpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUcxaGRHVnlhV0ZzY3k1bWIzSkZZV05vS0NodFlYUmxjbWxoYkNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJVWlhoMGRYSmxWSEpoYm5ObWIzSnRRbWx1WkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JXRjBaWEpwWVd4UWNtOXdaWEowZVU1aGJXVWdQVDA5SUNkZlRXRnBibFJsZUY5VFZDY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnpZMkZzWlNBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJeUtHMWhkR1Z5YVdGc1ZtRnNkV1V1ZEdGeVoyVjBWbUZzZFdVaFd6QmRMQ0J0WVhSbGNtbGhiRlpoYkhWbExuUmhjbWRsZEZaaGJIVmxJVnN4WFNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYjJabWMyVjBJRDBnYm1WM0lGUklVa1ZGTGxabFkzUnZjaklvYldGMFpYSnBZV3hXWVd4MVpTNTBZWEpuWlhSV1lXeDFaU0ZiTWwwc0lHMWhkR1Z5YVdGc1ZtRnNkV1V1ZEdGeVoyVjBWbUZzZFdVaFd6TmRLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkQzU1SUQwZ01TNHdJQzBnYjJabWMyVjBMbmtnTFNCelkyRnNaUzU1TzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pYaHdjbVZ6YzJsdmJpNWhaR1JDYVc1a0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibVYzSUZaU1RVVjRjSEpsYzNOcGIyNVVaWGgwZFhKbFZISmhibk5tYjNKdFFtbHVaQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHMWhkR1Z5YVdGc0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6WTJGc1pTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYjJabWMyVjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRTFoZEdWeWFXRnNRMjlzYjNKQ2FXNWtYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRHVnlhV0ZzUTI5c2IzSlVlWEJsSUQwZ2RqQkZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2sxaGNGdHRZWFJsY21saGJGQnliM0JsY25SNVRtRnRaVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNodFlYUmxjbWxoYkVOdmJHOXlWSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVjRjSEpsYzNOcGIyNHVZV1JrUW1sdVpDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZHlCV1VrMUZlSEJ5WlhOemFXOXVUV0YwWlhKcFlXeERiMnh2Y2tKcGJtUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYUmxjbWxoYkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ2JXRjBaWEpwWVd4RGIyeHZjbFI1Y0dVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJoY21kbGRGWmhiSFZsT2lCdVpYY2dWRWhTUlVVdVEyOXNiM0lvS1M1bWNtOXRRWEp5WVhrb2JXRjBaWEpwWVd4V1lXeDFaUzUwWVhKblpYUldZV3gxWlNFcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwWVhKblpYUkJiSEJvWVRvZ2JXRjBaWEpwWVd4V1lXeDFaUzUwWVhKblpYUldZV3gxWlNGYk0xMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRzFoZEdWeWFXRnNVSEp2Y0dWeWRIbE9ZVzFsSUNzZ0p5QnBjeUJ1YjNRZ2MzVndjRzl5ZEdWa0p5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJRzFoYm1GblpYSXVjbVZuYVhOMFpYSkZlSEJ5WlhOemFXOXVLR1Y0Y0hKbGMzTnBiMjRwTzF4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ0WVc1aFoyVnlPMXh1SUNCOVhHNTlYRzRpTENJdktpQmxjMnhwYm5RdFpHbHpZV0pzWlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtRnRhVzVuTFdOdmJuWmxiblJwYjI0Z0tpOWNibHh1Wlhod2IzSjBJR052Ym5OMElGWlNUVVY0Y0hKbGMzTnBiMjVQZG1WeWNtbGtaVlI1Y0dVZ1BTQjdYRzRnSUU1dmJtVTZJQ2R1YjI1bEp5eGNiaUFnUW14dlkyczZJQ2RpYkc5amF5Y3NYRzRnSUVKc1pXNWtPaUFuWW14bGJtUW5MRnh1ZlNCaGN5QmpiMjV6ZER0Y2JseHVaWGh3YjNKMElIUjVjR1VnVmxKTlJYaHdjbVZ6YzJsdmJrOTJaWEp5YVdSbFZIbHdaU0E5SUhSNWNHVnZaaUJXVWsxRmVIQnlaWE56YVc5dVQzWmxjbkpwWkdWVWVYQmxXMnRsZVc5bUlIUjVjR1Z2WmlCV1VrMUZlSEJ5WlhOemFXOXVUM1psY25KcFpHVlVlWEJsWFR0Y2JpSXNJbWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5SbWx5YzNSUVpYSnpiMjVOWlhOb1FXNXViM1JoZEdsdmJpQjlJR1p5YjIwZ0p5NHZWbEpOUm1seWMzUlFaWEp6YjI1TlpYTm9RVzV1YjNSaGRHbHZiaWM3WEc1cGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVWgxYldGdWIybGtJSDBnWm5KdmJTQW5MaTR2YUhWdFlXNXZhV1FuTzF4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlJtbHljM1JRWlhKemIyNGdlMXh1SUNBdktpcGNiaUFnSUNvZ1FTQmtaV1poZFd4MElHTmhiV1Z5WVNCc1lYbGxjaUJtYjNJZ1lFWnBjbk4wVUdWeWMyOXVUMjVzZVdBZ2JHRjVaWEl1WEc0Z0lDQXFYRzRnSUNBcUlFQnpaV1VnVzF0blpYUkdhWEp6ZEZCbGNuTnZiazl1YkhsTVlYbGxjbDFkWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRVJGUmtGVlRGUmZSa2xTVTFSUVJWSlRUMDVmVDA1TVdWOU1RVmxGVWlBOUlEazdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFRWdaR1ZtWVhWc2RDQmpZVzFsY21FZ2JHRjVaWElnWm05eUlHQlVhR2x5WkZCbGNuTnZiazl1YkhsZ0lHeGhlV1Z5TGx4dUlDQWdLbHh1SUNBZ0tpQkFjMlZsSUZ0YloyVjBWR2hwY21SUVpYSnpiMjVQYm14NVRHRjVaWEpkWFZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JFUlVaQlZVeFVYMVJJU1ZKRVVFVlNVMDlPWDA5T1RGbGZURUZaUlZJZ1BTQXhNRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTWFJ6SUdGemMyOWphV0YwWldRZ2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa2ZTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQm9kVzFoYm05cFpEb2dWbEpOU0hWdFlXNXZhV1E3WEc0Z0lIQjFZbXhwWXlCdFpYTm9RVzV1YjNSaGRHbHZibk02SUZaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1YlhUdGNibHh1SUNCd2NtbDJZWFJsSUY5bWFYSnpkRkJsY25OdmJrOXViSGxNWVhsbGNpQTlJRlpTVFVacGNuTjBVR1Z5YzI5dUxrUkZSa0ZWVEZSZlJrbFNVMVJRUlZKVFQwNWZUMDVNV1Y5TVFWbEZVanRjYmlBZ2NISnBkbUYwWlNCZmRHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSWdQU0JXVWsxR2FYSnpkRkJsY25OdmJpNUVSVVpCVlV4VVgxUklTVkpFVUVWU1UwOU9YMDlPVEZsZlRFRlpSVkk3WEc1Y2JpQWdjSEpwZG1GMFpTQmZhVzVwZEdsaGJHbDZaV1JNWVhsbGNuTWdQU0JtWVd4elpUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ2JtVjNJRlpTVFVacGNuTjBVR1Z5YzI5dUlHOWlhbVZqZEM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHaDFiV0Z1YjJsa0lFRWdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtmVnh1SUNBZ0tpQkFjR0Z5WVcwZ2JXVnphRUZ1Ym05MFlYUnBiMjV6SUVFZ2NtVnVaR1Z5WlhJZ2MyVjBkR2x1WjNNdUlGTmxaU0IwYUdVZ1pHVnpZM0pwY0hScGIyNGdiMllnVzF0U1pXNWtaWEpsY2tacGNuTjBVR1Z5YzI5dVJteGhaM05kWFNCbWIzSWdiVzl5WlNCcGJtWnZYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvYUhWdFlXNXZhV1E2SUZaU1RVaDFiV0Z1YjJsa0xDQnRaWE5vUVc1dWIzUmhkR2x2Ym5NNklGWlNUVVpwY25OMFVHVnljMjl1VFdWemFFRnVibTkwWVhScGIyNWJYU2tnZTF4dUlDQWdJSFJvYVhNdWFIVnRZVzV2YVdRZ1BTQm9kVzFoYm05cFpEdGNiaUFnSUNCMGFHbHpMbTFsYzJoQmJtNXZkR0YwYVc5dWN5QTlJRzFsYzJoQmJtNXZkR0YwYVc5dWN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEYjNCNUlIUm9aU0JuYVhabGJpQjdRR3hwYm1zZ1ZsSk5SbWx5YzNSUVpYSnpiMjU5SUdsdWRHOGdkR2hwY3lCdmJtVXVYRzRnSUNBcUlIdEFiR2x1YXlCb2RXMWhibTlwWkgwZ2JYVnpkQ0JpWlNCellXMWxJR0Z6SUhSb1pTQnpiM1Z5WTJVZ2IyNWxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2MyOTFjbU5sSUZSb1pTQjdRR3hwYm1zZ1ZsSk5SbWx5YzNSUVpYSnpiMjU5SUhsdmRTQjNZVzUwSUhSdklHTnZjSGxjYmlBZ0lDb2dRSEpsZEhWeWJuTWdkR2hwYzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmNIa29jMjkxY21ObE9pQldVazFHYVhKemRGQmxjbk52YmlrNklIUm9hWE1nZTF4dUlDQWdJR2xtSUNoMGFHbHpMbWgxYldGdWIybGtJQ0U5UFNCemIzVnlZMlV1YUhWdFlXNXZhV1FwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVmxKTlJtbHljM1JRWlhKemIyNDZJR2gxYldGdWIybGtJRzExYzNRZ1ltVWdjMkZ0WlNCcGJpQnZjbVJsY2lCMGJ5QmpiM0I1SnlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NXRaWE5vUVc1dWIzUmhkR2x2Ym5NZ1BTQnpiM1Z5WTJVdWJXVnphRUZ1Ym05MFlYUnBiMjV6TG0xaGNDZ29ZVzV1YjNSaGRHbHZiaWtnUFQ0Z0tIdGNiaUFnSUNBZ0lHMWxjMmhsY3pvZ1lXNXViM1JoZEdsdmJpNXRaWE5vWlhNdVkyOXVZMkYwS0Nrc1hHNGdJQ0FnSUNCMGVYQmxPaUJoYm01dmRHRjBhVzl1TG5SNWNHVXNYRzRnSUNBZ2ZTa3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaElHTnNiMjVsSUc5bUlIUm9hWE1nZTBCc2FXNXJJRlpTVFVacGNuTjBVR1Z5YzI5dWZTNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ1EyOXdhV1ZrSUh0QWJHbHVheUJXVWsxR2FYSnpkRkJsY25OdmJuMWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmpiRzl1WlNncE9pQldVazFHYVhKemRGQmxjbk52YmlCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCV1VrMUdhWEp6ZEZCbGNuTnZiaWgwYUdsekxtaDFiV0Z1YjJsa0xDQjBhR2x6TG0xbGMyaEJibTV2ZEdGMGFXOXVjeWt1WTI5d2VTaDBhR2x6S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJR05oYldWeVlTQnNZWGxsY2lCeVpYQnlaWE5sYm5SeklHQkdhWEp6ZEZCbGNuTnZiazl1YkhsZ0lHeGhlV1Z5TGx4dUlDQWdLaUJPYjNSbElIUm9ZWFFnS2lwNWIzVWdiWFZ6ZENCallXeHNJSHRBYkdsdWF5QnpaWFIxY0gwZ1ptbHljM1FnWW1WbWIzSmxJSGx2ZFNCMWMyVWdkR2hsSUd4aGVXVnlJR1psWVhSMWNtVXFLaUJ2Y2lCcGRDQmtiMlZ6SUc1dmRDQjNiM0pySUhCeWIzQmxjbXg1TGx4dUlDQWdLbHh1SUNBZ0tpQlVhR1VnZG1Gc2RXVWdhWE1nZTBCc2FXNXJJRVJGUmtGVlRGUmZSa2xTVTFSUVJWSlRUMDVmVDA1TVdWOU1RVmxGVW4wZ1lua2daR1ZtWVhWc2RDQmlkWFFnZVc5MUlHTmhiaUJqYUdGdVoyVWdkR2hsSUd4aGVXVnlJR0o1SUhOd1pXTnBabmxwYm1jZ2RtbGhJSHRBYkdsdWF5QnpaWFIxY0gwZ2FXWWdlVzkxSUhCeVpXWmxjaTVjYmlBZ0lDcGNiaUFnSUNvZ1FITmxaU0JvZEhSd2N6b3ZMM1p5YlM1a1pYWXZaVzR2ZFc1cGRuSnRMMkZ3YVM5MWJtbDJjbTFmZFhObFgyWnBjbk4wY0dWeWMyOXVMMXh1SUNBZ0tpQkFjMlZsSUdoMGRIQnpPaTh2ZEdoeVpXVnFjeTV2Y21jdlpHOWpjeThqWVhCcEwyVnVMMk52Y21VdlRHRjVaWEp6WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMElHWnBjbk4wVUdWeWMyOXVUMjVzZVV4aGVXVnlLQ2s2SUc1MWJXSmxjaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDJacGNuTjBVR1Z5YzI5dVQyNXNlVXhoZVdWeU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnWTJGdFpYSmhJR3hoZVdWeUlISmxjSEpsYzJWdWRITWdZRlJvYVhKa1VHVnljMjl1VDI1c2VXQWdiR0Y1WlhJdVhHNGdJQ0FxSUU1dmRHVWdkR2hoZENBcUtubHZkU0J0ZFhOMElHTmhiR3dnZTBCc2FXNXJJSE5sZEhWd2ZTQm1hWEp6ZENCaVpXWnZjbVVnZVc5MUlIVnpaU0IwYUdVZ2JHRjVaWElnWm1WaGRIVnlaU29xSUc5eUlHbDBJR1J2WlhNZ2JtOTBJSGR2Y21zZ2NISnZjR1Z5YkhrdVhHNGdJQ0FxWEc0Z0lDQXFJRlJvWlNCMllXeDFaU0JwY3lCN1FHeHBibXNnUkVWR1FWVk1WRjlVU0VsU1JGQkZVbE5QVGw5UFRreFpYMHhCV1VWU2ZTQmllU0JrWldaaGRXeDBJR0oxZENCNWIzVWdZMkZ1SUdOb1lXNW5aU0IwYUdVZ2JHRjVaWElnWW5rZ2MzQmxZMmxtZVdsdVp5QjJhV0VnZTBCc2FXNXJJSE5sZEhWd2ZTQnBaaUI1YjNVZ2NISmxabVZ5TGx4dUlDQWdLbHh1SUNBZ0tpQkFjMlZsSUdoMGRIQnpPaTh2ZG5KdExtUmxkaTlsYmk5MWJtbDJjbTB2WVhCcEwzVnVhWFp5YlY5MWMyVmZabWx5YzNSd1pYSnpiMjR2WEc0Z0lDQXFJRUJ6WldVZ2FIUjBjSE02THk5MGFISmxaV3B6TG05eVp5OWtiMk56THlOaGNHa3ZaVzR2WTI5eVpTOU1ZWGxsY25OY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUWdkR2hwY21SUVpYSnpiMjVQYm14NVRHRjVaWElvS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmRHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nU1c0Z2RHaHBjeUJ0WlhSb2IyUXNJR2wwSUdGemMybG5ibk1nYkdGNVpYSnpJR1p2Y2lCbGRtVnllU0J0WlhOb1pYTWdZbUZ6WldRZ2IyNGdiV1Z6YUNCaGJtNXZkR0YwYVc5dWN5NWNiaUFnSUNvZ1dXOTFJRzExYzNRZ1kyRnNiQ0IwYUdseklHMWxkR2h2WkNCbWFYSnpkQ0JpWldadmNtVWdlVzkxSUhWelpTQjBhR1VnYkdGNVpYSWdabVZoZEhWeVpTNWNiaUFnSUNwY2JpQWdJQ29nVkdocGN5QnBjeUJoYmlCbGNYVnBkbUZzWlc1MElHOW1JRnRXVWsxR2FYSnpkRkJsY25OdmJpNVRaWFIxY0Ywb2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwzWnliUzFqTDFWdWFWWlNUUzlpYkc5aUx6Y3pZVFZpWkRobVkyUmtZV0V5WVRkaE9EY3pOVEE1T1dFNU4yVTJNMk01WkdJelpUVmxZVEF2UVhOelpYUnpMMVpTVFM5U2RXNTBhVzFsTDBacGNuTjBVR1Z5YzI5dUwxWlNUVVpwY25OMFVHVnljMjl1TG1Oekkwd3lPVFV0VERJNU9Ta2diMllnZEdobElGVnVhVlpTVFM1Y2JpQWdJQ3BjYmlBZ0lDb2dWR2hsSUdCallXMWxjbUZNWVhsbGNtQWdjR0Z5WVcxbGRHVnlJSE53WldOcFptbGxjeUIzYUdsamFDQnNZWGxsY2lCM2FXeHNJR0psSUdGemMybG5ibVZrSUdadmNpQmdSbWx5YzNSUVpYSnpiMjVQYm14NVlDQXZJR0JVYUdseVpGQmxjbk52Yms5dWJIbGdMbHh1SUNBZ0tpQkpiaUJWYm1sV1VrMHNJSGRsSUhOd1pXTnBabWxsWkNCMGFHOXpaU0JpZVNCdVlXMXBibWNnWldGamFDQmtaWE5wY21Wa0lHeGhlV1Z5SUdGeklHQkdTVkpUVkZCRlVsTlBUbDlQVGt4WlgweEJXVVZTWUNBdklHQlVTRWxTUkZCRlVsTlBUbDlQVGt4WlgweEJXVVZTWUZ4dUlDQWdLaUJpZFhRZ2QyVWdZWEpsSUdkdmFXNW5JSFJ2SUhOd1pXTnBabmtnZEdobGMyVWdiR0Y1WlhKeklHRjBJR2hsY21VZ2MybHVZMlVnZDJVZ1lYSmxJSFZ1WVdKc1pTQjBieUJ1WVcxbElHeGhlV1Z5Y3lCcGJpQlVhSEpsWlM1cWN5NWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJR05oYldWeVlVeGhlV1Z5SUZOd1pXTnBabmtnZDJocFkyZ2diR0Y1WlhJZ2QybHNiQ0JpWlNCbWIzSWdZRVpwY25OMFVHVnljMjl1VDI1c2VXQWdMeUJnVkdocGNtUlFaWEp6YjI1UGJteDVZQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6WlhSMWNDaDdYRzRnSUNBZ1ptbHljM1JRWlhKemIyNVBibXg1VEdGNVpYSWdQU0JXVWsxR2FYSnpkRkJsY25OdmJpNUVSVVpCVlV4VVgwWkpVbE5VVUVWU1UwOU9YMDlPVEZsZlRFRlpSVklzWEc0Z0lDQWdkR2hwY21SUVpYSnpiMjVQYm14NVRHRjVaWElnUFNCV1VrMUdhWEp6ZEZCbGNuTnZiaTVFUlVaQlZVeFVYMVJJU1ZKRVVFVlNVMDlPWDA5T1RGbGZURUZaUlZJc1hHNGdJSDBnUFNCN2ZTazZJSFp2YVdRZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TGw5cGJtbDBhV0ZzYVhwbFpFeGhlV1Z5Y3lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmlBZ0lDQjBhR2x6TGw5bWFYSnpkRkJsY25OdmJrOXViSGxNWVhsbGNpQTlJR1pwY25OMFVHVnljMjl1VDI1c2VVeGhlV1Z5TzF4dUlDQWdJSFJvYVhNdVgzUm9hWEprVUdWeWMyOXVUMjVzZVV4aGVXVnlJRDBnZEdocGNtUlFaWEp6YjI1UGJteDVUR0Y1WlhJN1hHNWNiaUFnSUNCMGFHbHpMbTFsYzJoQmJtNXZkR0YwYVc5dWN5NW1iM0pGWVdOb0tDaHBkR1Z0S1NBOVBpQjdYRzRnSUNBZ0lDQnBkR1Z0TG0xbGMyaGxjeTVtYjNKRllXTm9LQ2h0WlhOb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdsbUlDaHBkR1Z0TG5SNWNHVWdQVDA5SUNkbWFYSnpkRkJsY25OdmJrOXViSGtuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiV1Z6YUM1c1lYbGxjbk11YzJWMEtIUm9hWE11WDJacGNuTjBVR1Z5YzI5dVQyNXNlVXhoZVdWeUtUdGNiaUFnSUNBZ0lDQWdJQ0J0WlhOb0xuUnlZWFpsY25ObEtDaGphR2xzWkNrZ1BUNGdZMmhwYkdRdWJHRjVaWEp6TG5ObGRDaDBhR2x6TGw5bWFYSnpkRkJsY25OdmJrOXViSGxNWVhsbGNpa3BPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0dsMFpXMHVkSGx3WlNBOVBUMGdKM1JvYVhKa1VHVnljMjl1VDI1c2VTY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCdFpYTm9MbXhoZVdWeWN5NXpaWFFvZEdocGN5NWZkR2hwY21SUVpYSnpiMjVQYm14NVRHRjVaWElwTzF4dUlDQWdJQ0FnSUNBZ0lHMWxjMmd1ZEhKaGRtVnljMlVvS0dOb2FXeGtLU0E5UGlCamFHbHNaQzVzWVhsbGNuTXVjMlYwS0hSb2FYTXVYM1JvYVhKa1VHVnljMjl1VDI1c2VVeGhlV1Z5S1NrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9hWFJsYlM1MGVYQmxJRDA5UFNBbllYVjBieWNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5amNtVmhkR1ZJWldGa2JHVnpjMDF2WkdWc0tHMWxjMmdwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lIUm9hWE11WDJsdWFYUnBZV3hwZW1Wa1RHRjVaWEp6SUQwZ2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJWNFkyeDFaR1ZVY21saGJtZHNaWE1vZEhKcFlXNW5iR1Z6T2lCdWRXMWlaWEpiWFN3Z1luZHpPaUJ1ZFcxaVpYSmJYVnRkTENCemEybHVTVzVrWlhnNklHNTFiV0psY2x0ZFcxMHNJR1Y0WTJ4MVpHVTZJRzUxYldKbGNsdGRLVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnNaWFFnWTI5MWJuUWdQU0F3TzF4dUlDQWdJR2xtSUNoaWQzTWdJVDBnYm5Wc2JDQW1KaUJpZDNNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0IwY21saGJtZHNaWE11YkdWdVozUm9PeUJwSUNzOUlETXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZU0E5SUhSeWFXRnVaMnhsYzF0cFhUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1lpQTlJSFJ5YVdGdVoyeGxjMXRwSUNzZ01WMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTWdQU0IwY21saGJtZHNaWE5iYVNBcklESmRPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmlkekFnUFNCaWQzTmJZVjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5yYVc0d0lEMGdjMnRwYmtsdVpHVjRXMkZkTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2hpZHpCYk1GMGdQaUF3SUNZbUlHVjRZMngxWkdVdWFXNWpiSFZrWlhNb2MydHBiakJiTUYwcEtTQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0dKM01Gc3hYU0ErSURBZ0ppWWdaWGhqYkhWa1pTNXBibU5zZFdSbGN5aHphMmx1TUZzeFhTa3BJR052Ym5ScGJuVmxPMXh1SUNBZ0lDQWdJQ0JwWmlBb1luY3dXekpkSUQ0Z01DQW1KaUJsZUdOc2RXUmxMbWx1WTJ4MVpHVnpLSE5yYVc0d1d6SmRLU2tnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUdsbUlDaGlkekJiTTEwZ1BpQXdJQ1ltSUdWNFkyeDFaR1V1YVc1amJIVmtaWE1vYzJ0cGJqQmJNMTBwS1NCamIyNTBhVzUxWlR0Y2JseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaWR6RWdQU0JpZDNOYllsMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElITnJhVzR4SUQwZ2MydHBia2x1WkdWNFcySmRPMXh1SUNBZ0lDQWdJQ0JwWmlBb1luY3hXekJkSUQ0Z01DQW1KaUJsZUdOc2RXUmxMbWx1WTJ4MVpHVnpLSE5yYVc0eFd6QmRLU2tnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0FnSUdsbUlDaGlkekZiTVYwZ1BpQXdJQ1ltSUdWNFkyeDFaR1V1YVc1amJIVmtaWE1vYzJ0cGJqRmJNVjBwS1NCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR0ozTVZzeVhTQStJREFnSmlZZ1pYaGpiSFZrWlM1cGJtTnNkV1JsY3loemEybHVNVnN5WFNrcElHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWW5jeFd6TmRJRDRnTUNBbUppQmxlR05zZFdSbExtbHVZMngxWkdWektITnJhVzR4V3pOZEtTa2dZMjl1ZEdsdWRXVTdYRzVjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZbmN5SUQwZ1luZHpXMk5kTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6YTJsdU1pQTlJSE5yYVc1SmJtUmxlRnRqWFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR0ozTWxzd1hTQStJREFnSmlZZ1pYaGpiSFZrWlM1cGJtTnNkV1JsY3loemEybHVNbHN3WFNrcElHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQnBaaUFvWW5jeVd6RmRJRDRnTUNBbUppQmxlR05zZFdSbExtbHVZMngxWkdWektITnJhVzR5V3pGZEtTa2dZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJR2xtSUNoaWR6SmJNbDBnUGlBd0lDWW1JR1Y0WTJ4MVpHVXVhVzVqYkhWa1pYTW9jMnRwYmpKYk1sMHBLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHSjNNbHN6WFNBK0lEQWdKaVlnWlhoamJIVmtaUzVwYm1Oc2RXUmxjeWh6YTJsdU1sc3pYU2twSUdOdmJuUnBiblZsTzF4dVhHNGdJQ0FnSUNBZ0lIUnlhV0Z1WjJ4bGMxdGpiM1Z1ZENzclhTQTlJR0U3WEc0Z0lDQWdJQ0FnSUhSeWFXRnVaMnhsYzF0amIzVnVkQ3NyWFNBOUlHSTdYRzRnSUNBZ0lDQWdJSFJ5YVdGdVoyeGxjMXRqYjNWdWRDc3JYU0E5SUdNN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmpiM1Z1ZER0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gyTnlaV0YwWlVWeVlYTmxaRTFsYzJnb2MzSmpPaUJVU0ZKRlJTNVRhMmx1Ym1Wa1RXVnphQ3dnWlhKaGMybHVaMEp2Ym1WelNXNWtaWGc2SUc1MWJXSmxjbHRkS1RvZ1ZFaFNSVVV1VTJ0cGJtNWxaRTFsYzJnZ2UxeHVJQ0FnSUdOdmJuTjBJR1J6ZENBOUlHNWxkeUJVU0ZKRlJTNVRhMmx1Ym1Wa1RXVnphQ2h6Y21NdVoyVnZiV1YwY25rdVkyeHZibVVvS1N3Z2MzSmpMbTFoZEdWeWFXRnNLVHRjYmlBZ0lDQmtjM1F1Ym1GdFpTQTlJR0FrZTNOeVl5NXVZVzFsZlNobGNtRnpaU2xnTzF4dUlDQWdJR1J6ZEM1bWNuVnpkSFZ0UTNWc2JHVmtJRDBnYzNKakxtWnlkWE4wZFcxRGRXeHNaV1E3WEc0Z0lDQWdaSE4wTG14aGVXVnljeTV6WlhRb2RHaHBjeTVmWm1seWMzUlFaWEp6YjI1UGJteDVUR0Y1WlhJcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWjJWdmJXVjBjbmtnUFNCa2MzUXVaMlZ2YldWMGNuazdYRzVjYmlBZ0lDQmpiMjV6ZENCemEybHVTVzVrWlhoQmRIUnlJRDBnWjJWdmJXVjBjbmt1WjJWMFFYUjBjbWxpZFhSbEtDZHphMmx1U1c1a1pYZ25LVHRjYmlBZ0lDQmpiMjV6ZENCemEybHVTVzVrWlhoQmRIUnlRWEp5WVhrZ1BTQnphMmx1U1c1a1pYaEJkSFJ5SUdsdWMzUmhibU5sYjJZZ1ZFaFNSVVV1UjB4Q2RXWm1aWEpCZEhSeWFXSjFkR1VnUHlCYlhTQTZJSE5yYVc1SmJtUmxlRUYwZEhJdVlYSnlZWGs3WEc0Z0lDQWdZMjl1YzNRZ2MydHBia2x1WkdWNElEMGdXMTA3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J6YTJsdVNXNWtaWGhCZEhSeVFYSnlZWGt1YkdWdVozUm9PeUJwSUNzOUlEUXBJSHRjYmlBZ0lDQWdJSE5yYVc1SmJtUmxlQzV3ZFhOb0tGdGNiaUFnSUNBZ0lDQWdjMnRwYmtsdVpHVjRRWFIwY2tGeWNtRjVXMmxkTEZ4dUlDQWdJQ0FnSUNCemEybHVTVzVrWlhoQmRIUnlRWEp5WVhsYmFTQXJJREZkTEZ4dUlDQWdJQ0FnSUNCemEybHVTVzVrWlhoQmRIUnlRWEp5WVhsYmFTQXJJREpkTEZ4dUlDQWdJQ0FnSUNCemEybHVTVzVrWlhoQmRIUnlRWEp5WVhsYmFTQXJJRE5kTEZ4dUlDQWdJQ0FnWFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjMnRwYmxkbGFXZG9kRUYwZEhJZ1BTQm5aVzl0WlhSeWVTNW5aWFJCZEhSeWFXSjFkR1VvSjNOcmFXNVhaV2xuYUhRbktUdGNiaUFnSUNCamIyNXpkQ0J6YTJsdVYyVnBaMmgwUVhSMGNrRnljbUY1SUQwZ2MydHBibGRsYVdkb2RFRjBkSElnYVc1emRHRnVZMlZ2WmlCVVNGSkZSUzVIVEVKMVptWmxja0YwZEhKcFluVjBaU0EvSUZ0ZElEb2djMnRwYmxkbGFXZG9kRUYwZEhJdVlYSnlZWGs3WEc0Z0lDQWdZMjl1YzNRZ2MydHBibGRsYVdkb2RDQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzJ0cGJsZGxhV2RvZEVGMGRISkJjbkpoZVM1c1pXNW5kR2c3SUdrZ0t6MGdOQ2tnZTF4dUlDQWdJQ0FnYzJ0cGJsZGxhV2RvZEM1d2RYTm9LRnRjYmlBZ0lDQWdJQ0FnYzJ0cGJsZGxhV2RvZEVGMGRISkJjbkpoZVZ0cFhTeGNiaUFnSUNBZ0lDQWdjMnRwYmxkbGFXZG9kRUYwZEhKQmNuSmhlVnRwSUNzZ01WMHNYRzRnSUNBZ0lDQWdJSE5yYVc1WFpXbG5hSFJCZEhSeVFYSnlZWGxiYVNBcklESmRMRnh1SUNBZ0lDQWdJQ0J6YTJsdVYyVnBaMmgwUVhSMGNrRnljbUY1VzJrZ0t5QXpYU3hjYmlBZ0lDQWdJRjBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHbHVaR1Y0SUQwZ1oyVnZiV1YwY25rdVoyVjBTVzVrWlhnb0tUdGNiaUFnSUNCcFppQW9JV2x1WkdWNEtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hDSlVhR1VnWjJWdmJXVjBjbmtnWkc5bGMyNG5kQ0JvWVhabElHRnVJR2x1WkdWNElHSjFabVpsY2x3aUtUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdiMnhrVkhKcFlXNW5iR1Z6SUQwZ1FYSnlZWGt1Wm5KdmJTaHBibVJsZUM1aGNuSmhlU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmpiM1Z1ZENBOUlIUm9hWE11WDJWNFkyeDFaR1ZVY21saGJtZHNaWE1vYjJ4a1ZISnBZVzVuYkdWekxDQnphMmx1VjJWcFoyaDBMQ0J6YTJsdVNXNWtaWGdzSUdWeVlYTnBibWRDYjI1bGMwbHVaR1Y0S1R0Y2JpQWdJQ0JqYjI1emRDQnVaWGRVY21saGJtZHNaVG9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHTnZkVzUwT3lCcEt5c3BJSHRjYmlBZ0lDQWdJRzVsZDFSeWFXRnVaMnhsVzJsZElEMGdiMnhrVkhKcFlXNW5iR1Z6VzJsZE8xeHVJQ0FnSUgxY2JpQWdJQ0JuWlc5dFpYUnllUzV6WlhSSmJtUmxlQ2h1WlhkVWNtbGhibWRzWlNrN1hHNWNiaUFnSUNBdkx5QnRkRzl2YmlCdFlYUmxjbWxoYkNCcGJtTnNkV1JsY3lCdmJrSmxabTl5WlZKbGJtUmxjaTRnZEdocGN5QnBjeUIxYm5OMWNIQnZjblJsWkNCaGRDQlRhMmx1Ym1Wa1RXVnphQ05qYkc5dVpWeHVJQ0FnSUdsbUlDaHpjbU11YjI1Q1pXWnZjbVZTWlc1a1pYSXBJSHRjYmlBZ0lDQWdJR1J6ZEM1dmJrSmxabTl5WlZKbGJtUmxjaUE5SUhOeVl5NXZia0psWm05eVpWSmxibVJsY2p0Y2JpQWdJQ0I5WEc0Z0lDQWdaSE4wTG1KcGJtUW9ibVYzSUZSSVVrVkZMbE5yWld4bGRHOXVLSE55WXk1emEyVnNaWFJ2Ymk1aWIyNWxjeXdnYzNKakxuTnJaV3hsZEc5dUxtSnZibVZKYm5abGNuTmxjeWtzSUc1bGR5QlVTRkpGUlM1TllYUnlhWGcwS0NrcE8xeHVJQ0FnSUhKbGRIVnliaUJrYzNRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOWpjbVZoZEdWSVpXRmtiR1Z6YzAxdlpHVnNSbTl5VTJ0cGJtNWxaRTFsYzJnb2NHRnlaVzUwT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ3dnYldWemFEb2dWRWhTUlVVdVUydHBibTVsWkUxbGMyZ3BPaUIyYjJsa0lIdGNiaUFnSUNCamIyNXpkQ0JsY21GelpVSnZibVZKYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUcxbGMyZ3VjMnRsYkdWMGIyNHVZbTl1WlhNdVptOXlSV0ZqYUNnb1ltOXVaU3dnYVc1a1pYZ3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TGw5cGMwVnlZWE5sVkdGeVoyVjBLR0p2Ym1VcEtTQmxjbUZ6WlVKdmJtVkpibVJsZUdWekxuQjFjMmdvYVc1a1pYZ3BPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdMeThnVlc1c2FXdGxJRlZ1YVZaU1RTQjNaU0JrYjI0bmRDQmpiM0I1SUcxbGMyZ2dhV1lnYm04Z2FXNTJhWE5wWW14bElHSnZibVVnZDJGeklHWnZkVzVrWEc0Z0lDQWdhV1lnS0NGbGNtRnpaVUp2Ym1WSmJtUmxlR1Z6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnYldWemFDNXNZWGxsY25NdVpXNWhZbXhsS0hSb2FYTXVYM1JvYVhKa1VHVnljMjl1VDI1c2VVeGhlV1Z5S1R0Y2JpQWdJQ0FnSUcxbGMyZ3ViR0Y1WlhKekxtVnVZV0pzWlNoMGFHbHpMbDltYVhKemRGQmxjbk52Yms5dWJIbE1ZWGxsY2lrN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1SUNBZ0lHMWxjMmd1YkdGNVpYSnpMbk5sZENoMGFHbHpMbDkwYUdseVpGQmxjbk52Yms5dWJIbE1ZWGxsY2lrN1hHNGdJQ0FnWTI5dWMzUWdibVYzVFdWemFDQTlJSFJvYVhNdVgyTnlaV0YwWlVWeVlYTmxaRTFsYzJnb2JXVnphQ3dnWlhKaGMyVkNiMjVsU1c1a1pYaGxjeWs3WEc0Z0lDQWdjR0Z5Wlc1MExtRmtaQ2h1WlhkTlpYTm9LVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJOeVpXRjBaVWhsWVdSc1pYTnpUVzlrWld3b2JtOWtaVG9nVkVoU1JVVXVUMkpxWldOME0wUXBPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9ibTlrWlM1MGVYQmxJRDA5UFNBblIzSnZkWEFuS1NCN1hHNGdJQ0FnSUNCdWIyUmxMbXhoZVdWeWN5NXpaWFFvZEdocGN5NWZkR2hwY21SUVpYSnpiMjVQYm14NVRHRjVaWElwTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WDJselJYSmhjMlZVWVhKblpYUW9ibTlrWlNrcElIdGNiaUFnSUNBZ0lDQWdibTlrWlM1MGNtRjJaWEp6WlNnb1kyaHBiR1FwSUQwK0lHTm9hV3hrTG14aGVXVnljeTV6WlhRb2RHaHBjeTVmZEdocGNtUlFaWEp6YjI1UGJteDVUR0Y1WlhJcEtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGNtVnVkQ0E5SUc1bGR5QlVTRkpGUlM1SGNtOTFjQ2dwTzF4dUlDQWdJQ0FnSUNCd1lYSmxiblF1Ym1GdFpTQTlJR0JmYUdWaFpHeGxjM05mSkh0dWIyUmxMbTVoYldWOVlEdGNiaUFnSUNBZ0lDQWdjR0Z5Wlc1MExteGhlV1Z5Y3k1elpYUW9kR2hwY3k1ZlptbHljM1JRWlhKemIyNVBibXg1VEdGNVpYSXBPMXh1SUNBZ0lDQWdJQ0J1YjJSbExuQmhjbVZ1ZENFdVlXUmtLSEJoY21WdWRDazdYRzRnSUNBZ0lDQWdJRzV2WkdVdVkyaHBiR1J5Wlc1Y2JpQWdJQ0FnSUNBZ0lDQXVabWxzZEdWeUtDaGphR2xzWkNrZ1BUNGdZMmhwYkdRdWRIbHdaU0E5UFQwZ0oxTnJhVzV1WldSTlpYTm9KeWxjYmlBZ0lDQWdJQ0FnSUNBdVptOXlSV0ZqYUNnb1kyaHBiR1FwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE5yYVc1dVpXUk5aWE5vSUQwZ1kyaHBiR1FnWVhNZ1ZFaFNSVVV1VTJ0cGJtNWxaRTFsYzJnN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxsOWpjbVZoZEdWSVpXRmtiR1Z6YzAxdlpHVnNSbTl5VTJ0cGJtNWxaRTFsYzJnb2NHRnlaVzUwTENCemEybHVibVZrVFdWemFDazdYRzRnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJR2xtSUNodWIyUmxMblI1Y0dVZ1BUMDlJQ2RUYTJsdWJtVmtUV1Z6YUNjcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhOcmFXNXVaV1JOWlhOb0lEMGdibTlrWlNCaGN5QlVTRkpGUlM1VGEybHVibVZrVFdWemFEdGNiaUFnSUNBZ0lIUm9hWE11WDJOeVpXRjBaVWhsWVdSc1pYTnpUVzlrWld4R2IzSlRhMmx1Ym1Wa1RXVnphQ2h1YjJSbExuQmhjbVZ1ZENFc0lITnJhVzV1WldSTlpYTm9LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdVgybHpSWEpoYzJWVVlYSm5aWFFvYm05a1pTa3BJSHRjYmlBZ0lDQWdJQ0FnYm05a1pTNXNZWGxsY25NdWMyVjBLSFJvYVhNdVgzUm9hWEprVUdWeWMyOXVUMjVzZVV4aGVXVnlLVHRjYmlBZ0lDQWdJQ0FnYm05a1pTNTBjbUYyWlhKelpTZ29ZMmhwYkdRcElEMCtJR05vYVd4a0xteGhlV1Z5Y3k1elpYUW9kR2hwY3k1ZmRHaHBjbVJRWlhKemIyNVBibXg1VEdGNVpYSXBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRjlwYzBWeVlYTmxWR0Z5WjJWMEtHSnZibVU2SUZSSVVrVkZMazlpYW1WamRETkVLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0dKdmJtVWdQVDA5SUhSb2FYTXVhSFZ0WVc1dmFXUXVaMlYwVW1GM1FtOXVaVTV2WkdVb0oyaGxZV1FuS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hZbTl1WlM1d1lYSmxiblFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgybHpSWEpoYzJWVVlYSm5aWFFvWW05dVpTNXdZWEpsYm5RcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUlpd2lhVzF3YjNKMElIUjVjR1VnS2lCaGN5QldNRlpTVFNCbWNtOXRJQ2RBY0dsNGFYWXZkSGx3WlhNdGRuSnRMVEF1TUNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0FxSUdGeklGWXhWbEpOVTJOb1pXMWhJR1p5YjIwZ0owQndhWGhwZGk5MGVYQmxjeTEyY20xakxYWnliUzB4TGpBbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCSFRGUkdMQ0JIVEZSR1RHOWhaR1Z5VUd4MVoybHVMQ0JIVEZSR1VHRnljMlZ5SUgwZ1puSnZiU0FuZEdoeVpXVXZaWGhoYlhCc1pYTXZhbk50TDJ4dllXUmxjbk12UjB4VVJreHZZV1JsY2k1cWN5YzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVWgxYldGdWIybGtJSDBnWm5KdmJTQW5MaTR2YUhWdFlXNXZhV1F2VmxKTlNIVnRZVzV2YVdRbk8xeHVhVzF3YjNKMElIc2daMngwWmtWNGRISmhZM1JRY21sdGFYUnBkbVZ6Um5KdmJVNXZaR1Z6SUgwZ1puSnZiU0FuTGk0dmRYUnBiSE12WjJ4MFprVjRkSEpoWTNSUWNtbHRhWFJwZG1WelJuSnZiVTV2WkdVbk8xeHVhVzF3YjNKMElIc2dWbEpOUm1seWMzUlFaWEp6YjI0Z2ZTQm1jbTl0SUNjdUwxWlNUVVpwY25OMFVHVnljMjl1Snp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVmxKTlJtbHljM1JRWlhKemIyNU5aWE5vUVc1dWIzUmhkR2x2YmlCOUlHWnliMjBnSnk0dlZsSk5SbWx5YzNSUVpYSnpiMjVOWlhOb1FXNXViM1JoZEdsdmJpYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVVpwY25OMFVHVnljMjl1VFdWemFFRnVibTkwWVhScGIyNVVlWEJsSUgwZ1puSnZiU0FuTGk5V1VrMUdhWEp6ZEZCbGNuTnZiazFsYzJoQmJtNXZkR0YwYVc5dVZIbHdaU2M3WEc1cGJYQnZjblFnZXlCSFRGUkdJR0Z6SUVkTVZFWlRZMmhsYldFZ2ZTQm1jbTl0SUNkQVoyeDBaaTEwY21GdWMyWnZjbTB2WTI5eVpTYzdYRzVjYmk4cUtseHVJQ29nVUc5emMybGliR1VnYzNCbFl5QjJaWEp6YVc5dWN5QnBkQ0J5WldOdloyNXBlbVZ6TGx4dUlDb3ZYRzVqYjI1emRDQlFUMU5UU1VKTVJWOVRVRVZEWDFaRlVsTkpUMDVUSUQwZ2JtVjNJRk5sZENoYkp6RXVNQ2NzSUNjeExqQXRZbVYwWVNkZEtUdGNibHh1THlvcVhHNGdLaUJCSUhCc2RXZHBiaUJ2WmlCSFRGUkdURzloWkdWeUlIUm9ZWFFnYVcxd2IzSjBjeUJoSUh0QWJHbHVheUJXVWsxR2FYSnpkRkJsY25OdmJuMGdabkp2YlNCaElGWlNUU0JsZUhSbGJuTnBiMjRnYjJZZ1lTQkhURlJHTGx4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5SbWx5YzNSUVpYSnpiMjVNYjJGa1pYSlFiSFZuYVc0Z2FXMXdiR1Z0Wlc1MGN5QkhURlJHVEc5aFpHVnlVR3gxWjJsdUlIdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJSEJoY25ObGNqb2dSMHhVUmxCaGNuTmxjanRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJRzVoYldVb0tUb2djM1J5YVc1bklIdGNiaUFnSUNBdkx5QlhaU0J6YUc5MWJHUWdkWE5sSUhSb1pTQmxlSFJsYm5OcGIyNGdibUZ0WlNCcGJuTjBaV0ZrSUdKMWRDQjNaU0JvWVhabElHMTFiSFJwY0d4bElIQnNkV2RwYm5NZ1ptOXlJR0Z1SUdWNGRHVnVjMmx2Ymk0dUxseHVJQ0FnSUhKbGRIVnliaUFuVmxKTlJtbHljM1JRWlhKemIyNU1iMkZrWlhKUWJIVm5hVzRuTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtIQmhjbk5sY2pvZ1IweFVSbEJoY25ObGNpa2dlMXh1SUNBZ0lIUm9hWE11Y0dGeWMyVnlJRDBnY0dGeWMyVnlPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklHRm1kR1Z5VW05dmRDaG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZG5KdFNIVnRZVzV2YVdRZ1BTQm5iSFJtTG5WelpYSkVZWFJoTG5aeWJVaDFiV0Z1YjJsa0lHRnpJRlpTVFVoMWJXRnViMmxrSUh3Z2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0x5OGdaWGh3YkdsamFYUnNlU0JrYVhOMGFXNW5kV2x6YUNCdWRXeHNJR0Z1WkNCMWJtUmxabWx1WldSY2JpQWdJQ0F2THlCemFXNWpaU0IyY20xSWRXMWhibTlwWkNCdGFXZG9kQ0JpWlNCdWRXeHNJR0Z6SUdFZ2NtVnpkV3gwWEc0Z0lDQWdhV1lnS0haeWJVaDFiV0Z1YjJsa0lEMDlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNoMmNtMUlkVzFoYm05cFpDQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUNkV1VrMUdhWEp6ZEZCbGNuTnZia3h2WVdSbGNsQnNkV2RwYmpvZ2RuSnRTSFZ0WVc1dmFXUWdhWE1nZFc1a1pXWnBibVZrTGlCV1VrMUlkVzFoYm05cFpFeHZZV1JsY2xCc2RXZHBiaUJvWVhabElIUnZJR0psSUhWelpXUWdabWx5YzNRbkxGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCbmJIUm1MblZ6WlhKRVlYUmhMblp5YlVacGNuTjBVR1Z5YzI5dUlEMGdZWGRoYVhRZ2RHaHBjeTVmYVcxd2IzSjBLR2RzZEdZc0lIWnliVWgxYldGdWIybGtLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSmJYQnZjblFnWVNCN1FHeHBibXNnVmxKTlJtbHljM1JRWlhKemIyNTlJR1p5YjIwZ1lTQldVazB1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCbmJIUm1JRUVnY0dGeWMyVmtJSEpsYzNWc2RDQnZaaUJIVEZSR0lIUmhhMlZ1SUdaeWIyMGdSMHhVUmt4dllXUmxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2FIVnRZVzV2YVdRZ1FTQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1dmFXUjlJR2x1YzNSaGJtTmxJSFJvWVhRZ2NtVndjbVZ6Wlc1MGN5QjBhR1VnVmxKTlhHNGdJQ0FxTDF4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1gybHRjRzl5ZENobmJIUm1PaUJIVEZSR0xDQm9kVzFoYm05cFpEb2dWbEpOU0hWdFlXNXZhV1FnZkNCdWRXeHNLVG9nVUhKdmJXbHpaVHhXVWsxR2FYSnpkRkJsY25OdmJpQjhJRzUxYkd3K0lIdGNiaUFnSUNCcFppQW9hSFZ0WVc1dmFXUWdQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2RqRlNaWE4xYkhRZ1BTQmhkMkZwZENCMGFHbHpMbDkyTVVsdGNHOXlkQ2huYkhSbUxDQm9kVzFoYm05cFpDazdYRzRnSUNBZ2FXWWdLSFl4VW1WemRXeDBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkakZTWlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZGpCU1pYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxsOTJNRWx0Y0c5eWRDaG5iSFJtTENCb2RXMWhibTlwWkNrN1hHNGdJQ0FnYVdZZ0tIWXdVbVZ6ZFd4MEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RqQlNaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUY5Mk1VbHRjRzl5ZENobmJIUm1PaUJIVEZSR0xDQm9kVzFoYm05cFpEb2dWbEpOU0hWdFlXNXZhV1FwT2lCUWNtOXRhWE5sUEZaU1RVWnBjbk4wVUdWeWMyOXVJSHdnYm5Wc2JENGdlMXh1SUNBZ0lHTnZibk4wSUdwemIyNGdQU0IwYUdsekxuQmhjbk5sY2k1cWMyOXVJR0Z6SUVkTVZFWlRZMmhsYldFdVNVZE1WRVk3WEc1Y2JpQWdJQ0F2THlCbFlYSnNlU0JoWW05eWRDQnBaaUJwZENCa2IyVnpiaWQwSUhWelpTQjJjbTFjYmlBZ0lDQmpiMjV6ZENCcGMxWlNUVlZ6WldRZ1BTQnFjMjl1TG1WNGRHVnVjMmx2Ym5OVmMyVmtQeTVwYm1SbGVFOW1LQ2RXVWsxRFgzWnliU2NwSUNFOVBTQXRNVHRjYmlBZ0lDQnBaaUFvSVdselZsSk5WWE5sWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWlhoMFpXNXphVzl1SUQwZ2FuTnZiaTVsZUhSbGJuTnBiMjV6UHk1YkoxWlNUVU5mZG5KdEoxMGdZWE1nVmpGV1VrMVRZMmhsYldFdVZsSk5RMVpTVFNCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9JV1Y0ZEdWdWMybHZiaWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjM0JsWTFabGNuTnBiMjRnUFNCbGVIUmxibk5wYjI0dWMzQmxZMVpsY25OcGIyNDdYRzRnSUNBZ2FXWWdLQ0ZRVDFOVFNVSk1SVjlUVUVWRFgxWkZVbE5KVDA1VExtaGhjeWh6Y0dWalZtVnljMmx2YmlrcElIdGNiaUFnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhnVmxKTlJtbHljM1JRWlhKemIyNU1iMkZrWlhKUWJIVm5hVzQ2SUZWdWEyNXZkMjRnVmxKTlExOTJjbTBnYzNCbFkxWmxjbk5wYjI0Z1hDSWtlM053WldOV1pYSnphVzl1ZlZ3aVlDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCelkyaGxiV0ZHYVhKemRGQmxjbk52YmlBOUlHVjRkR1Z1YzJsdmJpNW1hWEp6ZEZCbGNuTnZianRjYmlBZ0lDQnBaaUFvSVhOamFHVnRZVVpwY25OMFVHVnljMjl1S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J0WlhOb1FXNXViM1JoZEdsdmJuTTZJRlpTVFVacGNuTjBVR1Z5YzI5dVRXVnphRUZ1Ym05MFlYUnBiMjViWFNBOUlGdGRPMXh1SUNBZ0lHTnZibk4wSUc1dlpHVlFjbWx0YVhScGRtVnpUV0Z3SUQwZ1lYZGhhWFFnWjJ4MFprVjRkSEpoWTNSUWNtbHRhWFJwZG1WelJuSnZiVTV2WkdWektHZHNkR1lwTzF4dUlDQWdJRUZ5Y21GNUxtWnliMjBvYm05a1pWQnlhVzFwZEdsMlpYTk5ZWEF1Wlc1MGNtbGxjeWdwS1M1bWIzSkZZV05vS0NoYmJtOWtaVWx1WkdWNExDQndjbWx0YVhScGRtVnpYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWVc1dWIzUmhkR2x2YmlBOUlITmphR1Z0WVVacGNuTjBVR1Z5YzI5dUxtMWxjMmhCYm01dmRHRjBhVzl1YzF4dUlDQWdJQ0FnSUNBL0lITmphR1Z0WVVacGNuTjBVR1Z5YzI5dUxtMWxjMmhCYm01dmRHRjBhVzl1Y3k1bWFXNWtLQ2hoS1NBOVBpQmhMbTV2WkdVZ1BUMDlJRzV2WkdWSmJtUmxlQ2xjYmlBZ0lDQWdJQ0FnT2lCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNBZ0lHMWxjMmhCYm01dmRHRjBhVzl1Y3k1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnYldWemFHVnpPaUJ3Y21sdGFYUnBkbVZ6TEZ4dUlDQWdJQ0FnSUNCMGVYQmxPaUJoYm01dmRHRjBhVzl1UHk1MGVYQmxJRDgvSUNkaWIzUm9KeXhjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnY21WMGRYSnVJRzVsZHlCV1VrMUdhWEp6ZEZCbGNuTnZiaWhvZFcxaGJtOXBaQ3dnYldWemFFRnVibTkwWVhScGIyNXpLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdYM1l3U1cxd2IzSjBLR2RzZEdZNklFZE1WRVlzSUdoMWJXRnViMmxrT2lCV1VrMUlkVzFoYm05cFpDazZJRkJ5YjIxcGMyVThWbEpOUm1seWMzUlFaWEp6YjI0Z2ZDQnVkV3hzUGlCN1hHNGdJQ0FnWTI5dWMzUWdhbk52YmlBOUlIUm9hWE11Y0dGeWMyVnlMbXB6YjI0Z1lYTWdSMHhVUmxOamFHVnRZUzVKUjB4VVJqdGNibHh1SUNBZ0lHTnZibk4wSUhaeWJVVjRkQ0E5SUdwemIyNHVaWGgwWlc1emFXOXVjejh1VmxKTklHRnpJRll3VmxKTkxsWlNUU0I4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb0lYWnliVVY0ZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYzJOb1pXMWhSbWx5YzNSUVpYSnpiMjQ2SUZZd1ZsSk5Ma1pwY25OMFVHVnljMjl1SUh3Z2RXNWtaV1pwYm1Wa0lEMGdkbkp0UlhoMExtWnBjbk4wVUdWeWMyOXVPMXh1SUNBZ0lHbG1JQ2doYzJOb1pXMWhSbWx5YzNSUVpYSnpiMjRwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRzFsYzJoQmJtNXZkR0YwYVc5dWN6b2dWbEpOUm1seWMzUlFaWEp6YjI1TlpYTm9RVzV1YjNSaGRHbHZibHRkSUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnYm05a1pWQnlhVzFwZEdsMlpYTk5ZWEFnUFNCaGQyRnBkQ0JuYkhSbVJYaDBjbUZqZEZCeWFXMXBkR2wyWlhOR2NtOXRUbTlrWlhNb1oyeDBaaWs3WEc1Y2JpQWdJQ0JCY25KaGVTNW1jbTl0S0c1dlpHVlFjbWx0YVhScGRtVnpUV0Z3TG1WdWRISnBaWE1vS1NrdVptOXlSV0ZqYUNnb1cyNXZaR1ZKYm1SbGVDd2djSEpwYldsMGFYWmxjMTBwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUhOamFHVnRZVTV2WkdVZ1BTQnFjMjl1TG01dlpHVnpJVnR1YjJSbFNXNWtaWGhkTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0JtYkdGbklEMGdjMk5vWlcxaFJtbHljM1JRWlhKemIyNHViV1Z6YUVGdWJtOTBZWFJwYjI1elhHNGdJQ0FnSUNBZ0lEOGdjMk5vWlcxaFJtbHljM1JRWlhKemIyNHViV1Z6YUVGdWJtOTBZWFJwYjI1ekxtWnBibVFvS0dFcElEMCtJR0V1YldWemFDQTlQVDBnYzJOb1pXMWhUbTlrWlM1dFpYTm9LVnh1SUNBZ0lDQWdJQ0E2SUhWdVpHVm1hVzVsWkR0Y2JseHVJQ0FnSUNBZ2JXVnphRUZ1Ym05MFlYUnBiMjV6TG5CMWMyZ29lMXh1SUNBZ0lDQWdJQ0J0WlhOb1pYTTZJSEJ5YVcxcGRHbDJaWE1zWEc0Z0lDQWdJQ0FnSUhSNWNHVTZJSFJvYVhNdVgyTnZiblpsY25SV01FWnNZV2RVYjFZeFZIbHdaU2htYkdGblB5NW1hWEp6ZEZCbGNuTnZia1pzWVdjcExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRlpTVFVacGNuTjBVR1Z5YzI5dUtHaDFiV0Z1YjJsa0xDQnRaWE5vUVc1dWIzUmhkR2x2Ym5NcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmZZMjl1ZG1WeWRGWXdSbXhoWjFSdlZqRlVlWEJsS0dac1lXYzZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ2s2SUZaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1VWVYQmxJSHRjYmlBZ0lDQnBaaUFvWm14aFp5QTlQVDBnSjBacGNuTjBVR1Z5YzI5dVQyNXNlU2NwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUFuWm1seWMzUlFaWEp6YjI1UGJteDVKenRjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLR1pzWVdjZ1BUMDlJQ2RVYUdseVpGQmxjbk52Yms5dWJIa25LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdKM1JvYVhKa1VHVnljMjl1VDI1c2VTYzdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaG1iR0ZuSUQwOVBTQW5RWFYwYnljcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBbllYVjBieWM3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBblltOTBhQ2M3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzRpTENJdktpQmxjMnhwYm5RdFpHbHpZV0pzWlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtRnRhVzVuTFdOdmJuWmxiblJwYjI0Z0tpOWNibHh1Wlhod2IzSjBJR052Ym5OMElGWlNUVVpwY25OMFVHVnljMjl1VFdWemFFRnVibTkwWVhScGIyNVVlWEJsSUQwZ2UxeHVJQ0JCZFhSdk9pQW5ZWFYwYnljc1hHNGdJRUp2ZEdnNklDZGliM1JvSnl4Y2JpQWdWR2hwY21SUVpYSnpiMjVQYm14NU9pQW5kR2hwY21SUVpYSnpiMjVQYm14NUp5eGNiaUFnUm1seWMzUlFaWEp6YjI1UGJteDVPaUFuWm1seWMzUlFaWEp6YjI1UGJteDVKeXhjYm4wZ1lYTWdZMjl1YzNRN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1VWVYQmxJRDFjYmlBZ2RIbHdaVzltSUZaU1RVWnBjbk4wVUdWeWMyOXVUV1Z6YUVGdWJtOTBZWFJwYjI1VWVYQmxXMnRsZVc5bUlIUjVjR1Z2WmlCV1VrMUdhWEp6ZEZCbGNuTnZiazFsYzJoQmJtNXZkR0YwYVc5dVZIbHdaVjA3WEc0aUxDSnBiWEJ2Y25RZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1cGJYQnZjblFnZXlCV1VrMUlkVzFoYmtKdmJtVWdmU0JtY205dElDY3VMaTlXVWsxSWRXMWhia0p2Ym1Vbk8xeHVhVzF3YjNKMElIc2dWbEpOU0hWdFlXNXZhV1FnZlNCbWNtOXRJQ2N1TGk5V1VrMUlkVzFoYm05cFpDYzdYRzVjYm1OdmJuTjBJRjkyTTBFZ1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WTI5dWMzUWdYM1l6UWlBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVqYjI1emRDQmZjWFZoZEVFZ1BTQnVaWGNnVkVoU1JVVXVVWFZoZEdWeWJtbHZiaWdwTzF4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlNIVnRZVzV2YVdSSVpXeHdaWElnWlhoMFpXNWtjeUJVU0ZKRlJTNUhjbTkxY0NCN1hHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQjJjbTFJZFcxaGJtOXBaRG9nVmxKTlNIVnRZVzV2YVdRN1hHNGdJSEJ5YVhaaGRHVWdYMkp2Ym1WQmVHVnpUV0Z3T2lCTllYQThWbEpOU0hWdFlXNUNiMjVsTENCVVNGSkZSUzVCZUdWelNHVnNjR1Z5UGp0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvYUhWdFlXNXZhV1E2SUZaU1RVaDFiV0Z1YjJsa0tTQjdYRzRnSUNBZ2MzVndaWElvS1R0Y2JseHVJQ0FnSUhSb2FYTXVkbkp0U0hWdFlXNXZhV1FnUFNCb2RXMWhibTlwWkR0Y2JseHVJQ0FnSUhSb2FYTXVYMkp2Ym1WQmVHVnpUV0Z3SUQwZ2JtVjNJRTFoY0NncE8xeHVYRzRnSUNBZ1QySnFaV04wTG5aaGJIVmxjeWhvZFcxaGJtOXBaQzVvZFcxaGJrSnZibVZ6S1M1bWIzSkZZV05vS0NoaWIyNWxLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JvWld4d1pYSWdQU0J1WlhjZ1ZFaFNSVVV1UVhobGMwaGxiSEJsY2lneExqQXBPMXh1WEc0Z0lDQWdJQ0JvWld4d1pYSXViV0YwY21sNFFYVjBiMVZ3WkdGMFpTQTlJR1poYkhObE8xeHVYRzRnSUNBZ0lDQW9hR1ZzY0dWeUxtMWhkR1Z5YVdGc0lHRnpJRlJJVWtWRkxrMWhkR1Z5YVdGc0tTNWtaWEIwYUZSbGMzUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDaG9aV3h3WlhJdWJXRjBaWEpwWVd3Z1lYTWdWRWhTUlVVdVRXRjBaWEpwWVd3cExtUmxjSFJvVjNKcGRHVWdQU0JtWVd4elpUdGNibHh1SUNBZ0lDQWdkR2hwY3k1aFpHUW9hR1ZzY0dWeUtUdGNibHh1SUNBZ0lDQWdkR2hwY3k1ZlltOXVaVUY0WlhOTllYQXVjMlYwS0dKdmJtVXNJR2hsYkhCbGNpazdYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaR2x6Y0c5elpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNCQmNuSmhlUzVtY205dEtIUm9hWE11WDJKdmJtVkJlR1Z6VFdGd0xuWmhiSFZsY3lncEtTNW1iM0pGWVdOb0tDaGhlR1Z6S1NBOVBpQjdYRzRnSUNBZ0lDQmhlR1Z6TG1kbGIyMWxkSEo1TG1ScGMzQnZjMlVvS1R0Y2JpQWdJQ0FnSUNoaGVHVnpMbTFoZEdWeWFXRnNJR0Z6SUZSSVVrVkZMazFoZEdWeWFXRnNLUzVrYVhOd2IzTmxLQ2s3WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nZFhCa1lYUmxUV0YwY21sNFYyOXliR1FvWm05eVkyVTZJR0p2YjJ4bFlXNHBPaUIyYjJsa0lIdGNiaUFnSUNCQmNuSmhlUzVtY205dEtIUm9hWE11WDJKdmJtVkJlR1Z6VFdGd0xtVnVkSEpwWlhNb0tTa3VabTl5UldGamFDZ29XMkp2Ym1Vc0lHRjRaWE5kS1NBOVBpQjdYRzRnSUNBZ0lDQmliMjVsTG01dlpHVXVkWEJrWVhSbFYyOXliR1JOWVhSeWFYZ29kSEoxWlN3Z1ptRnNjMlVwTzF4dVhHNGdJQ0FnSUNCaWIyNWxMbTV2WkdVdWJXRjBjbWw0VjI5eWJHUXVaR1ZqYjIxd2IzTmxLRjkyTTBFc0lGOXhkV0YwUVN3Z1gzWXpRaWs3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSE5qWVd4bElEMGdYM1l6UVM1elpYUW9NQzR4TENBd0xqRXNJREF1TVNrdVpHbDJhV1JsS0Y5Mk0wSXBPMXh1SUNBZ0lDQWdZWGhsY3k1dFlYUnlhWGd1WTI5d2VTaGliMjVsTG01dlpHVXViV0YwY21sNFYyOXliR1FwTG5OallXeGxLSE5qWVd4bEtUdGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lITjFjR1Z5TG5Wd1pHRjBaVTFoZEhKcGVGZHZjbXhrS0dadmNtTmxLVHRjYmlBZ2ZWeHVmVnh1SWl3aUx5b2daWE5zYVc1MExXUnBjMkZpYkdVZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNWhiV2x1WnkxamIyNTJaVzUwYVc5dUlDb3ZYRzVjYm1sdGNHOXlkQ0I3SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VnZlNCbWNtOXRJQ2N1TDFaU1RVaDFiV0Z1UW05dVpVNWhiV1VuTzF4dVhHNHZLaXBjYmlBcUlGUm9aU0JzYVhOMElHOW1JSHRBYkdsdWF5QldVazFJZFcxaGJrSnZibVZPWVcxbGZTNGdSR1Z3Wlc1a1pXNWplU0JoZDJGeVpTNWNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRlpTVFVoMWJXRnVRbTl1WlV4cGMzUTZJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVmJYU0E5SUZ0Y2JpQWdKMmhwY0hNbkxGeHVJQ0FuYzNCcGJtVW5MRnh1SUNBblkyaGxjM1FuTEZ4dUlDQW5kWEJ3WlhKRGFHVnpkQ2NzWEc0Z0lDZHVaV05ySnl4Y2JseHVJQ0FuYUdWaFpDY3NYRzRnSUNkc1pXWjBSWGxsSnl4Y2JpQWdKM0pwWjJoMFJYbGxKeXhjYmlBZ0oycGhkeWNzWEc1Y2JpQWdKMnhsWm5SVmNIQmxja3hsWnljc1hHNGdJQ2RzWldaMFRHOTNaWEpNWldjbkxGeHVJQ0FuYkdWbWRFWnZiM1FuTEZ4dUlDQW5iR1ZtZEZSdlpYTW5MRnh1WEc0Z0lDZHlhV2RvZEZWd2NHVnlUR1ZuSnl4Y2JpQWdKM0pwWjJoMFRHOTNaWEpNWldjbkxGeHVJQ0FuY21sbmFIUkdiMjkwSnl4Y2JpQWdKM0pwWjJoMFZHOWxjeWNzWEc1Y2JpQWdKMnhsWm5SVGFHOTFiR1JsY2ljc1hHNGdJQ2RzWldaMFZYQndaWEpCY20wbkxGeHVJQ0FuYkdWbWRFeHZkMlZ5UVhKdEp5eGNiaUFnSjJ4bFpuUklZVzVrSnl4Y2JseHVJQ0FuY21sbmFIUlRhRzkxYkdSbGNpY3NYRzRnSUNkeWFXZG9kRlZ3Y0dWeVFYSnRKeXhjYmlBZ0ozSnBaMmgwVEc5M1pYSkJjbTBuTEZ4dUlDQW5jbWxuYUhSSVlXNWtKeXhjYmx4dUlDQW5iR1ZtZEZSb2RXMWlUV1YwWVdOaGNuQmhiQ2NzWEc0Z0lDZHNaV1owVkdoMWJXSlFjbTk0YVcxaGJDY3NYRzRnSUNkc1pXWjBWR2gxYldKRWFYTjBZV3duTEZ4dUlDQW5iR1ZtZEVsdVpHVjRVSEp2ZUdsdFlXd25MRnh1SUNBbmJHVm1kRWx1WkdWNFNXNTBaWEp0WldScFlYUmxKeXhjYmlBZ0oyeGxablJKYm1SbGVFUnBjM1JoYkNjc1hHNGdJQ2RzWldaMFRXbGtaR3hsVUhKdmVHbHRZV3duTEZ4dUlDQW5iR1ZtZEUxcFpHUnNaVWx1ZEdWeWJXVmthV0YwWlNjc1hHNGdJQ2RzWldaMFRXbGtaR3hsUkdsemRHRnNKeXhjYmlBZ0oyeGxablJTYVc1blVISnZlR2x0WVd3bkxGeHVJQ0FuYkdWbWRGSnBibWRKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0FuYkdWbWRGSnBibWRFYVhOMFlXd25MRnh1SUNBbmJHVm1kRXhwZEhSc1pWQnliM2hwYldGc0p5eGNiaUFnSjJ4bFpuUk1hWFIwYkdWSmJuUmxjbTFsWkdsaGRHVW5MRnh1SUNBbmJHVm1kRXhwZEhSc1pVUnBjM1JoYkNjc1hHNWNiaUFnSjNKcFoyaDBWR2gxYldKTlpYUmhZMkZ5Y0dGc0p5eGNiaUFnSjNKcFoyaDBWR2gxYldKUWNtOTRhVzFoYkNjc1hHNGdJQ2R5YVdkb2RGUm9kVzFpUkdsemRHRnNKeXhjYmlBZ0ozSnBaMmgwU1c1a1pYaFFjbTk0YVcxaGJDY3NYRzRnSUNkeWFXZG9kRWx1WkdWNFNXNTBaWEp0WldScFlYUmxKeXhjYmlBZ0ozSnBaMmgwU1c1a1pYaEVhWE4wWVd3bkxGeHVJQ0FuY21sbmFIUk5hV1JrYkdWUWNtOTRhVzFoYkNjc1hHNGdJQ2R5YVdkb2RFMXBaR1JzWlVsdWRHVnliV1ZrYVdGMFpTY3NYRzRnSUNkeWFXZG9kRTFwWkdSc1pVUnBjM1JoYkNjc1hHNGdJQ2R5YVdkb2RGSnBibWRRY205NGFXMWhiQ2NzWEc0Z0lDZHlhV2RvZEZKcGJtZEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQW5jbWxuYUhSU2FXNW5SR2x6ZEdGc0p5eGNiaUFnSjNKcFoyaDBUR2wwZEd4bFVISnZlR2x0WVd3bkxGeHVJQ0FuY21sbmFIUk1hWFIwYkdWSmJuUmxjbTFsWkdsaGRHVW5MRnh1SUNBbmNtbG5hSFJNYVhSMGJHVkVhWE4wWVd3bkxGeHVYVHRjYmlJc0lpOHFJR1Z6YkdsdWRDMWthWE5oWW14bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVZVzFwYm1jdFkyOXVkbVZ1ZEdsdmJpQXFMMXh1WEc0dktpcGNiaUFxSUZSb1pTQnVZVzFsY3lCdlppQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1dmFXUjlJR0p2Ym1VZ2JtRnRaWE11WEc0Z0tseHVJQ29nVW1WbU9pQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZkbkp0TFdNdmRuSnRMWE53WldOcFptbGpZWFJwYjI0dllteHZZaTl0WVhOMFpYSXZjM0JsWTJsbWFXTmhkR2x2Ymk5V1VrMURYM1p5YlMweExqQXZhSFZ0WVc1dmFXUXViV1JjYmlBcUwxeHVaWGh3YjNKMElHTnZibk4wSUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VnUFNCN1hHNGdJRWhwY0hNNklDZG9hWEJ6Snl4Y2JpQWdVM0JwYm1VNklDZHpjR2x1WlNjc1hHNGdJRU5vWlhOME9pQW5ZMmhsYzNRbkxGeHVJQ0JWY0hCbGNrTm9aWE4wT2lBbmRYQndaWEpEYUdWemRDY3NYRzRnSUU1bFkyczZJQ2R1WldOckp5eGNibHh1SUNCSVpXRmtPaUFuYUdWaFpDY3NYRzRnSUV4bFpuUkZlV1U2SUNkc1pXWjBSWGxsSnl4Y2JpQWdVbWxuYUhSRmVXVTZJQ2R5YVdkb2RFVjVaU2NzWEc0Z0lFcGhkem9nSjJwaGR5Y3NYRzVjYmlBZ1RHVm1kRlZ3Y0dWeVRHVm5PaUFuYkdWbWRGVndjR1Z5VEdWbkp5eGNiaUFnVEdWbWRFeHZkMlZ5VEdWbk9pQW5iR1ZtZEV4dmQyVnlUR1ZuSnl4Y2JpQWdUR1ZtZEVadmIzUTZJQ2RzWldaMFJtOXZkQ2NzWEc0Z0lFeGxablJVYjJWek9pQW5iR1ZtZEZSdlpYTW5MRnh1WEc0Z0lGSnBaMmgwVlhCd1pYSk1aV2M2SUNkeWFXZG9kRlZ3Y0dWeVRHVm5KeXhjYmlBZ1VtbG5hSFJNYjNkbGNreGxaem9nSjNKcFoyaDBURzkzWlhKTVpXY25MRnh1SUNCU2FXZG9kRVp2YjNRNklDZHlhV2RvZEVadmIzUW5MRnh1SUNCU2FXZG9kRlJ2WlhNNklDZHlhV2RvZEZSdlpYTW5MRnh1WEc0Z0lFeGxablJUYUc5MWJHUmxjam9nSjJ4bFpuUlRhRzkxYkdSbGNpY3NYRzRnSUV4bFpuUlZjSEJsY2tGeWJUb2dKMnhsWm5SVmNIQmxja0Z5YlNjc1hHNGdJRXhsWm5STWIzZGxja0Z5YlRvZ0oyeGxablJNYjNkbGNrRnliU2NzWEc0Z0lFeGxablJJWVc1a09pQW5iR1ZtZEVoaGJtUW5MRnh1WEc0Z0lGSnBaMmgwVTJodmRXeGtaWEk2SUNkeWFXZG9kRk5vYjNWc1pHVnlKeXhjYmlBZ1VtbG5hSFJWY0hCbGNrRnliVG9nSjNKcFoyaDBWWEJ3WlhKQmNtMG5MRnh1SUNCU2FXZG9kRXh2ZDJWeVFYSnRPaUFuY21sbmFIUk1iM2RsY2tGeWJTY3NYRzRnSUZKcFoyaDBTR0Z1WkRvZ0ozSnBaMmgwU0dGdVpDY3NYRzVjYmlBZ1RHVm1kRlJvZFcxaVRXVjBZV05oY25CaGJEb2dKMnhsWm5SVWFIVnRZazFsZEdGallYSndZV3duTEZ4dUlDQk1aV1owVkdoMWJXSlFjbTk0YVcxaGJEb2dKMnhsWm5SVWFIVnRZbEJ5YjNocGJXRnNKeXhjYmlBZ1RHVm1kRlJvZFcxaVJHbHpkR0ZzT2lBbmJHVm1kRlJvZFcxaVJHbHpkR0ZzSnl4Y2JpQWdUR1ZtZEVsdVpHVjRVSEp2ZUdsdFlXdzZJQ2RzWldaMFNXNWtaWGhRY205NGFXMWhiQ2NzWEc0Z0lFeGxablJKYm1SbGVFbHVkR1Z5YldWa2FXRjBaVG9nSjJ4bFpuUkpibVJsZUVsdWRHVnliV1ZrYVdGMFpTY3NYRzRnSUV4bFpuUkpibVJsZUVScGMzUmhiRG9nSjJ4bFpuUkpibVJsZUVScGMzUmhiQ2NzWEc0Z0lFeGxablJOYVdSa2JHVlFjbTk0YVcxaGJEb2dKMnhsWm5STmFXUmtiR1ZRY205NGFXMWhiQ2NzWEc0Z0lFeGxablJOYVdSa2JHVkpiblJsY20xbFpHbGhkR1U2SUNkc1pXWjBUV2xrWkd4bFNXNTBaWEp0WldScFlYUmxKeXhjYmlBZ1RHVm1kRTFwWkdSc1pVUnBjM1JoYkRvZ0oyeGxablJOYVdSa2JHVkVhWE4wWVd3bkxGeHVJQ0JNWldaMFVtbHVaMUJ5YjNocGJXRnNPaUFuYkdWbWRGSnBibWRRY205NGFXMWhiQ2NzWEc0Z0lFeGxablJTYVc1blNXNTBaWEp0WldScFlYUmxPaUFuYkdWbWRGSnBibWRKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0JNWldaMFVtbHVaMFJwYzNSaGJEb2dKMnhsWm5SU2FXNW5SR2x6ZEdGc0p5eGNiaUFnVEdWbWRFeHBkSFJzWlZCeWIzaHBiV0ZzT2lBbmJHVm1kRXhwZEhSc1pWQnliM2hwYldGc0p5eGNiaUFnVEdWbWRFeHBkSFJzWlVsdWRHVnliV1ZrYVdGMFpUb2dKMnhsWm5STWFYUjBiR1ZKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0JNWldaMFRHbDBkR3hsUkdsemRHRnNPaUFuYkdWbWRFeHBkSFJzWlVScGMzUmhiQ2NzWEc1Y2JpQWdVbWxuYUhSVWFIVnRZazFsZEdGallYSndZV3c2SUNkeWFXZG9kRlJvZFcxaVRXVjBZV05oY25CaGJDY3NYRzRnSUZKcFoyaDBWR2gxYldKUWNtOTRhVzFoYkRvZ0ozSnBaMmgwVkdoMWJXSlFjbTk0YVcxaGJDY3NYRzRnSUZKcFoyaDBWR2gxYldKRWFYTjBZV3c2SUNkeWFXZG9kRlJvZFcxaVJHbHpkR0ZzSnl4Y2JpQWdVbWxuYUhSSmJtUmxlRkJ5YjNocGJXRnNPaUFuY21sbmFIUkpibVJsZUZCeWIzaHBiV0ZzSnl4Y2JpQWdVbWxuYUhSSmJtUmxlRWx1ZEdWeWJXVmthV0YwWlRvZ0ozSnBaMmgwU1c1a1pYaEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQlNhV2RvZEVsdVpHVjRSR2x6ZEdGc09pQW5jbWxuYUhSSmJtUmxlRVJwYzNSaGJDY3NYRzRnSUZKcFoyaDBUV2xrWkd4bFVISnZlR2x0WVd3NklDZHlhV2RvZEUxcFpHUnNaVkJ5YjNocGJXRnNKeXhjYmlBZ1VtbG5hSFJOYVdSa2JHVkpiblJsY20xbFpHbGhkR1U2SUNkeWFXZG9kRTFwWkdSc1pVbHVkR1Z5YldWa2FXRjBaU2NzWEc0Z0lGSnBaMmgwVFdsa1pHeGxSR2x6ZEdGc09pQW5jbWxuYUhSTmFXUmtiR1ZFYVhOMFlXd25MRnh1SUNCU2FXZG9kRkpwYm1kUWNtOTRhVzFoYkRvZ0ozSnBaMmgwVW1sdVoxQnliM2hwYldGc0p5eGNiaUFnVW1sbmFIUlNhVzVuU1c1MFpYSnRaV1JwWVhSbE9pQW5jbWxuYUhSU2FXNW5TVzUwWlhKdFpXUnBZWFJsSnl4Y2JpQWdVbWxuYUhSU2FXNW5SR2x6ZEdGc09pQW5jbWxuYUhSU2FXNW5SR2x6ZEdGc0p5eGNiaUFnVW1sbmFIUk1hWFIwYkdWUWNtOTRhVzFoYkRvZ0ozSnBaMmgwVEdsMGRHeGxVSEp2ZUdsdFlXd25MRnh1SUNCU2FXZG9kRXhwZEhSc1pVbHVkR1Z5YldWa2FXRjBaVG9nSjNKcFoyaDBUR2wwZEd4bFNXNTBaWEp0WldScFlYUmxKeXhjYmlBZ1VtbG5hSFJNYVhSMGJHVkVhWE4wWVd3NklDZHlhV2RvZEV4cGRIUnNaVVJwYzNSaGJDY3NYRzU5SUdGeklHTnZibk4wTzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JXVWsxSWRXMWhia0p2Ym1WT1lXMWxJRDBnZEhsd1pXOW1JRlpTVFVoMWJXRnVRbTl1WlU1aGJXVmJhMlY1YjJZZ2RIbHdaVzltSUZaU1RVaDFiV0Z1UW05dVpVNWhiV1ZkTzF4dUlpd2lMeW9nWlhOc2FXNTBMV1JwYzJGaWJHVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjVoYldsdVp5MWpiMjUyWlc1MGFXOXVJQ292WEc1Y2JtbHRjRzl5ZENCN0lGWlNUVWgxYldGdVFtOXVaVTVoYldVZ2ZTQm1jbTl0SUNjdUwxWlNUVWgxYldGdVFtOXVaVTVoYldVbk8xeHVYRzR2S2lwY2JpQXFJRUZ1SUc5aWFtVmpkQ0IwYUdGMElHMWhjSE1nWm5KdmJTQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxUbUZ0WlgwZ2RHOGdhWFJ6SUhCaGNtVnVkQ0I3UUd4cGJtc2dWbEpOU0hWdFlXNUNiMjVsVG1GdFpYMHVYRzRnS2x4dUlDb2dVbVZtT2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmRuSnRMV012ZG5KdExYTndaV05wWm1sallYUnBiMjR2WW14dllpOXRZWE4wWlhJdmMzQmxZMmxtYVdOaGRHbHZiaTlXVWsxRFgzWnliUzB4TGpBdmFIVnRZVzV2YVdRdWJXUmNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRlpTVFVoMWJXRnVRbTl1WlZCaGNtVnVkRTFoY0RvZ2V5QmJZbTl1WlNCcGJpQldVazFJZFcxaGJrSnZibVZPWVcxbFhUb2dWbEpOU0hWdFlXNUNiMjVsVG1GdFpTQjhJRzUxYkd3Z2ZTQTlJSHRjYmlBZ2FHbHdjem9nYm5Wc2JDeGNiaUFnYzNCcGJtVTZJQ2RvYVhCekp5eGNiaUFnWTJobGMzUTZJQ2R6Y0dsdVpTY3NYRzRnSUhWd2NHVnlRMmhsYzNRNklDZGphR1Z6ZENjc1hHNGdJRzVsWTJzNklDZDFjSEJsY2tOb1pYTjBKeXhjYmx4dUlDQm9aV0ZrT2lBbmJtVmpheWNzWEc0Z0lHeGxablJGZVdVNklDZG9aV0ZrSnl4Y2JpQWdjbWxuYUhSRmVXVTZJQ2RvWldGa0p5eGNiaUFnYW1GM09pQW5hR1ZoWkNjc1hHNWNiaUFnYkdWbWRGVndjR1Z5VEdWbk9pQW5hR2x3Y3ljc1hHNGdJR3hsWm5STWIzZGxja3hsWnpvZ0oyeGxablJWY0hCbGNreGxaeWNzWEc0Z0lHeGxablJHYjI5ME9pQW5iR1ZtZEV4dmQyVnlUR1ZuSnl4Y2JpQWdiR1ZtZEZSdlpYTTZJQ2RzWldaMFJtOXZkQ2NzWEc1Y2JpQWdjbWxuYUhSVmNIQmxja3hsWnpvZ0oyaHBjSE1uTEZ4dUlDQnlhV2RvZEV4dmQyVnlUR1ZuT2lBbmNtbG5hSFJWY0hCbGNreGxaeWNzWEc0Z0lISnBaMmgwUm05dmREb2dKM0pwWjJoMFRHOTNaWEpNWldjbkxGeHVJQ0J5YVdkb2RGUnZaWE02SUNkeWFXZG9kRVp2YjNRbkxGeHVYRzRnSUd4bFpuUlRhRzkxYkdSbGNqb2dKM1Z3Y0dWeVEyaGxjM1FuTEZ4dUlDQnNaV1owVlhCd1pYSkJjbTA2SUNkc1pXWjBVMmh2ZFd4a1pYSW5MRnh1SUNCc1pXWjBURzkzWlhKQmNtMDZJQ2RzWldaMFZYQndaWEpCY20wbkxGeHVJQ0JzWldaMFNHRnVaRG9nSjJ4bFpuUk1iM2RsY2tGeWJTY3NYRzVjYmlBZ2NtbG5hSFJUYUc5MWJHUmxjam9nSjNWd2NHVnlRMmhsYzNRbkxGeHVJQ0J5YVdkb2RGVndjR1Z5UVhKdE9pQW5jbWxuYUhSVGFHOTFiR1JsY2ljc1hHNGdJSEpwWjJoMFRHOTNaWEpCY20wNklDZHlhV2RvZEZWd2NHVnlRWEp0Snl4Y2JpQWdjbWxuYUhSSVlXNWtPaUFuY21sbmFIUk1iM2RsY2tGeWJTY3NYRzVjYmlBZ2JHVm1kRlJvZFcxaVRXVjBZV05oY25CaGJEb2dKMnhsWm5SSVlXNWtKeXhjYmlBZ2JHVm1kRlJvZFcxaVVISnZlR2x0WVd3NklDZHNaV1owVkdoMWJXSk5aWFJoWTJGeWNHRnNKeXhjYmlBZ2JHVm1kRlJvZFcxaVJHbHpkR0ZzT2lBbmJHVm1kRlJvZFcxaVVISnZlR2x0WVd3bkxGeHVJQ0JzWldaMFNXNWtaWGhRY205NGFXMWhiRG9nSjJ4bFpuUklZVzVrSnl4Y2JpQWdiR1ZtZEVsdVpHVjRTVzUwWlhKdFpXUnBZWFJsT2lBbmJHVm1kRWx1WkdWNFVISnZlR2x0WVd3bkxGeHVJQ0JzWldaMFNXNWtaWGhFYVhOMFlXdzZJQ2RzWldaMFNXNWtaWGhKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0JzWldaMFRXbGtaR3hsVUhKdmVHbHRZV3c2SUNkc1pXWjBTR0Z1WkNjc1hHNGdJR3hsWm5STmFXUmtiR1ZKYm5SbGNtMWxaR2xoZEdVNklDZHNaV1owVFdsa1pHeGxVSEp2ZUdsdFlXd25MRnh1SUNCc1pXWjBUV2xrWkd4bFJHbHpkR0ZzT2lBbmJHVm1kRTFwWkdSc1pVbHVkR1Z5YldWa2FXRjBaU2NzWEc0Z0lHeGxablJTYVc1blVISnZlR2x0WVd3NklDZHNaV1owU0dGdVpDY3NYRzRnSUd4bFpuUlNhVzVuU1c1MFpYSnRaV1JwWVhSbE9pQW5iR1ZtZEZKcGJtZFFjbTk0YVcxaGJDY3NYRzRnSUd4bFpuUlNhVzVuUkdsemRHRnNPaUFuYkdWbWRGSnBibWRKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0JzWldaMFRHbDBkR3hsVUhKdmVHbHRZV3c2SUNkc1pXWjBTR0Z1WkNjc1hHNGdJR3hsWm5STWFYUjBiR1ZKYm5SbGNtMWxaR2xoZEdVNklDZHNaV1owVEdsMGRHeGxVSEp2ZUdsdFlXd25MRnh1SUNCc1pXWjBUR2wwZEd4bFJHbHpkR0ZzT2lBbmJHVm1kRXhwZEhSc1pVbHVkR1Z5YldWa2FXRjBaU2NzWEc1Y2JpQWdjbWxuYUhSVWFIVnRZazFsZEdGallYSndZV3c2SUNkeWFXZG9kRWhoYm1RbkxGeHVJQ0J5YVdkb2RGUm9kVzFpVUhKdmVHbHRZV3c2SUNkeWFXZG9kRlJvZFcxaVRXVjBZV05oY25CaGJDY3NYRzRnSUhKcFoyaDBWR2gxYldKRWFYTjBZV3c2SUNkeWFXZG9kRlJvZFcxaVVISnZlR2x0WVd3bkxGeHVJQ0J5YVdkb2RFbHVaR1Y0VUhKdmVHbHRZV3c2SUNkeWFXZG9kRWhoYm1RbkxGeHVJQ0J5YVdkb2RFbHVaR1Y0U1c1MFpYSnRaV1JwWVhSbE9pQW5jbWxuYUhSSmJtUmxlRkJ5YjNocGJXRnNKeXhjYmlBZ2NtbG5hSFJKYm1SbGVFUnBjM1JoYkRvZ0ozSnBaMmgwU1c1a1pYaEpiblJsY20xbFpHbGhkR1VuTEZ4dUlDQnlhV2RvZEUxcFpHUnNaVkJ5YjNocGJXRnNPaUFuY21sbmFIUklZVzVrSnl4Y2JpQWdjbWxuYUhSTmFXUmtiR1ZKYm5SbGNtMWxaR2xoZEdVNklDZHlhV2RvZEUxcFpHUnNaVkJ5YjNocGJXRnNKeXhjYmlBZ2NtbG5hSFJOYVdSa2JHVkVhWE4wWVd3NklDZHlhV2RvZEUxcFpHUnNaVWx1ZEdWeWJXVmthV0YwWlNjc1hHNGdJSEpwWjJoMFVtbHVaMUJ5YjNocGJXRnNPaUFuY21sbmFIUklZVzVrSnl4Y2JpQWdjbWxuYUhSU2FXNW5TVzUwWlhKdFpXUnBZWFJsT2lBbmNtbG5hSFJTYVc1blVISnZlR2x0WVd3bkxGeHVJQ0J5YVdkb2RGSnBibWRFYVhOMFlXdzZJQ2R5YVdkb2RGSnBibWRKYm5SbGNtMWxaR2xoZEdVbkxGeHVJQ0J5YVdkb2RFeHBkSFJzWlZCeWIzaHBiV0ZzT2lBbmNtbG5hSFJJWVc1a0p5eGNiaUFnY21sbmFIUk1hWFIwYkdWSmJuUmxjbTFsWkdsaGRHVTZJQ2R5YVdkb2RFeHBkSFJzWlZCeWIzaHBiV0ZzSnl4Y2JpQWdjbWxuYUhSTWFYUjBiR1ZFYVhOMFlXdzZJQ2R5YVdkb2RFeHBkSFJzWlVsdWRHVnliV1ZrYVdGMFpTY3NYRzU5TzF4dUlpd2lhVzF3YjNKMElDb2dZWE1nVkVoU1JVVWdabkp2YlNBbmRHaHlaV1VuTzF4dVhHNHZLaXBjYmlBcUlFRWdZMjl0Y0dGMElHWjFibU4wYVc5dUlHWnZjaUJnVVhWaGRHVnlibWx2Ymk1cGJuWmxjblFvS1dBZ0x5QmdVWFZoZEdWeWJtbHZiaTVwYm5abGNuTmxLQ2xnTGx4dUlDb2dZRkYxWVhSbGNtNXBiMjR1YVc1MlpYSjBLQ2xnSUdseklHbHVkSEp2WkhWalpXUWdhVzRnY2pFeU15QmhibVFnWUZGMVlYUmxjbTVwYjI0dWFXNTJaWEp6WlNncFlDQmxiV2wwY3lCaElIZGhjbTVwYm1jdVhHNGdLaUJYWlNCaGNtVWdaMjlwYm1jZ2RHOGdkWE5sSUhSb2FYTWdZMjl0Y0dGMElHWnZjaUJoSUhkb2FXeGxMbHh1SUNvZ1FIQmhjbUZ0SUhSaGNtZGxkQ0JCSUhSaGNtZGxkQ0J4ZFdGMFpYSnVhVzl1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnhkV0YwU1c1MlpYSjBRMjl0Y0dGMFBGUWdaWGgwWlc1a2N5QlVTRkpGUlM1UmRXRjBaWEp1YVc5dVBpaDBZWEpuWlhRNklGUXBPaUJVSUh0Y2JpQWdhV1lnS0NoMFlYSm5aWFFnWVhNZ1lXNTVLUzVwYm5abGNuUXBJSHRjYmlBZ0lDQjBZWEpuWlhRdWFXNTJaWEowS0NrN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ0tIUmhjbWRsZENCaGN5QmhibmtwTG1sdWRtVnljMlVvS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCMFlYSm5aWFE3WEc1OVhHNGlMQ0pwYlhCdmNuUWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNXBiWEJ2Y25RZ2V5QnhkV0YwU1c1MlpYSjBRMjl0Y0dGMElIMGdabkp2YlNBbkxpNHZkWFJwYkhNdmNYVmhkRWx1ZG1WeWRFTnZiWEJoZENjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVaDFiV0Z1UW05dVpTQjlJR1p5YjIwZ0p5NHZWbEpOU0hWdFlXNUNiMjVsSnp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVmxKTlNIVnRZVzVDYjI1bGN5QjlJR1p5YjIwZ0p5NHZWbEpOU0hWdFlXNUNiMjVsY3ljN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VnZlNCbWNtOXRJQ2N1TDFaU1RVaDFiV0Z1UW05dVpVNWhiV1VuTzF4dWFXMXdiM0owSUhSNWNHVWdleUJXVWsxUWIzTmxJSDBnWm5KdmJTQW5MaTlXVWsxUWIzTmxKenRjYmx4dVkyOXVjM1FnWDNZelFTQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLQ2s3WEc1amIyNXpkQ0JmY1hWaGRFRWdQU0J1WlhjZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlncE8xeHVYRzR2S2lwY2JpQXFJRUVnWTJ4aGMzTWdjbVZ3Y21WelpXNTBjeUIwYUdVZ1VtbG5JRzltSUdFZ1ZsSk5MbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlVtbG5JSHRjYmlBZ0x5b3FYRzRnSUNBcUlFRWdlMEJzYVc1cklGWlNUVWgxYldGdVFtOXVaWE45SUhSb1lYUWdZMjl1ZEdGcGJuTWdZV3hzSUhSb1pTQm9kVzFoYmlCaWIyNWxjeUJ2WmlCMGFHVWdWbEpOTGx4dUlDQWdLaUJaYjNVZ2JXbG5hSFFnZDJGdWRDQjBieUJuWlhRZ2RHaGxjMlVnWW05dVpYTWdkWE5wYm1jZ2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa0xtZGxkRUp2Ym1WOUxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHaDFiV0Z1UW05dVpYTTZJRlpTVFVoMWJXRnVRbTl1WlhNN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2UwQnNhVzVySUZaU1RWQnZjMlY5SUhSb1lYUWdhWE1nYVhSeklHUmxabUYxYkhRZ2MzUmhkR1V1WEc0Z0lDQXFJRTV2ZEdVZ2RHaGhkQ0JwZENkeklHNXZkQ0JqYjIxd1lYUnBZbXhsSUhkcGRHZ2dlMEJzYVc1cklITmxkRkJ2YzJWOUlHRnVaQ0I3UUd4cGJtc2daMlYwVUc5elpYMHNJSE5wYm1ObElHbDBJR052Ym5SaGFXNXpJRzV2YmkxeVpXeGhkR2wyWlNCMllXeDFaWE1nYjJZZ1pXRmphQ0JzYjJOaGJDQjBjbUZ1YzJadmNtMXpMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsYzNSUWIzTmxPaUJXVWsxUWIzTmxPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdVZ1lTQnVaWGNnZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrZlM1Y2JpQWdJQ29nUUhCaGNtRnRJR2gxYldGdVFtOXVaWE1nUVNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bGMzMGdZMjl1ZEdGcGJuTWdZV3hzSUhSb1pTQmliMjVsY3lCdlppQjBhR1VnYm1WM0lHaDFiV0Z1YjJsa1hHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9hSFZ0WVc1Q2IyNWxjem9nVmxKTlNIVnRZVzVDYjI1bGN5a2dlMXh1SUNBZ0lIUm9hWE11YUhWdFlXNUNiMjVsY3lBOUlHaDFiV0Z1UW05dVpYTTdYRzVjYmlBZ0lDQjBhR2x6TG5KbGMzUlFiM05sSUQwZ2RHaHBjeTVuWlhSQlluTnZiSFYwWlZCdmMyVW9LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnZEdobElHTjFjbkpsYm5RZ1lXSnpiMngxZEdVZ2NHOXpaU0J2WmlCMGFHbHpJR2gxYldGdWIybGtJR0Z6SUdFZ2UwQnNhVzVySUZaU1RWQnZjMlY5TGx4dUlDQWdLaUJPYjNSbElIUm9ZWFFnZEdobElHOTFkSEIxZENCeVpYTjFiSFFnZDJsc2JDQmpiMjUwWVdsdUlHbHVhWFJwWVd3Z2MzUmhkR1VnYjJZZ2RHaGxJRlpTVFNCaGJtUWdibTkwSUdOdmJYQmhkR2xpYkdVZ1ltVjBkMlZsYmlCa2FXWm1aWEpsYm5RZ2JXOWtaV3h6TGx4dUlDQWdLaUJaYjNVZ2JXbG5hSFFnZDJGdWRDQjBieUIxYzJVZ2UwQnNhVzVySUdkbGRGQnZjMlY5SUdsdWMzUmxZV1F1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMFFXSnpiMngxZEdWUWIzTmxLQ2s2SUZaU1RWQnZjMlVnZTF4dUlDQWdJR052Ym5OMElIQnZjMlVnUFNCN2ZTQmhjeUJXVWsxUWIzTmxPMXh1WEc0Z0lDQWdUMkpxWldOMExtdGxlWE1vZEdocGN5NW9kVzFoYmtKdmJtVnpLUzVtYjNKRllXTm9LQ2gyY20xQ2IyNWxUbUZ0WlZOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZG5KdFFtOXVaVTVoYldVZ1BTQjJjbTFDYjI1bFRtRnRaVk4wY21sdVp5QmhjeUJXVWsxSWRXMWhia0p2Ym1WT1lXMWxPMXh1SUNBZ0lDQWdZMjl1YzNRZ2JtOWtaU0E5SUhSb2FYTXVaMlYwUW05dVpVNXZaR1VvZG5KdFFtOXVaVTVoYldVcE8xeHVYRzRnSUNBZ0lDQXZMeUJKWjI1dmNtVWdkMmhsYmlCMGFHVnlaU0JoY21VZ2JtOGdZbTl1WlNCdmJpQjBhR1VnVmxKTlNIVnRZVzV2YVdSY2JpQWdJQ0FnSUdsbUlDZ2hibTlrWlNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDOHZJRWRsZENCMGFHVWdjRzl6YVhScGIyNGdMeUJ5YjNSaGRHbHZiaUJtY205dElIUm9aU0J1YjJSbFhHNGdJQ0FnSUNCZmRqTkJMbU52Y0hrb2JtOWtaUzV3YjNOcGRHbHZiaWs3WEc0Z0lDQWdJQ0JmY1hWaGRFRXVZMjl3ZVNodWIyUmxMbkYxWVhSbGNtNXBiMjRwTzF4dVhHNGdJQ0FnSUNBdkx5QkRiMjUyWlhKMElIUnZJSEpoZHlCaGNuSmhlWE5jYmlBZ0lDQWdJSEJ2YzJWYmRuSnRRbTl1WlU1aGJXVmRJRDBnZTF4dUlDQWdJQ0FnSUNCd2IzTnBkR2x2YmpvZ1gzWXpRUzUwYjBGeWNtRjVLQ2tnWVhNZ1cyNTFiV0psY2l3Z2JuVnRZbVZ5TENCdWRXMWlaWEpkTEZ4dUlDQWdJQ0FnSUNCeWIzUmhkR2x2YmpvZ1gzRjFZWFJCTG5SdlFYSnlZWGtvS1NCaGN5QmJiblZ0WW1WeUxDQnVkVzFpWlhJc0lHNTFiV0psY2l3Z2JuVnRZbVZ5WFN4Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnY0c5elpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUdOMWNuSmxiblFnY0c5elpTQnZaaUIwYUdseklHaDFiV0Z1YjJsa0lHRnpJR0VnZTBCc2FXNXJJRlpTVFZCdmMyVjlMbHh1SUNBZ0tseHVJQ0FnS2lCRllXTm9JSFJ5WVc1elptOXliU0JwY3lCaElHeHZZMkZzSUhSeVlXNXpabTl5YlNCeVpXeGhkR2wyWlNCbWNtOXRJSEpsYzNRZ2NHOXpaU0FvVkMxd2IzTmxLUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhSUWIzTmxLQ2s2SUZaU1RWQnZjMlVnZTF4dUlDQWdJR052Ym5OMElIQnZjMlVnUFNCN2ZTQmhjeUJXVWsxUWIzTmxPMXh1WEc0Z0lDQWdUMkpxWldOMExtdGxlWE1vZEdocGN5NW9kVzFoYmtKdmJtVnpLUzVtYjNKRllXTm9LQ2hpYjI1bFRtRnRaVk4wY21sdVp5a2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZbTl1WlU1aGJXVWdQU0JpYjI1bFRtRnRaVk4wY21sdVp5QmhjeUJXVWsxSWRXMWhia0p2Ym1WT1lXMWxPMXh1SUNBZ0lDQWdZMjl1YzNRZ2JtOWtaU0E5SUhSb2FYTXVaMlYwUW05dVpVNXZaR1VvWW05dVpVNWhiV1VwTzF4dVhHNGdJQ0FnSUNBdkx5QkpaMjV2Y21VZ2QyaGxiaUIwYUdWeVpTQmhjbVVnYm04Z1ltOXVaU0J2YmlCMGFHVWdWbEpOU0hWdFlXNXZhV1JjYmlBZ0lDQWdJR2xtSUNnaGJtOWtaU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklGUmhhMlVnWVNCa2FXWm1JR1p5YjIwZ2NtVnpkRkJ2YzJWY2JpQWdJQ0FnSUY5Mk0wRXVjMlYwS0RBc0lEQXNJREFwTzF4dUlDQWdJQ0FnWDNGMVlYUkJMbWxrWlc1MGFYUjVLQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNSVGRHRjBaU0E5SUhSb2FYTXVjbVZ6ZEZCdmMyVmJZbTl1WlU1aGJXVmRPMXh1SUNBZ0lDQWdhV1lnS0hKbGMzUlRkR0YwWlQ4dWNHOXphWFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdYM1l6UVM1bWNtOXRRWEp5WVhrb2NtVnpkRk4wWVhSbExuQnZjMmwwYVc5dUtTNXVaV2RoZEdVb0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2h5WlhOMFUzUmhkR1UvTG5KdmRHRjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lIRjFZWFJKYm5abGNuUkRiMjF3WVhRb1gzRjFZWFJCTG1aeWIyMUJjbkpoZVNoeVpYTjBVM1JoZEdVdWNtOTBZWFJwYjI0cEtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnUjJWMElIUm9aU0J3YjNOcGRHbHZiaUF2SUhKdmRHRjBhVzl1SUdaeWIyMGdkR2hsSUc1dlpHVmNiaUFnSUNBZ0lGOTJNMEV1WVdSa0tHNXZaR1V1Y0c5emFYUnBiMjRwTzF4dUlDQWdJQ0FnWDNGMVlYUkJMbkJ5WlcxMWJIUnBjR3g1S0c1dlpHVXVjWFZoZEdWeWJtbHZiaWs3WEc1Y2JpQWdJQ0FnSUM4dklFTnZiblpsY25RZ2RHOGdjbUYzSUdGeWNtRjVjMXh1SUNBZ0lDQWdjRzl6WlZ0aWIyNWxUbUZ0WlYwZ1BTQjdYRzRnSUNBZ0lDQWdJSEJ2YzJsMGFXOXVPaUJmZGpOQkxuUnZRWEp5WVhrb0tTQmhjeUJiYm5WdFltVnlMQ0J1ZFcxaVpYSXNJRzUxYldKbGNsMHNYRzRnSUNBZ0lDQWdJSEp2ZEdGMGFXOXVPaUJmY1hWaGRFRXVkRzlCY25KaGVTZ3BJR0Z6SUZ0dWRXMWlaWElzSUc1MWJXSmxjaXdnYm5WdFltVnlMQ0J1ZFcxaVpYSmRMRnh1SUNBZ0lDQWdmVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQndiM05sTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFeGxkQ0IwYUdVZ2FIVnRZVzV2YVdRZ1pHOGdZU0J6Y0dWamFXWnBaV1FnY0c5elpTNWNiaUFnSUNwY2JpQWdJQ29nUldGamFDQjBjbUZ1YzJadmNtMGdhR0YyWlNCMGJ5QmlaU0JoSUd4dlkyRnNJSFJ5WVc1elptOXliU0J5Wld4aGRHbDJaU0JtY205dElISmxjM1FnY0c5elpTQW9WQzF3YjNObEtTNWNiaUFnSUNvZ1dXOTFJR05oYmlCd1lYTnpJSGRvWVhRZ2VXOTFJR2R2ZENCbWNtOXRJSHRBYkdsdWF5Qm5aWFJRYjNObGZTNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSEJ2YzJWUFltcGxZM1FnUVNCYlcxWlNUVkJ2YzJWZFhTQjBhR0YwSUhKbGNISmxjMlZ1ZEhNZ1lTQnphVzVuYkdVZ2NHOXpaVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE5sZEZCdmMyVW9jRzl6WlU5aWFtVmpkRG9nVmxKTlVHOXpaU2s2SUhadmFXUWdlMXh1SUNBZ0lFOWlhbVZqZEM1bGJuUnlhV1Z6S0hCdmMyVlBZbXBsWTNRcExtWnZja1ZoWTJnb0tGdGliMjVsVG1GdFpWTjBjbWx1Wnl3Z2MzUmhkR1ZkS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaWIyNWxUbUZ0WlNBOUlHSnZibVZPWVcxbFUzUnlhVzVuSUdGeklGWlNUVWgxYldGdVFtOXVaVTVoYldVN1hHNGdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdkR2hwY3k1blpYUkNiMjVsVG05a1pTaGliMjVsVG1GdFpTazdYRzVjYmlBZ0lDQWdJQzh2SUVsbmJtOXlaU0IzYUdWdUlIUm9aWEpsSUdGeVpTQnVieUJpYjI1bElIUm9ZWFFnYVhNZ1pHVm1hVzVsWkNCcGJpQjBhR1VnY0c5elpTQnZiaUIwYUdVZ1ZsSk5TSFZ0WVc1dmFXUmNiaUFnSUNBZ0lHbG1JQ2doYm05a1pTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElISmxjM1JUZEdGMFpTQTlJSFJvYVhNdWNtVnpkRkJ2YzJWYlltOXVaVTVoYldWZE8xeHVJQ0FnSUNBZ2FXWWdLQ0Z5WlhOMFUzUmhkR1VwSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdTWFFuY3lCMlpYSjVJSFZ1YkdsclpXeDVMaUJRYjNOemFXSnNlU0JoSUdKMVoxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDOHZJRUZ3Y0d4NUlIUm9aU0J6ZEdGMFpTQjBieUIwYUdVZ1lXTjBkV0ZzSUdKdmJtVmNiaUFnSUNBZ0lHbG1JQ2h6ZEdGMFpUOHVjRzl6YVhScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnYm05a1pTNXdiM05wZEdsdmJpNW1jbTl0UVhKeVlYa29jM1JoZEdVdWNHOXphWFJwYjI0cE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNoeVpYTjBVM1JoZEdVdWNHOXphWFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdJQ0J1YjJSbExuQnZjMmwwYVc5dUxtRmtaQ2hmZGpOQkxtWnliMjFCY25KaGVTaHlaWE4wVTNSaGRHVXVjRzl6YVhScGIyNHBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9jM1JoZEdVL0xuSnZkR0YwYVc5dUtTQjdYRzRnSUNBZ0lDQWdJRzV2WkdVdWNYVmhkR1Z5Ym1sdmJpNW1jbTl0UVhKeVlYa29jM1JoZEdVdWNtOTBZWFJwYjI0cE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNoeVpYTjBVM1JoZEdVdWNtOTBZWFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdJQ0J1YjJSbExuRjFZWFJsY201cGIyNHViWFZzZEdsd2JIa29YM0YxWVhSQkxtWnliMjFCY25KaGVTaHlaWE4wVTNSaGRHVXVjbTkwWVhScGIyNHBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxjMlYwSUhSb1pTQm9kVzFoYm05cFpDQjBieUJwZEhNZ2NtVnpkQ0J3YjNObExseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmxjMlYwVUc5elpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNCUFltcGxZM1F1Wlc1MGNtbGxjeWgwYUdsekxuSmxjM1JRYjNObEtTNW1iM0pGWVdOb0tDaGJZbTl1WlU1aGJXVXNJSEpsYzNSZEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ2RHaHBjeTVuWlhSQ2IyNWxUbTlrWlNoaWIyNWxUbUZ0WlNCaGN5QldVazFJZFcxaGJrSnZibVZPWVcxbEtUdGNibHh1SUNBZ0lDQWdhV1lnS0NGdWIyUmxLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYVdZZ0tISmxjM1EvTG5CdmMybDBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lHNXZaR1V1Y0c5emFYUnBiMjR1Wm5KdmJVRnljbUY1S0hKbGMzUXVjRzl6YVhScGIyNHBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2NtVnpkRDh1Y205MFlYUnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ2JtOWtaUzV4ZFdGMFpYSnVhVzl1TG1aeWIyMUJjbkpoZVNoeVpYTjBMbkp2ZEdGMGFXOXVLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTRnWVNCaWIyNWxJR0p2ZFc1a0lIUnZJR0VnYzNCbFkybG1hV1ZrSUh0QWJHbHVheUJXVWsxSWRXMWhia0p2Ym1WT1lXMWxmU3dnWVhNZ1lTQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxmUzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUc1aGJXVWdUbUZ0WlNCdlppQjBhR1VnWW05dVpTQjViM1VnZDJGdWRGeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkRUp2Ym1Vb2JtRnRaVG9nVmxKTlNIVnRZVzVDYjI1bFRtRnRaU2s2SUZaU1RVaDFiV0Z1UW05dVpTQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YUhWdFlXNUNiMjVsYzF0dVlXMWxYU0EvUHlCMWJtUmxabWx1WldRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlHRWdZbTl1WlNCaWIzVnVaQ0IwYnlCaElITndaV05wWm1sbFpDQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxUbUZ0Wlgwc0lHRnpJR0VnWUZSSVVrVkZMazlpYW1WamRETkVZQzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUc1aGJXVWdUbUZ0WlNCdlppQjBhR1VnWW05dVpTQjViM1VnZDJGdWRGeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkRUp2Ym1WT2IyUmxLRzVoYldVNklGWlNUVWgxYldGdVFtOXVaVTVoYldVcE9pQlVTRkpGUlM1UFltcGxZM1F6UkNCOElHNTFiR3dnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1oMWJXRnVRbTl1WlhOYmJtRnRaVjAvTG01dlpHVWdQejhnYm5Wc2JEdGNiaUFnZlZ4dWZWeHVJaXdpYVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIc2dWbEpOU0hWdFlXNUNiMjVsVG1GdFpTd2dWbEpOU0hWdFlXNUNiMjVsY3lCOUlHWnliMjBnSnk0bk8xeHVhVzF3YjNKMElIc2dWbEpOU0hWdFlXNUNiMjVsVEdsemRDQjlJR1p5YjIwZ0p5NHZWbEpOU0hWdFlXNUNiMjVsVEdsemRDYzdYRzVwYlhCdmNuUWdleUJXVWsxSWRXMWhia0p2Ym1WUVlYSmxiblJOWVhBZ2ZTQm1jbTl0SUNjdUwxWlNUVWgxYldGdVFtOXVaVkJoY21WdWRFMWhjQ2M3WEc1cGJYQnZjblFnZXlCV1VrMVNhV2NnZlNCbWNtOXRJQ2N1TDFaU1RWSnBaeWM3WEc1Y2JtTnZibk4wSUY5Mk0wRWdQU0J1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWdwTzF4dVkyOXVjM1FnWDNGMVlYUkJJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNibU52Ym5OMElGOWliMjVsVjI5eWJHUlFiM01nUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVYRzR2S2lwY2JpQXFJRUVnWTJ4aGMzTWdjbVZ3Y21WelpXNTBjeUIwYUdVZ2JtOXliV0ZzYVhwbFpDQlNhV2NnYjJZZ1lTQldVazB1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCV1VrMUlkVzFoYm05cFpGSnBaeUJsZUhSbGJtUnpJRlpTVFZKcFp5QjdYRzRnSUhCeWIzUmxZM1JsWkNCemRHRjBhV01nWDNObGRIVndWSEpoYm5ObWIzSnRjeWh0YjJSbGJGSnBaem9nVmxKTlVtbG5LVG9nZTF4dUlDQWdJSEpwWjBKdmJtVnpPaUJXVWsxSWRXMWhia0p2Ym1Wek8xeHVJQ0FnSUhKdmIzUTZJRlJJVWtWRkxrOWlhbVZqZERORU8xeHVJQ0FnSUhCaGNtVnVkRmR2Y214a1VtOTBZWFJwYjI1ek9pQjdJRnRpYjI1bFRtRnRaU0JwYmlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsWFQ4NklGUklVa1ZGTGxGMVlYUmxjbTVwYjI0Z2ZUdGNiaUFnSUNCaWIyNWxVbTkwWVhScGIyNXpPaUI3SUZ0aWIyNWxUbUZ0WlNCcGJpQldVazFJZFcxaGJrSnZibVZPWVcxbFhUODZJRlJJVWtWRkxsRjFZWFJsY201cGIyNGdmVHRjYmlBZ2ZTQjdYRzRnSUNBZ1kyOXVjM1FnY205dmRDQTlJRzVsZHlCVVNGSkZSUzVQWW1wbFkzUXpSQ2dwTzF4dUlDQWdJSEp2YjNRdWJtRnRaU0E5SUNkV1VrMUlkVzFoYm05cFpGSnBaeWM3WEc1Y2JpQWdJQ0F2THlCemRHOXlaU0JpYjI1bFYyOXliR1JRYjNOcGRHbHZibk1zSUdKdmJtVlhiM0pzWkZKdmRHRjBhVzl1Y3l3Z1lXNWtJSEJoY21WdWRGZHZjbXhrVW05MFlYUnBiMjV6WEc0Z0lDQWdZMjl1YzNRZ1ltOXVaVmR2Y214a1VHOXphWFJwYjI1ek9pQjdJRnRpYjI1bFRtRnRaU0JwYmlCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsWFQ4NklGUklVa1ZGTGxabFkzUnZjak1nZlNBOUlIdDlPMXh1SUNBZ0lHTnZibk4wSUdKdmJtVlhiM0pzWkZKdmRHRjBhVzl1Y3pvZ2V5QmJZbTl1WlU1aGJXVWdhVzRnVmxKTlNIVnRZVzVDYjI1bFRtRnRaVjAvT2lCVVNGSkZSUzVSZFdGMFpYSnVhVzl1SUgwZ1BTQjdmVHRjYmlBZ0lDQmpiMjV6ZENCaWIyNWxVbTkwWVhScGIyNXpPaUI3SUZ0aWIyNWxUbUZ0WlNCcGJpQldVazFJZFcxaGJrSnZibVZPWVcxbFhUODZJRlJJVWtWRkxsRjFZWFJsY201cGIyNGdmU0E5SUh0OU8xeHVJQ0FnSUdOdmJuTjBJSEJoY21WdWRGZHZjbXhrVW05MFlYUnBiMjV6T2lCN0lGdGliMjVsVG1GdFpTQnBiaUJXVWsxSWRXMWhia0p2Ym1WT1lXMWxYVDg2SUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRnZlNBOUlIdDlPMXh1WEc0Z0lDQWdWbEpOU0hWdFlXNUNiMjVsVEdsemRDNW1iM0pGWVdOb0tDaGliMjVsVG1GdFpTa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZbTl1WlU1dlpHVWdQU0J0YjJSbGJGSnBaeTVuWlhSQ2IyNWxUbTlrWlNoaWIyNWxUbUZ0WlNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2hpYjI1bFRtOWtaU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JpYjI1bFYyOXliR1JRYjNOcGRHbHZiaUE5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdKdmJtVlhiM0pzWkZKdmRHRjBhVzl1SUQwZ2JtVjNJRlJJVWtWRkxsRjFZWFJsY201cGIyNG9LVHRjYmx4dUlDQWdJQ0FnSUNCaWIyNWxUbTlrWlM1MWNHUmhkR1ZYYjNKc1pFMWhkSEpwZUNoMGNuVmxMQ0JtWVd4elpTazdYRzRnSUNBZ0lDQWdJR0p2Ym1WT2IyUmxMbTFoZEhKcGVGZHZjbXhrTG1SbFkyOXRjRzl6WlNoaWIyNWxWMjl5YkdSUWIzTnBkR2x2Yml3Z1ltOXVaVmR2Y214a1VtOTBZWFJwYjI0c0lGOTJNMEVwTzF4dVhHNGdJQ0FnSUNBZ0lHSnZibVZYYjNKc1pGQnZjMmwwYVc5dWMxdGliMjVsVG1GdFpWMGdQU0JpYjI1bFYyOXliR1JRYjNOcGRHbHZianRjYmlBZ0lDQWdJQ0FnWW05dVpWZHZjbXhrVW05MFlYUnBiMjV6VzJKdmJtVk9ZVzFsWFNBOUlHSnZibVZYYjNKc1pGSnZkR0YwYVc5dU8xeHVJQ0FnSUNBZ0lDQmliMjVsVW05MFlYUnBiMjV6VzJKdmJtVk9ZVzFsWFNBOUlHSnZibVZPYjJSbExuRjFZWFJsY201cGIyNHVZMnh2Ym1Vb0tUdGNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZWEpsYm5SWGIzSnNaRkp2ZEdGMGFXOXVJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNiaUFnSUNBZ0lDQWdZbTl1WlU1dlpHVXVjR0Z5Wlc1MFB5NXRZWFJ5YVhoWGIzSnNaQzVrWldOdmJYQnZjMlVvWDNZelFTd2djR0Z5Wlc1MFYyOXliR1JTYjNSaGRHbHZiaXdnWDNZelFTazdYRzRnSUNBZ0lDQWdJSEJoY21WdWRGZHZjbXhrVW05MFlYUnBiMjV6VzJKdmJtVk9ZVzFsWFNBOUlIQmhjbVZ1ZEZkdmNteGtVbTkwWVhScGIyNDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZMeUJpZFdsc1pDQnlhV2NnYUdsbGNtRnlZMmg1SUNzZ2MzUnZjbVVnY0dGeVpXNTBWMjl5YkdSU2IzUmhkR2x2Ym5OY2JpQWdJQ0JqYjI1emRDQnlhV2RDYjI1bGN6b2dVR0Z5ZEdsaGJEeFdVazFJZFcxaGJrSnZibVZ6UGlBOUlIdDlPMXh1SUNBZ0lGWlNUVWgxYldGdVFtOXVaVXhwYzNRdVptOXlSV0ZqYUNnb1ltOXVaVTVoYldVcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElHSnZibVZPYjJSbElEMGdiVzlrWld4U2FXY3VaMlYwUW05dVpVNXZaR1VvWW05dVpVNWhiV1VwTzF4dVhHNGdJQ0FnSUNCcFppQW9ZbTl1WlU1dlpHVXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZbTl1WlZkdmNteGtVRzl6YVhScGIyNGdQU0JpYjI1bFYyOXliR1JRYjNOcGRHbHZibk5iWW05dVpVNWhiV1ZkSUdGeklGUklVa1ZGTGxabFkzUnZjak03WEc1Y2JpQWdJQ0FnSUNBZ0x5OGdjMlZsSUhSb1pTQnVaV0Z5WlhOMElIQmhjbVZ1ZENCd2IzTnBkR2x2Ymx4dUlDQWdJQ0FnSUNCc1pYUWdZM1Z5Y21WdWRFSnZibVZPWVcxbE9pQldVazFJZFcxaGJrSnZibVZPWVcxbElId2diblZzYkNBOUlHSnZibVZPWVcxbE8xeHVJQ0FnSUNBZ0lDQnNaWFFnY0dGeVpXNTBRbTl1WlZkdmNteGtVRzl6YVhScGIyNDZJRlJJVWtWRkxsWmxZM1J2Y2pNZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJSGRvYVd4bElDaHdZWEpsYm5SQ2IyNWxWMjl5YkdSUWIzTnBkR2x2YmlBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdZM1Z5Y21WdWRFSnZibVZPWVcxbElEMGdWbEpOU0hWdFlXNUNiMjVsVUdGeVpXNTBUV0Z3VzJOMWNuSmxiblJDYjI1bFRtRnRaVjA3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR04xY25KbGJuUkNiMjVsVG1GdFpTQTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdjR0Z5Wlc1MFFtOXVaVmR2Y214a1VHOXphWFJwYjI0Z1BTQmliMjVsVjI5eWJHUlFiM05wZEdsdmJuTmJZM1Z5Y21WdWRFSnZibVZPWVcxbFhUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUM4dklHRmtaQ0IwYnlCb2FXVnlZWEpqYUhsY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY21sblFtOXVaVTV2WkdVZ1BTQnVaWGNnVkVoU1JVVXVUMkpxWldOME0wUW9LVHRjYmlBZ0lDQWdJQ0FnY21sblFtOXVaVTV2WkdVdWJtRnRaU0E5SUNkT2IzSnRZV3hwZW1Wa1h5Y2dLeUJpYjI1bFRtOWtaUzV1WVcxbE8xeHVYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhjbVZ1ZEZKcFowSnZibVZPYjJSbElEMGdLR04xY25KbGJuUkNiMjVsVG1GdFpTQS9JSEpwWjBKdmJtVnpXMk4xY25KbGJuUkNiMjVsVG1GdFpWMC9MbTV2WkdVZ09pQnliMjkwS1NCaGN5QlVTRkpGUlM1UFltcGxZM1F6UkR0Y2JseHVJQ0FnSUNBZ0lDQndZWEpsYm5SU2FXZENiMjVsVG05a1pTNWhaR1FvY21sblFtOXVaVTV2WkdVcE8xeHVJQ0FnSUNBZ0lDQnlhV2RDYjI1bFRtOWtaUzV3YjNOcGRHbHZiaTVqYjNCNUtHSnZibVZYYjNKc1pGQnZjMmwwYVc5dUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hCaGNtVnVkRUp2Ym1WWGIzSnNaRkJ2YzJsMGFXOXVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtbG5RbTl1WlU1dlpHVXVjRzl6YVhScGIyNHVjM1ZpS0hCaGNtVnVkRUp2Ym1WWGIzSnNaRkJ2YzJsMGFXOXVLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lISnBaMEp2Ym1WelcySnZibVZPWVcxbFhTQTlJSHNnYm05a1pUb2djbWxuUW05dVpVNXZaR1VnZlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0J5YVdkQ2IyNWxjem9nY21sblFtOXVaWE1nWVhNZ1ZsSk5TSFZ0WVc1Q2IyNWxjeXhjYmlBZ0lDQWdJSEp2YjNRc1hHNGdJQ0FnSUNCd1lYSmxiblJYYjNKc1pGSnZkR0YwYVc5dWN5eGNiaUFnSUNBZ0lHSnZibVZTYjNSaGRHbHZibk1zWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0J2Y21sbmFXNWhiRG9nVmxKTlVtbG5PMXh1SUNCd2RXSnNhV01nY21WaFpHOXViSGtnY205dmREb2dWRWhTUlVVdVQySnFaV04wTTBRN1hHNGdJSEJ5YjNSbFkzUmxaQ0J5WldGa2IyNXNlU0JmY0dGeVpXNTBWMjl5YkdSU2IzUmhkR2x2Ym5NNklIc2dXMkp2Ym1WT1lXMWxJR2x1SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1ZkUHpvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlCOU8xeHVJQ0J3Y205MFpXTjBaV1FnY21WaFpHOXViSGtnWDJKdmJtVlNiM1JoZEdsdmJuTTZJSHNnVzJKdmJtVk9ZVzFsSUdsdUlGWlNUVWgxYldGdVFtOXVaVTVoYldWZFB6b2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpQjlPMXh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaG9kVzFoYm05cFpEb2dWbEpOVW1sbktTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCeWFXZENiMjVsY3l3Z2NtOXZkQ3dnY0dGeVpXNTBWMjl5YkdSU2IzUmhkR2x2Ym5Nc0lHSnZibVZTYjNSaGRHbHZibk1nZlNBOUlGWlNUVWgxYldGdWIybGtVbWxuTGw5elpYUjFjRlJ5WVc1elptOXliWE1vYUhWdFlXNXZhV1FwTzF4dVhHNGdJQ0FnYzNWd1pYSW9jbWxuUW05dVpYTXBPMXh1WEc0Z0lDQWdkR2hwY3k1dmNtbG5hVzVoYkNBOUlHaDFiV0Z1YjJsa08xeHVJQ0FnSUhSb2FYTXVjbTl2ZENBOUlISnZiM1E3WEc0Z0lDQWdkR2hwY3k1ZmNHRnlaVzUwVjI5eWJHUlNiM1JoZEdsdmJuTWdQU0J3WVhKbGJuUlhiM0pzWkZKdmRHRjBhVzl1Y3p0Y2JpQWdJQ0IwYUdsekxsOWliMjVsVW05MFlYUnBiMjV6SUQwZ1ltOXVaVkp2ZEdGMGFXOXVjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVmNHUmhkR1VnZEdocGN5Qm9kVzFoYm05cFpDQnlhV2N1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nZFhCa1lYUmxLQ2s2SUhadmFXUWdlMXh1SUNBZ0lGWlNUVWgxYldGdVFtOXVaVXhwYzNRdVptOXlSV0ZqYUNnb1ltOXVaVTVoYldVcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElHSnZibVZPYjJSbElEMGdkR2hwY3k1dmNtbG5hVzVoYkM1blpYUkNiMjVsVG05a1pTaGliMjVsVG1GdFpTazdYRzVjYmlBZ0lDQWdJR2xtSUNoaWIyNWxUbTlrWlNBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhKcFowSnZibVZPYjJSbElEMGdkR2hwY3k1blpYUkNiMjVsVG05a1pTaGliMjVsVG1GdFpTa2hPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZWEpsYm5SWGIzSnNaRkp2ZEdGMGFXOXVJRDBnZEdocGN5NWZjR0Z5Wlc1MFYyOXliR1JTYjNSaGRHbHZibk5iWW05dVpVNWhiV1ZkSVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYVc1MlVHRnlaVzUwVjI5eWJHUlNiM1JoZEdsdmJpQTlJRjl4ZFdGMFFTNWpiM0I1S0hCaGNtVnVkRmR2Y214a1VtOTBZWFJwYjI0cExtbHVkbVZ5ZENncE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaWIyNWxVbTkwWVhScGIyNGdQU0IwYUdsekxsOWliMjVsVW05MFlYUnBiMjV6VzJKdmJtVk9ZVzFsWFNFN1hHNWNiaUFnSUNBZ0lDQWdZbTl1WlU1dlpHVXVjWFZoZEdWeWJtbHZibHh1SUNBZ0lDQWdJQ0FnSUM1amIzQjVLSEpwWjBKdmJtVk9iMlJsTG5GMVlYUmxjbTVwYjI0cFhHNGdJQ0FnSUNBZ0lDQWdMbTExYkhScGNHeDVLSEJoY21WdWRGZHZjbXhrVW05MFlYUnBiMjRwWEc0Z0lDQWdJQ0FnSUNBZ0xuQnlaVzExYkhScGNHeDVLR2x1ZGxCaGNtVnVkRmR2Y214a1VtOTBZWFJwYjI0cFhHNGdJQ0FnSUNBZ0lDQWdMbTExYkhScGNHeDVLR0p2Ym1WU2IzUmhkR2x2YmlrN1hHNWNiaUFnSUNBZ0lDQWdMeThnVFc5MlpTQjBhR1VnYldGemN5QmpaVzUwWlhJZ2IyWWdkR2hsSUZaU1RWeHVJQ0FnSUNBZ0lDQnBaaUFvWW05dVpVNWhiV1VnUFQwOUlDZG9hWEJ6SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHSnZibVZYYjNKc1pGQnZjMmwwYVc5dUlEMGdjbWxuUW05dVpVNXZaR1V1WjJWMFYyOXliR1JRYjNOcGRHbHZiaWhmWW05dVpWZHZjbXhrVUc5ektUdGNiaUFnSUNBZ0lDQWdJQ0JpYjI1bFRtOWtaUzV3WVhKbGJuUWhMblZ3WkdGMFpWZHZjbXhrVFdGMGNtbDRLSFJ5ZFdVc0lHWmhiSE5sS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSmxiblJYYjNKc1pFMWhkSEpwZUNBOUlHSnZibVZPYjJSbExuQmhjbVZ1ZENFdWJXRjBjbWw0VjI5eWJHUTdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiRzlqWVd4UWIzTnBkR2x2YmlBOUlHSnZibVZYYjNKc1pGQnZjMmwwYVc5dUxtRndjR3g1VFdGMGNtbDROQ2h3WVhKbGJuUlhiM0pzWkUxaGRISnBlQzVwYm5abGNuUW9LU2s3WEc0Z0lDQWdJQ0FnSUNBZ1ltOXVaVTV2WkdVdWNHOXphWFJwYjI0dVkyOXdlU2hzYjJOaGJGQnZjMmwwYVc5dUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNCOVhHNTlYRzRpTENKcGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVWgxYldGdVFtOXVaU0I5SUdaeWIyMGdKeTR2VmxKTlNIVnRZVzVDYjI1bEp6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5TSFZ0WVc1Q2IyNWxjeUI5SUdaeWIyMGdKeTR2VmxKTlNIVnRZVzVDYjI1bGN5YzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVWgxYldGdVFtOXVaVTVoYldVZ2ZTQm1jbTl0SUNjdUwxWlNUVWgxYldGdVFtOXVaVTVoYldVbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCV1VrMVFiM05sSUgwZ1puSnZiU0FuTGk5V1VrMVFiM05sSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVkpwWnlCOUlHWnliMjBnSnk0dlZsSk5VbWxuSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVWgxYldGdWIybGtVbWxuSUgwZ1puSnZiU0FuTGk5V1VrMUlkVzFoYm05cFpGSnBaeWM3WEc1Y2JpOHFLbHh1SUNvZ1FTQmpiR0Z6Y3lCeVpYQnlaWE5sYm5SeklHRWdhSFZ0WVc1dmFXUWdiMllnWVNCV1VrMHVYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxSWRXMWhibTlwWkNCN1hHNGdJQzhxS2x4dUlDQWdLaUJYYUdWMGFHVnlJR2wwSUdOdmNHbGxjeUJ3YjNObElHWnliMjBnYm05eWJXRnNhWHBsWkVoMWJXRnVRbTl1WlhNZ2RHOGdjbUYzU0hWdFlXNUNiMjVsY3lCdmJpQjdRR3hwYm1zZ2RYQmtZWFJsZlM1Y2JpQWdJQ29nWUhSeWRXVmdJR0o1SUdSbFptRjFiSFF1WEc0Z0lDQXFYRzRnSUNBcUlFQmtaV1poZFd4MElIUnlkV1ZjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJoZFhSdlZYQmtZWFJsU0hWdFlXNUNiMjVsY3pvZ1ltOXZiR1ZoYmp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCeVlYY2djbWxuSUc5bUlIUm9aU0JXVWswdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXlZWGRJZFcxaGJrSnZibVZ6T2lCV1VrMVNhV2M3SUM4dklGUlBSRTg2SUZKbGJtRnRaVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJRzV2Y20xaGJHbDZaV1FnY21sbklHOW1JSFJvWlNCV1VrMHVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjl1YjNKdFlXeHBlbVZrU0hWdFlXNUNiMjVsY3pvZ1ZsSk5TSFZ0WVc1dmFXUlNhV2M3SUM4dklGUlBSRTg2SUZKbGJtRnRaVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z3Y21WallYUmxaQ0JFWlhCeVpXTmhkR1ZrTGlCVmMyVWdaV2wwYUdWeUlIdEFiR2x1YXlCeVlYZFNaWE4wVUc5elpYMGdiM0lnZTBCc2FXNXJJRzV2Y20xaGJHbDZaV1JTWlhOMFVHOXpaWDBnYVc1emRHVmhaQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhRZ2NtVnpkRkJ2YzJVb0tUb2dWbEpOVUc5elpTQjdYRzRnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLQ2RXVWsxSWRXMWhibTlwWkRvZ2NtVnpkRkJ2YzJVZ2FYTWdaR1Z3Y21WallYUmxaQzRnVlhObElHVnBkR2hsY2lCeVlYZFNaWE4wVUc5elpTQnZjaUJ1YjNKdFlXeHBlbVZrVW1WemRGQnZjMlVnYVc1emRHVmhaQzRuS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuSmhkMUpsYzNSUWIzTmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2UwQnNhVzVySUZaU1RWQnZjMlY5SUc5bUlHbDBjeUJ5WVhjZ2FIVnRZVzRnWW05dVpYTWdkR2hoZENCcGN5QnBkSE1nWkdWbVlYVnNkQ0J6ZEdGMFpTNWNiaUFnSUNvZ1RtOTBaU0IwYUdGMElHbDBKM01nYm05MElHTnZiWEJoZEdsaWJHVWdkMmwwYUNCN1FHeHBibXNnYzJWMFVtRjNVRzl6WlgwZ1lXNWtJSHRBYkdsdWF5Qm5aWFJTWVhkUWIzTmxmU3dnYzJsdVkyVWdhWFFnWTI5dWRHRnBibk1nYm05dUxYSmxiR0YwYVhabElIWmhiSFZsY3lCdlppQmxZV05vSUd4dlkyRnNJSFJ5WVc1elptOXliWE11WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMElISmhkMUpsYzNSUWIzTmxLQ2s2SUZaU1RWQnZjMlVnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TGw5eVlYZElkVzFoYmtKdmJtVnpMbkpsYzNSUWIzTmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2UwQnNhVzVySUZaU1RWQnZjMlY5SUc5bUlHbDBjeUJ1YjNKdFlXeHBlbVZrSUdoMWJXRnVJR0p2Ym1WeklIUm9ZWFFnYVhNZ2FYUnpJR1JsWm1GMWJIUWdjM1JoZEdVdVhHNGdJQ0FxSUU1dmRHVWdkR2hoZENCcGRDZHpJRzV2ZENCamIyMXdZWFJwWW14bElIZHBkR2dnZTBCc2FXNXJJSE5sZEU1dmNtMWhiR2w2WldSUWIzTmxmU0JoYm1RZ2UwQnNhVzVySUdkbGRFNXZjbTFoYkdsNlpXUlFiM05sZlN3Z2MybHVZMlVnYVhRZ1kyOXVkR0ZwYm5NZ2JtOXVMWEpsYkdGMGFYWmxJSFpoYkhWbGN5QnZaaUJsWVdOb0lHeHZZMkZzSUhSeVlXNXpabTl5YlhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1oyVjBJRzV2Y20xaGJHbDZaV1JTWlhOMFVHOXpaU2dwT2lCV1VrMVFiM05sSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmJtOXliV0ZzYVhwbFpFaDFiV0Z1UW05dVpYTXVjbVZ6ZEZCdmMyVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCdFlYQWdabkp2YlNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bFRtRnRaWDBnZEc4Z2NtRjNJSHRBYkdsdWF5QldVazFJZFcxaGJrSnZibVY5Y3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUWdhSFZ0WVc1Q2IyNWxjeWdwT2lCV1VrMUlkVzFoYmtKdmJtVnpJSHRjYmlBZ0lDQXZMeUJoYmlCaGJHbGhjeUJ2WmlCZ2NtRjNTSFZ0WVc1Q2IyNWxjMkJjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmY21GM1NIVnRZVzVDYjI1bGN5NW9kVzFoYmtKdmJtVnpPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2JXRndJR1p5YjIwZ2UwQnNhVzVySUZaU1RVaDFiV0Z1UW05dVpVNWhiV1Y5SUhSdklISmhkeUI3UUd4cGJtc2dWbEpOU0hWdFlXNUNiMjVsZlhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1oyVjBJSEpoZDBoMWJXRnVRbTl1WlhNb0tUb2dWbEpOU0hWdFlXNUNiMjVsY3lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSmhkMGgxYldGdVFtOXVaWE11YUhWdFlXNUNiMjVsY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJRzFoY0NCbWNtOXRJSHRBYkdsdWF5QldVazFJZFcxaGJrSnZibVZPWVcxbGZTQjBieUJ1YjNKdFlXeHBlbVZrSUh0QWJHbHVheUJXVWsxSWRXMWhia0p2Ym1WOWN5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFFnYm05eWJXRnNhWHBsWkVoMWJXRnVRbTl1WlhNb0tUb2dWbEpOU0hWdFlXNUNiMjVsY3lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyNXZjbTFoYkdsNlpXUklkVzFoYmtKdmJtVnpMbWgxYldGdVFtOXVaWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSEp2YjNRZ2IyWWdibTl5YldGc2FYcGxaQ0I3UUd4cGJtc2dWbEpOU0hWdFlXNUNiMjVsZlhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1oyVjBJRzV2Y20xaGJHbDZaV1JJZFcxaGJrSnZibVZ6VW05dmRDZ3BPaUJVU0ZKRlJTNVBZbXBsWTNRelJDQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMjV2Y20xaGJHbDZaV1JJZFcxaGJrSnZibVZ6TG5KdmIzUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lIdEFiR2x1YXlCV1VrMUlkVzFoYm05cFpIMHVYRzRnSUNBcUlFQndZWEpoYlNCb2RXMWhia0p2Ym1WeklFRWdlMEJzYVc1cklGWlNUVWgxYldGdVFtOXVaWE45SUdOdmJuUmhhVzV6SUdGc2JDQjBhR1VnWW05dVpYTWdiMllnZEdobElHNWxkeUJvZFcxaGJtOXBaRnh1SUNBZ0tpQkFjR0Z5WVcwZ1lYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTWdWMmhsZEdobGNpQnBkQ0JqYjNCcFpYTWdjRzl6WlNCbWNtOXRJRzV2Y20xaGJHbDZaV1JJZFcxaGJrSnZibVZ6SUhSdklISmhkMGgxYldGdVFtOXVaWE1nYjI0Z2UwQnNhVzVySUhWd1pHRjBaWDB1SUdCMGNuVmxZQ0JpZVNCa1pXWmhkV3gwTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtHaDFiV0Z1UW05dVpYTTZJRlpTVFVoMWJXRnVRbTl1WlhNc0lHOXdkR2x2Ym5NL09pQjdJR0YxZEc5VmNHUmhkR1ZJZFcxaGJrSnZibVZ6UHpvZ1ltOXZiR1ZoYmlCOUtTQjdYRzRnSUNBZ2RHaHBjeTVoZFhSdlZYQmtZWFJsU0hWdFlXNUNiMjVsY3lBOUlHOXdkR2x2Ym5NL0xtRjFkRzlWY0dSaGRHVklkVzFoYmtKdmJtVnpJRDgvSUhSeWRXVTdYRzRnSUNBZ2RHaHBjeTVmY21GM1NIVnRZVzVDYjI1bGN5QTlJRzVsZHlCV1VrMVNhV2NvYUhWdFlXNUNiMjVsY3lrN1hHNGdJQ0FnZEdocGN5NWZibTl5YldGc2FYcGxaRWgxYldGdVFtOXVaWE1nUFNCdVpYY2dWbEpOU0hWdFlXNXZhV1JTYVdjb2RHaHBjeTVmY21GM1NIVnRZVzVDYjI1bGN5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTI5d2VTQjBhR1VnWjJsMlpXNGdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtmU0JwYm5SdklIUm9hWE1nYjI1bExseHVJQ0FnS2lCQWNHRnlZVzBnYzI5MWNtTmxJRlJvWlNCN1FHeHBibXNnVmxKTlNIVnRZVzV2YVdSOUlIbHZkU0IzWVc1MElIUnZJR052Y0hsY2JpQWdJQ29nUUhKbGRIVnlibk1nZEdocGMxeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHTnZjSGtvYzI5MWNtTmxPaUJXVWsxSWRXMWhibTlwWkNrNklIUm9hWE1nZTF4dUlDQWdJSFJvYVhNdVlYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTWdQU0J6YjNWeVkyVXVZWFYwYjFWd1pHRjBaVWgxYldGdVFtOXVaWE03WEc0Z0lDQWdkR2hwY3k1ZmNtRjNTSFZ0WVc1Q2IyNWxjeUE5SUc1bGR5QldVazFTYVdjb2MyOTFjbU5sTG1oMWJXRnVRbTl1WlhNcE8xeHVJQ0FnSUhSb2FYTXVYMjV2Y20xaGJHbDZaV1JJZFcxaGJrSnZibVZ6SUQwZ2JtVjNJRlpTVFVoMWJXRnViMmxrVW1sbktIUm9hWE11WDNKaGQwaDFiV0Z1UW05dVpYTXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaElHTnNiMjVsSUc5bUlIUm9hWE1nZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrZlM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nUTI5d2FXVmtJSHRBYkdsdWF5QldVazFJZFcxaGJtOXBaSDFjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJqYkc5dVpTZ3BPaUJXVWsxSWRXMWhibTlwWkNCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCV1VrMUlkVzFoYm05cFpDaDBhR2x6TG1oMWJXRnVRbTl1WlhNc0lIc2dZWFYwYjFWd1pHRjBaVWgxYldGdVFtOXVaWE02SUhSb2FYTXVZWFYwYjFWd1pHRjBaVWgxYldGdVFtOXVaWE1nZlNrdVkyOXdlU2gwYUdsektUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWd2NtVmpZWFJsWkNCRVpYQnlaV05oZEdWa0xpQlZjMlVnWldsMGFHVnlJSHRBYkdsdWF5Qm5aWFJTWVhkQlluTnZiSFYwWlZCdmMyVjlJRzl5SUh0QWJHbHVheUJuWlhST2IzSnRZV3hwZW1Wa1FXSnpiMngxZEdWUWIzTmxmU0JwYm5OMFpXRmtMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZEVGaWMyOXNkWFJsVUc5elpTZ3BPaUJXVWsxUWIzTmxJSHRjYmlBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWEc0Z0lDQWdJQ0FuVmxKTlNIVnRZVzV2YVdRNklHZGxkRUZpYzI5c2RYUmxVRzl6WlNncElHbHpJR1JsY0hKbFkyRjBaV1F1SUZWelpTQmxhWFJvWlhJZ1oyVjBVbUYzUVdKemIyeDFkR1ZRYjNObEtDa2diM0lnWjJWMFRtOXliV0ZzYVhwbFpFRmljMjlzZFhSbFVHOXpaU2dwSUdsdWMzUmxZV1F1Snl4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVoyVjBVbUYzUVdKemIyeDFkR1ZRYjNObEtDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJSFJvWlNCamRYSnlaVzUwSUdGaWMyOXNkWFJsSUhCdmMyVWdiMllnZEdocGN5QnlZWGNnYUhWdFlXNGdZbTl1WlhNZ1lYTWdZU0I3UUd4cGJtc2dWbEpOVUc5elpYMHVYRzRnSUNBcUlFNXZkR1VnZEdoaGRDQjBhR1VnYjNWMGNIVjBJSEpsYzNWc2RDQjNhV3hzSUdOdmJuUmhhVzRnYVc1cGRHbGhiQ0J6ZEdGMFpTQnZaaUIwYUdVZ1ZsSk5JR0Z1WkNCdWIzUWdZMjl0Y0dGMGFXSnNaU0JpWlhSM1pXVnVJR1JwWm1abGNtVnVkQ0J0YjJSbGJITXVYRzRnSUNBcUlGbHZkU0J0YVdkb2RDQjNZVzUwSUhSdklIVnpaU0I3UUd4cGJtc2daMlYwVW1GM1VHOXpaWDBnYVc1emRHVmhaQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhSU1lYZEJZbk52YkhWMFpWQnZjMlVvS1RvZ1ZsSk5VRzl6WlNCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSmhkMGgxYldGdVFtOXVaWE11WjJWMFFXSnpiMngxZEdWUWIzTmxLQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhSb1pTQmpkWEp5Wlc1MElHRmljMjlzZFhSbElIQnZjMlVnYjJZZ2RHaHBjeUJ1YjNKdFlXeHBlbVZrSUdoMWJXRnVJR0p2Ym1WeklHRnpJR0VnZTBCc2FXNXJJRlpTVFZCdmMyVjlMbHh1SUNBZ0tpQk9iM1JsSUhSb1lYUWdkR2hsSUc5MWRIQjFkQ0J5WlhOMWJIUWdkMmxzYkNCamIyNTBZV2x1SUdsdWFYUnBZV3dnYzNSaGRHVWdiMllnZEdobElGWlNUU0JoYm1RZ2JtOTBJR052YlhCaGRHbGliR1VnWW1WMGQyVmxiaUJrYVdabVpYSmxiblFnYlc5a1pXeHpMbHh1SUNBZ0tpQlpiM1VnYldsbmFIUWdkMkZ1ZENCMGJ5QjFjMlVnZTBCc2FXNXJJR2RsZEU1dmNtMWhiR2w2WldSUWIzTmxmU0JwYm5OMFpXRmtMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZEU1dmNtMWhiR2w2WldSQlluTnZiSFYwWlZCdmMyVW9LVG9nVmxKTlVHOXpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDI1dmNtMWhiR2w2WldSSWRXMWhia0p2Ym1WekxtZGxkRUZpYzI5c2RYUmxVRzl6WlNncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhCeVpXTmhkR1ZrSUVSbGNISmxZMkYwWldRdUlGVnpaU0JsYVhSb1pYSWdlMEJzYVc1cklHZGxkRkpoZDFCdmMyVjlJRzl5SUh0QWJHbHVheUJuWlhST2IzSnRZV3hwZW1Wa1VHOXpaWDBnYVc1emRHVmhaQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhSUWIzTmxLQ2s2SUZaU1RWQnZjMlVnZTF4dUlDQWdJR052Ym5OdmJHVXVkMkZ5YmlnblZsSk5TSFZ0WVc1dmFXUTZJR2RsZEZCdmMyVW9LU0JwY3lCa1pYQnlaV05oZEdWa0xpQlZjMlVnWldsMGFHVnlJR2RsZEZKaGQxQnZjMlVvS1NCdmNpQm5aWFJPYjNKdFlXeHBlbVZrVUc5elpTZ3BJR2x1YzNSbFlXUXVKeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpYUlNZWGRRYjNObEtDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJSFJvWlNCamRYSnlaVzUwSUhCdmMyVWdiMllnY21GM0lHaDFiV0Z1SUdKdmJtVnpJR0Z6SUdFZ2UwQnNhVzVySUZaU1RWQnZjMlY5TGx4dUlDQWdLbHh1SUNBZ0tpQkZZV05vSUhSeVlXNXpabTl5YlNCcGN5QmhJR3h2WTJGc0lIUnlZVzV6Wm05eWJTQnlaV3hoZEdsMlpTQm1jbTl0SUhKbGMzUWdjRzl6WlNBb1ZDMXdiM05sS1M1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUlNZWGRRYjNObEtDazZJRlpTVFZCdmMyVWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl5WVhkSWRXMWhia0p2Ym1WekxtZGxkRkJ2YzJVb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUdOMWNuSmxiblFnY0c5elpTQnZaaUJ1YjNKdFlXeHBlbVZrSUdoMWJXRnVJR0p2Ym1WeklHRnpJR0VnZTBCc2FXNXJJRlpTVFZCdmMyVjlMbHh1SUNBZ0tseHVJQ0FnS2lCRllXTm9JSFJ5WVc1elptOXliU0JwY3lCaElHeHZZMkZzSUhSeVlXNXpabTl5YlNCeVpXeGhkR2wyWlNCbWNtOXRJSEpsYzNRZ2NHOXpaU0FvVkMxd2IzTmxLUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhST2IzSnRZV3hwZW1Wa1VHOXpaU2dwT2lCV1VrMVFiM05sSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmJtOXliV0ZzYVhwbFpFaDFiV0Z1UW05dVpYTXVaMlYwVUc5elpTZ3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYQnlaV05oZEdWa0lFUmxjSEpsWTJGMFpXUXVJRlZ6WlNCbGFYUm9aWElnZTBCc2FXNXJJSE5sZEZKaGQxQnZjMlY5SUc5eUlIdEFiR2x1YXlCelpYUk9iM0p0WVd4cGVtVmtVRzl6WlgwZ2FXNXpkR1ZoWkM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCelpYUlFiM05sS0hCdmMyVlBZbXBsWTNRNklGWlNUVkJ2YzJVcE9pQjJiMmxrSUh0Y2JpQWdJQ0JqYjI1emIyeGxMbmRoY200b0oxWlNUVWgxYldGdWIybGtPaUJ6WlhSUWIzTmxLQ2tnYVhNZ1pHVndjbVZqWVhSbFpDNGdWWE5sSUdWcGRHaGxjaUJ6WlhSU1lYZFFiM05sS0NrZ2IzSWdjMlYwVG05eWJXRnNhWHBsWkZCdmMyVW9LU0JwYm5OMFpXRmtMaWNwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyVjBVbUYzVUc5elpTaHdiM05sVDJKcVpXTjBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCTVpYUWdkR2hsSUhKaGR5Qm9kVzFoYmlCaWIyNWxjeUJrYnlCaElITndaV05wWm1sbFpDQndiM05sTGx4dUlDQWdLbHh1SUNBZ0tpQkZZV05vSUhSeVlXNXpabTl5YlNCb1lYWmxJSFJ2SUdKbElHRWdiRzlqWVd3Z2RISmhibk5tYjNKdElISmxiR0YwYVhabElHWnliMjBnY21WemRDQndiM05sSUNoVUxYQnZjMlVwTGx4dUlDQWdLaUJaYjNVZ1kyRnVJSEJoYzNNZ2QyaGhkQ0I1YjNVZ1oyOTBJR1p5YjIwZ2UwQnNhVzVySUdkbGRGSmhkMUJ2YzJWOUxseHVJQ0FnS2x4dUlDQWdLaUJKWmlCNWIzVWdZWEpsSUhWemFXNW5JSHRBYkdsdWF5QmhkWFJ2VlhCa1lYUmxTSFZ0WVc1Q2IyNWxjMzBzSUhsdmRTQnRhV2RvZENCM1lXNTBJSFJ2SUhWelpTQjdRR3hwYm1zZ2MyVjBUbTl5YldGc2FYcGxaRkJ2YzJWOUlHbHVjM1JsWVdRdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQndiM05sVDJKcVpXTjBJRUVnZTBCc2FXNXJJRlpTVFZCdmMyVjlJSFJvWVhRZ2NtVndjbVZ6Wlc1MGN5QmhJSE5wYm1kc1pTQndiM05sWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYzJWMFVtRjNVRzl6WlNod2IzTmxUMkpxWldOME9pQldVazFRYjNObEtUb2dkbTlwWkNCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSmhkMGgxYldGdVFtOXVaWE11YzJWMFVHOXpaU2h3YjNObFQySnFaV04wS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQk1aWFFnZEdobElHNXZjbTFoYkdsNlpXUWdhSFZ0WVc0Z1ltOXVaWE1nWkc4Z1lTQnpjR1ZqYVdacFpXUWdjRzl6WlM1Y2JpQWdJQ3BjYmlBZ0lDb2dSV0ZqYUNCMGNtRnVjMlp2Y20wZ2FHRjJaU0IwYnlCaVpTQmhJR3h2WTJGc0lIUnlZVzV6Wm05eWJTQnlaV3hoZEdsMlpTQm1jbTl0SUhKbGMzUWdjRzl6WlNBb1ZDMXdiM05sS1M1Y2JpQWdJQ29nV1c5MUlHTmhiaUJ3WVhOeklIZG9ZWFFnZVc5MUlHZHZkQ0JtY205dElIdEFiR2x1YXlCblpYUk9iM0p0WVd4cGVtVmtVRzl6WlgwdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQndiM05sVDJKcVpXTjBJRUVnZTBCc2FXNXJJRlpTVFZCdmMyVjlJSFJvWVhRZ2NtVndjbVZ6Wlc1MGN5QmhJSE5wYm1kc1pTQndiM05sWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYzJWMFRtOXliV0ZzYVhwbFpGQnZjMlVvY0c5elpVOWlhbVZqZERvZ1ZsSk5VRzl6WlNrNklIWnZhV1FnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TGw5dWIzSnRZV3hwZW1Wa1NIVnRZVzVDYjI1bGN5NXpaWFJRYjNObEtIQnZjMlZQWW1wbFkzUXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYQnlaV05oZEdWa0lFUmxjSEpsWTJGMFpXUXVJRlZ6WlNCbGFYUm9aWElnZTBCc2FXNXJJSEpsYzJWMFVtRjNVRzl6WlgwZ2IzSWdlMEJzYVc1cklISmxjMlYwVG05eWJXRnNhWHBsWkZCdmMyVjlJR2x1YzNSbFlXUXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbVZ6WlhSUWIzTmxLQ2s2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk52YkdVdWQyRnliaWduVmxKTlNIVnRZVzV2YVdRNklISmxjMlYwVUc5elpTZ3BJR2x6SUdSbGNISmxZMkYwWldRdUlGVnpaU0JsYVhSb1pYSWdjbVZ6WlhSU1lYZFFiM05sS0NrZ2IzSWdjbVZ6WlhST2IzSnRZV3hwZW1Wa1VHOXpaU2dwSUdsdWMzUmxZV1F1SnlrN1hHNWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWE5sZEZKaGQxQnZjMlVvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWE5sZENCMGFHVWdjbUYzSUdoMWJXRnViMmxrSUhSdklHbDBjeUJ5WlhOMElIQnZjMlV1WEc0Z0lDQXFYRzRnSUNBcUlFbG1JSGx2ZFNCaGNtVWdkWE5wYm1jZ2UwQnNhVzVySUdGMWRHOVZjR1JoZEdWSWRXMWhia0p2Ym1WemZTd2dlVzkxSUcxcFoyaDBJSGRoYm5RZ2RHOGdkWE5sSUh0QWJHbHVheUJ5WlhObGRFNXZjbTFoYkdsNlpXUlFiM05sZlNCcGJuTjBaV0ZrTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbGMyVjBVbUYzVUc5elpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWZjbUYzU0hWdFlXNUNiMjVsY3k1eVpYTmxkRkJ2YzJVb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhObGRDQjBhR1VnYm05eWJXRnNhWHBsWkNCb2RXMWhibTlwWkNCMGJ5QnBkSE1nY21WemRDQndiM05sTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbGMyVjBUbTl5YldGc2FYcGxaRkJ2YzJVb0tUb2dkbTlwWkNCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyNXZjbTFoYkdsNlpXUklkVzFoYmtKdmJtVnpMbkpsYzJWMFVHOXpaU2dwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWEJ5WldOaGRHVmtJRVJsY0hKbFkyRjBaV1F1SUZWelpTQmxhWFJvWlhJZ2UwQnNhVzVySUdkbGRGSmhkMEp2Ym1WOUlHOXlJSHRBYkdsdWF5Qm5aWFJPYjNKdFlXeHBlbVZrUW05dVpYMGdhVzV6ZEdWaFpDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJDYjI1bEtHNWhiV1U2SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VwT2lCV1VrMUlkVzFoYmtKdmJtVWdmQ0IxYm1SbFptbHVaV1FnZTF4dUlDQWdJR052Ym5OdmJHVXVkMkZ5YmlnblZsSk5TSFZ0WVc1dmFXUTZJR2RsZEVKdmJtVW9LU0JwY3lCa1pYQnlaV05oZEdWa0xpQlZjMlVnWldsMGFHVnlJR2RsZEZKaGQwSnZibVVvS1NCdmNpQm5aWFJPYjNKdFlXeHBlbVZrUW05dVpTZ3BJR2x1YzNSbFlXUXVKeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpYUlNZWGRDYjI1bEtHNWhiV1VwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5YmlCaElISmhkeUI3UUd4cGJtc2dWbEpOU0hWdFlXNUNiMjVsZlNCaWIzVnVaQ0IwYnlCaElITndaV05wWm1sbFpDQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxUbUZ0WlgwdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQnVZVzFsSUU1aGJXVWdiMllnZEdobElHSnZibVVnZVc5MUlIZGhiblJjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJuWlhSU1lYZENiMjVsS0c1aGJXVTZJRlpTVFVoMWJXRnVRbTl1WlU1aGJXVXBPaUJXVWsxSWRXMWhia0p2Ym1VZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl5WVhkSWRXMWhia0p2Ym1WekxtZGxkRUp2Ym1Vb2JtRnRaU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUdFZ2JtOXliV0ZzYVhwbFpDQjdRR3hwYm1zZ1ZsSk5TSFZ0WVc1Q2IyNWxmU0JpYjNWdVpDQjBieUJoSUhOd1pXTnBabWxsWkNCN1FHeHBibXNnVmxKTlNIVnRZVzVDYjI1bFRtRnRaWDB1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCdVlXMWxJRTVoYldVZ2IyWWdkR2hsSUdKdmJtVWdlVzkxSUhkaGJuUmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJPYjNKdFlXeHBlbVZrUW05dVpTaHVZVzFsT2lCV1VrMUlkVzFoYmtKdmJtVk9ZVzFsS1RvZ1ZsSk5TSFZ0WVc1Q2IyNWxJSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmJtOXliV0ZzYVhwbFpFaDFiV0Z1UW05dVpYTXVaMlYwUW05dVpTaHVZVzFsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z3Y21WallYUmxaQ0JFWlhCeVpXTmhkR1ZrTGlCVmMyVWdaV2wwYUdWeUlIdEFiR2x1YXlCblpYUlNZWGRDYjI1bFRtOWtaWDBnYjNJZ2UwQnNhVzVySUdkbGRFNXZjbTFoYkdsNlpXUkNiMjVsVG05a1pYMGdhVzV6ZEdWaFpDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJDYjI1bFRtOWtaU2h1WVcxbE9pQldVazFJZFcxaGJrSnZibVZPWVcxbEtUb2dWRWhTUlVVdVQySnFaV04wTTBRZ2ZDQnVkV3hzSUh0Y2JpQWdJQ0JqYjI1emIyeGxMbmRoY200b1hHNGdJQ0FnSUNBblZsSk5TSFZ0WVc1dmFXUTZJR2RsZEVKdmJtVk9iMlJsS0NrZ2FYTWdaR1Z3Y21WallYUmxaQzRnVlhObElHVnBkR2hsY2lCblpYUlNZWGRDYjI1bFRtOWtaU2dwSUc5eUlHZGxkRTV2Y20xaGJHbDZaV1JDYjI1bFRtOWtaU2dwSUdsdWMzUmxZV1F1Snl4Y2JpQWdJQ0FwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVoyVjBVbUYzUW05dVpVNXZaR1VvYm1GdFpTazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVJR0VnY21GM0lHSnZibVVnWVhNZ1lTQmdWRWhTUlVVdVQySnFaV04wTTBSZ0lHSnZkVzVrSUhSdklHRWdjM0JsWTJsbWFXVmtJSHRBYkdsdWF5QldVazFJZFcxaGJrSnZibVZPWVcxbGZTNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJRzVoYldVZ1RtRnRaU0J2WmlCMGFHVWdZbTl1WlNCNWIzVWdkMkZ1ZEZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRGSmhkMEp2Ym1WT2IyUmxLRzVoYldVNklGWlNUVWgxYldGdVFtOXVaVTVoYldVcE9pQlVTRkpGUlM1UFltcGxZM1F6UkNCOElHNTFiR3dnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TGw5eVlYZElkVzFoYmtKdmJtVnpMbWRsZEVKdmJtVk9iMlJsS0c1aGJXVXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnliaUJoSUc1dmNtMWhiR2w2WldRZ1ltOXVaU0JoY3lCaElHQlVTRkpGUlM1UFltcGxZM1F6UkdBZ1ltOTFibVFnZEc4Z1lTQnpjR1ZqYVdacFpXUWdlMEJzYVc1cklGWlNUVWgxYldGdVFtOXVaVTVoYldWOUxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdibUZ0WlNCT1lXMWxJRzltSUhSb1pTQmliMjVsSUhsdmRTQjNZVzUwWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMFRtOXliV0ZzYVhwbFpFSnZibVZPYjJSbEtHNWhiV1U2SUZaU1RVaDFiV0Z1UW05dVpVNWhiV1VwT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ0I4SUc1MWJHd2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl1YjNKdFlXeHBlbVZrU0hWdFlXNUNiMjVsY3k1blpYUkNiMjVsVG05a1pTaHVZVzFsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlZjR1JoZEdVZ2RHaGxJR2gxYldGdWIybGtJR052YlhCdmJtVnVkQzVjYmlBZ0lDcGNiaUFnSUNvZ1NXWWdlMEJzYVc1cklHRjFkRzlWY0dSaGRHVklkVzFoYmtKdmJtVnpmU0JwY3lCZ2RISjFaV0FzSUdsMElIUnlZVzV6Wm1WeWN5QjBhR1VnY0c5elpTQnZaaUJ1YjNKdFlXeHBlbVZrSUdoMWJXRnVJR0p2Ym1WeklIUnZJSEpoZHlCb2RXMWhiaUJpYjI1bGN5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QjFjR1JoZEdVb0tUb2dkbTlwWkNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WVhWMGIxVndaR0YwWlVoMWJXRnVRbTl1WlhNcElIdGNiaUFnSUNBZ0lIUm9hWE11WDI1dmNtMWhiR2w2WldSSWRXMWhia0p2Ym1WekxuVndaR0YwWlNncE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUlpd2lMeW9nWlhOc2FXNTBMV1JwYzJGaWJHVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjVoYldsdVp5MWpiMjUyWlc1MGFXOXVJQ292WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JXVWsxU1pYRjFhWEpsWkVoMWJXRnVRbTl1WlU1aGJXVWdQU0I3WEc0Z0lFaHBjSE02SUNkb2FYQnpKeXhjYmlBZ1UzQnBibVU2SUNkemNHbHVaU2NzWEc0Z0lFaGxZV1E2SUNkb1pXRmtKeXhjYmlBZ1RHVm1kRlZ3Y0dWeVRHVm5PaUFuYkdWbWRGVndjR1Z5VEdWbkp5eGNiaUFnVEdWbWRFeHZkMlZ5VEdWbk9pQW5iR1ZtZEV4dmQyVnlUR1ZuSnl4Y2JpQWdUR1ZtZEVadmIzUTZJQ2RzWldaMFJtOXZkQ2NzWEc0Z0lGSnBaMmgwVlhCd1pYSk1aV2M2SUNkeWFXZG9kRlZ3Y0dWeVRHVm5KeXhjYmlBZ1VtbG5hSFJNYjNkbGNreGxaem9nSjNKcFoyaDBURzkzWlhKTVpXY25MRnh1SUNCU2FXZG9kRVp2YjNRNklDZHlhV2RvZEVadmIzUW5MRnh1SUNCTVpXWjBWWEJ3WlhKQmNtMDZJQ2RzWldaMFZYQndaWEpCY20wbkxGeHVJQ0JNWldaMFRHOTNaWEpCY20wNklDZHNaV1owVEc5M1pYSkJjbTBuTEZ4dUlDQk1aV1owU0dGdVpEb2dKMnhsWm5SSVlXNWtKeXhjYmlBZ1VtbG5hSFJWY0hCbGNrRnliVG9nSjNKcFoyaDBWWEJ3WlhKQmNtMG5MRnh1SUNCU2FXZG9kRXh2ZDJWeVFYSnRPaUFuY21sbmFIUk1iM2RsY2tGeWJTY3NYRzRnSUZKcFoyaDBTR0Z1WkRvZ0ozSnBaMmgwU0dGdVpDY3NYRzU5SUdGeklHTnZibk4wTzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JXVWsxU1pYRjFhWEpsWkVoMWJXRnVRbTl1WlU1aGJXVWdQU0IwZVhCbGIyWWdWbEpOVW1WeGRXbHlaV1JJZFcxaGJrSnZibVZPWVcxbFcydGxlVzltSUhSNWNHVnZaaUJXVWsxU1pYRjFhWEpsWkVoMWJXRnVRbTl1WlU1aGJXVmRPMXh1SWl3aWFXMXdiM0owSUhSNWNHVWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0FxSUdGeklGWXdWbEpOSUdaeWIyMGdKMEJ3YVhocGRpOTBlWEJsY3kxMmNtMHRNQzR3Snp0Y2JtbHRjRzl5ZENCMGVYQmxJQ29nWVhNZ1ZqRldVazFUWTJobGJXRWdabkp2YlNBblFIQnBlR2wyTDNSNWNHVnpMWFp5YldNdGRuSnRMVEV1TUNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVkTVZFWXNJRWRNVkVaTWIyRmtaWEpRYkhWbmFXNHNJRWRNVkVaUVlYSnpaWElnZlNCbWNtOXRJQ2QwYUhKbFpTOWxlR0Z0Y0d4bGN5OXFjMjB2Ykc5aFpHVnljeTlIVEZSR1RHOWhaR1Z5TG1wekp6dGNibWx0Y0c5eWRDQjdJRlpTVFVoMWJXRnViMmxrSUgwZ1puSnZiU0FuTGk5V1VrMUlkVzFoYm05cFpDYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVWgxYldGdVFtOXVaWE1nZlNCbWNtOXRJQ2N1TDFaU1RVaDFiV0Z1UW05dVpYTW5PMXh1YVcxd2IzSjBJSHNnVmxKTlVtVnhkV2x5WldSSWRXMWhia0p2Ym1WT1lXMWxJSDBnWm5KdmJTQW5MaTlXVWsxU1pYRjFhWEpsWkVoMWJXRnVRbTl1WlU1aGJXVW5PMXh1YVcxd2IzSjBJSHNnUjB4VVJpQmhjeUJIVEZSR1UyTm9aVzFoSUgwZ1puSnZiU0FuUUdkc2RHWXRkSEpoYm5ObWIzSnRMMk52Y21Vbk8xeHVhVzF3YjNKMElIc2dWbEpOU0hWdFlXNXZhV1JJWld4d1pYSWdmU0JtY205dElDY3VMMmhsYkhCbGNuTXZWbEpOU0hWdFlXNXZhV1JJWld4d1pYSW5PMXh1YVcxd2IzSjBJSHNnVmxKTlNIVnRZVzV2YVdSTWIyRmtaWEpRYkhWbmFXNVBjSFJwYjI1eklIMGdabkp2YlNBbkxpOVdVazFJZFcxaGJtOXBaRXh2WVdSbGNsQnNkV2RwYms5d2RHbHZibk1uTzF4dVhHNHZLaXBjYmlBcUlGQnZjM05wWW14bElITndaV01nZG1WeWMybHZibk1nYVhRZ2NtVmpiMmR1YVhwbGN5NWNiaUFxTDF4dVkyOXVjM1FnVUU5VFUwbENURVZmVTFCRlExOVdSVkpUU1U5T1V5QTlJRzVsZHlCVFpYUW9XeWN4TGpBbkxDQW5NUzR3TFdKbGRHRW5YU2s3WEc1Y2JpOHFLbHh1SUNvZ1FTQnRZWEFnWm5KdmJTQnZiR1FnZEdoMWJXSWdZbTl1WlNCdVlXMWxjeUIwYnlCdVpYY2dkR2gxYldJZ1ltOXVaU0J1WVcxbGMxeHVJQ292WEc1amIyNXpkQ0IwYUhWdFlrSnZibVZPWVcxbFRXRndPaUI3SUZ0clpYazZJSE4wY21sdVoxMDZJRll4VmxKTlUyTm9aVzFoTGtoMWJXRnViMmxrU0hWdFlXNUNiMjVsVG1GdFpTQjhJSFZ1WkdWbWFXNWxaQ0I5SUQwZ2UxeHVJQ0JzWldaMFZHaDFiV0pRY205NGFXMWhiRG9nSjJ4bFpuUlVhSFZ0WWsxbGRHRmpZWEp3WVd3bkxGeHVJQ0JzWldaMFZHaDFiV0pKYm5SbGNtMWxaR2xoZEdVNklDZHNaV1owVkdoMWJXSlFjbTk0YVcxaGJDY3NYRzRnSUhKcFoyaDBWR2gxYldKUWNtOTRhVzFoYkRvZ0ozSnBaMmgwVkdoMWJXSk5aWFJoWTJGeWNHRnNKeXhjYmlBZ2NtbG5hSFJVYUhWdFlrbHVkR1Z5YldWa2FXRjBaVG9nSjNKcFoyaDBWR2gxYldKUWNtOTRhVzFoYkNjc1hHNTlPMXh1WEc0dktpcGNiaUFxSUVFZ2NHeDFaMmx1SUc5bUlFZE1WRVpNYjJGa1pYSWdkR2hoZENCcGJYQnZjblJ6SUdFZ2UwQnNhVzVySUZaU1RVaDFiV0Z1YjJsa2ZTQm1jbTl0SUdFZ1ZsSk5JR1Y0ZEdWdWMybHZiaUJ2WmlCaElFZE1WRVl1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCV1VrMUlkVzFoYm05cFpFeHZZV1JsY2xCc2RXZHBiaUJwYlhCc1pXMWxiblJ6SUVkTVZFWk1iMkZrWlhKUWJIVm5hVzRnZTF4dUlDQXZLaXBjYmlBZ0lDb2dVM0JsWTJsbWVTQmhiaUJQWW1wbFkzUXpSQ0IwYnlCaFpHUWdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtTR1ZzY0dWeWZTNWNiaUFnSUNvZ1NXWWdibTkwSUhOd1pXTnBabWxsWkN3Z2FHVnNjR1Z5SUhkcGJHd2dibTkwSUdKbElHTnlaV0YwWldRdVhHNGdJQ0FxSUVsbUlHQnlaVzVrWlhKUGNtUmxjbUFnYVhNZ2MyVjBJSFJ2SUhSb1pTQnliMjkwTENCMGFHVWdhR1ZzY0dWeUlIZHBiR3dnWTI5d2VTQjBhR1VnYzJGdFpTQmdjbVZ1WkdWeVQzSmtaWEpnSUM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCb1pXeHdaWEpTYjI5MFB6b2dWRWhTUlVVdVQySnFaV04wTTBRN1hHNWNiaUFnY0hWaWJHbGpJR0YxZEc5VmNHUmhkR1ZJZFcxaGJrSnZibVZ6UHpvZ1ltOXZiR1ZoYmp0Y2JseHVJQ0J3ZFdKc2FXTWdjbVZoWkc5dWJIa2djR0Z5YzJWeU9pQkhURlJHVUdGeWMyVnlPMXh1WEc0Z0lIQjFZbXhwWXlCblpYUWdibUZ0WlNncE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUM4dklGZGxJSE5vYjNWc1pDQjFjMlVnZEdobElHVjRkR1Z1YzJsdmJpQnVZVzFsSUdsdWMzUmxZV1FnWW5WMElIZGxJR2hoZG1VZ2JYVnNkR2x3YkdVZ2NHeDFaMmx1Y3lCbWIzSWdZVzRnWlhoMFpXNXphVzl1TGk0dVhHNGdJQ0FnY21WMGRYSnVJQ2RXVWsxSWRXMWhibTlwWkV4dllXUmxjbEJzZFdkcGJpYzdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvY0dGeWMyVnlPaUJIVEZSR1VHRnljMlZ5TENCdmNIUnBiMjV6UHpvZ1ZsSk5TSFZ0WVc1dmFXUk1iMkZrWlhKUWJIVm5hVzVQY0hScGIyNXpLU0I3WEc0Z0lDQWdkR2hwY3k1d1lYSnpaWElnUFNCd1lYSnpaWEk3WEc1Y2JpQWdJQ0IwYUdsekxtaGxiSEJsY2xKdmIzUWdQU0J2Y0hScGIyNXpQeTVvWld4d1pYSlNiMjkwTzF4dUlDQWdJSFJvYVhNdVlYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTWdQU0J2Y0hScGIyNXpQeTVoZFhSdlZYQmtZWFJsU0hWdFlXNUNiMjVsY3p0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCaGMzbHVZeUJoWm5SbGNsSnZiM1FvWjJ4MFpqb2dSMHhVUmlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR2RzZEdZdWRYTmxja1JoZEdFdWRuSnRTSFZ0WVc1dmFXUWdQU0JoZDJGcGRDQjBhR2x6TGw5cGJYQnZjblFvWjJ4MFppazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nU1cxd2IzSjBJR0VnZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrZlNCbWNtOXRJR0VnVmxKTkxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdaMngwWmlCQklIQmhjbk5sWkNCeVpYTjFiSFFnYjJZZ1IweFVSaUIwWVd0bGJpQm1jbTl0SUVkTVZFWk1iMkZrWlhKY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDJsdGNHOXlkQ2huYkhSbU9pQkhURlJHS1RvZ1VISnZiV2x6WlR4V1VrMUlkVzFoYm05cFpDQjhJRzUxYkd3K0lIdGNiaUFnSUNCamIyNXpkQ0IyTVZKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdVgzWXhTVzF3YjNKMEtHZHNkR1lwTzF4dUlDQWdJR2xtSUNoMk1WSmxjM1ZzZENrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhZeFVtVnpkV3gwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElIWXdVbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTVmZGpCSmJYQnZjblFvWjJ4MFppazdYRzRnSUNBZ2FXWWdLSFl3VW1WemRXeDBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkakJTWlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklGOTJNVWx0Y0c5eWRDaG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHhXVWsxSWRXMWhibTlwWkNCOElHNTFiR3crSUh0Y2JpQWdJQ0JqYjI1emRDQnFjMjl1SUQwZ2RHaHBjeTV3WVhKelpYSXVhbk52YmlCaGN5QkhURlJHVTJOb1pXMWhMa2xIVEZSR08xeHVYRzRnSUNBZ0x5OGdaV0Z5YkhrZ1lXSnZjblFnYVdZZ2FYUWdaRzlsYzI0bmRDQjFjMlVnZG5KdFhHNGdJQ0FnWTI5dWMzUWdhWE5XVWsxVmMyVmtJRDBnYW5OdmJpNWxlSFJsYm5OcGIyNXpWWE5sWkQ4dWFXNWtaWGhQWmlnblZsSk5RMTkyY20wbktTQWhQVDBnTFRFN1hHNGdJQ0FnYVdZZ0tDRnBjMVpTVFZWelpXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHVjRkR1Z1YzJsdmJpQTlJR3B6YjI0dVpYaDBaVzV6YVc5dWN6OHVXeWRXVWsxRFgzWnliU2RkSUdGeklGWXhWbEpOVTJOb1pXMWhMbFpTVFVOV1VrMGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdhV1lnS0NGbGVIUmxibk5wYjI0cElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhOd1pXTldaWEp6YVc5dUlEMGdaWGgwWlc1emFXOXVMbk53WldOV1pYSnphVzl1TzF4dUlDQWdJR2xtSUNnaFVFOVRVMGxDVEVWZlUxQkZRMTlXUlZKVFNVOU9VeTVvWVhNb2MzQmxZMVpsY25OcGIyNHBLU0I3WEc0Z0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b1lGWlNUVWgxYldGdWIybGtURzloWkdWeVVHeDFaMmx1T2lCVmJtdHViM2R1SUZaU1RVTmZkbkp0SUhOd1pXTldaWEp6YVc5dUlGd2lKSHR6Y0dWalZtVnljMmx2Ym4xY0ltQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2MyTm9aVzFoU0hWdFlXNXZhV1FnUFNCbGVIUmxibk5wYjI0dWFIVnRZVzV2YVdRN1hHNGdJQ0FnYVdZZ0tDRnpZMmhsYldGSWRXMWhibTlwWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dZMjl0Y0dGME9pQXhMakF0WW1WMFlTQjBhSFZ0WWlCaWIyNWxJRzVoYldWelhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCZ2RISjFaV0FnYVdZZ1lHeGxablJVYUhWdFlrbHVkR1Z5YldWa2FXRjBaV0FnYjNJZ1lISnBaMmgwVkdoMWJXSkpiblJsY20xbFpHbGhkR1ZnSUdWNGFYTjBjMXh1SUNBZ0lDQXFMMXh1SUNBZ0lHTnZibk4wSUdWNGFYTjBjMUJ5WlhacGIzVnpWR2gxYldKT1lXMWxJRDFjYmlBZ0lDQWdJQ2h6WTJobGJXRklkVzFoYm05cFpDNW9kVzFoYmtKdmJtVnpJR0Z6SUdGdWVTa3ViR1ZtZEZSb2RXMWlTVzUwWlhKdFpXUnBZWFJsSUNFOUlHNTFiR3dnZkh4Y2JpQWdJQ0FnSUNoelkyaGxiV0ZJZFcxaGJtOXBaQzVvZFcxaGJrSnZibVZ6SUdGeklHRnVlU2t1Y21sbmFIUlVhSFZ0WWtsdWRHVnliV1ZrYVdGMFpTQWhQU0J1ZFd4c08xeHVYRzRnSUNBZ1kyOXVjM1FnYUhWdFlXNUNiMjVsY3pvZ1VHRnlkR2xoYkR4V1VrMUlkVzFoYmtKdmJtVnpQaUE5SUh0OU8xeHVJQ0FnSUdsbUlDaHpZMmhsYldGSWRXMWhibTlwWkM1b2RXMWhia0p2Ym1WeklDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tGeHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdVpXNTBjbWxsY3loelkyaGxiV0ZJZFcxaGJtOXBaQzVvZFcxaGJrSnZibVZ6S1M1dFlYQW9ZWE41Ym1NZ0tGdGliMjVsVG1GdFpWTjBjbWx1Wnl3Z2MyTm9aVzFoU0hWdFlXNUNiMjVsWFNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUd4bGRDQmliMjVsVG1GdFpTQTlJR0p2Ym1WT1lXMWxVM1J5YVc1bklHRnpJRll4VmxKTlUyTm9aVzFoTGtoMWJXRnViMmxrU0hWdFlXNUNiMjVsVG1GdFpUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnBibVJsZUNBOUlITmphR1Z0WVVoMWJXRnVRbTl1WlM1dWIyUmxPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdZMjl0Y0dGME9pQXhMakF0WW1WMFlTQndjbVYyYVc5MWN5QjBhSFZ0WWlCaWIyNWxJRzVoYldWelhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWNGFYTjBjMUJ5WlhacGIzVnpWR2gxYldKT1lXMWxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMGFIVnRZa0p2Ym1WT1lXMWxJRDBnZEdoMWJXSkNiMjVsVG1GdFpVMWhjRnRpYjI1bFRtRnRaVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdoMWJXSkNiMjVsVG1GdFpTQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnZibVZPWVcxbElEMGdkR2gxYldKQ2IyNWxUbUZ0WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ1lYZGhhWFFnZEdocGN5NXdZWEp6WlhJdVoyVjBSR1Z3Wlc1a1pXNWplU2duYm05a1pTY3NJR2x1WkdWNEtUdGNibHh1SUNBZ0lDQWdJQ0FnSUM4dklHbG1JSFJvWlNCemNHVmphV1pwWldRZ2JtOWtaU0JrYjJWeklHNXZkQ0JsZUdsemRDd2daVzFwZENCaElIZGhjbTVwYm1kY2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYm05a1pTQTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9ZRUVnWjJ4VVJpQnViMlJsSUdKdmRXNWtJSFJ2SUhSb1pTQm9kVzFoYm05cFpDQmliMjVsSUNSN1ltOXVaVTVoYldWOUlDaHBibVJsZUNBOUlDUjdhVzVrWlhoOUtTQmtiMlZ6SUc1dmRDQmxlR2x6ZEdBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQzh2SUhObGRDQjBieUIwYUdVZ1lHaDFiV0Z1UW05dVpYTmdYRzRnSUNBZ0lDQWdJQ0FnYUhWdFlXNUNiMjVsYzF0aWIyNWxUbUZ0WlYwZ1BTQjdJRzV2WkdVZ2ZUdGNiaUFnSUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHaDFiV0Z1YjJsa0lEMGdibVYzSUZaU1RVaDFiV0Z1YjJsa0tIUm9hWE11WDJWdWMzVnlaVkpsY1hWcGNtVmtRbTl1WlhORmVHbHpkQ2hvZFcxaGJrSnZibVZ6S1N3Z2UxeHVJQ0FnSUNBZ1lYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTTZJSFJvYVhNdVlYVjBiMVZ3WkdGMFpVaDFiV0Z1UW05dVpYTXNYRzRnSUNBZ2ZTazdYRzRnSUNBZ1oyeDBaaTV6WTJWdVpTNWhaR1FvYUhWdFlXNXZhV1F1Ym05eWJXRnNhWHBsWkVoMWJXRnVRbTl1WlhOU2IyOTBLVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbWhsYkhCbGNsSnZiM1FwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2hsYkhCbGNpQTlJRzVsZHlCV1VrMUlkVzFoYm05cFpFaGxiSEJsY2lob2RXMWhibTlwWkNrN1hHNGdJQ0FnSUNCMGFHbHpMbWhsYkhCbGNsSnZiM1F1WVdSa0tHaGxiSEJsY2lrN1hHNGdJQ0FnSUNCb1pXeHdaWEl1Y21WdVpHVnlUM0prWlhJZ1BTQjBhR2x6TG1obGJIQmxjbEp2YjNRdWNtVnVaR1Z5VDNKa1pYSTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUdoMWJXRnViMmxrTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJmZGpCSmJYQnZjblFvWjJ4MFpqb2dSMHhVUmlrNklGQnliMjFwYzJVOFZsSk5TSFZ0WVc1dmFXUWdmQ0J1ZFd4c1BpQjdYRzRnSUNBZ1kyOXVjM1FnYW5OdmJpQTlJSFJvYVhNdWNHRnljMlZ5TG1wemIyNGdZWE1nUjB4VVJsTmphR1Z0WVM1SlIweFVSanRjYmx4dUlDQWdJR052Ym5OMElIWnliVVY0ZENBOUlHcHpiMjR1WlhoMFpXNXphVzl1Y3o4dVZsSk5JR0Z6SUZZd1ZsSk5MbFpTVFNCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9JWFp5YlVWNGRDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2MyTm9aVzFoU0hWdFlXNXZhV1E2SUZZd1ZsSk5Ma2gxYldGdWIybGtJSHdnZFc1a1pXWnBibVZrSUQwZ2RuSnRSWGgwTG1oMWJXRnViMmxrTzF4dUlDQWdJR2xtSUNnaGMyTm9aVzFoU0hWdFlXNXZhV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR2gxYldGdVFtOXVaWE02SUZCaGNuUnBZV3c4VmxKTlNIVnRZVzVDYjI1bGN6NGdQU0I3ZlR0Y2JpQWdJQ0JwWmlBb2MyTm9aVzFoU0hWdFlXNXZhV1F1YUhWdFlXNUNiMjVsY3lBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNoY2JpQWdJQ0FnSUNBZ2MyTm9aVzFoU0hWdFlXNXZhV1F1YUhWdFlXNUNiMjVsY3k1dFlYQW9ZWE41Ym1NZ0tHSnZibVVwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQmliMjVsVG1GdFpTQTlJR0p2Ym1VdVltOXVaVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JwYm1SbGVDQTlJR0p2Ym1VdWJtOWtaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hpYjI1bFRtRnRaU0E5UFNCdWRXeHNJSHg4SUdsdVpHVjRJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdZWGRoYVhRZ2RHaHBjeTV3WVhKelpYSXVaMlYwUkdWd1pXNWtaVzVqZVNnbmJtOWtaU2NzSUdsdVpHVjRLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJR2xtSUhSb1pTQnpjR1ZqYVdacFpXUWdibTlrWlNCa2IyVnpJRzV2ZENCbGVHbHpkQ3dnWlcxcGRDQmhJSGRoY201cGJtZGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2JtOWtaU0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWUVFZ1oyeFVSaUJ1YjJSbElHSnZkVzVrSUhSdklIUm9aU0JvZFcxaGJtOXBaQ0JpYjI1bElDUjdZbTl1WlU1aGJXVjlJQ2hwYm1SbGVDQTlJQ1I3YVc1a1pYaDlLU0JrYjJWeklHNXZkQ0JsZUdsemRHQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUM4dklHMWhjQ0IwYnlCdVpYY2dZbTl1WlNCdVlXMWxYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdkR2gxYldKQ2IyNWxUbUZ0WlNBOUlIUm9kVzFpUW05dVpVNWhiV1ZOWVhCYlltOXVaVTVoYldWZE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHNWxkMEp2Ym1WT1lXMWxJRDBnS0hSb2RXMWlRbTl1WlU1aGJXVWdQejhnWW05dVpVNWhiV1VwSUdGeklGWXhWbEpOVTJOb1pXMWhMa2gxYldGdWIybGtTSFZ0WVc1Q2IyNWxUbUZ0WlR0Y2JseHVJQ0FnSUNBZ0lDQWdJQzh2SUhZd0lGWlNUWE1nYldsbmFIUWdhR0YyWlNCaElHMTFiSFJwY0d4bElHNXZaR1Z6SUdGMGRHRmphR1ZrSUhSdklHRWdjMmx1WjJ4bElHSnZibVV1TGk1Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJ6YnlCcFppQjBhR1Z5WlNCaGJISmxZV1I1SUdseklHRnVJR1Z1ZEhKNUlHbHVJSFJvWlNCZ2FIVnRZVzVDYjI1bGMyQXNJSE5vYjNjZ1lTQjNZWEp1YVc1bklHRnVaQ0JwWjI1dmNtVWdhWFJjYmlBZ0lDQWdJQ0FnSUNCcFppQW9hSFZ0WVc1Q2IyNWxjMXR1WlhkQ2IyNWxUbUZ0WlYwZ0lUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCZ1RYVnNkR2x3YkdVZ1ltOXVaU0JsYm5SeWFXVnpJR1p2Y2lBa2UyNWxkMEp2Ym1WT1lXMWxmU0JrWlhSbFkzUmxaQ0FvYVc1a1pYZ2dQU0FrZTJsdVpHVjRmU2tzSUdsbmJtOXlhVzVuSUdSMWNHeHBZMkYwWldRZ1pXNTBjbWxsY3k1Z0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJ6WlhRZ2RHOGdkR2hsSUdCb2RXMWhia0p2Ym1WellGeHVJQ0FnSUNBZ0lDQWdJR2gxYldGdVFtOXVaWE5iYm1WM1FtOXVaVTVoYldWZElEMGdleUJ1YjJSbElIMDdYRzRnSUNBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQm9kVzFoYm05cFpDQTlJRzVsZHlCV1VrMUlkVzFoYm05cFpDaDBhR2x6TGw5bGJuTjFjbVZTWlhGMWFYSmxaRUp2Ym1WelJYaHBjM1FvYUhWdFlXNUNiMjVsY3lrc0lIdGNiaUFnSUNBZ0lHRjFkRzlWY0dSaGRHVklkVzFoYmtKdmJtVnpPaUIwYUdsekxtRjFkRzlWY0dSaGRHVklkVzFoYmtKdmJtVnpMRnh1SUNBZ0lIMHBPMXh1SUNBZ0lHZHNkR1l1YzJObGJtVXVZV1JrS0doMWJXRnViMmxrTG01dmNtMWhiR2w2WldSSWRXMWhia0p2Ym1WelVtOXZkQ2s3WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTVvWld4d1pYSlNiMjkwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JvWld4d1pYSWdQU0J1WlhjZ1ZsSk5TSFZ0WVc1dmFXUklaV3h3WlhJb2FIVnRZVzV2YVdRcE8xeHVJQ0FnSUNBZ2RHaHBjeTVvWld4d1pYSlNiMjkwTG1Ga1pDaG9aV3h3WlhJcE8xeHVJQ0FnSUNBZ2FHVnNjR1Z5TG5KbGJtUmxjazl5WkdWeUlEMGdkR2hwY3k1b1pXeHdaWEpTYjI5MExuSmxibVJsY2s5eVpHVnlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCb2RXMWhibTlwWkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkZibk4xY21VZ2NtVnhkV2x5WldRZ1ltOXVaWE1nWlhocGMzUWdhVzRnWjJsMlpXNGdhSFZ0WVc0Z1ltOXVaWE11WEc0Z0lDQXFJRUJ3WVhKaGJTQm9kVzFoYmtKdmJtVnpJRWgxYldGdUlHSnZibVZ6WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJRWgxYldGdUlHSnZibVZ6TENCdWJ5QnNiMjVuWlhJZ2NHRnlkR2xoYkNGY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1gyVnVjM1Z5WlZKbGNYVnBjbVZrUW05dVpYTkZlR2x6ZENob2RXMWhia0p2Ym1Wek9pQlFZWEowYVdGc1BGWlNUVWgxYldGdVFtOXVaWE0rS1RvZ1ZsSk5TSFZ0WVc1Q2IyNWxjeUI3WEc0Z0lDQWdMeThnWlc1emRYSmxJSEpsY1hWcGNtVmtJR0p2Ym1WeklHVjRhWE4wWEc0Z0lDQWdZMjl1YzNRZ2JXbHpjMmx1WjFKbGNYVnBjbVZrUW05dVpYTWdQU0JQWW1wbFkzUXVkbUZzZFdWektGWlNUVkpsY1hWcGNtVmtTSFZ0WVc1Q2IyNWxUbUZ0WlNrdVptbHNkR1Z5S0Z4dUlDQWdJQ0FnS0hKbGNYVnBjbVZrUW05dVpVNWhiV1VwSUQwK0lHaDFiV0Z1UW05dVpYTmJjbVZ4ZFdseVpXUkNiMjVsVG1GdFpWMGdQVDBnYm5Wc2JDeGNiaUFnSUNBcE8xeHVYRzRnSUNBZ0x5OGdkR2h5YjNjZ1lXNGdaWEp5YjNJZ2FXWWdkR2hsY21VZ1lYSmxJRzFwYzNOcGJtY2dZbTl1WlhOY2JpQWdJQ0JwWmlBb2JXbHpjMmx1WjFKbGNYVnBjbVZrUW05dVpYTXViR1Z1WjNSb0lENGdNQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnVmxKTlNIVnRZVzV2YVdSTWIyRmtaWEpRYkhWbmFXNDZJRlJvWlhObElHaDFiV0Z1YjJsa0lHSnZibVZ6SUdGeVpTQnlaWEYxYVhKbFpDQmlkWFFnYm05MElHVjRhWE4wT2lBa2UyMXBjM05wYm1kU1pYRjFhWEpsWkVKdmJtVnpMbXB2YVc0b0p5d2dKeWw5WUN4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJR2gxYldGdVFtOXVaWE1nWVhNZ1ZsSk5TSFZ0WVc1Q2IyNWxjenRjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdSbUZ1UW5WbVptVnlSMlZ2YldWMGNua2daWGgwWlc1a2N5QlVTRkpGUlM1Q2RXWm1aWEpIWlc5dFpYUnllU0I3WEc0Z0lIQjFZbXhwWXlCMGFHVjBZVG9nYm5WdFltVnlPMXh1SUNCd2RXSnNhV01nY21Ga2FYVnpPaUJ1ZFcxaVpYSTdYRzRnSUhCeWFYWmhkR1VnWDJOMWNuSmxiblJVYUdWMFlTQTlJREE3WEc0Z0lIQnlhWFpoZEdVZ1gyTjFjbkpsYm5SU1lXUnBkWE1nUFNBd08xeHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJRjloZEhSeVVHOXpPaUJVU0ZKRlJTNUNkV1ptWlhKQmRIUnlhV0oxZEdVN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYMkYwZEhKSmJtUmxlRG9nVkVoU1JVVXVRblZtWm1WeVFYUjBjbWxpZFhSbE8xeHVYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dVhHNGdJQ0FnZEdocGN5NTBhR1YwWVNBOUlEQXVNRHRjYmlBZ0lDQjBhR2x6TG5KaFpHbDFjeUE5SURBdU1EdGNiaUFnSUNCMGFHbHpMbDlqZFhKeVpXNTBWR2hsZEdFZ1BTQXdMakE3WEc0Z0lDQWdkR2hwY3k1ZlkzVnljbVZ1ZEZKaFpHbDFjeUE5SURBdU1EdGNibHh1SUNBZ0lIUm9hWE11WDJGMGRISlFiM01nUFNCdVpYY2dWRWhTUlVVdVFuVm1abVZ5UVhSMGNtbGlkWFJsS0c1bGR5QkdiRzloZERNeVFYSnlZWGtvTmpVZ0tpQXpLU3dnTXlrN1hHNGdJQ0FnZEdocGN5NXpaWFJCZEhSeWFXSjFkR1VvSjNCdmMybDBhVzl1Snl3Z2RHaHBjeTVmWVhSMGNsQnZjeWs3WEc1Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5U1c1a1pYZ2dQU0J1WlhjZ1ZFaFNSVVV1UW5WbVptVnlRWFIwY21saWRYUmxLRzVsZHlCVmFXNTBNVFpCY25KaGVTZ3pJQ29nTmpNcExDQXhLVHRjYmlBZ0lDQjBhR2x6TG5ObGRFbHVaR1Y0S0hSb2FYTXVYMkYwZEhKSmJtUmxlQ2s3WEc1Y2JpQWdJQ0IwYUdsekxsOWlkV2xzWkVsdVpHVjRLQ2s3WEc0Z0lDQWdkR2hwY3k1MWNHUmhkR1VvS1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCMWNHUmhkR1VvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdiR1YwSUhOb2IzVnNaRlZ3WkdGMFpVZGxiMjFsZEhKNUlEMGdabUZzYzJVN1hHNWNiaUFnSUNCcFppQW9kR2hwY3k1ZlkzVnljbVZ1ZEZSb1pYUmhJQ0U5UFNCMGFHbHpMblJvWlhSaEtTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5amRYSnlaVzUwVkdobGRHRWdQU0IwYUdsekxuUm9aWFJoTzF4dUlDQWdJQ0FnYzJodmRXeGtWWEJrWVhSbFIyVnZiV1YwY25rZ1BTQjBjblZsTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbDlqZFhKeVpXNTBVbUZrYVhWeklDRTlQU0IwYUdsekxuSmhaR2wxY3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWTNWeWNtVnVkRkpoWkdsMWN5QTlJSFJvYVhNdWNtRmthWFZ6TzF4dUlDQWdJQ0FnYzJodmRXeGtWWEJrWVhSbFIyVnZiV1YwY25rZ1BTQjBjblZsTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoemFHOTFiR1JWY0dSaGRHVkhaVzl0WlhSeWVTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZlluVnBiR1JRYjNOcGRHbHZiaWdwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJKMWFXeGtVRzl6YVhScGIyNG9LVG9nZG05cFpDQjdYRzRnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjeTV6WlhSWVdWb29NQ3dnTUM0d0xDQXdMakFzSURBdU1DazdYRzVjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRFkwT3lCcEt5c3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIUWdQU0FvYVNBdklEWXpMakFwSUNvZ2RHaHBjeTVmWTNWeWNtVnVkRlJvWlhSaE8xeHVYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlVRzl6TG5ObGRGaFpXaWhwSUNzZ01Td2dkR2hwY3k1ZlkzVnljbVZ1ZEZKaFpHbDFjeUFxSUUxaGRHZ3VjMmx1S0hRcExDQXdMakFzSUhSb2FYTXVYMk4xY25KbGJuUlNZV1JwZFhNZ0tpQk5ZWFJvTG1OdmN5aDBLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1ZllYUjBjbEJ2Y3k1dVpXVmtjMVZ3WkdGMFpTQTlJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOWlkV2xzWkVsdVpHVjRLQ2s2SUhadmFXUWdlMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dOak03SUdrckt5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZllYUjBja2x1WkdWNExuTmxkRmhaV2locElDb2dNeXdnTUN3Z2FTQXJJREVzSUdrZ0t5QXlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TGw5aGRIUnlTVzVrWlhndWJtVmxaSE5WY0dSaGRHVWdQU0IwY25WbE8xeHVJQ0I5WEc1OVhHNGlMQ0pwYlhCdmNuUWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTWFXNWxRVzVrVTNCb1pYSmxRblZtWm1WeVIyVnZiV1YwY25rZ1pYaDBaVzVrY3lCVVNGSkZSUzVDZFdabVpYSkhaVzl0WlhSeWVTQjdYRzRnSUhCMVlteHBZeUJ5WVdScGRYTTZJRzUxYldKbGNqdGNiaUFnY0hWaWJHbGpJSFJoYVd3NklGUklVa1ZGTGxabFkzUnZjak03WEc0Z0lIQnlhWFpoZEdVZ1gyTjFjbkpsYm5SU1lXUnBkWE02SUc1MWJXSmxjanRjYmlBZ2NISnBkbUYwWlNCZlkzVnljbVZ1ZEZSaGFXdzZJRlJJVWtWRkxsWmxZM1J2Y2pNN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYMkYwZEhKUWIzTTZJRlJJVWtWRkxrSjFabVpsY2tGMGRISnBZblYwWlR0Y2JpQWdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQmZZWFIwY2tsdVpHVjRPaUJVU0ZKRlJTNUNkV1ptWlhKQmRIUnlhV0oxZEdVN1hHNWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0NrZ2UxeHVJQ0FnSUhOMWNHVnlLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuSmhaR2wxY3lBOUlEQXVNRHRjYmlBZ0lDQjBhR2x6TGw5amRYSnlaVzUwVW1Ga2FYVnpJRDBnTUM0d08xeHVYRzRnSUNBZ2RHaHBjeTUwWVdsc0lEMGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqTW9LVHRjYmlBZ0lDQjBhR2x6TGw5amRYSnlaVzUwVkdGcGJDQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5VUc5eklEMGdibVYzSUZSSVVrVkZMa0oxWm1abGNrRjBkSEpwWW5WMFpTaHVaWGNnUm14dllYUXpNa0Z5Y21GNUtESTVOQ2tzSURNcE8xeHVJQ0FnSUhSb2FYTXVjMlYwUVhSMGNtbGlkWFJsS0Nkd2IzTnBkR2x2Ymljc0lIUm9hWE11WDJGMGRISlFiM01wTzF4dVhHNGdJQ0FnZEdocGN5NWZZWFIwY2tsdVpHVjRJRDBnYm1WM0lGUklVa1ZGTGtKMVptWmxja0YwZEhKcFluVjBaU2h1WlhjZ1ZXbHVkREUyUVhKeVlYa29NVGswS1N3Z01TazdYRzRnSUNBZ2RHaHBjeTV6WlhSSmJtUmxlQ2gwYUdsekxsOWhkSFJ5U1c1a1pYZ3BPMXh1WEc0Z0lDQWdkR2hwY3k1ZlluVnBiR1JKYm1SbGVDZ3BPMXh1SUNBZ0lIUm9hWE11ZFhCa1lYUmxLQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nZFhCa1lYUmxLQ2s2SUhadmFXUWdlMXh1SUNBZ0lHeGxkQ0J6YUc5MWJHUlZjR1JoZEdWSFpXOXRaWFJ5ZVNBOUlHWmhiSE5sTzF4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11WDJOMWNuSmxiblJTWVdScGRYTWdJVDA5SUhSb2FYTXVjbUZrYVhWektTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5amRYSnlaVzUwVW1Ga2FYVnpJRDBnZEdocGN5NXlZV1JwZFhNN1hHNGdJQ0FnSUNCemFHOTFiR1JWY0dSaGRHVkhaVzl0WlhSeWVTQTlJSFJ5ZFdVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tDRjBhR2x6TGw5amRYSnlaVzUwVkdGcGJDNWxjWFZoYkhNb2RHaHBjeTUwWVdsc0tTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZlkzVnljbVZ1ZEZSaGFXd3VZMjl3ZVNoMGFHbHpMblJoYVd3cE8xeHVJQ0FnSUNBZ2MyaHZkV3hrVlhCa1lYUmxSMlZ2YldWMGNua2dQU0IwY25WbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHphRzkxYkdSVmNHUmhkR1ZIWlc5dFpYUnllU2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZZblZwYkdSUWIzTnBkR2x2YmlncE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gySjFhV3hrVUc5emFYUnBiMjRvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0F6TWpzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjBJRDBnS0drZ0x5QXhOaTR3S1NBcUlFMWhkR2d1VUVrN1hHNWNiaUFnSUNBZ0lIUm9hWE11WDJGMGRISlFiM011YzJWMFdGbGFLR2tzSUUxaGRHZ3VZMjl6S0hRcExDQk5ZWFJvTG5OcGJpaDBLU3dnTUM0d0tUdGNiaUFnSUNBZ0lIUm9hWE11WDJGMGRISlFiM011YzJWMFdGbGFLRE15SUNzZ2FTd2dNQzR3TENCTllYUm9MbU52Y3loMEtTd2dUV0YwYUM1emFXNG9kQ2twTzF4dUlDQWdJQ0FnZEdocGN5NWZZWFIwY2xCdmN5NXpaWFJZV1Zvb05qUWdLeUJwTENCTllYUm9Mbk5wYmloMEtTd2dNQzR3TENCTllYUm9MbU52Y3loMEtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTV6WTJGc1pTaDBhR2x6TGw5amRYSnlaVzUwVW1Ga2FYVnpMQ0IwYUdsekxsOWpkWEp5Wlc1MFVtRmthWFZ6TENCMGFHbHpMbDlqZFhKeVpXNTBVbUZrYVhWektUdGNiaUFnSUNCMGFHbHpMblJ5WVc1emJHRjBaU2gwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQzU0TENCMGFHbHpMbDlqZFhKeVpXNTBWR0ZwYkM1NUxDQjBhR2x6TGw5amRYSnlaVzUwVkdGcGJDNTZLVHRjYmx4dUlDQWdJSFJvYVhNdVgyRjBkSEpRYjNNdWMyVjBXRmxhS0RrMkxDQXdMQ0F3TENBd0tUdGNiaUFnSUNCMGFHbHpMbDloZEhSeVVHOXpMbk5sZEZoWldpZzVOeXdnZEdocGN5NWZZM1Z5Y21WdWRGUmhhV3d1ZUN3Z2RHaHBjeTVmWTNWeWNtVnVkRlJoYVd3dWVTd2dkR2hwY3k1ZlkzVnljbVZ1ZEZSaGFXd3VlaWs3WEc1Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5VUc5ekxtNWxaV1J6VlhCa1lYUmxJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMkoxYVd4a1NXNWtaWGdvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0F6TWpzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnBNU0E5SUNocElDc2dNU2tnSlNBek1qdGNibHh1SUNBZ0lDQWdkR2hwY3k1ZllYUjBja2x1WkdWNExuTmxkRmhaS0drZ0tpQXlMQ0JwTENCcE1TazdYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlTVzVrWlhndWMyVjBXRmtvTmpRZ0t5QnBJQ29nTWl3Z016SWdLeUJwTENBek1pQXJJR2t4S1R0Y2JpQWdJQ0FnSUhSb2FYTXVYMkYwZEhKSmJtUmxlQzV6WlhSWVdTZ3hNamdnS3lCcElDb2dNaXdnTmpRZ0t5QnBMQ0EyTkNBcklHa3hLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVmWVhSMGNrbHVaR1Y0TG5ObGRGaFpLREU1TWl3Z09UWXNJRGszS1R0Y2JseHVJQ0FnSUhSb2FYTXVYMkYwZEhKSmJtUmxlQzV1WldWa2MxVndaR0YwWlNBOUlIUnlkV1U3WEc0Z0lIMWNibjFjYmlJc0ltbHRjRzl5ZENBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYm1sdGNHOXlkQ0I3SUZaU1RVeHZiMnRCZENCOUlHWnliMjBnSnk0dUwxWlNUVXh2YjJ0QmRDYzdYRzVwYlhCdmNuUWdleUJHWVc1Q2RXWm1aWEpIWlc5dFpYUnllU0I5SUdaeWIyMGdKeTR2ZFhScGJITXZSbUZ1UW5WbVptVnlSMlZ2YldWMGNua25PMXh1YVcxd2IzSjBJSHNnVEdsdVpVRnVaRk53YUdWeVpVSjFabVpsY2tkbGIyMWxkSEo1SUgwZ1puSnZiU0FuTGk5MWRHbHNjeTlNYVc1bFFXNWtVM0JvWlhKbFFuVm1abVZ5UjJWdmJXVjBjbmtuTzF4dVhHNWpiMjV6ZENCZmNYVmhkRUVnUFNCdVpYY2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpZ3BPMXh1WTI5dWMzUWdYM0YxWVhSQ0lEMGdibVYzSUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRvS1R0Y2JtTnZibk4wSUY5Mk0wRWdQU0J1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWdwTzF4dVkyOXVjM1FnWDNZelFpQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLQ2s3WEc1Y2JtTnZibk4wSUZOUlVsUmZNbDlQVmtWU1h6SWdQU0JOWVhSb0xuTnhjblFvTWk0d0tTQXZJREl1TUR0Y2JtTnZibk4wSUZGVlFWUmZXRmxmUTFjNU1DQTlJRzVsZHlCVVNGSkZSUzVSZFdGMFpYSnVhVzl1S0RBc0lEQXNJQzFUVVZKVVh6SmZUMVpGVWw4eUxDQlRVVkpVWHpKZlQxWkZVbDh5S1R0Y2JtTnZibk4wSUZaRlF6TmZVRTlUU1ZSSlZrVmZXU0E5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0RBdU1Dd2dNUzR3TENBd0xqQXBPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOVEc5dmEwRjBTR1ZzY0dWeUlHVjRkR1Z1WkhNZ1ZFaFNSVVV1UjNKdmRYQWdlMXh1SUNCd2RXSnNhV01nY21WaFpHOXViSGtnZG5KdFRHOXZhMEYwT2lCV1VrMU1iMjlyUVhRN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYMjFsYzJoWllYYzZJRlJJVWtWRkxrMWxjMmc4Um1GdVFuVm1abVZ5UjJWdmJXVjBjbmtzSUZSSVVrVkZMazFsYzJoQ1lYTnBZMDFoZEdWeWFXRnNQanRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCZmJXVnphRkJwZEdOb09pQlVTRkpGUlM1TlpYTm9QRVpoYmtKMVptWmxja2RsYjIxbGRISjVMQ0JVU0ZKRlJTNU5aWE5vUW1GemFXTk5ZWFJsY21saGJENDdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWDJ4cGJtVlVZWEpuWlhRNklGUklVa1ZGTGt4cGJtVlRaV2R0Wlc1MGN6eE1hVzVsUVc1a1UzQm9aWEpsUW5WbVptVnlSMlZ2YldWMGNua3NJRlJJVWtWRkxreHBibVZDWVhOcFkwMWhkR1Z5YVdGc1BqdGNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2JHOXZhMEYwT2lCV1VrMU1iMjlyUVhRcElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dUlDQWdJSFJvYVhNdWJXRjBjbWw0UVhWMGIxVndaR0YwWlNBOUlHWmhiSE5sTzF4dVhHNGdJQ0FnZEdocGN5NTJjbTFNYjI5clFYUWdQU0JzYjI5clFYUTdYRzVjYmlBZ0lDQjdYRzRnSUNBZ0lDQmpiMjV6ZENCblpXOXRaWFJ5ZVNBOUlHNWxkeUJHWVc1Q2RXWm1aWEpIWlc5dFpYUnllU2dwTzF4dUlDQWdJQ0FnWjJWdmJXVjBjbmt1Y21Ga2FYVnpJRDBnTUM0MU8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCdFlYUmxjbWxoYkNBOUlHNWxkeUJVU0ZKRlJTNU5aWE5vUW1GemFXTk5ZWFJsY21saGJDaDdYRzRnSUNBZ0lDQWdJR052Ykc5eU9pQXdlREF3Wm1Zd01DeGNiaUFnSUNBZ0lDQWdkSEpoYm5Od1lYSmxiblE2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJRzl3WVdOcGRIazZJREF1TlN4Y2JpQWdJQ0FnSUNBZ2MybGtaVG9nVkVoU1JVVXVSRzkxWW14bFUybGtaU3hjYmlBZ0lDQWdJQ0FnWkdWd2RHaFVaWE4wT2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnWkdWd2RHaFhjbWwwWlRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ2RHaHBjeTVmYldWemFGQnBkR05vSUQwZ2JtVjNJRlJJVWtWRkxrMWxjMmdvWjJWdmJXVjBjbmtzSUcxaGRHVnlhV0ZzS1R0Y2JpQWdJQ0FnSUhSb2FYTXVZV1JrS0hSb2FYTXVYMjFsYzJoUWFYUmphQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdlMXh1SUNBZ0lDQWdZMjl1YzNRZ1oyVnZiV1YwY25rZ1BTQnVaWGNnUm1GdVFuVm1abVZ5UjJWdmJXVjBjbmtvS1R0Y2JpQWdJQ0FnSUdkbGIyMWxkSEo1TG5KaFpHbDFjeUE5SURBdU5UdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ2JXRjBaWEpwWVd3Z1BTQnVaWGNnVkVoU1JVVXVUV1Z6YUVKaGMybGpUV0YwWlhKcFlXd29lMXh1SUNBZ0lDQWdJQ0JqYjJ4dmNqb2dNSGhtWmpBd01EQXNYRzRnSUNBZ0lDQWdJSFJ5WVc1emNHRnlaVzUwT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0J2Y0dGamFYUjVPaUF3TGpVc1hHNGdJQ0FnSUNBZ0lITnBaR1U2SUZSSVVrVkZMa1J2ZFdKc1pWTnBaR1VzWEc0Z0lDQWdJQ0FnSUdSbGNIUm9WR1Z6ZERvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUdSbGNIUm9WM0pwZEdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lIUm9hWE11WDIxbGMyaFpZWGNnUFNCdVpYY2dWRWhTUlVVdVRXVnphQ2huWlc5dFpYUnllU3dnYldGMFpYSnBZV3dwTzF4dUlDQWdJQ0FnZEdocGN5NWhaR1FvZEdocGN5NWZiV1Z6YUZsaGR5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWjJWdmJXVjBjbmtnUFNCdVpYY2dUR2x1WlVGdVpGTndhR1Z5WlVKMVptWmxja2RsYjIxbGRISjVLQ2s3WEc0Z0lDQWdJQ0JuWlc5dFpYUnllUzV5WVdScGRYTWdQU0F3TGpFN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUcxaGRHVnlhV0ZzSUQwZ2JtVjNJRlJJVWtWRkxreHBibVZDWVhOcFkwMWhkR1Z5YVdGc0tIdGNiaUFnSUNBZ0lDQWdZMjlzYjNJNklEQjRabVptWm1abUxGeHVJQ0FnSUNBZ0lDQmtaWEIwYUZSbGMzUTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQmtaWEIwYUZkeWFYUmxPaUJtWVd4elpTeGNiaUFnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0IwYUdsekxsOXNhVzVsVkdGeVoyVjBJRDBnYm1WM0lGUklVa1ZGTGt4cGJtVlRaV2R0Wlc1MGN5aG5aVzl0WlhSeWVTd2diV0YwWlhKcFlXd3BPMXh1SUNBZ0lDQWdkR2hwY3k1ZmJHbHVaVlJoY21kbGRDNW1jblZ6ZEhWdFEzVnNiR1ZrSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0IwYUdsekxtRmtaQ2gwYUdsekxsOXNhVzVsVkdGeVoyVjBLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaR2x6Y0c5elpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbDl0WlhOb1dXRjNMbWRsYjIxbGRISjVMbVJwYzNCdmMyVW9LVHRjYmlBZ0lDQjBhR2x6TGw5dFpYTm9XV0YzTG0xaGRHVnlhV0ZzTG1ScGMzQnZjMlVvS1R0Y2JseHVJQ0FnSUhSb2FYTXVYMjFsYzJoUWFYUmphQzVuWlc5dFpYUnllUzVrYVhOd2IzTmxLQ2s3WEc0Z0lDQWdkR2hwY3k1ZmJXVnphRkJwZEdOb0xtMWhkR1Z5YVdGc0xtUnBjM0J2YzJVb0tUdGNibHh1SUNBZ0lIUm9hWE11WDJ4cGJtVlVZWEpuWlhRdVoyVnZiV1YwY25rdVpHbHpjRzl6WlNncE8xeHVJQ0FnSUhSb2FYTXVYMnhwYm1WVVlYSm5aWFF1YldGMFpYSnBZV3d1WkdsemNHOXpaU2dwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhWd1pHRjBaVTFoZEhKcGVGZHZjbXhrS0dadmNtTmxPaUJpYjI5c1pXRnVLVG9nZG05cFpDQjdYRzRnSUNBZ0x5OGdkWEJrWVhSbElHZGxiMjFsZEhKcFpYTmNiaUFnSUNCamIyNXpkQ0I1WVhjZ1BTQlVTRkpGUlM1TllYUm9WWFJwYkhNdVJFVkhNbEpCUkNBcUlIUm9hWE11ZG5KdFRHOXZhMEYwTG5saGR6dGNiaUFnSUNCMGFHbHpMbDl0WlhOb1dXRjNMbWRsYjIxbGRISjVMblJvWlhSaElEMGdlV0YzTzF4dUlDQWdJSFJvYVhNdVgyMWxjMmhaWVhjdVoyVnZiV1YwY25rdWRYQmtZWFJsS0NrN1hHNWNiaUFnSUNCamIyNXpkQ0J3YVhSamFDQTlJRlJJVWtWRkxrMWhkR2hWZEdsc2N5NUVSVWN5VWtGRUlDb2dkR2hwY3k1MmNtMU1iMjlyUVhRdWNHbDBZMmc3WEc0Z0lDQWdkR2hwY3k1ZmJXVnphRkJwZEdOb0xtZGxiMjFsZEhKNUxuUm9aWFJoSUQwZ2NHbDBZMmc3WEc0Z0lDQWdkR2hwY3k1ZmJXVnphRkJwZEdOb0xtZGxiMjFsZEhKNUxuVndaR0YwWlNncE8xeHVYRzRnSUNBZ0x5OGdaMlYwSUhkdmNteGtJSEJ2YzJsMGFXOXVJR0Z1WkNCeGRXRjBaWEp1YVc5dVhHNGdJQ0FnZEdocGN5NTJjbTFNYjI5clFYUXVaMlYwVEc5dmEwRjBWMjl5YkdSUWIzTnBkR2x2YmloZmRqTkJLVHRjYmlBZ0lDQjBhR2x6TG5aeWJVeHZiMnRCZEM1blpYUk1iMjlyUVhSWGIzSnNaRkYxWVhSbGNtNXBiMjRvWDNGMVlYUkJLVHRjYmx4dUlDQWdJQzh2SUdOaGJHTjFiR0YwWlNCeWIzUmhkR2x2YmlCMWMybHVaeUJtWVdObFJuSnZiblJjYmlBZ0lDQmZjWFZoZEVFdWJYVnNkR2x3Ykhrb2RHaHBjeTUyY20xTWIyOXJRWFF1WjJWMFJtRmpaVVp5YjI1MFVYVmhkR1Z5Ym1sdmJpaGZjWFZoZEVJcEtUdGNibHh1SUNBZ0lDOHZJSE5sZENCMGNtRnVjMlp2Y20wZ2RHOGdiV1Z6YUdWelhHNGdJQ0FnZEdocGN5NWZiV1Z6YUZsaGR5NXdiM05wZEdsdmJpNWpiM0I1S0Y5Mk0wRXBPMXh1SUNBZ0lIUm9hWE11WDIxbGMyaFpZWGN1Y1hWaGRHVnlibWx2Ymk1amIzQjVLRjl4ZFdGMFFTazdYRzVjYmlBZ0lDQjBhR2x6TGw5dFpYTm9VR2wwWTJndWNHOXphWFJwYjI0dVkyOXdlU2hmZGpOQktUdGNiaUFnSUNCMGFHbHpMbDl0WlhOb1VHbDBZMmd1Y1hWaGRHVnlibWx2Ymk1amIzQjVLRjl4ZFdGMFFTazdYRzRnSUNBZ2RHaHBjeTVmYldWemFGQnBkR05vTG5GMVlYUmxjbTVwYjI0dWJYVnNkR2x3Ykhrb1gzRjFZWFJDTG5ObGRFWnliMjFCZUdselFXNW5iR1VvVmtWRE0xOVFUMU5KVkVsV1JWOVpMQ0I1WVhjcEtUdGNiaUFnSUNCMGFHbHpMbDl0WlhOb1VHbDBZMmd1Y1hWaGRHVnlibWx2Ymk1dGRXeDBhWEJzZVNoUlZVRlVYMWhaWDBOWE9UQXBPMXh1WEc0Z0lDQWdMeThnZFhCa1lYUmxJSFJoY21kbGRDQnNhVzVsSUdGdVpDQnpjR2hsY21WY2JpQWdJQ0JqYjI1emRDQjdJSFJoY21kbGRDd2dZWFYwYjFWd1pHRjBaU0I5SUQwZ2RHaHBjeTUyY20xTWIyOXJRWFE3WEc0Z0lDQWdhV1lnS0hSaGNtZGxkQ0FoUFNCdWRXeHNJQ1ltSUdGMWRHOVZjR1JoZEdVcElIdGNiaUFnSUNBZ0lIUmhjbWRsZEM1blpYUlhiM0pzWkZCdmMybDBhVzl1S0Y5Mk0wSXBMbk4xWWloZmRqTkJLVHRjYmlBZ0lDQWdJSFJvYVhNdVgyeHBibVZVWVhKblpYUXVaMlZ2YldWMGNua3VkR0ZwYkM1amIzQjVLRjkyTTBJcE8xeHVJQ0FnSUNBZ2RHaHBjeTVmYkdsdVpWUmhjbWRsZEM1blpXOXRaWFJ5ZVM1MWNHUmhkR1VvS1R0Y2JpQWdJQ0FnSUhSb2FYTXVYMnhwYm1WVVlYSm5aWFF1Y0c5emFYUnBiMjR1WTI5d2VTaGZkak5CS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCaGNIQnNlU0IwY21GdWMyWnZjbTBnZEc4Z2JXVnphR1Z6WEc0Z0lDQWdjM1Z3WlhJdWRYQmtZWFJsVFdGMGNtbDRWMjl5YkdRb1ptOXlZMlVwTzF4dUlDQjlYRzU5WEc0aUxDSnBiWEJ2Y25RZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1Y2JtTnZibk4wSUY5d2IzTnBkR2x2YmlBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVqYjI1emRDQmZjMk5oYkdVZ1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WEc0dktpcGNiaUFxSUVFZ2NtVndiR0ZqWlcxbGJuUWdiMllnWUU5aWFtVmpkRE5FTG1kbGRGZHZjbXhrVVhWaGRHVnlibWx2Ym1BdVhHNGdLaUJGZUhSeVlXTjBJSFJvWlNCM2IzSnNaQ0J4ZFdGMFpYSnVhVzl1SUc5bUlHRnVJRzlpYW1WamRDQm1jbTl0SUdsMGN5QjNiM0pzWkNCemNHRmpaU0J0WVhSeWFYZ3NJSGRwZEdodmRYUWdZMkZzYkdsdVp5QmdUMkpxWldOME0wUXVkWEJrWVhSbFYyOXliR1JOWVhSeWFYaGdMbHh1SUNvZ1ZYTmxJSFJvYVhNZ2QyaGxiaUI1YjNVbmNtVWdjM1Z5WlNCMGFHRjBJSFJvWlNCM2IzSnNaQ0J0WVhSeWFYZ2dhWE1nZFhBdGRHOHRaR0YwWlM1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnYjJKcVpXTjBJRlJvWlNCdlltcGxZM1JjYmlBcUlFQndZWEpoYlNCdmRYUWdRU0IwWVhKblpYUWdjWFZoZEdWeWJtbHZibHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBWMjl5YkdSUmRXRjBaWEp1YVc5dVRHbDBaU2h2WW1wbFkzUTZJRlJJVWtWRkxrOWlhbVZqZERORUxDQnZkWFE2SUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRwT2lCVVNGSkZSUzVSZFdGMFpYSnVhVzl1SUh0Y2JpQWdiMkpxWldOMExtMWhkSEpwZUZkdmNteGtMbVJsWTI5dGNHOXpaU2hmY0c5emFYUnBiMjRzSUc5MWRDd2dYM05qWVd4bEtUdGNiaUFnY21WMGRYSnVJRzkxZER0Y2JuMWNiaUlzSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibHh1THlvcVhHNGdLaUJEWVd4amRXeGhkR1VnWVhwcGJYVjBhQ0F2SUdGc2RHbDBkV1JsSUdGdVoyeGxjeUJtY205dElHRWdkbVZqZEc5eUxseHVJQ3BjYmlBcUlGUm9hWE1nY21WMGRYSnVjeUJoSUdScFptWmxjbVZ1WTJVZ2IyWWdZVzVuYkdWeklHWnliMjBnS0RFc0lEQXNJREFwTGx4dUlDb2dRWHBwYlhWMGFDQnlaWEJ5WlhObGJuUnpJR0Z1SUdGdVoyeGxJR0Z5YjNWdVpDQlpJR0Y0YVhNdVhHNGdLaUJCYkhScGRIVmtaU0J5WlhCeVpYTmxiblJ6SUdGdUlHRnVaMnhsSUdGeWIzVnVaQ0JhSUdGNGFYTXVYRzRnS2lCSmRDQnBjeUJ5YjNSaGRHVmtJR2x1SUdsdWRISnBibk5wWXlCWkxWb2diM0prWlhJdVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUhabFkzUnZjaUJVYUdVZ2RtVmpkRzl5WEc0Z0tpQkFjbVYwZFhKdWN5QkJJSFIxY0d4bElHTnZiblJoYVc1eklIUjNieUJoYm1kc1pYTXNJR0JiSUdGNmFXMTFkR2dzSUdGc2RHbDBkV1JsSUYxZ1hHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJqWVd4alFYcHBiWFYwYUVGc2RHbDBkV1JsS0habFkzUnZjam9nVkVoU1JVVXVWbVZqZEc5eU15azZJRnRoZW1sdGRYUm9PaUJ1ZFcxaVpYSXNJR0ZzZEdsMGRXUmxPaUJ1ZFcxaVpYSmRJSHRjYmlBZ2NtVjBkWEp1SUZ0TllYUm9MbUYwWVc0eUtDMTJaV04wYjNJdWVpd2dkbVZqZEc5eUxuZ3BMQ0JOWVhSb0xtRjBZVzR5S0habFkzUnZjaTU1TENCTllYUm9Mbk54Y25Rb2RtVmpkRzl5TG5nZ0tpQjJaV04wYjNJdWVDQXJJSFpsWTNSdmNpNTZJQ29nZG1WamRHOXlMbm9wS1YwN1hHNTlYRzRpTENJdktpcGNiaUFxSUUxaGEyVWdjM1Z5WlNCMGFHVWdZVzVuYkdVZ2FYTWdkMmwwYUdsdUlDMVFTU0IwYnlCUVNTNWNiaUFxWEc0Z0tpQkFaWGhoYlhCc1pWeHVJQ29nWUdCZ2FuTmNiaUFxSUhOaGJtbDBhWHBsUVc1bmJHVW9NUzQxSUNvZ1RXRjBhQzVRU1NrZ0x5OGdMVEF1TlNBcUlGQkpYRzRnS2lCZ1lHQmNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ1lXNW5iR1VnUVc0Z2FXNXdkWFFnWVc1bmJHVmNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOaGJtbDBhWHBsUVc1bmJHVW9ZVzVuYkdVNklHNTFiV0psY2lrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElISnZkVzVrVkhWeWJpQTlJRTFoZEdndWNtOTFibVFvWVc1bmJHVWdMeUF5TGpBZ0x5Qk5ZWFJvTGxCSktUdGNiaUFnY21WMGRYSnVJR0Z1WjJ4bElDMGdNaTR3SUNvZ1RXRjBhQzVRU1NBcUlISnZkVzVrVkhWeWJqdGNibjFjYmlJc0ltbHRjRzl5ZENBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYm1sdGNHOXlkQ0I3SUZaU1RVaDFiV0Z1YjJsa0lIMGdabkp2YlNBbkxpNHZhSFZ0WVc1dmFXUW5PMXh1YVcxd2IzSjBJSHNnWjJWMFYyOXliR1JSZFdGMFpYSnVhVzl1VEdsMFpTQjlJR1p5YjIwZ0p5NHVMM1YwYVd4ekwyZGxkRmR2Y214a1VYVmhkR1Z5Ym1sdmJreHBkR1VuTzF4dWFXMXdiM0owSUhzZ2NYVmhkRWx1ZG1WeWRFTnZiWEJoZENCOUlHWnliMjBnSnk0dUwzVjBhV3h6TDNGMVlYUkpiblpsY25SRGIyMXdZWFFuTzF4dWFXMXdiM0owSUhzZ1kyRnNZMEY2YVcxMWRHaEJiSFJwZEhWa1pTQjlJR1p5YjIwZ0p5NHZkWFJwYkhNdlkyRnNZMEY2YVcxMWRHaEJiSFJwZEhWa1pTYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVXh2YjJ0QmRFRndjR3hwWlhJZ2ZTQm1jbTl0SUNjdUwxWlNUVXh2YjJ0QmRFRndjR3hwWlhJbk8xeHVhVzF3YjNKMElIc2djMkZ1YVhScGVtVkJibWRzWlNCOUlHWnliMjBnSnk0dmRYUnBiSE12YzJGdWFYUnBlbVZCYm1kc1pTYzdYRzVjYm1OdmJuTjBJRlpGUXpOZlVFOVRTVlJKVmtWZldpQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLREF1TUN3Z01DNHdMQ0F4TGpBcE8xeHVYRzVqYjI1emRDQmZkak5CSUQwZ2JtVjNJRlJJVWtWRkxsWmxZM1J2Y2pNb0tUdGNibU52Ym5OMElGOTJNMElnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVZMjl1YzNRZ1gzWXpReUE5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNWpiMjV6ZENCZmNYVmhkRUVnUFNCdVpYY2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpZ3BPMXh1WTI5dWMzUWdYM0YxWVhSQ0lEMGdibVYzSUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRvS1R0Y2JtTnZibk4wSUY5eGRXRjBReUE5SUc1bGR5QlVTRkpGUlM1UmRXRjBaWEp1YVc5dUtDazdYRzVqYjI1emRDQmZjWFZoZEVRZ1BTQnVaWGNnVkVoU1JVVXVVWFZoZEdWeWJtbHZiaWdwTzF4dVkyOXVjM1FnWDJWMWJHVnlRU0E5SUc1bGR5QlVTRkpGUlM1RmRXeGxjaWdwTzF4dVhHNHZLaXBjYmlBcUlFRWdZMnhoYzNNZ1kyOXVkSEp2YkhNZ1pYbGxJR2RoZW1VZ2JXOTJaVzFsYm5SeklHOW1JR0VnVmxKTkxseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOVEc5dmEwRjBJSHRjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JGVlV4RlVsOVBVa1JGVWlBOUlDZFpXRm9uT3lBdkx5QjVZWGN0Y0dsMFkyZ3RjbTlzYkZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ2IzSnBaMmx1SUc5bUlFeHZiMnRCZEM0Z1VHOXphWFJwYjI0Z2IyWm1jMlYwSUdaeWIyMGdkR2hsSUdobFlXUWdZbTl1WlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCdlptWnpaWFJHY205dFNHVmhaRUp2Ym1VZ1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkpkSE1nWVhOemIyTnBZWFJsWkNCN1FHeHBibXNnVmxKTlNIVnRZVzV2YVdSOUxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlHaDFiV0Z1YjJsa09pQldVazFJZFcxaGJtOXBaRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUh0QWJHbHVheUJXVWsxTWIyOXJRWFJCY0hCc2FXVnlmU0J2WmlCMGFHVWdURzl2YTBGMExseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHRndjR3hwWlhJNklGWlNUVXh2YjJ0QmRFRndjR3hwWlhJN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVsbUlIUm9hWE1nYVhNZ2RISjFaU3dnZEdobElFeHZiMnRCZENCM2FXeHNJR0psSUhWd1pHRjBaV1FnWVhWMGIyMWhkR2xqWVd4c2VTQmllU0JqWVd4c2FXNW5JSHRBYkdsdWF5QjFjR1JoZEdWOUxDQjBiM2RoY21ScGJtY2dkR2hsSUdScGNtVmpkR2x2YmlCMGJ5QjBhR1VnZTBCc2FXNXJJSFJoY21kbGRIMHVYRzRnSUNBcUlHQjBjblZsWUNCaWVTQmtaV1poZFd4MExseHVJQ0FnS2x4dUlDQWdLaUJUWldVZ1lXeHpiem9nZTBCc2FXNXJJSFJoY21kbGRIMWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmhkWFJ2VlhCa1lYUmxJRDBnZEhKMVpUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSFJoY21kbGRDQnZZbXBsWTNRZ2IyWWdkR2hsSUV4dmIydEJkQzVjYmlBZ0lDb2dUbTkwWlNCMGFHRjBJR2wwSUdSdlpYTWdibTkwSUcxaGEyVWdZVzU1SUhObGJuTmxJR2xtSUh0QWJHbHVheUJoZFhSdlZYQmtZWFJsZlNCcGN5QmthWE5oWW14bFpDNWNiaUFnSUNwY2JpQWdJQ29nVTJWbElHRnNjMjg2SUh0QWJHbHVheUJoZFhSdlZYQmtZWFJsZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhSaGNtZGxkRDg2SUZSSVVrVkZMazlpYW1WamRETkVJSHdnYm5Wc2JEdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJR1p5YjI1MElHUnBjbVZqZEdsdmJpQnZaaUIwYUdVZ1ptRmpaUzVjYmlBZ0lDb2dTVzUwWlc1a1pXUWdkRzhnWW1VZ2RYTmxaQ0JtYjNJZ1ZsSk5JREF1TUNCamIyMXdZWFFnS0ZaU1RTQXdMakFnYlc5a1pXeHpJR0Z5WlNCbVlXTnBibWNnV2kwZ2FXNXpkR1ZoWkNCdlppQmFLeWt1WEc0Z0lDQXFJRmx2ZFNCMWMzVmhiR3g1SUdSdmJpZDBJSGRoYm5RZ2RHOGdkRzkxWTJnZ2RHaHBjeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJtWVdObFJuSnZiblFnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlnd0xqQXNJREF1TUN3Z01TNHdLVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTWFJ6SUdOMWNuSmxiblFnWVc1bmJHVWdZWEp2ZFc1a0lGa2dZWGhwY3l3Z2FXNGdaR1ZuY21WbExseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJRjk1WVhjNklHNTFiV0psY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nU1hSeklHTjFjbkpsYm5RZ1lXNW5iR1VnWVhKdmRXNWtJRmtnWVhocGN5d2dhVzRnWkdWbmNtVmxMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR2RsZENCNVlYY29LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmZVdGM08xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWwwY3lCamRYSnlaVzUwSUdGdVoyeGxJR0Z5YjNWdVpDQlpJR0Y0YVhNc0lHbHVJR1JsWjNKbFpTNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnpaWFFnZVdGM0tIWmhiSFZsT2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0IwYUdsekxsOTVZWGNnUFNCMllXeDFaVHRjYmlBZ0lDQjBhR2x6TGw5dVpXVmtjMVZ3WkdGMFpTQTlJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTWFJ6SUdOMWNuSmxiblFnWVc1bmJHVWdZWEp2ZFc1a0lGZ2dZWGhwY3l3Z2FXNGdaR1ZuY21WbExseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJRjl3YVhSamFEb2diblZ0WW1WeU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCSmRITWdZM1Z5Y21WdWRDQmhibWRzWlNCaGNtOTFibVFnV0NCaGVHbHpMQ0JwYmlCa1pXZHlaV1V1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMElIQnBkR05vS0NrNklHNTFiV0psY2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzQnBkR05vTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFbDBjeUJqZFhKeVpXNTBJR0Z1WjJ4bElHRnliM1Z1WkNCWUlHRjRhWE1zSUdsdUlHUmxaM0psWlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCelpYUWdjR2wwWTJnb2RtRnNkV1U2SUc1MWJXSmxjaWtnZTF4dUlDQWdJSFJvYVhNdVgzQnBkR05vSUQwZ2RtRnNkV1U3WEc0Z0lDQWdkR2hwY3k1ZmJtVmxaSE5WY0dSaGRHVWdQU0IwY25WbE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRk53WldOcFptbGxjeUIwYUdGMElHRnVaMnhsY3lCdVpXVmtJSFJ2SUdKbElHRndjR3hwWldRZ2RHOGdhWFJ6SUZ0QWJHbHVheUJoY0hCc2FXVnlYUzVjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCZmJtVmxaSE5WY0dSaGRHVTZJR0p2YjJ4bFlXNDdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGZHZjbXhrSUhKdmRHRjBhVzl1SUc5bUlIUm9aU0JvWldGa0lHbHVJR2wwY3lCeVpYTjBJSEJ2YzJVdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXlaWE4wU0dWaFpGZHZjbXhrVVhWaGRHVnlibWx2YmpvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2Ymp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGNISmxZMkYwWldRZ1ZYTmxJSHRBYkdsdWF5Qm5aWFJGZFd4bGNuMGdhVzV6ZEdWaFpDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFFnWlhWc1pYSW9LVG9nVkVoU1JVVXVSWFZzWlhJZ2UxeHVJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpZ25WbEpOVEc5dmEwRjBPaUJsZFd4bGNpQnBjeUJrWlhCeVpXTmhkR1ZrTGlCMWMyVWdaMlYwUlhWc1pYSW9LU0JwYm5OMFpXRmtMaWNwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVoyVjBSWFZzWlhJb2JtVjNJRlJJVWtWRkxrVjFiR1Z5S0NrcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpTQmhJRzVsZHlCN1FHeHBibXNnVmxKTlRHOXZhMEYwZlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHaDFiV0Z1YjJsa0lFRWdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtmVnh1SUNBZ0tpQkFjR0Z5WVcwZ1lYQndiR2xsY2lCQklIdEFiR2x1YXlCV1VrMU1iMjlyUVhSQmNIQnNhV1Z5ZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtHaDFiV0Z1YjJsa09pQldVazFJZFcxaGJtOXBaQ3dnWVhCd2JHbGxjam9nVmxKTlRHOXZhMEYwUVhCd2JHbGxjaWtnZTF4dUlDQWdJSFJvYVhNdWFIVnRZVzV2YVdRZ1BTQm9kVzFoYm05cFpEdGNiaUFnSUNCMGFHbHpMbUZ3Y0d4cFpYSWdQU0JoY0hCc2FXVnlPMXh1WEc0Z0lDQWdkR2hwY3k1ZmVXRjNJRDBnTUM0d08xeHVJQ0FnSUhSb2FYTXVYM0JwZEdOb0lEMGdNQzR3TzF4dUlDQWdJSFJvYVhNdVgyNWxaV1J6VlhCa1lYUmxJRDBnZEhKMVpUdGNibHh1SUNBZ0lIUm9hWE11WDNKbGMzUklaV0ZrVjI5eWJHUlJkV0YwWlhKdWFXOXVJRDBnZEdocGN5NW5aWFJNYjI5clFYUlhiM0pzWkZGMVlYUmxjbTVwYjI0b2JtVjNJRlJJVWtWRkxsRjFZWFJsY201cGIyNG9LU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJR2wwY3lCNVlYY3RjR2wwWTJnZ1lXNW5iR1Z6SUdGeklHRnVJR0JGZFd4bGNtQXVYRzRnSUNBcUlFUnZaWE1nVGs5VUlHTnZibk5wWkdWeUlIdEFiR2x1YXlCbVlXTmxSbkp2Ym5SOU95QnBkQ0J5WlhSMWNtNXpJR0JGZFd4bGNpZ3dMQ0F3TENBd095QmNJbGxZV2x3aUtXQWdZbmtnWkdWbVlYVnNkQ0J5WldkaGNtUnNaWE56SUc5bUlIUm9aU0JtWVdObFJuSnZiblFnZG1Gc2RXVXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0IwWVhKblpYUWdWR2hsSUhSaGNtZGxkQ0JsZFd4bGNseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkRVYxYkdWeUtIUmhjbWRsZERvZ1ZFaFNSVVV1UlhWc1pYSXBPaUJVU0ZKRlJTNUZkV3hsY2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJoY21kbGRDNXpaWFFvVkVoU1JVVXVUV0YwYUZWMGFXeHpMa1JGUnpKU1FVUWdLaUIwYUdsekxsOXdhWFJqYUN3Z1ZFaFNSVVV1VFdGMGFGVjBhV3h6TGtSRlJ6SlNRVVFnS2lCMGFHbHpMbDk1WVhjc0lEQXVNQ3dnSjFsWVdpY3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmNIa2dkR2hsSUdkcGRtVnVJSHRBYkdsdWF5QldVazFNYjI5clFYUjlJR2x1ZEc4Z2RHaHBjeUJ2Ym1VdVhHNGdJQ0FxSUh0QWJHbHVheUJvZFcxaGJtOXBaSDBnYlhWemRDQmlaU0J6WVcxbElHRnpJSFJvWlNCemIzVnlZMlVnYjI1bExseHVJQ0FnS2lCN1FHeHBibXNnWVhCd2JHbGxjbjBnZDJsc2JDQnlaV1psY21WdVkyVWdkR2hsSUhOaGJXVWdhVzV6ZEdGdVkyVWdZWE1nZEdobElITnZkWEpqWlNCdmJtVXVYRzRnSUNBcUlFQndZWEpoYlNCemIzVnlZMlVnVkdobElIdEFiR2x1YXlCV1VrMU1iMjlyUVhSOUlIbHZkU0IzWVc1MElIUnZJR052Y0hsY2JpQWdJQ29nUUhKbGRIVnlibk1nZEdocGMxeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHTnZjSGtvYzI5MWNtTmxPaUJXVWsxTWIyOXJRWFFwT2lCMGFHbHpJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NW9kVzFoYm05cFpDQWhQVDBnYzI5MWNtTmxMbWgxYldGdWIybGtLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMVpTVFV4dmIydEJkRG9nYUhWdFlXNXZhV1FnYlhWemRDQmlaU0J6WVcxbElHbHVJRzl5WkdWeUlIUnZJR052Y0hrbktUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbTltWm5ObGRFWnliMjFJWldGa1FtOXVaUzVqYjNCNUtITnZkWEpqWlM1dlptWnpaWFJHY205dFNHVmhaRUp2Ym1VcE8xeHVJQ0FnSUhSb2FYTXVZWEJ3YkdsbGNpQTlJSE52ZFhKalpTNWhjSEJzYVdWeU8xeHVJQ0FnSUhSb2FYTXVZWFYwYjFWd1pHRjBaU0E5SUhOdmRYSmpaUzVoZFhSdlZYQmtZWFJsTzF4dUlDQWdJSFJvYVhNdWRHRnlaMlYwSUQwZ2MyOTFjbU5sTG5SaGNtZGxkRHRjYmlBZ0lDQjBhR2x6TG1aaFkyVkdjbTl1ZEM1amIzQjVLSE52ZFhKalpTNW1ZV05sUm5KdmJuUXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCaElHTnNiMjVsSUc5bUlIUm9hWE1nZTBCc2FXNXJJRlpTVFV4dmIydEJkSDB1WEc0Z0lDQXFJRTV2ZEdVZ2RHaGhkQ0I3UUd4cGJtc2dhSFZ0WVc1dmFXUjlJR0Z1WkNCN1FHeHBibXNnWVhCd2JHbGxjbjBnZDJsc2JDQnlaV1psY21WdVkyVWdkR2hsSUhOaGJXVWdhVzV6ZEdGdVkyVWdZWE1nZEdocGN5QnZibVV1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJRU52Y0dsbFpDQjdRR3hwYm1zZ1ZsSk5URzl2YTBGMGZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHTnNiMjVsS0NrNklGWlNUVXh2YjJ0QmRDQjdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QldVazFNYjI5clFYUW9kR2hwY3k1b2RXMWhibTlwWkN3Z2RHaHBjeTVoY0hCc2FXVnlLUzVqYjNCNUtIUm9hWE1wTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxjMlYwSUhSb1pTQnNiMjlyUVhRZ1pHbHlaV04wYVc5dUlDaDVZWGNnWVc1a0lIQnBkR05vS1NCMGJ5QjBhR1VnYVc1cGRHbGhiQ0JrYVhKbFkzUnBiMjR1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nY21WelpYUW9LVG9nZG05cFpDQjdYRzRnSUNBZ2RHaHBjeTVmZVdGM0lEMGdNQzR3TzF4dUlDQWdJSFJvYVhNdVgzQnBkR05vSUQwZ01DNHdPMXh1SUNBZ0lIUm9hWE11WDI1bFpXUnpWWEJrWVhSbElEMGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnYVhSeklHeHZiMnRCZENCd2IzTnBkR2x2YmlCcGJpQjNiM0pzWkNCamIyOXlaR2x1WVhSbExseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdkR0Z5WjJWMElFRWdkR0Z5WjJWMElHQlVTRkpGUlM1V1pXTjBiM0l6WUZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRFeHZiMnRCZEZkdmNteGtVRzl6YVhScGIyNG9kR0Z5WjJWME9pQlVTRkpGUlM1V1pXTjBiM0l6S1RvZ1ZFaFNSVVV1Vm1WamRHOXlNeUI3WEc0Z0lDQWdZMjl1YzNRZ2FHVmhaQ0E5SUhSb2FYTXVhSFZ0WVc1dmFXUXVaMlYwVW1GM1FtOXVaVTV2WkdVb0oyaGxZV1FuS1NFN1hHNWNiaUFnSUNCeVpYUjFjbTRnZEdGeVoyVjBMbU52Y0hrb2RHaHBjeTV2Wm1aelpYUkdjbTl0U0dWaFpFSnZibVVwTG1Gd2NHeDVUV0YwY21sNE5DaG9aV0ZrTG0xaGRISnBlRmR2Y214a0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJIWlhRZ2FYUnpJR3h2YjJ0QmRDQnliM1JoZEdsdmJpQnBiaUIzYjNKc1pDQmpiMjl5WkdsdVlYUmxMbHh1SUNBZ0tpQkViMlZ6SUU1UFZDQmpiMjV6YVdSbGNpQjdRR3hwYm1zZ1ptRmpaVVp5YjI1MGZTNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSFJoY21kbGRDQkJJSFJoY21kbGRDQmdWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJtQmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFJNYjI5clFYUlhiM0pzWkZGMVlYUmxjbTVwYjI0b2RHRnlaMlYwT2lCVVNGSkZSUzVSZFdGMFpYSnVhVzl1S1RvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlCN1hHNGdJQ0FnWTI5dWMzUWdhR1ZoWkNBOUlIUm9hWE11YUhWdFlXNXZhV1F1WjJWMFVtRjNRbTl1WlU1dlpHVW9KMmhsWVdRbktTRTdYRzVjYmlBZ0lDQnlaWFIxY200Z1oyVjBWMjl5YkdSUmRXRjBaWEp1YVc5dVRHbDBaU2hvWldGa0xDQjBZWEpuWlhRcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCaElIRjFZWFJsY201cGIyNGdkR2hoZENCeWIzUmhkR1Z6SUhSb1pTQXJXaUIxYm1sMElIWmxZM1J2Y2lCdlppQjBhR1VnYUhWdFlXNXZhV1FnU0dWaFpDQjBieUIwYUdVZ2UwQnNhVzVySUdaaFkyVkdjbTl1ZEgwZ1pHbHlaV04wYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdkR0Z5WjJWMElFRWdkR0Z5WjJWMElHQlVTRkpGUlM1UmRXRjBaWEp1YVc5dVlGeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkRVpoWTJWR2NtOXVkRkYxWVhSbGNtNXBiMjRvZEdGeVoyVjBPaUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVLVG9nVkVoU1JVVXVVWFZoZEdWeWJtbHZiaUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVabUZqWlVaeWIyNTBMbVJwYzNSaGJtTmxWRzlUY1hWaGNtVmtLRlpGUXpOZlVFOVRTVlJKVmtWZldpa2dQQ0F3TGpBeEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHRnlaMlYwTG1OdmNIa29kR2hwY3k1ZmNtVnpkRWhsWVdSWGIzSnNaRkYxWVhSbGNtNXBiMjRwTG1sdWRtVnlkQ2dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElGdG1ZV05sUm5KdmJuUkJlbWx0ZFhSb0xDQm1ZV05sUm5KdmJuUkJiSFJwZEhWa1pWMGdQU0JqWVd4alFYcHBiWFYwYUVGc2RHbDBkV1JsS0hSb2FYTXVabUZqWlVaeWIyNTBLVHRjYmlBZ0lDQmZaWFZzWlhKQkxuTmxkQ2d3TGpBc0lEQXVOU0FxSUUxaGRHZ3VVRWtnS3lCbVlXTmxSbkp2Ym5SQmVtbHRkWFJvTENCbVlXTmxSbkp2Ym5SQmJIUnBkSFZrWlN3Z0oxbGFXQ2NwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJoY21kbGRDNXpaWFJHY205dFJYVnNaWElvWDJWMWJHVnlRU2t1Y0hKbGJYVnNkR2x3Ykhrb1gzRjFZWFJFTG1OdmNIa29kR2hwY3k1ZmNtVnpkRWhsWVdSWGIzSnNaRkYxWVhSbGNtNXBiMjRwTG1sdWRtVnlkQ2dwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkhaWFFnYVhSeklFeHZiMnRCZENCa2FYSmxZM1JwYjI0Z2FXNGdkMjl5YkdRZ1kyOXZjbVJwYm1GMFpTNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSFJoY21kbGRDQkJJSFJoY21kbGRDQmdWRWhTUlVVdVZtVmpkRzl5TTJCY2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCblpYUk1iMjlyUVhSWGIzSnNaRVJwY21WamRHbHZiaWgwWVhKblpYUTZJRlJJVWtWRkxsWmxZM1J2Y2pNcE9pQlVTRkpGUlM1V1pXTjBiM0l6SUh0Y2JpQWdJQ0IwYUdsekxtZGxkRXh2YjJ0QmRGZHZjbXhrVVhWaGRHVnlibWx2YmloZmNYVmhkRUlwTzF4dUlDQWdJSFJvYVhNdVoyVjBSbUZqWlVaeWIyNTBVWFZoZEdWeWJtbHZiaWhmY1hWaGRFTXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlIUmhjbWRsZEZ4dUlDQWdJQ0FnTG1OdmNIa29Wa1ZETTE5UVQxTkpWRWxXUlY5YUtWeHVJQ0FnSUNBZ0xtRndjR3g1VVhWaGRHVnlibWx2YmloZmNYVmhkRUlwWEc0Z0lDQWdJQ0F1WVhCd2JIbFJkV0YwWlhKdWFXOXVLRjl4ZFdGMFF5bGNiaUFnSUNBZ0lDNWhjSEJzZVVWMWJHVnlLSFJvYVhNdVoyVjBSWFZzWlhJb1gyVjFiR1Z5UVNrcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRk5sZENCcGRITWdiRzl2YTBGMElIUmhjbWRsZENCd2IzTnBkR2x2Ymk1Y2JpQWdJQ3BjYmlBZ0lDb2dUbTkwWlNCMGFHRjBJR2wwY3lCeVpYTjFiSFFnZDJsc2JDQmlaU0JwYm5OMFlXNTBiSGtnYjNabGNuZHlhWFIwWlc0Z2FXWWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRFaGxZV1F1WVhWMGIxVndaR0YwWlgwZ2FYTWdaVzVoWW14bFpDNWNiaUFnSUNwY2JpQWdJQ29nU1dZZ2VXOTFJSGRoYm5RZ2RHOGdkSEpoWTJzZ1lXNGdiMkpxWldOMElHTnZiblJwYm5WdmRYTnNlU3dnZVc5MUlHMXBaMmgwSUhkaGJuUWdkRzhnZFhObElIdEFiR2x1YXlCMFlYSm5aWFI5SUdsdWMzUmxZV1F1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCd2IzTnBkR2x2YmlCQklIUmhjbWRsZENCd2IzTnBkR2x2Yml3Z2FXNGdkMjl5YkdRZ2MzQmhZMlZjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJzYjI5clFYUW9jRzl6YVhScGIyNDZJRlJJVWtWRkxsWmxZM1J2Y2pNcE9pQjJiMmxrSUh0Y2JpQWdJQ0F2THlCTWIyOXJJR0YwSUdScGNtVmpkR2x2YmlCcGJpQnNiMk5oYkNCamIyOXlaR2x1WVhSbFhHNGdJQ0FnWTI5dWMzUWdhR1ZoWkZKdmRFUnBabVpKYm5ZZ1BTQmZjWFZoZEVGY2JpQWdJQ0FnSUM1amIzQjVLSFJvYVhNdVgzSmxjM1JJWldGa1YyOXliR1JSZFdGMFpYSnVhVzl1S1Z4dUlDQWdJQ0FnTG0xMWJIUnBjR3g1S0hGMVlYUkpiblpsY25SRGIyMXdZWFFvZEdocGN5NW5aWFJNYjI5clFYUlhiM0pzWkZGMVlYUmxjbTVwYjI0b1gzRjFZWFJDS1NrcE8xeHVJQ0FnSUdOdmJuTjBJR2hsWVdSUWIzTWdQU0IwYUdsekxtZGxkRXh2YjJ0QmRGZHZjbXhrVUc5emFYUnBiMjRvWDNZelFpazdYRzRnSUNBZ1kyOXVjM1FnYkc5dmEwRjBSR2x5SUQwZ1gzWXpReTVqYjNCNUtIQnZjMmwwYVc5dUtTNXpkV0lvYUdWaFpGQnZjeWt1WVhCd2JIbFJkV0YwWlhKdWFXOXVLR2hsWVdSU2IzUkVhV1ptU1c1MktTNXViM0p0WVd4cGVtVW9LVHRjYmx4dUlDQWdJQzh2SUdOaGJHTjFiR0YwWlNCaGJtZHNaWE5jYmlBZ0lDQmpiMjV6ZENCYllYcHBiWFYwYUVaeWIyMHNJR0ZzZEdsMGRXUmxSbkp2YlYwZ1BTQmpZV3hqUVhwcGJYVjBhRUZzZEdsMGRXUmxLSFJvYVhNdVptRmpaVVp5YjI1MEtUdGNiaUFnSUNCamIyNXpkQ0JiWVhwcGJYVjBhRlJ2TENCaGJIUnBkSFZrWlZSdlhTQTlJR05oYkdOQmVtbHRkWFJvUVd4MGFYUjFaR1VvYkc5dmEwRjBSR2x5S1R0Y2JpQWdJQ0JqYjI1emRDQjVZWGNnUFNCellXNXBkR2w2WlVGdVoyeGxLR0Y2YVcxMWRHaFVieUF0SUdGNmFXMTFkR2hHY205dEtUdGNiaUFnSUNCamIyNXpkQ0J3YVhSamFDQTlJSE5oYm1sMGFYcGxRVzVuYkdVb1lXeDBhWFIxWkdWR2NtOXRJQzBnWVd4MGFYUjFaR1ZVYnlrN0lDOHZJSE53YVc1dWFXNW5JQ2d4TENBd0xDQXdLU0JEUTFjZ1lYSnZkVzVrSUZvZ1lYaHBjeUJ0WVd0bGN5QjBhR1VnZG1WamRHOXlJR3h2YjJzZ2RYQXNJSGRvYVd4bElITndhVzV1YVc1bklDZ3dMQ0F3TENBeEtTQkRRMWNnWVhKdmRXNWtJRmdnWVhocGN5QnRZV3RsY3lCMGFHVWdkbVZqZEc5eUlHeHZiMnNnWkc5M2JseHVYRzRnSUNBZ0x5OGdZWEJ3YkhrZ1lXNW5iR1Z6WEc0Z0lDQWdkR2hwY3k1ZmVXRjNJRDBnVkVoU1JVVXVUV0YwYUZWMGFXeHpMbEpCUkRKRVJVY2dLaUI1WVhjN1hHNGdJQ0FnZEdocGN5NWZjR2wwWTJnZ1BTQlVTRkpGUlM1TllYUm9WWFJwYkhNdVVrRkVNa1JGUnlBcUlIQnBkR05vTzF4dVhHNGdJQ0FnZEdocGN5NWZibVZsWkhOVmNHUmhkR1VnUFNCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZWd1pHRjBaU0IwYUdVZ1ZsSk5URzl2YTBGMFNHVmhaQzVjYmlBZ0lDb2dTV1lnZTBCc2FXNXJJR0YxZEc5VmNHUmhkR1Y5SUdseklHVnVZV0pzWldRc0lIUm9hWE1nZDJsc2JDQnRZV3RsSUdsMElHeHZiMnNnWVhRZ2RHaGxJSHRBYkdsdWF5QjBZWEpuWlhSOUxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdaR1ZzZEdFZ1pHVnNkR0ZVYVcxbExDQnBkQ0JwYzI0bmRDQjFjMlZrSUhSb2IzVm5hQzRnV1c5MUlHTmhiaUIxYzJVZ2RHaGxJSEJoY21GdFpYUmxjaUJwWmlCNWIzVWdkMkZ1ZENCMGJ5QjFjMlVnZEdocGN5QnBiaUI1YjNWeUlHOTNiaUJsZUhSbGJtUmxaQ0I3UUd4cGJtc2dWbEpOVEc5dmEwRjBmUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUIxY0dSaGRHVW9aR1ZzZEdFNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR2xtSUNoMGFHbHpMblJoY21kbGRDQWhQU0J1ZFd4c0lDWW1JSFJvYVhNdVlYVjBiMVZ3WkdGMFpTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1c2IyOXJRWFFvZEdocGN5NTBZWEpuWlhRdVoyVjBWMjl5YkdSUWIzTnBkR2x2YmloZmRqTkJLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVYMjVsWldSelZYQmtZWFJsS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbDl1WldWa2MxVndaR0YwWlNBOUlHWmhiSE5sTzF4dVhHNGdJQ0FnSUNCMGFHbHpMbUZ3Y0d4cFpYSXVZWEJ3YkhsWllYZFFhWFJqYUNoMGFHbHpMbDk1WVhjc0lIUm9hWE11WDNCcGRHTm9LVHRjYmlBZ0lDQjlYRzRnSUgxY2JuMWNiaUlzSW1sdGNHOXlkQ0I3SUZaU1RVaDFiV0Z1YjJsa0lIMGdabkp2YlNBbkxpNHZhSFZ0WVc1dmFXUW5PMXh1YVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCV1VrMU1iMjlyUVhSQmNIQnNhV1Z5SUgwZ1puSnZiU0FuTGk5V1VrMU1iMjlyUVhSQmNIQnNhV1Z5Snp0Y2JtbHRjRzl5ZENCN0lGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd0lIMGdabkp2YlNBbkxpOVdVazFNYjI5clFYUlNZVzVuWlUxaGNDYzdYRzVwYlhCdmNuUWdleUJqWVd4alFYcHBiWFYwYUVGc2RHbDBkV1JsSUgwZ1puSnZiU0FuTGk5MWRHbHNjeTlqWVd4alFYcHBiWFYwYUVGc2RHbDBkV1JsSnp0Y2JtbHRjRzl5ZENCN0lHZGxkRmR2Y214a1VYVmhkR1Z5Ym1sdmJreHBkR1VnZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeTluWlhSWGIzSnNaRkYxWVhSbGNtNXBiMjVNYVhSbEp6dGNibHh1WTI5dWMzUWdWa1ZETTE5UVQxTkpWRWxXUlY5YUlEMGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqTW9NQzR3TENBd0xqQXNJREV1TUNrN1hHNWNibU52Ym5OMElGOXhkV0YwUVNBOUlHNWxkeUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVLQ2s3WEc1amIyNXpkQ0JmY1hWaGRFSWdQU0J1WlhjZ1ZFaFNSVVV1VVhWaGRHVnlibWx2YmlncE8xeHVZMjl1YzNRZ1gyVjFiR1Z5UVNBOUlHNWxkeUJVU0ZKRlJTNUZkV3hsY2lnd0xqQXNJREF1TUN3Z01DNHdMQ0FuV1ZoYUp5azdYRzVjYmk4cUtseHVJQ29nUVNCamJHRnpjeUIwYUdGMElHRndjR3hwWlhNZ1pYbGxJR2RoZW1VZ1pHbHlaV04wYVc5dWN5QjBieUJoSUZaU1RTNWNiaUFxSUVsMElIZHBiR3dnWW1VZ2RYTmxaQ0JpZVNCN1FHeHBibXNnVmxKTlRHOXZhMEYwZlM1Y2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWlNUVXh2YjJ0QmRFSnZibVZCY0hCc2FXVnlJR2x0Y0d4bGJXVnVkSE1nVmxKTlRHOXZhMEYwUVhCd2JHbGxjaUI3WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWEJ5WlhObGJuUWdhWFJ6SUhSNWNHVWdiMllnWVhCd2JHbGxjaTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZoWkc5dWJIa2dkSGx3WlNBOUlDZGliMjVsSnp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nU1hSeklHRnpjMjlqYVdGMFpXUWdlMEJzYVc1cklGWlNUVWgxYldGdWIybGtmUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0JvZFcxaGJtOXBaRG9nVmxKTlNIVnRZVzV2YVdRN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVFZ2UwQnNhVzVySUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3ZlNCbWIzSWdhRzl5YVhwdmJuUmhiQ0JwYm5kaGNtUWdiVzkyWlcxbGJuUXVJRlJvWlNCc1pXWjBJR1Y1WlNCdGIzWmxjeUJ5YVdkb2RDNGdWR2hsSUhKcFoyaDBJR1Y1WlNCdGIzWmxjeUJzWldaMExseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmhibWRsVFdGd1NHOXlhWHB2Ym5SaGJFbHVibVZ5T2lCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0R0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCN1FHeHBibXNnVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEI5SUdadmNpQm9iM0pwZW05dWRHRnNJRzkxZEhkaGNtUWdiVzkyWlcxbGJuUXVJRlJvWlNCc1pXWjBJR1Y1WlNCdGIzWmxjeUJzWldaMExpQlVhR1VnY21sbmFIUWdaWGxsSUcxdmRtVnpJSEpwWjJoMExseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmhibWRsVFdGd1NHOXlhWHB2Ym5SaGJFOTFkR1Z5T2lCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0R0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCN1FHeHBibXNnVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEI5SUdadmNpQjJaWEowYVdOaGJDQmtiM2R1ZDJGeVpDQnRiM1psYldWdWRDNGdRbTkwYUNCbGVXVnpJRzF2ZG1VZ2RYQjNZWEprY3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCeVlXNW5aVTFoY0ZabGNuUnBZMkZzUkc5M2Jqb2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFRWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd2ZTQm1iM0lnZG1WeWRHbGpZV3dnZFhCM1lYSmtJRzF2ZG1WdFpXNTBMaUJDYjNSb0lHVjVaWE1nYlc5MlpTQmtiM2R1ZDJGeVpITXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbUZ1WjJWTllYQldaWEowYVdOaGJGVndPaUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUdaeWIyNTBJR1JwY21WamRHbHZiaUJ2WmlCMGFHVWdabUZqWlM1Y2JpQWdJQ29nU1c1MFpXNWtaV1FnZEc4Z1ltVWdkWE5sWkNCbWIzSWdWbEpOSURBdU1DQmpiMjF3WVhRZ0tGWlNUU0F3TGpBZ2JXOWtaV3h6SUdGeVpTQm1ZV05wYm1jZ1dpMGdhVzV6ZEdWaFpDQnZaaUJhS3lrdVhHNGdJQ0FxSUZsdmRTQjFjM1ZoYkd4NUlHUnZiaWQwSUhkaGJuUWdkRzhnZEc5MVkyZ2dkR2hwY3k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCbVlXTmxSbkp2Ym5RNklGUklVa1ZGTGxabFkzUnZjak03WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCeVpYTjBJSEYxWVhSbGNtNXBiMjRnYjJZZ1RHVm1kRVY1WlNCaWIyNWxMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmY21WemRGRjFZWFJNWldaMFJYbGxPaUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnY21WemRDQnhkV0YwWlhKdWFXOXVJRzltSUZKcFoyaDBSWGxsSUdKdmJtVXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjl5WlhOMFVYVmhkRkpwWjJoMFJYbGxPaUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnZDI5eWJHUXRjM0JoWTJVZ2NtVnpkQ0J4ZFdGMFpYSnVhVzl1SUc5bUlIUm9aU0J3WVhKbGJuUWdiMllnZEdobElHaDFiV0Z1YjJsa0lFeGxablJGZVdVdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXlaWE4wVEdWbWRFVjVaVkJoY21WdWRGZHZjbXhrVVhWaGREb2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSGR2Y214a0xYTndZV05sSUhKbGMzUWdjWFZoZEdWeWJtbHZiaUJ2WmlCMGFHVWdjR0Z5Wlc1MElHOW1JSFJvWlNCb2RXMWhibTlwWkNCU2FXZG9kRVY1WlM1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1gzSmxjM1JTYVdkb2RFVjVaVkJoY21WdWRGZHZjbXhrVVhWaGREb2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ2JtVjNJSHRBYkdsdWF5QldVazFNYjI5clFYUkNiMjVsUVhCd2JHbGxjbjB1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCb2RXMWhibTlwWkNCQklIdEFiR2x1YXlCV1VrMUlkVzFoYm05cFpIMWNiaUFnSUNvZ1FIQmhjbUZ0SUhKaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkVsdWJtVnlJRUVnZTBCc2FXNXJJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndmU0IxYzJWa0lHWnZjaUJwYm01bGNpQjBjbUZ1YzNabGNuTmxJR1JwY21WamRHbHZibHh1SUNBZ0tpQkFjR0Z5WVcwZ2NtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1QzVjBaWElnUVNCN1FHeHBibXNnVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEI5SUhWelpXUWdabTl5SUc5MWRHVnlJSFJ5WVc1emRtVnljMlVnWkdseVpXTjBhVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQnlZVzVuWlUxaGNGWmxjblJwWTJGc1JHOTNiaUJCSUh0QWJHbHVheUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjSDBnZFhObFpDQm1iM0lnWkc5M2JpQmthWEpsWTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUhKaGJtZGxUV0Z3Vm1WeWRHbGpZV3hWY0NCQklIdEFiR2x1YXlCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0gwZ2RYTmxaQ0JtYjNJZ2RYQWdaR2x5WldOMGFXOXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdhSFZ0WVc1dmFXUTZJRlpTVFVoMWJXRnViMmxrTEZ4dUlDQWdJSEpoYm1kbFRXRndTRzl5YVhwdmJuUmhiRWx1Ym1WeU9pQldVazFNYjI5clFYUlNZVzVuWlUxaGNDeGNiaUFnSUNCeVlXNW5aVTFoY0VodmNtbDZiMjUwWVd4UGRYUmxjam9nVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEFzWEc0Z0lDQWdjbUZ1WjJWTllYQldaWEowYVdOaGJFUnZkMjQ2SUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3TEZ4dUlDQWdJSEpoYm1kbFRXRndWbVZ5ZEdsallXeFZjRG9nVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEFzWEc0Z0lDa2dlMXh1SUNBZ0lIUm9hWE11YUhWdFlXNXZhV1FnUFNCb2RXMWhibTlwWkR0Y2JseHVJQ0FnSUhSb2FYTXVjbUZ1WjJWTllYQkliM0pwZW05dWRHRnNTVzV1WlhJZ1BTQnlZVzVuWlUxaGNFaHZjbWw2YjI1MFlXeEpibTVsY2p0Y2JpQWdJQ0IwYUdsekxuSmhibWRsVFdGd1NHOXlhWHB2Ym5SaGJFOTFkR1Z5SUQwZ2NtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1QzVjBaWEk3WEc0Z0lDQWdkR2hwY3k1eVlXNW5aVTFoY0ZabGNuUnBZMkZzUkc5M2JpQTlJSEpoYm1kbFRXRndWbVZ5ZEdsallXeEViM2R1TzF4dUlDQWdJSFJvYVhNdWNtRnVaMlZOWVhCV1pYSjBhV05oYkZWd0lEMGdjbUZ1WjJWTllYQldaWEowYVdOaGJGVndPMXh1WEc0Z0lDQWdkR2hwY3k1bVlXTmxSbkp2Ym5RZ1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3dMakFzSURBdU1Dd2dNUzR3S1R0Y2JseHVJQ0FnSUM4dklITmxkQ0J5WlhOMElIRjFZWFJsY201cGIyNXpYRzRnSUNBZ2RHaHBjeTVmY21WemRGRjFZWFJNWldaMFJYbGxJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNiaUFnSUNCMGFHbHpMbDl5WlhOMFVYVmhkRkpwWjJoMFJYbGxJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNiaUFnSUNCMGFHbHpMbDl5WlhOMFRHVm1kRVY1WlZCaGNtVnVkRmR2Y214a1VYVmhkQ0E5SUc1bGR5QlVTRkpGUlM1UmRXRjBaWEp1YVc5dUtDazdYRzRnSUNBZ2RHaHBjeTVmY21WemRGSnBaMmgwUlhsbFVHRnlaVzUwVjI5eWJHUlJkV0YwSUQwZ2JtVjNJRlJJVWtWRkxsRjFZWFJsY201cGIyNG9LVHRjYmx4dUlDQWdJR052Ym5OMElHeGxablJGZVdVZ1BTQjBhR2x6TG1oMWJXRnViMmxrTG1kbGRGSmhkMEp2Ym1WT2IyUmxLQ2RzWldaMFJYbGxKeWs3WEc0Z0lDQWdZMjl1YzNRZ2NtbG5hSFJGZVdVZ1BTQjBhR2x6TG1oMWJXRnViMmxrTG1kbGRGSmhkMEp2Ym1WT2IyUmxLQ2R5YVdkb2RFVjVaU2NwTzF4dVhHNGdJQ0FnYVdZZ0tHeGxablJGZVdVcElIdGNiaUFnSUNBZ0lIUm9hWE11WDNKbGMzUlJkV0YwVEdWbWRFVjVaUzVqYjNCNUtHeGxablJGZVdVdWNYVmhkR1Z5Ym1sdmJpazdYRzRnSUNBZ0lDQm5aWFJYYjNKc1pGRjFZWFJsY201cGIyNU1hWFJsS0d4bFpuUkZlV1V1Y0dGeVpXNTBJU3dnZEdocGN5NWZjbVZ6ZEV4bFpuUkZlV1ZRWVhKbGJuUlhiM0pzWkZGMVlYUXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h5YVdkb2RFVjVaU2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZjbVZ6ZEZGMVlYUlNhV2RvZEVWNVpTNWpiM0I1S0hKcFoyaDBSWGxsTG5GMVlYUmxjbTVwYjI0cE8xeHVJQ0FnSUNBZ1oyVjBWMjl5YkdSUmRXRjBaWEp1YVc5dVRHbDBaU2h5YVdkb2RFVjVaUzV3WVhKbGJuUWhMQ0IwYUdsekxsOXlaWE4wVW1sbmFIUkZlV1ZRWVhKbGJuUlhiM0pzWkZGMVlYUXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCY0hCc2VTQjBhR1VnYVc1d2RYUWdZVzVuYkdVZ2RHOGdhWFJ6SUdGemMyOWphV0YwWldRZ1ZsSk5JRzF2WkdWc0xseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlV0YzSUZKdmRHRjBhVzl1SUdGeWIzVnVaQ0JaSUdGNGFYTXNJR2x1SUdSbFozSmxaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2NHbDBZMmdnVW05MFlYUnBiMjRnWVhKdmRXNWtJRmdnWVhocGN5d2dhVzRnWkdWbmNtVmxYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdZWEJ3YkhsWllYZFFhWFJqYUNoNVlYYzZJRzUxYldKbGNpd2djR2wwWTJnNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR052Ym5OMElHeGxablJGZVdVZ1BTQjBhR2x6TG1oMWJXRnViMmxrTG1kbGRGSmhkMEp2Ym1WT2IyUmxLQ2RzWldaMFJYbGxKeWs3WEc0Z0lDQWdZMjl1YzNRZ2NtbG5hSFJGZVdVZ1BTQjBhR2x6TG1oMWJXRnViMmxrTG1kbGRGSmhkMEp2Ym1WT2IyUmxLQ2R5YVdkb2RFVjVaU2NwTzF4dUlDQWdJR052Ym5OMElHeGxablJGZVdWT2IzSnRZV3hwZW1Wa0lEMGdkR2hwY3k1b2RXMWhibTlwWkM1blpYUk9iM0p0WVd4cGVtVmtRbTl1WlU1dlpHVW9KMnhsWm5SRmVXVW5LVHRjYmlBZ0lDQmpiMjV6ZENCeWFXZG9kRVY1WlU1dmNtMWhiR2w2WldRZ1BTQjBhR2x6TG1oMWJXRnViMmxrTG1kbGRFNXZjbTFoYkdsNlpXUkNiMjVsVG05a1pTZ25jbWxuYUhSRmVXVW5LVHRjYmlBZ0lDQXZMeUJzWldaMFhHNGdJQ0FnYVdZZ0tHeGxablJGZVdVcElIdGNiaUFnSUNBZ0lHbG1JQ2h3YVhSamFDQThJREF1TUNrZ2UxeHVJQ0FnSUNBZ0lDQmZaWFZzWlhKQkxuZ2dQU0F0VkVoU1JVVXVUV0YwYUZWMGFXeHpMa1JGUnpKU1FVUWdLaUIwYUdsekxuSmhibWRsVFdGd1ZtVnlkR2xqWVd4RWIzZHVMbTFoY0NndGNHbDBZMmdwTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnWDJWMWJHVnlRUzU0SUQwZ1ZFaFNSVVV1VFdGMGFGVjBhV3h6TGtSRlJ6SlNRVVFnS2lCMGFHbHpMbkpoYm1kbFRXRndWbVZ5ZEdsallXeFZjQzV0WVhBb2NHbDBZMmdwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9lV0YzSUR3Z01DNHdLU0I3WEc0Z0lDQWdJQ0FnSUY5bGRXeGxja0V1ZVNBOUlDMVVTRkpGUlM1TllYUm9WWFJwYkhNdVJFVkhNbEpCUkNBcUlIUm9hWE11Y21GdVoyVk5ZWEJJYjNKcGVtOXVkR0ZzU1c1dVpYSXViV0Z3S0MxNVlYY3BPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdYMlYxYkdWeVFTNTVJRDBnVkVoU1JVVXVUV0YwYUZWMGFXeHpMa1JGUnpKU1FVUWdLaUIwYUdsekxuSmhibWRsVFdGd1NHOXlhWHB2Ym5SaGJFOTFkR1Z5TG0xaGNDaDVZWGNwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCZmNYVmhkRUV1YzJWMFJuSnZiVVYxYkdWeUtGOWxkV3hsY2tFcE8xeHVJQ0FnSUNBZ2RHaHBjeTVmWjJWMFYyOXliR1JHWVdObFJuSnZiblJSZFdGMEtGOXhkV0YwUWlrN1hHNWNiaUFnSUNBZ0lDOHZJRjl4ZFdGMFFpQXFJRjl4ZFdGMFFTQXFJRjl4ZFdGMFFsNHRNVnh1SUNBZ0lDQWdMeThnZDJobGNtVWdYM0YxWVhSQklHbHpJRXh2YjJ0QmRDQnliM1JoZEdsdmJseHVJQ0FnSUNBZ0x5OGdZVzVrSUY5eGRXRjBRaUJwY3lCM2IzSnNaRVpoWTJWR2NtOXVkRkYxWVhSY2JpQWdJQ0FnSUd4bFpuUkZlV1ZPYjNKdFlXeHBlbVZrSVM1eGRXRjBaWEp1YVc5dUxtTnZjSGtvWDNGMVlYUkNLUzV0ZFd4MGFYQnNlU2hmY1hWaGRFRXBMbTExYkhScGNHeDVLRjl4ZFdGMFFpNXBiblpsY25Rb0tTazdYRzVjYmlBZ0lDQWdJRjl4ZFdGMFFTNWpiM0I1S0hSb2FYTXVYM0psYzNSTVpXWjBSWGxsVUdGeVpXNTBWMjl5YkdSUmRXRjBLVHRjYmx4dUlDQWdJQ0FnTHk4Z1gzRjFZWFJCWGkweElDb2diR1ZtZEVWNVpVNXZjbTFoYkdsNlpXUXVjWFZoZEdWeWJtbHZiaUFxSUY5eGRXRjBRU0FxSUhKbGMzUlJkV0YwVEdWbWRFVjVaVnh1SUNBZ0lDQWdMeThnZDJobGNtVWdYM0YxWVhSQklHbHpJSEpsYzNSTVpXWjBSWGxsVUdGeVpXNTBWMjl5YkdSUmRXRjBYRzRnSUNBZ0lDQnNaV1owUlhsbExuRjFZWFJsY201cGIyNWNiaUFnSUNBZ0lDQWdMbU52Y0hrb2JHVm1kRVY1WlU1dmNtMWhiR2w2WldRaExuRjFZWFJsY201cGIyNHBYRzRnSUNBZ0lDQWdJQzV0ZFd4MGFYQnNlU2hmY1hWaGRFRXBYRzRnSUNBZ0lDQWdJQzV3Y21WdGRXeDBhWEJzZVNoZmNYVmhkRUV1YVc1MlpYSjBLQ2twWEc0Z0lDQWdJQ0FnSUM1dGRXeDBhWEJzZVNoMGFHbHpMbDl5WlhOMFVYVmhkRXhsWm5SRmVXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJSEpwWjJoMFhHNGdJQ0FnYVdZZ0tISnBaMmgwUlhsbEtTQjdYRzRnSUNBZ0lDQnBaaUFvY0dsMFkyZ2dQQ0F3TGpBcElIdGNiaUFnSUNBZ0lDQWdYMlYxYkdWeVFTNTRJRDBnTFZSSVVrVkZMazFoZEdoVmRHbHNjeTVFUlVjeVVrRkVJQ29nZEdocGN5NXlZVzVuWlUxaGNGWmxjblJwWTJGc1JHOTNiaTV0WVhBb0xYQnBkR05vS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUY5bGRXeGxja0V1ZUNBOUlGUklVa1ZGTGsxaGRHaFZkR2xzY3k1RVJVY3lVa0ZFSUNvZ2RHaHBjeTV5WVc1blpVMWhjRlpsY25ScFkyRnNWWEF1YldGd0tIQnBkR05vS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLSGxoZHlBOElEQXVNQ2tnZTF4dUlDQWdJQ0FnSUNCZlpYVnNaWEpCTG5rZ1BTQXRWRWhTUlVVdVRXRjBhRlYwYVd4ekxrUkZSekpTUVVRZ0tpQjBhR2x6TG5KaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkU5MWRHVnlMbTFoY0NndGVXRjNLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJRjlsZFd4bGNrRXVlU0E5SUZSSVVrVkZMazFoZEdoVmRHbHNjeTVFUlVjeVVrRkVJQ29nZEdocGN5NXlZVzVuWlUxaGNFaHZjbWw2YjI1MFlXeEpibTVsY2k1dFlYQW9lV0YzS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1gzRjFZWFJCTG5ObGRFWnliMjFGZFd4bGNpaGZaWFZzWlhKQktUdGNiaUFnSUNBZ0lIUm9hWE11WDJkbGRGZHZjbXhrUm1GalpVWnliMjUwVVhWaGRDaGZjWFZoZEVJcE8xeHVYRzRnSUNBZ0lDQXZMeUJmY1hWaGRFSWdLaUJmY1hWaGRFRWdLaUJmY1hWaGRFSmVMVEZjYmlBZ0lDQWdJQzh2SUhkb1pYSmxJRjl4ZFdGMFFTQnBjeUJNYjI5clFYUWdjbTkwWVhScGIyNWNiaUFnSUNBZ0lDOHZJR0Z1WkNCZmNYVmhkRUlnYVhNZ2QyOXliR1JHWVdObFJuSnZiblJSZFdGMFhHNGdJQ0FnSUNCeWFXZG9kRVY1WlU1dmNtMWhiR2w2WldRaExuRjFZWFJsY201cGIyNHVZMjl3ZVNoZmNYVmhkRUlwTG0xMWJIUnBjR3g1S0Y5eGRXRjBRU2t1YlhWc2RHbHdiSGtvWDNGMVlYUkNMbWx1ZG1WeWRDZ3BLVHRjYmx4dUlDQWdJQ0FnWDNGMVlYUkJMbU52Y0hrb2RHaHBjeTVmY21WemRGSnBaMmgwUlhsbFVHRnlaVzUwVjI5eWJHUlJkV0YwS1R0Y2JseHVJQ0FnSUNBZ0x5OGdYM0YxWVhSQlhpMHhJQ29nY21sbmFIUkZlV1ZPYjNKdFlXeHBlbVZrTG5GMVlYUmxjbTVwYjI0Z0tpQmZjWFZoZEVFZ0tpQnlaWE4wVVhWaGRGSnBaMmgwUlhsbFhHNGdJQ0FnSUNBdkx5QjNhR1Z5WlNCZmNYVmhkRUVnYVhNZ2NtVnpkRkpwWjJoMFJYbGxVR0Z5Wlc1MFYyOXliR1JSZFdGMFhHNGdJQ0FnSUNCeWFXZG9kRVY1WlM1eGRXRjBaWEp1YVc5dVhHNGdJQ0FnSUNBZ0lDNWpiM0I1S0hKcFoyaDBSWGxsVG05eWJXRnNhWHBsWkNFdWNYVmhkR1Z5Ym1sdmJpbGNiaUFnSUNBZ0lDQWdMbTExYkhScGNHeDVLRjl4ZFdGMFFTbGNiaUFnSUNBZ0lDQWdMbkJ5WlcxMWJIUnBjR3g1S0Y5eGRXRjBRUzVwYm5abGNuUW9LU2xjYmlBZ0lDQWdJQ0FnTG0xMWJIUnBjR3g1S0hSb2FYTXVYM0psYzNSUmRXRjBVbWxuYUhSRmVXVXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWd2NtVmpZWFJsWkNCVmMyVWdlMEJzYVc1cklHRndjR3g1V1dGM1VHbDBZMmg5SUdsdWMzUmxZV1F1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYkc5dmEwRjBLR1YxYkdWeU9pQlVTRkpGUlM1RmRXeGxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk52YkdVdWQyRnliaWduVmxKTlRHOXZhMEYwUW05dVpVRndjR3hwWlhJNklHeHZiMnRCZENncElHbHpJR1JsY0hKbFkyRjBaV1F1SUhWelpTQmhjSEJzZVNncElHbHVjM1JsWVdRdUp5azdYRzVjYmlBZ0lDQmpiMjV6ZENCNVlYY2dQU0JVU0ZKRlJTNU5ZWFJvVlhScGJITXVVa0ZFTWtSRlJ5QXFJR1YxYkdWeUxuazdYRzRnSUNBZ1kyOXVjM1FnY0dsMFkyZ2dQU0JVU0ZKRlJTNU5ZWFJvVlhScGJITXVVa0ZFTWtSRlJ5QXFJR1YxYkdWeUxuZzdYRzVjYmlBZ0lDQjBhR2x6TG1Gd2NHeDVXV0YzVUdsMFkyZ29lV0YzTENCd2FYUmphQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1IyVjBJR0VnY1hWaGRHVnlibWx2YmlCMGFHRjBJSEp2ZEdGMFpYTWdkR2hsSUhkdmNteGtMWE53WVdObElDdGFJSFZ1YVhRZ2RtVmpkRzl5SUhSdklIUm9aU0I3UUd4cGJtc2dabUZqWlVaeWIyNTBmU0JrYVhKbFkzUnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCMFlYSm5aWFFnUVNCMFlYSm5aWFFnWUZSSVVrVkZMbEYxWVhSbGNtNXBiMjVnWEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5blpYUlhiM0pzWkVaaFkyVkdjbTl1ZEZGMVlYUW9kR0Z5WjJWME9pQlVTRkpGUlM1UmRXRjBaWEp1YVc5dUtUb2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVptRmpaVVp5YjI1MExtUnBjM1JoYm1ObFZHOVRjWFZoY21Wa0tGWkZRek5mVUU5VFNWUkpWa1ZmV2lrZ1BDQXdMakF4S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdGeVoyVjBMbWxrWlc1MGFYUjVLQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1cyWmhZMlZHY205dWRFRjZhVzExZEdnc0lHWmhZMlZHY205dWRFRnNkR2wwZFdSbFhTQTlJR05oYkdOQmVtbHRkWFJvUVd4MGFYUjFaR1VvZEdocGN5NW1ZV05sUm5KdmJuUXBPMXh1SUNBZ0lGOWxkV3hsY2tFdWMyVjBLREF1TUN3Z01DNDFJQ29nVFdGMGFDNVFTU0FySUdaaFkyVkdjbTl1ZEVGNmFXMTFkR2dzSUdaaFkyVkdjbTl1ZEVGc2RHbDBkV1JsTENBbldWcFlKeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR0Z5WjJWMExuTmxkRVp5YjIxRmRXeGxjaWhmWlhWc1pYSkJLVHRjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUhzZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSWdmU0JtY205dElDY3VMaTlsZUhCeVpYTnphVzl1Y3ljN1hHNXBiWEJ2Y25RZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFV4dmIydEJkRUZ3Y0d4cFpYSWdmU0JtY205dElDY3VMMVpTVFV4dmIydEJkRUZ3Y0d4cFpYSW5PMXh1YVcxd2IzSjBJSHNnVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEFnZlNCbWNtOXRJQ2N1TDFaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3Snp0Y2JseHVMeW9xWEc0Z0tpQkJJR05zWVhOeklIUm9ZWFFnWVhCd2JHbGxjeUJsZVdVZ1oyRjZaU0JrYVhKbFkzUnBiMjV6SUhSdklHRWdWbEpOTGx4dUlDb2dTWFFnZDJsc2JDQmlaU0IxYzJWa0lHSjVJSHRBYkdsdWF5QldVazFNYjI5clFYUjlMbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlRHOXZhMEYwUlhod2NtVnpjMmx2YmtGd2NHeHBaWElnYVcxd2JHVnRaVzUwY3lCV1VrMU1iMjlyUVhSQmNIQnNhV1Z5SUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsY0hKbGMyVnVkQ0JwZEhNZ2RIbHdaU0J2WmlCaGNIQnNhV1Z5TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0IwZVhCbElEMGdKMlY0Y0hKbGMzTnBiMjRuTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJKZEhNZ1lYTnpiMk5wWVhSbFpDQjdRR3hwYm1zZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSjlMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJR1Y0Y0hKbGMzTnBiMjV6T2lCV1VrMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1NYUWdkMjl1SjNRZ1ltVWdkWE5sWkNCcGJpQmxlSEJ5WlhOemFXOXVJR0Z3Y0d4cFpYSXVYRzRnSUNBcUlGTmxaU0JoYkhOdk9pQjdRR3hwYm1zZ2NtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1QzVjBaWEo5WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nY21GdVoyVk5ZWEJJYjNKcGVtOXVkR0ZzU1c1dVpYSTZJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkJJSHRBYkdsdWF5QldVazFNYjI5clFYUlNZVzVuWlUxaGNIMGdabTl5SUdodmNtbDZiMjUwWVd3Z2JXOTJaVzFsYm5RdUlFSnZkR2dnWlhsbGN5QnRiM1psSUd4bFpuUWdiM0lnY21sbmFIUXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbUZ1WjJWTllYQkliM0pwZW05dWRHRnNUM1YwWlhJNklGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd08xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklIdEFiR2x1YXlCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0gwZ1ptOXlJSFpsY25ScFkyRnNJR1J2ZDI1M1lYSmtJRzF2ZG1WdFpXNTBMaUJDYjNSb0lHVjVaWE1nYlc5MlpTQjFjSGRoY21SekxseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmhibWRsVFdGd1ZtVnlkR2xqWVd4RWIzZHVPaUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRU0I3UUd4cGJtc2dWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQjlJR1p2Y2lCMlpYSjBhV05oYkNCMWNIZGhjbVFnYlc5MlpXMWxiblF1SUVKdmRHZ2daWGxsY3lCdGIzWmxJR1J2ZDI1M1lYSmtjeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WVc1blpVMWhjRlpsY25ScFkyRnNWWEE2SUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVWdZU0J1WlhjZ2UwQnNhVzVySUZaU1RVeHZiMnRCZEVWNGNISmxjM05wYjI1QmNIQnNhV1Z5ZlM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHVjRjSEpsYzNOcGIyNXpJRUVnZTBCc2FXNXJJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5ZlZ4dUlDQWdLaUJBY0dGeVlXMGdjbUZ1WjJWTllYQkliM0pwZW05dWRHRnNTVzV1WlhJZ1FTQjdRR3hwYm1zZ1ZsSk5URzl2YTBGMFVtRnVaMlZOWVhCOUlIVnpaV1FnWm05eUlHbHVibVZ5SUhSeVlXNXpkbVZ5YzJVZ1pHbHlaV04wYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0J5WVc1blpVMWhjRWh2Y21sNmIyNTBZV3hQZFhSbGNpQkJJSHRBYkdsdWF5QldVazFNYjI5clFYUlNZVzVuWlUxaGNIMGdkWE5sWkNCbWIzSWdiM1YwWlhJZ2RISmhibk4yWlhKelpTQmthWEpsWTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUhKaGJtZGxUV0Z3Vm1WeWRHbGpZV3hFYjNkdUlFRWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd2ZTQjFjMlZrSUdadmNpQmtiM2R1SUdScGNtVmpkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdjbUZ1WjJWTllYQldaWEowYVdOaGJGVndJRUVnZTBCc2FXNXJJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndmU0IxYzJWa0lHWnZjaUIxY0NCa2FYSmxZM1JwYjI1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGNiaUFnSUNCbGVIQnlaWE56YVc5dWN6b2dWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWElzWEc0Z0lDQWdjbUZ1WjJWTllYQkliM0pwZW05dWRHRnNTVzV1WlhJNklGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd0xGeHVJQ0FnSUhKaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkU5MWRHVnlPaUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjQ3hjYmlBZ0lDQnlZVzVuWlUxaGNGWmxjblJwWTJGc1JHOTNiam9nVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEFzWEc0Z0lDQWdjbUZ1WjJWTllYQldaWEowYVdOaGJGVndPaUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjQ3hjYmlBZ0tTQjdYRzRnSUNBZ2RHaHBjeTVsZUhCeVpYTnphVzl1Y3lBOUlHVjRjSEpsYzNOcGIyNXpPMXh1WEc0Z0lDQWdkR2hwY3k1eVlXNW5aVTFoY0VodmNtbDZiMjUwWVd4SmJtNWxjaUE5SUhKaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkVsdWJtVnlPMXh1SUNBZ0lIUm9hWE11Y21GdVoyVk5ZWEJJYjNKcGVtOXVkR0ZzVDNWMFpYSWdQU0J5WVc1blpVMWhjRWh2Y21sNmIyNTBZV3hQZFhSbGNqdGNiaUFnSUNCMGFHbHpMbkpoYm1kbFRXRndWbVZ5ZEdsallXeEViM2R1SUQwZ2NtRnVaMlZOWVhCV1pYSjBhV05oYkVSdmQyNDdYRzRnSUNBZ2RHaHBjeTV5WVc1blpVMWhjRlpsY25ScFkyRnNWWEFnUFNCeVlXNW5aVTFoY0ZabGNuUnBZMkZzVlhBN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRWEJ3YkhrZ2RHaGxJR2x1Y0hWMElHRnVaMnhsSUhSdklHbDBjeUJoYzNOdlkybGhkR1ZrSUZaU1RTQnRiMlJsYkM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIbGhkeUJTYjNSaGRHbHZiaUJoY205MWJtUWdXU0JoZUdsekxDQnBiaUJrWldkeVpXVmNiaUFnSUNvZ1FIQmhjbUZ0SUhCcGRHTm9JRkp2ZEdGMGFXOXVJR0Z5YjNWdVpDQllJR0Y0YVhNc0lHbHVJR1JsWjNKbFpWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHRndjR3g1V1dGM1VHbDBZMmdvZVdGM09pQnVkVzFpWlhJc0lIQnBkR05vT2lCdWRXMWlaWElwT2lCMmIybGtJSHRjYmlBZ0lDQnBaaUFvY0dsMFkyZ2dQQ0F3TGpBcElIdGNiaUFnSUNBZ0lIUm9hWE11Wlhod2NtVnpjMmx2Ym5NdWMyVjBWbUZzZFdVb0oyeHZiMnRFYjNkdUp5d2dNQzR3S1R0Y2JpQWdJQ0FnSUhSb2FYTXVaWGh3Y21WemMybHZibk11YzJWMFZtRnNkV1VvSjJ4dmIydFZjQ2NzSUhSb2FYTXVjbUZ1WjJWTllYQldaWEowYVdOaGJGVndMbTFoY0NndGNHbDBZMmdwS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2hwY3k1bGVIQnlaWE56YVc5dWN5NXpaWFJXWVd4MVpTZ25iRzl2YTFWd0p5d2dNQzR3S1R0Y2JpQWdJQ0FnSUhSb2FYTXVaWGh3Y21WemMybHZibk11YzJWMFZtRnNkV1VvSjJ4dmIydEViM2R1Snl3Z2RHaHBjeTV5WVc1blpVMWhjRlpsY25ScFkyRnNSRzkzYmk1dFlYQW9jR2wwWTJncEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9lV0YzSUR3Z01DNHdLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtVjRjSEpsYzNOcGIyNXpMbk5sZEZaaGJIVmxLQ2RzYjI5clRHVm1kQ2NzSURBdU1DazdYRzRnSUNBZ0lDQjBhR2x6TG1WNGNISmxjM05wYjI1ekxuTmxkRlpoYkhWbEtDZHNiMjlyVW1sbmFIUW5MQ0IwYUdsekxuSmhibWRsVFdGd1NHOXlhWHB2Ym5SaGJFOTFkR1Z5TG0xaGNDZ3RlV0YzS1NrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFJvYVhNdVpYaHdjbVZ6YzJsdmJuTXVjMlYwVm1Gc2RXVW9KMnh2YjJ0U2FXZG9kQ2NzSURBdU1DazdYRzRnSUNBZ0lDQjBhR2x6TG1WNGNISmxjM05wYjI1ekxuTmxkRlpoYkhWbEtDZHNiMjlyVEdWbWRDY3NJSFJvYVhNdWNtRnVaMlZOWVhCSWIzSnBlbTl1ZEdGc1QzVjBaWEl1YldGd0tIbGhkeWtwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVndjbVZqWVhSbFpDQlZjMlVnZTBCc2FXNXJJR0Z3Y0d4NVdXRjNVR2wwWTJoOUlHbHVjM1JsWVdRdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2JHOXZhMEYwS0dWMWJHVnlPaUJVU0ZKRlJTNUZkV3hsY2lrNklIWnZhV1FnZTF4dUlDQWdJR052Ym5OdmJHVXVkMkZ5YmlnblZsSk5URzl2YTBGMFFtOXVaVUZ3Y0d4cFpYSTZJR3h2YjJ0QmRDZ3BJR2x6SUdSbGNISmxZMkYwWldRdUlIVnpaU0JoY0hCc2VTZ3BJR2x1YzNSbFlXUXVKeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQjVZWGNnUFNCVVNGSkZSUzVOWVhSb1ZYUnBiSE11VWtGRU1rUkZSeUFxSUdWMWJHVnlMbms3WEc0Z0lDQWdZMjl1YzNRZ2NHbDBZMmdnUFNCVVNGSkZSUzVOWVhSb1ZYUnBiSE11VWtGRU1rUkZSeUFxSUdWMWJHVnlMbmc3WEc1Y2JpQWdJQ0IwYUdsekxtRndjR3g1V1dGM1VHbDBZMmdvZVdGM0xDQndhWFJqYUNrN1hHNGdJSDFjYm4xY2JpSXNJbWx0Y0c5eWRDQjdJSE5oZEhWeVlYUmxJSDBnWm5KdmJTQW5MaTR2ZFhScGJITXZjMkYwZFhKaGRHVW5PMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOVEc5dmEwRjBVbUZ1WjJWTllYQWdlMXh1SUNBdktpcGNiaUFnSUNvZ1RHbHRhWFJ6SUhSb1pTQnRZWGhwYlhWdElHRnVaMnhsSUc5bUlIUm9aU0JwYm5CMWRDQmhibWRzWlNCdlppQjBhR1VnVEc5dmEwRjBJSFpsWTNSdmNpQm1jbTl0SUhSb1pTQm1jbTl1ZENCdlppQjBhR1VnYUdWaFpDQW9kR2hsSUhCdmMybDBhWFpsSUhvZ1lYaHBjeWt1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYVc1d2RYUk5ZWGhXWVd4MVpUb2diblZ0WW1WeU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYQnlaWE5sYm5SeklHRnVJR0Z1WjJ4bElDaHBiaUJrWldkeVpXVnpLU0JtYjNJZ1ltOXVaU0IwZVhCbElHOW1JRXh2YjJ0QmRDQmhjSEJzYVdWeWN5d2diM0lnWVNCM1pXbG5hSFFnWm05eUlHVjRjSEpsYzNOcGIyNGdkSGx3WlNCdlppQk1iMjlyUVhRZ1lYQndiR2xsY25NdVhHNGdJQ0FxSUZSb1pTQnBibkIxZENCMllXeDFaU0IzYVd4c0lIUmhhMlVnWURFdU1HQWdkMmhsYmlCMGFHVWdhVzV3ZFhRZ1lXNW5iR1VnWlhGMVlXeHpJQ2h2Y2lCbmNtVmhkR1Z5S1NCMGJ5QjdRR3hwYm1zZ2FXNXdkWFJOWVhoV1lXeDFaWDB1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYjNWMGNIVjBVMk5oYkdVNklHNTFiV0psY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lIdEFiR2x1YXlCV1VrMU1iMjlyUVhSU1lXNW5aVTFoY0gwdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQnBibkIxZEUxaGVGWmhiSFZsSUZSb1pTQjdRR3hwYm1zZ2FXNXdkWFJOWVhoV1lXeDFaWDBnYjJZZ2RHaGxJRzFoY0Z4dUlDQWdLaUJBY0dGeVlXMGdiM1YwY0hWMFUyTmhiR1VnVkdobElIdEFiR2x1YXlCdmRYUndkWFJUWTJGc1pYMGdiMllnZEdobElHMWhjRnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0dsdWNIVjBUV0Y0Vm1Gc2RXVTZJRzUxYldKbGNpd2diM1YwY0hWMFUyTmhiR1U2SUc1MWJXSmxjaWtnZTF4dUlDQWdJSFJvYVhNdWFXNXdkWFJOWVhoV1lXeDFaU0E5SUdsdWNIVjBUV0Y0Vm1Gc2RXVTdYRzRnSUNBZ2RHaHBjeTV2ZFhSd2RYUlRZMkZzWlNBOUlHOTFkSEIxZEZOallXeGxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVWMllXeDFZWFJsSUdGdUlHbHVjSFYwSUhaaGJIVmxJR0Z1WkNCdmRYUndkWFFnWVNCdFlYQndaV1FnZG1Gc2RXVXVYRzRnSUNBcUlFQndZWEpoYlNCemNtTWdWR2hsSUdsdWNIVjBJSFpoYkhWbFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2JXRndLSE55WXpvZ2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1dmRYUndkWFJUWTJGc1pTQXFJSE5oZEhWeVlYUmxLSE55WXlBdklIUm9hWE11YVc1d2RYUk5ZWGhXWVd4MVpTazdYRzRnSUgxY2JuMWNiaUlzSW1sdGNHOXlkQ0IwZVhCbElDb2dZWE1nVkVoU1JVVWdabkp2YlNBbmRHaHlaV1VuTzF4dWFXMXdiM0owSUhSNWNHVWdLaUJoY3lCV01GWlNUU0JtY205dElDZEFjR2w0YVhZdmRIbHdaWE10ZG5KdExUQXVNQ2M3WEc1cGJYQnZjblFnZEhsd1pTQXFJR0Z6SUZZeFZsSk5VMk5vWlcxaElHWnliMjBnSjBCd2FYaHBkaTkwZVhCbGN5MTJjbTFqTFhaeWJTMHhMakFuTzF4dWFXMXdiM0owSUhSNWNHVWdleUJIVEZSR0xDQkhURlJHVEc5aFpHVnlVR3gxWjJsdUxDQkhURlJHVUdGeWMyVnlJSDBnWm5KdmJTQW5kR2h5WldVdlpYaGhiWEJzWlhNdmFuTnRMMnh2WVdSbGNuTXZSMHhVUmt4dllXUmxjaTVxY3ljN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeUlIMGdabkp2YlNBbkxpNHZaWGh3Y21WemMybHZibk12VmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCV1VrMUlkVzFoYm05cFpDQjlJR1p5YjIwZ0p5NHVMMmgxYldGdWIybGtMMVpTVFVoMWJXRnViMmxrSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVXh2YjJ0QmRFaGxiSEJsY2lCOUlHWnliMjBnSnk0dmFHVnNjR1Z5Y3k5V1VrMU1iMjlyUVhSSVpXeHdaWEluTzF4dWFXMXdiM0owSUhzZ1ZsSk5URzl2YTBGMElIMGdabkp2YlNBbkxpOVdVazFNYjI5clFYUW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QldVazFNYjI5clFYUkJjSEJzYVdWeUlIMGdabkp2YlNBbkxpOVdVazFNYjI5clFYUkJjSEJzYVdWeUp6dGNibWx0Y0c5eWRDQjdJRlpTVFV4dmIydEJkRUp2Ym1WQmNIQnNhV1Z5SUgwZ1puSnZiU0FuTGk5V1VrMU1iMjlyUVhSQ2IyNWxRWEJ3YkdsbGNpYzdYRzVwYlhCdmNuUWdleUJXVWsxTWIyOXJRWFJGZUhCeVpYTnphVzl1UVhCd2JHbGxjaUI5SUdaeWIyMGdKeTR2VmxKTlRHOXZhMEYwUlhod2NtVnpjMmx2YmtGd2NHeHBaWEluTzF4dWFXMXdiM0owSUhSNWNHVWdleUJXVWsxTWIyOXJRWFJNYjJGa1pYSlFiSFZuYVc1UGNIUnBiMjV6SUgwZ1puSnZiU0FuTGk5V1VrMU1iMjlyUVhSTWIyRmtaWEpRYkhWbmFXNVBjSFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdJRlpTVFV4dmIydEJkRkpoYm1kbFRXRndJSDBnWm5KdmJTQW5MaTlXVWsxTWIyOXJRWFJTWVc1blpVMWhjQ2M3WEc1cGJYQnZjblFnZXlCSFRGUkdJR0Z6SUVkTVZFWlRZMmhsYldFZ2ZTQm1jbTl0SUNkQVoyeDBaaTEwY21GdWMyWnZjbTB2WTI5eVpTYzdYRzVjYmk4cUtseHVJQ29nVUc5emMybGliR1VnYzNCbFl5QjJaWEp6YVc5dWN5QnBkQ0J5WldOdloyNXBlbVZ6TGx4dUlDb3ZYRzVqYjI1emRDQlFUMU5UU1VKTVJWOVRVRVZEWDFaRlVsTkpUMDVUSUQwZ2JtVjNJRk5sZENoYkp6RXVNQ2NzSUNjeExqQXRZbVYwWVNkZEtUdGNibHh1THlvcVhHNGdLaUJVYUdVZ2JXbHVhVzExYlNCd1pYSnRhWFIwWldRZ2RtRnNkV1VnWm05eUlIdEFiR2x1YXlCV01WWlNUVk5qYUdWdFlTNU1iMjlyUVhSU1lXNW5aVTFoY0M1cGJuQjFkRTFoZUZaaGJIVmxmUzVjYmlBcUlFbG1JSFJvWlNCbmFYWmxiaUIyWVd4MVpTQnBjeUJ6YldGc2JHVnlJSFJvWVc0Z2RHaHBjeXdnZEdobElHeHZZV1JsY2lCemFHOTNjeUJoSUhkaGNtNXBibWNnWVc1a0lHTnNZVzF3Y3lCMWNDQjBhR1VnZG1Gc2RXVXVYRzRnS2k5Y2JtTnZibk4wSUVsT1VGVlVYMDFCV0Y5V1FVeFZSVjlOU1U1SlRWVk5JRDBnTUM0d01UdGNibHh1THlvcVhHNGdLaUJCSUhCc2RXZHBiaUJ2WmlCSFRGUkdURzloWkdWeUlIUm9ZWFFnYVcxd2IzSjBjeUJoSUh0QWJHbHVheUJXVWsxTWIyOXJRWFI5SUdaeWIyMGdZU0JXVWswZ1pYaDBaVzV6YVc5dUlHOW1JR0VnUjB4VVJpNWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRlpTVFV4dmIydEJkRXh2WVdSbGNsQnNkV2RwYmlCcGJYQnNaVzFsYm5SeklFZE1WRVpNYjJGa1pYSlFiSFZuYVc0Z2UxeHVJQ0F2S2lwY2JpQWdJQ29nVTNCbFkybG1lU0JoYmlCUFltcGxZM1F6UkNCMGJ5QmhaR1FnZTBCc2FXNXJJRlpTVFV4dmIydEJkRWhsYkhCbGNuMGdjeTVjYmlBZ0lDb2dTV1lnYm05MElITndaV05wWm1sbFpDd2dhR1ZzY0dWeUlIZHBiR3dnYm05MElHSmxJR055WldGMFpXUXVYRzRnSUNBcUlFbG1JR0J5Wlc1a1pYSlBjbVJsY21BZ2FYTWdjMlYwSUhSdklIUm9aU0J5YjI5MExDQm9aV3h3WlhKeklIZHBiR3dnWTI5d2VTQjBhR1VnYzJGdFpTQmdjbVZ1WkdWeVQzSmtaWEpnSUM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCb1pXeHdaWEpTYjI5MFB6b2dWRWhTUlVVdVQySnFaV04wTTBRN1hHNWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJSEJoY25ObGNqb2dSMHhVUmxCaGNuTmxjanRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJRzVoYldVb0tUb2djM1J5YVc1bklIdGNiaUFnSUNBdkx5QlhaU0J6YUc5MWJHUWdkWE5sSUhSb1pTQmxlSFJsYm5OcGIyNGdibUZ0WlNCcGJuTjBaV0ZrSUdKMWRDQjNaU0JvWVhabElHMTFiSFJwY0d4bElIQnNkV2RwYm5NZ1ptOXlJR0Z1SUdWNGRHVnVjMmx2Ymk0dUxseHVJQ0FnSUhKbGRIVnliaUFuVmxKTlRHOXZhMEYwVEc5aFpHVnlVR3gxWjJsdUp6dGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWh3WVhKelpYSTZJRWRNVkVaUVlYSnpaWElzSUc5d2RHbHZibk0vT2lCV1VrMU1iMjlyUVhSTWIyRmtaWEpRYkhWbmFXNVBjSFJwYjI1ektTQjdYRzRnSUNBZ2RHaHBjeTV3WVhKelpYSWdQU0J3WVhKelpYSTdYRzVjYmlBZ0lDQjBhR2x6TG1obGJIQmxjbEp2YjNRZ1BTQnZjSFJwYjI1elB5NW9aV3h3WlhKU2IyOTBPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklHRm1kR1Z5VW05dmRDaG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZG5KdFNIVnRZVzV2YVdRZ1BTQm5iSFJtTG5WelpYSkVZWFJoTG5aeWJVaDFiV0Z1YjJsa0lHRnpJRlpTVFVoMWJXRnViMmxrSUh3Z2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0x5OGdaWGh3YkdsamFYUnNlU0JrYVhOMGFXNW5kV2x6YUNCdWRXeHNJR0Z1WkNCMWJtUmxabWx1WldSY2JpQWdJQ0F2THlCemFXNWpaU0IyY20xSWRXMWhibTlwWkNCdGFXZG9kQ0JpWlNCdWRXeHNJR0Z6SUdFZ2NtVnpkV3gwWEc0Z0lDQWdhV1lnS0haeWJVaDFiV0Z1YjJsa0lEMDlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNoMmNtMUlkVzFoYm05cFpDQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFaU1RVeHZiMnRCZEV4dllXUmxjbEJzZFdkcGJqb2dkbkp0U0hWdFlXNXZhV1FnYVhNZ2RXNWtaV1pwYm1Wa0xpQldVazFJZFcxaGJtOXBaRXh2WVdSbGNsQnNkV2RwYmlCb1lYWmxJSFJ2SUdKbElIVnpaV1FnWm1seWMzUW5LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCMmNtMUZlSEJ5WlhOemFXOXVUV0Z1WVdkbGNpQTlJR2RzZEdZdWRYTmxja1JoZEdFdWRuSnRSWGh3Y21WemMybHZiazFoYm1GblpYSWdZWE1nVmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJZ2ZDQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQnBaaUFvZG5KdFJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJZ1BUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0haeWJVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeUlEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnSjFaU1RVeHZiMnRCZEV4dllXUmxjbEJzZFdkcGJqb2dkbkp0Ulhod2NtVnpjMmx2YmsxaGJtRm5aWElnYVhNZ2RXNWtaV1pwYm1Wa0xpQldVazFGZUhCeVpYTnphVzl1VEc5aFpHVnlVR3gxWjJsdUlHaGhkbVVnZEc4Z1ltVWdkWE5sWkNCbWFYSnpkQ2NzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2RzZEdZdWRYTmxja1JoZEdFdWRuSnRURzl2YTBGMElEMGdZWGRoYVhRZ2RHaHBjeTVmYVcxd2IzSjBLR2RzZEdZc0lIWnliVWgxYldGdWIybGtMQ0IyY20xRmVIQnlaWE56YVc5dVRXRnVZV2RsY2lrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTVzF3YjNKMElHRWdlMEJzYVc1cklGWlNUVXh2YjJ0QmRIMGdabkp2YlNCaElGWlNUUzVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUdkc2RHWWdRU0J3WVhKelpXUWdjbVZ6ZFd4MElHOW1JRWRNVkVZZ2RHRnJaVzRnWm5KdmJTQkhURlJHVEc5aFpHVnlYRzRnSUNBcUlFQndZWEpoYlNCb2RXMWhibTlwWkNCQklIdEFiR2x1YXlCV1VrMUlkVzFoYm05cFpIMGdhVzV6ZEdGdVkyVWdkR2hoZENCeVpYQnlaWE5sYm5SeklIUm9aU0JXVWsxY2JpQWdJQ29nUUhCaGNtRnRJR1Y0Y0hKbGMzTnBiMjV6SUVFZ2UwQnNhVzVySUZaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeWZTQnBibk4wWVc1alpTQjBhR0YwSUhKbGNISmxjMlZ1ZEhNZ2RHaGxJRlpTVFZ4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJmYVcxd2IzSjBLRnh1SUNBZ0lHZHNkR1k2SUVkTVZFWXNYRzRnSUNBZ2FIVnRZVzV2YVdRNklGWlNUVWgxYldGdWIybGtJSHdnYm5Wc2JDeGNiaUFnSUNCbGVIQnlaWE56YVc5dWN6b2dWbEpOUlhod2NtVnpjMmx2YmsxaGJtRm5aWElnZkNCdWRXeHNMRnh1SUNBcE9pQlFjbTl0YVhObFBGWlNUVXh2YjJ0QmRDQjhJRzUxYkd3K0lIdGNiaUFnSUNCcFppQW9hSFZ0WVc1dmFXUWdQVDBnYm5Wc2JDQjhmQ0JsZUhCeVpYTnphVzl1Y3lBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm5Wc2JEdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0IyTVZKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdVgzWXhTVzF3YjNKMEtHZHNkR1lzSUdoMWJXRnViMmxrTENCbGVIQnlaWE56YVc5dWN5azdYRzRnSUNBZ2FXWWdLSFl4VW1WemRXeDBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkakZTWlhOMWJIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZGpCU1pYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxsOTJNRWx0Y0c5eWRDaG5iSFJtTENCb2RXMWhibTlwWkN3Z1pYaHdjbVZ6YzJsdmJuTXBPMXh1SUNBZ0lHbG1JQ2gyTUZKbGMzVnNkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFl3VW1WemRXeDBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QmZkakZKYlhCdmNuUW9YRzRnSUNBZ1oyeDBaam9nUjB4VVJpeGNiaUFnSUNCb2RXMWhibTlwWkRvZ1ZsSk5TSFZ0WVc1dmFXUXNYRzRnSUNBZ1pYaHdjbVZ6YzJsdmJuTTZJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5TEZ4dUlDQXBPaUJRY205dGFYTmxQRlpTVFV4dmIydEJkQ0I4SUc1MWJHdytJSHRjYmlBZ0lDQmpiMjV6ZENCcWMyOXVJRDBnZEdocGN5NXdZWEp6WlhJdWFuTnZiaUJoY3lCSFRGUkdVMk5vWlcxaExrbEhURlJHTzF4dVhHNGdJQ0FnTHk4Z1pXRnliSGtnWVdKdmNuUWdhV1lnYVhRZ1pHOWxjMjRuZENCMWMyVWdkbkp0WEc0Z0lDQWdZMjl1YzNRZ2FYTldVazFWYzJWa0lEMGdhbk52Ymk1bGVIUmxibk5wYjI1elZYTmxaRDh1YVc1a1pYaFBaaWduVmxKTlExOTJjbTBuS1NBaFBUMGdMVEU3WEc0Z0lDQWdhV1lnS0NGcGMxWlNUVlZ6WldRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdWNGRHVnVjMmx2YmlBOUlHcHpiMjR1WlhoMFpXNXphVzl1Y3o4dVd5ZFdVazFEWDNaeWJTZGRJR0Z6SUZZeFZsSk5VMk5vWlcxaExsWlNUVU5XVWswZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLQ0ZsZUhSbGJuTnBiMjRwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE53WldOV1pYSnphVzl1SUQwZ1pYaDBaVzV6YVc5dUxuTndaV05XWlhKemFXOXVPMXh1SUNBZ0lHbG1JQ2doVUU5VFUwbENURVZmVTFCRlExOVdSVkpUU1U5T1V5NW9ZWE1vYzNCbFkxWmxjbk5wYjI0cEtTQjdYRzRnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWUZaU1RVeHZiMnRCZEV4dllXUmxjbEJzZFdkcGJqb2dWVzVyYm05M2JpQldVazFEWDNaeWJTQnpjR1ZqVm1WeWMybHZiaUJjSWlSN2MzQmxZMVpsY25OcGIyNTlYQ0pnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE5qYUdWdFlVeHZiMnRCZENBOUlHVjRkR1Z1YzJsdmJpNXNiMjlyUVhRN1hHNGdJQ0FnYVdZZ0tDRnpZMmhsYldGTWIyOXJRWFFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1JsWm1GMWJIUlBkWFJ3ZFhSVFkyRnNaU0E5SUhOamFHVnRZVXh2YjJ0QmRDNTBlWEJsSUQwOVBTQW5aWGh3Y21WemMybHZiaWNnUHlBeExqQWdPaUF4TUM0d08xeHVYRzRnSUNBZ1kyOXVjM1FnYldGd1NFa2dQU0IwYUdsekxsOTJNVWx0Y0c5eWRGSmhibWRsVFdGd0tITmphR1Z0WVV4dmIydEJkQzV5WVc1blpVMWhjRWh2Y21sNmIyNTBZV3hKYm01bGNpd2daR1ZtWVhWc2RFOTFkSEIxZEZOallXeGxLVHRjYmlBZ0lDQmpiMjV6ZENCdFlYQklUeUE5SUhSb2FYTXVYM1l4U1cxd2IzSjBVbUZ1WjJWTllYQW9jMk5vWlcxaFRHOXZhMEYwTG5KaGJtZGxUV0Z3U0c5eWFYcHZiblJoYkU5MWRHVnlMQ0JrWldaaGRXeDBUM1YwY0hWMFUyTmhiR1VwTzF4dUlDQWdJR052Ym5OMElHMWhjRlpFSUQwZ2RHaHBjeTVmZGpGSmJYQnZjblJTWVc1blpVMWhjQ2h6WTJobGJXRk1iMjlyUVhRdWNtRnVaMlZOWVhCV1pYSjBhV05oYkVSdmQyNHNJR1JsWm1GMWJIUlBkWFJ3ZFhSVFkyRnNaU2s3WEc0Z0lDQWdZMjl1YzNRZ2JXRndWbFVnUFNCMGFHbHpMbDkyTVVsdGNHOXlkRkpoYm1kbFRXRndLSE5qYUdWdFlVeHZiMnRCZEM1eVlXNW5aVTFoY0ZabGNuUnBZMkZzVlhBc0lHUmxabUYxYkhSUGRYUndkWFJUWTJGc1pTazdYRzVjYmlBZ0lDQnNaWFFnWVhCd2JHbGxjanRjYmx4dUlDQWdJR2xtSUNoelkyaGxiV0ZNYjI5clFYUXVkSGx3WlNBOVBUMGdKMlY0Y0hKbGMzTnBiMjRuS1NCN1hHNGdJQ0FnSUNCaGNIQnNhV1Z5SUQwZ2JtVjNJRlpTVFV4dmIydEJkRVY0Y0hKbGMzTnBiMjVCY0hCc2FXVnlLR1Y0Y0hKbGMzTnBiMjV6TENCdFlYQklTU3dnYldGd1NFOHNJRzFoY0ZaRUxDQnRZWEJXVlNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR0Z3Y0d4cFpYSWdQU0J1WlhjZ1ZsSk5URzl2YTBGMFFtOXVaVUZ3Y0d4cFpYSW9hSFZ0WVc1dmFXUXNJRzFoY0VoSkxDQnRZWEJJVHl3Z2JXRndWa1FzSUcxaGNGWlZLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCc2IyOXJRWFFnUFNCMGFHbHpMbDlwYlhCdmNuUk1iMjlyUVhRb2FIVnRZVzV2YVdRc0lHRndjR3hwWlhJcE8xeHVYRzRnSUNBZ2JHOXZhMEYwTG05bVpuTmxkRVp5YjIxSVpXRmtRbTl1WlM1bWNtOXRRWEp5WVhrb2MyTm9aVzFoVEc5dmEwRjBMbTltWm5ObGRFWnliMjFJWldGa1FtOXVaU0EvUHlCYk1DNHdMQ0F3TGpBMkxDQXdMakJkS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJzYjI5clFYUTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRjkyTVVsdGNHOXlkRkpoYm1kbFRXRndLRnh1SUNBZ0lITmphR1Z0WVZKaGJtZGxUV0Z3T2lCV01WWlNUVk5qYUdWdFlTNU1iMjlyUVhSU1lXNW5aVTFoY0NCOElIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCa1pXWmhkV3gwVDNWMGNIVjBVMk5oYkdVNklHNTFiV0psY2l4Y2JpQWdLVG9nVmxKTlRHOXZhMEYwVW1GdVoyVk5ZWEFnZTF4dUlDQWdJR3hsZENCcGJuQjFkRTFoZUZaaGJIVmxJRDBnYzJOb1pXMWhVbUZ1WjJWTllYQS9MbWx1Y0hWMFRXRjRWbUZzZFdVZ1B6OGdPVEF1TUR0Y2JpQWdJQ0JqYjI1emRDQnZkWFJ3ZFhSVFkyRnNaU0E5SUhOamFHVnRZVkpoYm1kbFRXRndQeTV2ZFhSd2RYUlRZMkZzWlNBL1B5QmtaV1poZFd4MFQzVjBjSFYwVTJOaGJHVTdYRzVjYmlBZ0lDQXZMeUJKZENCdGFXZG9kQ0JqWVhWelpTQk9ZVTRnZDJobGJpQmdhVzV3ZFhSTllYaFdZV3gxWldBZ2FYTWdkRzl2SUhOdFlXeHNYRzRnSUNBZ0x5OGdkMmhwWTJnZ2JXRnJaWE1nZEdobElHMWxjMmdnYjJZZ2RHaGxJR2hsWVdRZ1pHbHpZWEJ3WldGeVhHNGdJQ0FnTHk4Z1UyVmxPaUJvZEhSd2N6b3ZMMmRwZEdoMVlpNWpiMjB2Y0dsNGFYWXZkR2h5WldVdGRuSnRMMmx6YzNWbGN5OHhNakF4WEc0Z0lDQWdhV1lnS0dsdWNIVjBUV0Y0Vm1Gc2RXVWdQQ0JKVGxCVlZGOU5RVmhmVmtGTVZVVmZUVWxPU1UxVlRTa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0Z4dUlDQWdJQ0FnSUNBblZsSk5URzl2YTBGMFRHOWhaR1Z5VUd4MVoybHVPaUJwYm5CMWRFMWhlRlpoYkhWbElHOW1JR0VnY21GdVoyVWdiV0Z3SUdseklIUnZieUJ6YldGc2JDNGdRMjl1YzJsa1pYSWdjbVYyYVdWM2FXNW5JSFJvWlNCeVlXNW5aU0J0WVhBaEp5eGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnBibkIxZEUxaGVGWmhiSFZsSUQwZ1NVNVFWVlJmVFVGWVgxWkJURlZGWDAxSlRrbE5WVTA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJXVWsxTWIyOXJRWFJTWVc1blpVMWhjQ2hwYm5CMWRFMWhlRlpoYkhWbExDQnZkWFJ3ZFhSVFkyRnNaU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJRjkyTUVsdGNHOXlkQ2hjYmlBZ0lDQm5iSFJtT2lCSFRGUkdMRnh1SUNBZ0lHaDFiV0Z1YjJsa09pQldVazFJZFcxaGJtOXBaQ3hjYmlBZ0lDQmxlSEJ5WlhOemFXOXVjem9nVmxKTlJYaHdjbVZ6YzJsdmJrMWhibUZuWlhJc1hHNGdJQ2s2SUZCeWIyMXBjMlU4VmxKTlRHOXZhMEYwSUh3Z2JuVnNiRDRnZTF4dUlDQWdJR052Ym5OMElHcHpiMjRnUFNCMGFHbHpMbkJoY25ObGNpNXFjMjl1SUdGeklFZE1WRVpUWTJobGJXRXVTVWRNVkVZN1hHNWNiaUFnSUNBdkx5QmxZWEpzZVNCaFltOXlkQ0JwWmlCcGRDQmtiMlZ6YmlkMElIVnpaU0IyY20xY2JpQWdJQ0JqYjI1emRDQjJjbTFGZUhRZ1BTQnFjMjl1TG1WNGRHVnVjMmx2Ym5NL0xsWlNUU0JoY3lCV01GWlNUUzVXVWswZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLQ0YyY20xRmVIUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElITmphR1Z0WVVacGNuTjBVR1Z5YzI5dUlEMGdkbkp0UlhoMExtWnBjbk4wVUdWeWMyOXVPMXh1SUNBZ0lHbG1JQ2doYzJOb1pXMWhSbWx5YzNSUVpYSnpiMjRwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1JsWm1GMWJIUlBkWFJ3ZFhSVFkyRnNaU0E5SUhOamFHVnRZVVpwY25OMFVHVnljMjl1TG14dmIydEJkRlI1Y0dWT1lXMWxJRDA5UFNBblFteGxibVJUYUdGd1pTY2dQeUF4TGpBZ09pQXhNQzR3TzF4dVhHNGdJQ0FnWTI5dWMzUWdiV0Z3U0VrZ1BTQjBhR2x6TGw5Mk1FbHRjRzl5ZEVSbFozSmxaVTFoY0NoelkyaGxiV0ZHYVhKemRGQmxjbk52Ymk1c2IyOXJRWFJJYjNKcGVtOXVkR0ZzU1c1dVpYSXNJR1JsWm1GMWJIUlBkWFJ3ZFhSVFkyRnNaU2s3WEc0Z0lDQWdZMjl1YzNRZ2JXRndTRThnUFNCMGFHbHpMbDkyTUVsdGNHOXlkRVJsWjNKbFpVMWhjQ2h6WTJobGJXRkdhWEp6ZEZCbGNuTnZiaTVzYjI5clFYUkliM0pwZW05dWRHRnNUM1YwWlhJc0lHUmxabUYxYkhSUGRYUndkWFJUWTJGc1pTazdYRzRnSUNBZ1kyOXVjM1FnYldGd1ZrUWdQU0IwYUdsekxsOTJNRWx0Y0c5eWRFUmxaM0psWlUxaGNDaHpZMmhsYldGR2FYSnpkRkJsY25OdmJpNXNiMjlyUVhSV1pYSjBhV05oYkVSdmQyNHNJR1JsWm1GMWJIUlBkWFJ3ZFhSVFkyRnNaU2s3WEc0Z0lDQWdZMjl1YzNRZ2JXRndWbFVnUFNCMGFHbHpMbDkyTUVsdGNHOXlkRVJsWjNKbFpVMWhjQ2h6WTJobGJXRkdhWEp6ZEZCbGNuTnZiaTVzYjI5clFYUldaWEowYVdOaGJGVndMQ0JrWldaaGRXeDBUM1YwY0hWMFUyTmhiR1VwTzF4dVhHNGdJQ0FnYkdWMElHRndjR3hwWlhJN1hHNWNiaUFnSUNCcFppQW9jMk5vWlcxaFJtbHljM1JRWlhKemIyNHViRzl2YTBGMFZIbHdaVTVoYldVZ1BUMDlJQ2RDYkdWdVpGTm9ZWEJsSnlrZ2UxeHVJQ0FnSUNBZ1lYQndiR2xsY2lBOUlHNWxkeUJXVWsxTWIyOXJRWFJGZUhCeVpYTnphVzl1UVhCd2JHbGxjaWhsZUhCeVpYTnphVzl1Y3l3Z2JXRndTRWtzSUcxaGNFaFBMQ0J0WVhCV1JDd2diV0Z3VmxVcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JoY0hCc2FXVnlJRDBnYm1WM0lGWlNUVXh2YjJ0QmRFSnZibVZCY0hCc2FXVnlLR2gxYldGdWIybGtMQ0J0WVhCSVNTd2diV0Z3U0U4c0lHMWhjRlpFTENCdFlYQldWU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2JHOXZhMEYwSUQwZ2RHaHBjeTVmYVcxd2IzSjBURzl2YTBGMEtHaDFiV0Z1YjJsa0xDQmhjSEJzYVdWeUtUdGNibHh1SUNBZ0lHbG1JQ2h6WTJobGJXRkdhWEp6ZEZCbGNuTnZiaTVtYVhKemRGQmxjbk52YmtKdmJtVlBabVp6WlhRcElIdGNiaUFnSUNBZ0lHeHZiMnRCZEM1dlptWnpaWFJHY205dFNHVmhaRUp2Ym1VdWMyVjBLRnh1SUNBZ0lDQWdJQ0J6WTJobGJXRkdhWEp6ZEZCbGNuTnZiaTVtYVhKemRGQmxjbk52YmtKdmJtVlBabVp6WlhRdWVDQS9QeUF3TGpBc1hHNGdJQ0FnSUNBZ0lITmphR1Z0WVVacGNuTjBVR1Z5YzI5dUxtWnBjbk4wVUdWeWMyOXVRbTl1WlU5bVpuTmxkQzU1SUQ4L0lEQXVNRFlzWEc0Z0lDQWdJQ0FnSUMwb2MyTm9aVzFoUm1seWMzUlFaWEp6YjI0dVptbHljM1JRWlhKemIyNUNiMjVsVDJabWMyVjBMbm9nUHo4Z01DNHdLU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHeHZiMnRCZEM1dlptWnpaWFJHY205dFNHVmhaRUp2Ym1VdWMyVjBLREF1TUN3Z01DNHdOaXdnTUM0d0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QldVazBnTUM0d0lHRnlaU0JtWVdOcGJtY2dXaTBnYVc1emRHVmhaQ0J2WmlCYUsxeHVJQ0FnSUd4dmIydEJkQzVtWVdObFJuSnZiblF1YzJWMEtEQXVNQ3dnTUM0d0xDQXRNUzR3S1R0Y2JseHVJQ0FnSUdsbUlDaGhjSEJzYVdWeUlHbHVjM1JoYm1ObGIyWWdWbEpOVEc5dmEwRjBRbTl1WlVGd2NHeHBaWElwSUh0Y2JpQWdJQ0FnSUdGd2NHeHBaWEl1Wm1GalpVWnliMjUwTG5ObGRDZ3dMakFzSURBdU1Dd2dMVEV1TUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJR3h2YjJ0QmREdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYM1l3U1cxd2IzSjBSR1ZuY21WbFRXRndLRnh1SUNBZ0lITmphR1Z0WVVSbFozSmxaVTFoY0RvZ1ZqQldVazB1Um1seWMzUlFaWEp6YjI1RVpXZHlaV1ZOWVhBZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ1pHVm1ZWFZzZEU5MWRIQjFkRk5qWVd4bE9pQnVkVzFpWlhJc1hHNGdJQ2s2SUZaU1RVeHZiMnRCZEZKaGJtZGxUV0Z3SUh0Y2JpQWdJQ0JqYjI1emRDQmpkWEoyWlNBOUlITmphR1Z0WVVSbFozSmxaVTFoY0Q4dVkzVnlkbVU3WEc0Z0lDQWdhV1lnS0VwVFQwNHVjM1J5YVc1bmFXWjVLR04xY25abEtTQWhQVDBnSjFzd0xEQXNNQ3d4TERFc01Td3hMREJkSnlrZ2UxeHVJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLQ2REZFhKMlpYTWdiMllnVEc5dmEwRjBSR1ZuY21WbFRXRndJR1JsWm1sdVpXUWdhVzRnVmxKTklEQXVNQ0JoY21VZ2JtOTBJSE4xY0hCdmNuUmxaQ2NwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR3hsZENCNFVtRnVaMlVnUFNCelkyaGxiV0ZFWldkeVpXVk5ZWEEvTG5oU1lXNW5aU0EvUHlBNU1DNHdPMXh1SUNBZ0lHTnZibk4wSUhsU1lXNW5aU0E5SUhOamFHVnRZVVJsWjNKbFpVMWhjRDh1ZVZKaGJtZGxJRDgvSUdSbFptRjFiSFJQZFhSd2RYUlRZMkZzWlR0Y2JseHVJQ0FnSUM4dklFbDBJRzFwWjJoMElHTmhkWE5sSUU1aFRpQjNhR1Z1SUdCNFVtRnVaMlZnSUdseklIUnZieUJ6YldGc2JGeHVJQ0FnSUM4dklIZG9hV05vSUcxaGEyVnpJSFJvWlNCdFpYTm9JRzltSUhSb1pTQm9aV0ZrSUdScGMyRndjR1ZoY2x4dUlDQWdJQzh2SUZObFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMM0JwZUdsMkwzUm9jbVZsTFhaeWJTOXBjM04xWlhNdk1USXdNVnh1SUNBZ0lHbG1JQ2g0VW1GdVoyVWdQQ0JKVGxCVlZGOU5RVmhmVmtGTVZVVmZUVWxPU1UxVlRTa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0NkV1VrMU1iMjlyUVhSTWIyRmtaWEpRYkhWbmFXNDZJSGhTWVc1blpTQnZaaUJoSUdSbFozSmxaU0J0WVhBZ2FYTWdkRzl2SUhOdFlXeHNMaUJEYjI1emFXUmxjaUJ5WlhacFpYZHBibWNnZEdobElHUmxaM0psWlNCdFlYQWhKeWs3WEc0Z0lDQWdJQ0I0VW1GdVoyVWdQU0JKVGxCVlZGOU5RVmhmVmtGTVZVVmZUVWxPU1UxVlRUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYm1WM0lGWlNUVXh2YjJ0QmRGSmhibWRsVFdGd0tIaFNZVzVuWlN3Z2VWSmhibWRsS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gybHRjRzl5ZEV4dmIydEJkQ2hvZFcxaGJtOXBaRG9nVmxKTlNIVnRZVzV2YVdRc0lHRndjR3hwWlhJNklGWlNUVXh2YjJ0QmRFRndjR3hwWlhJcE9pQldVazFNYjI5clFYUWdlMXh1SUNBZ0lHTnZibk4wSUd4dmIydEJkQ0E5SUc1bGR5QldVazFNYjI5clFYUW9hSFZ0WVc1dmFXUXNJR0Z3Y0d4cFpYSXBPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVhR1ZzY0dWeVVtOXZkQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhR1ZzY0dWeUlEMGdibVYzSUZaU1RVeHZiMnRCZEVobGJIQmxjaWhzYjI5clFYUXBPMXh1SUNBZ0lDQWdkR2hwY3k1b1pXeHdaWEpTYjI5MExtRmtaQ2hvWld4d1pYSXBPMXh1SUNBZ0lDQWdhR1ZzY0dWeUxuSmxibVJsY2s5eVpHVnlJRDBnZEdocGN5NW9aV3h3WlhKU2IyOTBMbkpsYm1SbGNrOXlaR1Z5TzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnNiMjlyUVhRN1hHNGdJSDFjYm4xY2JpSXNJaThxSUdWemJHbHVkQzFrYVhOaFlteGxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1WVcxcGJtY3RZMjl1ZG1WdWRHbHZiaUFxTDF4dVhHNHZLaXBjYmlBcUlGSmxjSEpsYzJWdWRITWdZU0IwZVhCbElHOW1JR0Z3Y0d4cFpYSXVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JXVWsxTWIyOXJRWFJVZVhCbFRtRnRaU0E5SUh0Y2JpQWdRbTl1WlRvZ0oySnZibVVuTEZ4dUlDQkZlSEJ5WlhOemFXOXVPaUFuWlhod2NtVnpjMmx2Ymljc1hHNTlPMXh1WEc1bGVIQnZjblFnZEhsd1pTQldVazFNYjI5clFYUlVlWEJsVG1GdFpTQTlJSFI1Y0dWdlppQldVazFNYjI5clFYUlVlWEJsVG1GdFpWdHJaWGx2WmlCMGVYQmxiMllnVmxKTlRHOXZhMEYwVkhsd1pVNWhiV1ZkTzF4dUlpd2lMeW9xWEc0Z0tpQlpiMmx1YTJWa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDIxeVpHOXZZaTkwYUhKbFpTNXFjeTlpYkc5aUwyMWhjM1JsY2k5bGVHRnRjR3hsY3k5cWMyMHZiRzloWkdWeWN5OUhURlJHVEc5aFpHVnlMbXB6WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnlaWE52YkhabFZWSk1LSFZ5YkRvZ2MzUnlhVzVuTENCd1lYUm9PaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBdkx5QkpiblpoYkdsa0lGVlNURnh1SUNCcFppQW9kSGx3Wlc5bUlIVnliQ0FoUFQwZ0ozTjBjbWx1WnljZ2ZId2dkWEpzSUQwOVBTQW5KeWtnY21WMGRYSnVJQ2NuTzF4dVhHNGdJQzh2SUVodmMzUWdVbVZzWVhScGRtVWdWVkpNWEc0Z0lHbG1JQ2d2WG1oMGRIQnpQenBjWEM5Y1hDOHZhUzUwWlhOMEtIQmhkR2dwSUNZbUlDOWVYRnd2THk1MFpYTjBLSFZ5YkNrcElIdGNiaUFnSUNCd1lYUm9JRDBnY0dGMGFDNXlaWEJzWVdObEtDOG9YbWgwZEhCelB6cGNYQzljWEM5YlhpOWRLeWt1S2k5cExDQW5KREVuS1R0Y2JpQWdmVnh1WEc0Z0lDOHZJRUZpYzI5c2RYUmxJRlZTVENCb2RIUndPaTh2TEdoMGRIQnpPaTh2TEM4dlhHNGdJR2xtSUNndlhpaG9kSFJ3Y3o4NktUOWNYQzljWEM4dmFTNTBaWE4wS0hWeWJDa3BJSEpsZEhWeWJpQjFjbXc3WEc1Y2JpQWdMeThnUkdGMFlTQlZVa2xjYmlBZ2FXWWdLQzllWkdGMFlUb3VLaXd1S2lRdmFTNTBaWE4wS0hWeWJDa3BJSEpsZEhWeWJpQjFjbXc3WEc1Y2JpQWdMeThnUW14dllpQlZVa3hjYmlBZ2FXWWdLQzllWW14dllqb3VLaVF2YVM1MFpYTjBLSFZ5YkNrcElISmxkSFZ5YmlCMWNtdzdYRzVjYmlBZ0x5OGdVbVZzWVhScGRtVWdWVkpNWEc0Z0lISmxkSFZ5YmlCd1lYUm9JQ3NnZFhKc08xeHVmVnh1SWl3aWFXMXdiM0owSUhSNWNHVWdleUJIVEZSR0xDQkhURlJHVEc5aFpHVnlVR3gxWjJsdUxDQkhURlJHVUdGeWMyVnlJSDBnWm5KdmJTQW5kR2h5WldVdlpYaGhiWEJzWlhNdmFuTnRMMnh2WVdSbGNuTXZSMHhVUmt4dllXUmxjaTVxY3ljN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RUQk5aWFJoSUgwZ1puSnZiU0FuTGk5V1VrMHdUV1YwWVNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RURk5aWFJoSUgwZ1puSnZiU0FuTGk5V1VrMHhUV1YwWVNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVMWxkR0VnZlNCbWNtOXRJQ2N1TDFaU1RVMWxkR0VuTzF4dWFXMXdiM0owSUhSNWNHVWdleUJXVWsxTlpYUmhURzloWkdWeVVHeDFaMmx1VDNCMGFXOXVjeUI5SUdaeWIyMGdKeTR2VmxKTlRXVjBZVXh2WVdSbGNsQnNkV2RwYms5d2RHbHZibk1uTzF4dWFXMXdiM0owSUhSNWNHVWdLaUJoY3lCV01GWlNUU0JtY205dElDZEFjR2w0YVhZdmRIbHdaWE10ZG5KdExUQXVNQ2M3WEc1cGJYQnZjblFnZEhsd1pTQXFJR0Z6SUZZeFZsSk5VMk5vWlcxaElHWnliMjBnSjBCd2FYaHBkaTkwZVhCbGN5MTJjbTFqTFhaeWJTMHhMakFuTzF4dWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSHNnY21WemIyeDJaVlZTVENCOUlHWnliMjBnSnk0dUwzVjBhV3h6TDNKbGMyOXNkbVZWVWt3bk8xeHVhVzF3YjNKMElIc2dSMHhVUmlCaGN5QkhURlJHVTJOb1pXMWhJSDBnWm5KdmJTQW5RR2RzZEdZdGRISmhibk5tYjNKdEwyTnZjbVVuTzF4dVhHNHZLaXBjYmlBcUlGQnZjM05wWW14bElITndaV01nZG1WeWMybHZibk1nYVhRZ2NtVmpiMmR1YVhwbGN5NWNiaUFxTDF4dVkyOXVjM1FnVUU5VFUwbENURVZmVTFCRlExOVdSVkpUU1U5T1V5QTlJRzVsZHlCVFpYUW9XeWN4TGpBbkxDQW5NUzR3TFdKbGRHRW5YU2s3WEc1Y2JpOHFLbHh1SUNvZ1FTQndiSFZuYVc0Z2IyWWdSMHhVUmt4dllXUmxjaUIwYUdGMElHbHRjRzl5ZEhNZ1lTQjdRR3hwYm1zZ1ZsSk5NVTFsZEdGOUlHWnliMjBnWVNCV1VrMGdaWGgwWlc1emFXOXVJRzltSUdFZ1IweFVSaTVjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZaU1RVMWxkR0ZNYjJGa1pYSlFiSFZuYVc0Z2FXMXdiR1Z0Wlc1MGN5QkhURlJHVEc5aFpHVnlVR3gxWjJsdUlIdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJSEJoY25ObGNqb2dSMHhVUmxCaGNuTmxjanRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTV1lnWUdaaGJITmxZQ3dnYVhRZ2QyOXVKM1FnYkc5aFpDQnBkSE1nZEdoMWJXSnVZV2xzSUdsdFlXZGxJQ2g3UUd4cGJtc2dWbEpOTVUxbGRHRXVkR2gxYldKdVlXbHNTVzFoWjJWOUtTNWNiaUFnSUNvZ1lIUnlkV1ZnSUdKNUlHUmxabUYxYkhRdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2JtVmxaRlJvZFcxaWJtRnBiRWx0WVdkbE9pQmliMjlzWldGdU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklHeHBjM1FnYjJZZ2JHbGpaVzV6WlNCMWNteHpMbHh1SUNBZ0tpQlVhR2x6SUcxbGRHRWdiRzloWkdWeUlIZHBiR3dnWVdOalpYQjBJSFJvWlhObElHQnNhV05sYm5ObFZYSnNZSE11WEc0Z0lDQXFJRTkwYUdWeWQybHpaU0JwZENCM2IyNG5kQ0JpWlNCc2IyRmtaV1F1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWVdOalpYQjBUR2xqWlc1elpWVnliSE02SUhOMGNtbHVaMXRkTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJYYUdWMGFHVnlJR2wwSUhOb2IzVnNaQ0JoWTJObGNIUWdWbEpOTUM0d0lHMWxkR0VnYjNJZ2JtOTBMbHh1SUNBZ0tpQk9iM1JsSUhSb1lYUWdhWFFnYldsbmFIUWdiRzloWkNCN1FHeHBibXNnVmxKTk1FMWxkR0Y5SUdsdWMzUmxZV1FnYjJZZ2UwQnNhVzVySUZaU1RURk5aWFJoZlNCM2FHVnVJSFJvYVhNZ2FYTWdZSFJ5ZFdWZ0xseHVJQ0FnS2lCZ2RISjFaV0FnWW5rZ1pHVm1ZWFZzZEM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCaFkyTmxjSFJXTUUxbGRHRTZJR0p2YjJ4bFlXNDdYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQnVZVzFsS0NrNklITjBjbWx1WnlCN1hHNGdJQ0FnTHk4Z1YyVWdjMmh2ZFd4a0lIVnpaU0IwYUdVZ1pYaDBaVzV6YVc5dUlHNWhiV1VnYVc1emRHVmhaQ0JpZFhRZ2QyVWdhR0YyWlNCdGRXeDBhWEJzWlNCd2JIVm5hVzV6SUdadmNpQmhiaUJsZUhSbGJuTnBiMjR1TGk1Y2JpQWdJQ0J5WlhSMWNtNGdKMVpTVFUxbGRHRk1iMkZrWlhKUWJIVm5hVzRuTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtIQmhjbk5sY2pvZ1IweFVSbEJoY25ObGNpd2diM0IwYVc5dWN6ODZJRlpTVFUxbGRHRk1iMkZrWlhKUWJIVm5hVzVQY0hScGIyNXpLU0I3WEc0Z0lDQWdkR2hwY3k1d1lYSnpaWElnUFNCd1lYSnpaWEk3WEc1Y2JpQWdJQ0IwYUdsekxtNWxaV1JVYUhWdFltNWhhV3hKYldGblpTQTlJRzl3ZEdsdmJuTS9MbTVsWldSVWFIVnRZbTVoYVd4SmJXRm5aU0EvUHlCMGNuVmxPMXh1SUNBZ0lIUm9hWE11WVdOalpYQjBUR2xqWlc1elpWVnliSE1nUFNCdmNIUnBiMjV6UHk1aFkyTmxjSFJNYVdObGJuTmxWWEpzY3lBL1B5QmJKMmgwZEhCek9pOHZkbkp0TG1SbGRpOXNhV05sYm5ObGN5OHhMakF2SjEwN1hHNGdJQ0FnZEdocGN5NWhZMk5sY0hSV01FMWxkR0VnUFNCdmNIUnBiMjV6UHk1aFkyTmxjSFJXTUUxbGRHRWdQejhnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmhjM2x1WXlCaFpuUmxjbEp2YjNRb1oyeDBaam9nUjB4VVJpazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdkc2RHWXVkWE5sY2tSaGRHRXVkbkp0VFdWMFlTQTlJR0YzWVdsMElIUm9hWE11WDJsdGNHOXlkQ2huYkhSbUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1gybHRjRzl5ZENobmJIUm1PaUJIVEZSR0tUb2dVSEp2YldselpUeFdVazFOWlhSaElId2diblZzYkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSFl4VW1WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1ZmRqRkpiWEJ2Y25Rb1oyeDBaaWs3WEc0Z0lDQWdhV1lnS0hZeFVtVnpkV3gwSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIyTVZKbGMzVnNkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCMk1GSmxjM1ZzZENBOUlHRjNZV2wwSUhSb2FYTXVYM1l3U1cxd2IzSjBLR2RzZEdZcE8xeHVJQ0FnSUdsbUlDaDJNRkpsYzNWc2RDQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RqQlNaWE4xYkhRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRzUxYkd3N1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUY5Mk1VbHRjRzl5ZENobmJIUm1PaUJIVEZSR0tUb2dVSEp2YldselpUeFdVazB4VFdWMFlTQjhJRzUxYkd3K0lIdGNiaUFnSUNCamIyNXpkQ0JxYzI5dUlEMGdkR2hwY3k1d1lYSnpaWEl1YW5OdmJpQmhjeUJIVEZSR1UyTm9aVzFoTGtsSFRGUkdPMXh1WEc0Z0lDQWdMeThnWldGeWJIa2dZV0p2Y25RZ2FXWWdhWFFnWkc5bGMyNG5kQ0IxYzJVZ2RuSnRYRzRnSUNBZ1kyOXVjM1FnYVhOV1VrMVZjMlZrSUQwZ2FuTnZiaTVsZUhSbGJuTnBiMjV6VlhObFpEOHVhVzVrWlhoUFppZ25WbEpOUTE5MmNtMG5LU0FoUFQwZ0xURTdYRzRnSUNBZ2FXWWdLQ0ZwYzFaU1RWVnpaV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1Y0ZEdWdWMybHZiaUE5SUdwemIyNHVaWGgwWlc1emFXOXVjejh1V3lkV1VrMURYM1p5YlNkZElHRnpJRll4VmxKTlUyTm9aVzFoTGxaU1RVTldVazBnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tHVjRkR1Z1YzJsdmJpQTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCemNHVmpWbVZ5YzJsdmJpQTlJR1Y0ZEdWdWMybHZiaTV6Y0dWalZtVnljMmx2Ymp0Y2JpQWdJQ0JwWmlBb0lWQlBVMU5KUWt4RlgxTlFSVU5mVmtWU1UwbFBUbE11YUdGektITndaV05XWlhKemFXOXVLU2tnZTF4dUlDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtHQldVazFOWlhSaFRHOWhaR1Z5VUd4MVoybHVPaUJWYm10dWIzZHVJRlpTVFVOZmRuSnRJSE53WldOV1pYSnphVzl1SUZ3aUpIdHpjR1ZqVm1WeWMybHZibjFjSW1BcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYzJOb1pXMWhUV1YwWVNBOUlHVjRkR1Z1YzJsdmJpNXRaWFJoTzF4dUlDQWdJR2xtSUNnaGMyTm9aVzFoVFdWMFlTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnZEdoeWIzY2dZVzRnWlhKeWIzSWdhV1lnWVdOalpYQjBWakJOWlhSaElHbHpJR1poYkhObFhHNGdJQ0FnWTI5dWMzUWdiR2xqWlc1elpWVnliQ0E5SUhOamFHVnRZVTFsZEdFdWJHbGpaVzV6WlZWeWJEdGNiaUFnSUNCamIyNXpkQ0JoWTJObGNIUk1hV05sYm5ObFZYSnNjMU5sZENBOUlHNWxkeUJUWlhRb2RHaHBjeTVoWTJObGNIUk1hV05sYm5ObFZYSnNjeWs3WEc0Z0lDQWdhV1lnS0NGaFkyTmxjSFJNYVdObGJuTmxWWEpzYzFObGRDNW9ZWE1vYkdsalpXNXpaVlZ5YkNrcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1ZsSk5UV1YwWVV4dllXUmxjbEJzZFdkcGJqb2dWR2hsSUd4cFkyVnVjMlVnZFhKc0lGd2lKSHRzYVdObGJuTmxWWEpzZlZ3aUlHbHpJRzV2ZENCaFkyTmxjSFJsWkdBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUd4bGRDQjBhSFZ0WW01aGFXeEpiV0ZuWlRvZ1NGUk5URWx0WVdkbFJXeGxiV1Z1ZENCOElIVnVaR1ZtYVc1bFpDQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvZEdocGN5NXVaV1ZrVkdoMWJXSnVZV2xzU1cxaFoyVWdKaVlnYzJOb1pXMWhUV1YwWVM1MGFIVnRZbTVoYVd4SmJXRm5aU0FoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0IwYUhWdFltNWhhV3hKYldGblpTQTlJQ2hoZDJGcGRDQjBhR2x6TGw5bGVIUnlZV04wUjB4VVJrbHRZV2RsS0hOamFHVnRZVTFsZEdFdWRHaDFiV0p1WVdsc1NXMWhaMlVwS1NBL1B5QjFibVJsWm1sdVpXUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUcxbGRHRldaWEp6YVc5dU9pQW5NU2NzWEc0Z0lDQWdJQ0J1WVcxbE9pQnpZMmhsYldGTlpYUmhMbTVoYldVc1hHNGdJQ0FnSUNCMlpYSnphVzl1T2lCelkyaGxiV0ZOWlhSaExuWmxjbk5wYjI0c1hHNGdJQ0FnSUNCaGRYUm9iM0p6T2lCelkyaGxiV0ZOWlhSaExtRjFkR2h2Y25Nc1hHNGdJQ0FnSUNCamIzQjVjbWxuYUhSSmJtWnZjbTFoZEdsdmJqb2djMk5vWlcxaFRXVjBZUzVqYjNCNWNtbG5hSFJKYm1admNtMWhkR2x2Yml4Y2JpQWdJQ0FnSUdOdmJuUmhZM1JKYm1admNtMWhkR2x2YmpvZ2MyTm9aVzFoVFdWMFlTNWpiMjUwWVdOMFNXNW1iM0p0WVhScGIyNHNYRzRnSUNBZ0lDQnlaV1psY21WdVkyVnpPaUJ6WTJobGJXRk5aWFJoTG5KbFptVnlaVzVqWlhNc1hHNGdJQ0FnSUNCMGFHbHlaRkJoY25SNVRHbGpaVzV6WlhNNklITmphR1Z0WVUxbGRHRXVkR2hwY21SUVlYSjBlVXhwWTJWdWMyVnpMRnh1SUNBZ0lDQWdkR2gxYldKdVlXbHNTVzFoWjJVc1hHNGdJQ0FnSUNCc2FXTmxibk5sVlhKc09pQnpZMmhsYldGTlpYUmhMbXhwWTJWdWMyVlZjbXdzWEc0Z0lDQWdJQ0JoZG1GMFlYSlFaWEp0YVhOemFXOXVPaUJ6WTJobGJXRk5aWFJoTG1GMllYUmhjbEJsY20xcGMzTnBiMjRzWEc0Z0lDQWdJQ0JoYkd4dmQwVjRZMlZ6YzJsMlpXeDVWbWx2YkdWdWRGVnpZV2RsT2lCelkyaGxiV0ZOWlhSaExtRnNiRzkzUlhoalpYTnphWFpsYkhsV2FXOXNaVzUwVlhOaFoyVXNYRzRnSUNBZ0lDQmhiR3h2ZDBWNFkyVnpjMmwyWld4NVUyVjRkV0ZzVlhOaFoyVTZJSE5qYUdWdFlVMWxkR0V1WVd4c2IzZEZlR05sYzNOcGRtVnNlVk5sZUhWaGJGVnpZV2RsTEZ4dUlDQWdJQ0FnWTI5dGJXVnlZMmxoYkZWellXZGxPaUJ6WTJobGJXRk5aWFJoTG1OdmJXMWxjbU5wWVd4VmMyRm5aU3hjYmlBZ0lDQWdJR0ZzYkc5M1VHOXNhWFJwWTJGc1QzSlNaV3hwWjJsdmRYTlZjMkZuWlRvZ2MyTm9aVzFoVFdWMFlTNWhiR3h2ZDFCdmJHbDBhV05oYkU5eVVtVnNhV2RwYjNWelZYTmhaMlVzWEc0Z0lDQWdJQ0JoYkd4dmQwRnVkR2x6YjJOcFlXeFBja2hoZEdWVmMyRm5aVG9nYzJOb1pXMWhUV1YwWVM1aGJHeHZkMEZ1ZEdsemIyTnBZV3hQY2toaGRHVlZjMkZuWlN4Y2JpQWdJQ0FnSUdOeVpXUnBkRTV2ZEdGMGFXOXVPaUJ6WTJobGJXRk5aWFJoTG1OeVpXUnBkRTV2ZEdGMGFXOXVMRnh1SUNBZ0lDQWdZV3hzYjNkU1pXUnBjM1J5YVdKMWRHbHZiam9nYzJOb1pXMWhUV1YwWVM1aGJHeHZkMUpsWkdsemRISnBZblYwYVc5dUxGeHVJQ0FnSUNBZ2JXOWthV1pwWTJGMGFXOXVPaUJ6WTJobGJXRk5aWFJoTG0xdlpHbG1hV05oZEdsdmJpeGNiaUFnSUNBZ0lHOTBhR1Z5VEdsalpXNXpaVlZ5YkRvZ2MyTm9aVzFoVFdWMFlTNXZkR2hsY2t4cFkyVnVjMlZWY213c1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDNZd1NXMXdiM0owS0dkc2RHWTZJRWRNVkVZcE9pQlFjbTl0YVhObFBGWlNUVEJOWlhSaElId2diblZzYkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR3B6YjI0Z1BTQjBhR2x6TG5CaGNuTmxjaTVxYzI5dUlHRnpJRWRNVkVaVFkyaGxiV0V1U1VkTVZFWTdYRzVjYmlBZ0lDQXZMeUJsWVhKc2VTQmhZbTl5ZENCcFppQnBkQ0JrYjJWemJpZDBJSFZ6WlNCMmNtMWNiaUFnSUNCamIyNXpkQ0IyY20xRmVIUWdQU0JxYzI5dUxtVjRkR1Z1YzJsdmJuTS9MbFpTVFNCaGN5QldNRlpTVFM1V1VrMGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdhV1lnS0NGMmNtMUZlSFFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE5qYUdWdFlVMWxkR0VnUFNCMmNtMUZlSFF1YldWMFlUdGNiaUFnSUNCcFppQW9JWE5qYUdWdFlVMWxkR0VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklIUm9jbTkzSUdGdUlHVnljbTl5SUdsbUlHRmpZMlZ3ZEZZd1RXVjBZU0JwY3lCbVlXeHpaVnh1SUNBZ0lHbG1JQ2doZEdocGN5NWhZMk5sY0hSV01FMWxkR0VwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVmxKTlRXVjBZVXh2WVdSbGNsQnNkV2RwYmpvZ1FYUjBaVzF3ZEdWa0lIUnZJR3h2WVdRZ1ZsSk5NQzR3SUcxbGRHRWdZblYwSUdGalkyVndkRll3VFdWMFlTQnBjeUJtWVd4elpTY3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJR3h2WVdRZ2RHaDFiV0p1WVdsc0lIUmxlSFIxY21WY2JpQWdJQ0JzWlhRZ2RHVjRkSFZ5WlRvZ1ZFaFNSVVV1VkdWNGRIVnlaU0I4SUc1MWJHd2dmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdhV1lnS0hSb2FYTXVibVZsWkZSb2RXMWlibUZwYkVsdFlXZGxJQ1ltSUhOamFHVnRZVTFsZEdFdWRHVjRkSFZ5WlNBaFBTQnVkV3hzSUNZbUlITmphR1Z0WVUxbGRHRXVkR1Y0ZEhWeVpTQWhQVDBnTFRFcElIdGNiaUFnSUNBZ0lIUmxlSFIxY21VZ1BTQmhkMkZwZENCMGFHbHpMbkJoY25ObGNpNW5aWFJFWlhCbGJtUmxibU41S0NkMFpYaDBkWEpsSnl3Z2MyTm9aVzFoVFdWMFlTNTBaWGgwZFhKbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnYldWMFlWWmxjbk5wYjI0NklDY3dKeXhjYmlBZ0lDQWdJR0ZzYkc5M1pXUlZjMlZ5VG1GdFpUb2djMk5vWlcxaFRXVjBZUzVoYkd4dmQyVmtWWE5sY2s1aGJXVXNYRzRnSUNBZ0lDQmhkWFJvYjNJNklITmphR1Z0WVUxbGRHRXVZWFYwYUc5eUxGeHVJQ0FnSUNBZ1kyOXRiV1Z5WTJsaGJGVnpjMkZuWlU1aGJXVTZJSE5qYUdWdFlVMWxkR0V1WTI5dGJXVnlZMmxoYkZWemMyRm5aVTVoYldVc1hHNGdJQ0FnSUNCamIyNTBZV04wU1c1bWIzSnRZWFJwYjI0NklITmphR1Z0WVUxbGRHRXVZMjl1ZEdGamRFbHVabTl5YldGMGFXOXVMRnh1SUNBZ0lDQWdiR2xqWlc1elpVNWhiV1U2SUhOamFHVnRZVTFsZEdFdWJHbGpaVzV6WlU1aGJXVXNYRzRnSUNBZ0lDQnZkR2hsY2t4cFkyVnVjMlZWY213NklITmphR1Z0WVUxbGRHRXViM1JvWlhKTWFXTmxibk5sVlhKc0xGeHVJQ0FnSUNBZ2IzUm9aWEpRWlhKdGFYTnphVzl1VlhKc09pQnpZMmhsYldGTlpYUmhMbTkwYUdWeVVHVnliV2x6YzJsdmJsVnliQ3hjYmlBZ0lDQWdJSEpsWm1WeVpXNWpaVG9nYzJOb1pXMWhUV1YwWVM1eVpXWmxjbVZ1WTJVc1hHNGdJQ0FnSUNCelpYaDFZV3hWYzNOaFoyVk9ZVzFsT2lCelkyaGxiV0ZOWlhSaExuTmxlSFZoYkZWemMyRm5aVTVoYldVc1hHNGdJQ0FnSUNCMFpYaDBkWEpsT2lCMFpYaDBkWEpsSUQ4L0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lIUnBkR3hsT2lCelkyaGxiV0ZOWlhSaExuUnBkR3hsTEZ4dUlDQWdJQ0FnZG1WeWMybHZiam9nYzJOb1pXMWhUV1YwWVM1MlpYSnphVzl1TEZ4dUlDQWdJQ0FnZG1sdmJHVnVkRlZ6YzJGblpVNWhiV1U2SUhOamFHVnRZVTFsZEdFdWRtbHZiR1Z1ZEZWemMyRm5aVTVoYldVc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDJWNGRISmhZM1JIVEZSR1NXMWhaMlVvYVc1a1pYZzZJRzUxYldKbGNpazZJRkJ5YjIxcGMyVThTRlJOVEVsdFlXZGxSV3hsYldWdWRDQjhJRzUxYkd3K0lIdGNiaUFnSUNCamIyNXpkQ0JxYzI5dUlEMGdkR2hwY3k1d1lYSnpaWEl1YW5OdmJpQmhjeUJIVEZSR1UyTm9aVzFoTGtsSFRGUkdPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MyOTFjbU5sSUQwZ2FuTnZiaTVwYldGblpYTS9MbHRwYm1SbGVGMDdYRzVjYmlBZ0lDQnBaaUFvYzI5MWNtTmxJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJR052Ym5OdmJHVXVkMkZ5YmloY2JpQWdJQ0FnSUNBZ1lGWlNUVTFsZEdGTWIyRmtaWEpRYkhWbmFXNDZJRUYwZEdWdGNIUWdkRzhnZFhObElHbHRZV2RsYzFza2UybHVaR1Y0ZlYwZ2IyWWdaMnhVUmlCaGN5QmhJSFJvZFcxaWJtRnBiQ0JpZFhRZ2RHaGxJR2x0WVdkbElHUnZaWE51SjNRZ1pYaHBjM1JnTEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklGSmxaam9nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDIxeVpHOXZZaTkwYUhKbFpTNXFjeTlpYkc5aUwzSXhNalF2WlhoaGJYQnNaWE12YW5OdEwyeHZZV1JsY25NdlIweFVSa3h2WVdSbGNpNXFjeU5NTWpRMk4xeHVYRzRnSUNBZ0x5OGdZSE52ZFhKalpTNTFjbWxnSUcxcFoyaDBJR0psSUdFZ2NtVm1aWEpsYm1ObElIUnZJR0VnWm1sc1pWeHVJQ0FnSUd4bGRDQnpiM1Z5WTJWVlVrazZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ0E5SUhOdmRYSmpaUzUxY21rN1hHNWNiaUFnSUNBdkx5Qk1iMkZrSUhSb1pTQmlhVzVoY25rZ1lYTWdZU0JpYkc5aVhHNGdJQ0FnYVdZZ0tITnZkWEpqWlM1aWRXWm1aWEpXYVdWM0lDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lHTnZibk4wSUdKMVptWmxjbFpwWlhjZ1BTQmhkMkZwZENCMGFHbHpMbkJoY25ObGNpNW5aWFJFWlhCbGJtUmxibU41S0NkaWRXWm1aWEpXYVdWM0p5d2djMjkxY21ObExtSjFabVpsY2xacFpYY3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1lteHZZaUE5SUc1bGR5QkNiRzlpS0Z0aWRXWm1aWEpXYVdWM1hTd2dleUIwZVhCbE9pQnpiM1Z5WTJVdWJXbHRaVlI1Y0dVZ2ZTazdYRzRnSUNBZ0lDQnpiM1Z5WTJWVlVra2dQU0JWVWt3dVkzSmxZWFJsVDJKcVpXTjBWVkpNS0dKc2IySXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h6YjNWeVkyVlZVa2tnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtGeHVJQ0FnSUNBZ0lDQmdWbEpOVFdWMFlVeHZZV1JsY2xCc2RXZHBiam9nUVhSMFpXMXdkQ0IwYnlCMWMyVWdhVzFoWjJWeld5UjdhVzVrWlhoOVhTQnZaaUJuYkZSR0lHRnpJR0VnZEdoMWJXSnVZV2xzSUdKMWRDQjBhR1VnYVcxaFoyVWdZMjkxYkdSdUozUWdiRzloWkNCd2NtOXdaWEpzZVdBc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1MWJHdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYkc5aFpHVnlJRDBnYm1WM0lGUklVa1ZGTGtsdFlXZGxURzloWkdWeUtDazdYRzRnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJR3h2WVdSbGNpNXNiMkZrUVhONWJtTW9jbVZ6YjJ4MlpWVlNUQ2h6YjNWeVkyVlZVa2tzSUNoMGFHbHpMbkJoY25ObGNpQmhjeUJoYm5rcExtOXdkR2x2Ym5NdWNHRjBhQ2twTG1OaGRHTm9LQ2hsY25KdmNpa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMyOXNaUzVsY25KdmNpaGxjbkp2Y2lrN1hHNGdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9KMVpTVFUxbGRHRk1iMkZrWlhKUWJIVm5hVzQ2SUVaaGFXeGxaQ0IwYnlCc2IyRmtJR0VnZEdoMWJXSnVZV2xzSUdsdFlXZGxKeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1ZlZ4dUlpd2lhVzF3YjNKMElDb2dZWE1nVkVoU1JVVWdabkp2YlNBbmRHaHlaV1VuTzF4dWFXMXdiM0owSUhzZ1ZsSk5SWGh3Y21WemMybHZiazFoYm1GblpYSWdmU0JtY205dElDY3VMMlY0Y0hKbGMzTnBiMjV6TDFaU1RVVjRjSEpsYzNOcGIyNU5ZVzVoWjJWeUp6dGNibWx0Y0c5eWRDQjdJRlpTVFVacGNuTjBVR1Z5YzI5dUlIMGdabkp2YlNBbkxpOW1hWEp6ZEZCbGNuTnZiaTlXVWsxR2FYSnpkRkJsY25OdmJpYzdYRzVwYlhCdmNuUWdleUJXVWsxSWRXMWhibTlwWkNCOUlHWnliMjBnSnk0dmFIVnRZVzV2YVdRdlZsSk5TSFZ0WVc1dmFXUW5PMXh1YVcxd2IzSjBJSHNnVmxKTlRHOXZhMEYwSUgwZ1puSnZiU0FuTGk5c2IyOXJRWFF2VmxKTlRHOXZhMEYwSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVTFsZEdFZ2ZTQm1jbTl0SUNjdUwyMWxkR0V2VmxKTlRXVjBZU2M3WEc1cGJYQnZjblFnZXlCV1VrMURiM0psVUdGeVlXMWxkR1Z5Y3lCOUlHWnliMjBnSnk0dlZsSk5RMjl5WlZCaGNtRnRaWFJsY25Nbk8xeHVYRzR2S2lwY2JpQXFJRUVnWTJ4aGMzTWdkR2hoZENCeVpYQnlaWE5sYm5SeklHRWdjMmx1WjJ4bElGWlNUU0J0YjJSbGJDNWNiaUFxSUZSb2FYTWdZMnhoYzNNZ2IyNXNlU0JwYm1Oc2RXUmxjeUJqYjNKbElITndaV01nYjJZZ2RHaGxJRlpTVFNBb1lGWlNUVU5mZG5KdFlDa3VYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxRGIzSmxJSHRjYmlBZ0x5b3FYRzRnSUNBcUlHQlVTRkpGUlM1SGNtOTFjR0FnZEdoaGRDQmpiMjUwWVdsdWN5QjBhR1VnWlc1MGFYSmxJRlpTVFM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCelkyVnVaVG9nVkVoU1JVVXVSM0p2ZFhBN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuUmhhVzV6SUcxbGRHRWdabWxsYkdSeklHOW1JSFJvWlNCV1VrMHVYRzRnSUNBcUlGbHZkU0J0YVdkb2RDQjNZVzUwSUhSdklISmxabVZ5SUhSb1pYTmxJR3hwWTJWdWMyVWdabWxsYkdSeklHSmxabTl5WlNCMWMyVWdlVzkxY2lCV1VrMXpMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJRzFsZEdFNklGWlNUVTFsZEdFN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuUmhhVzV6SUh0QWJHbHVheUJXVWsxSWRXMWhibTlwWkgwZ2IyWWdkR2hsSUZaU1RTNWNiaUFnSUNvZ1dXOTFJR05oYmlCamIyNTBjbTlzSUdWaFkyZ2dZbTl1WlhNZ2RYTnBibWNnZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrTG1kbGRFNXZjbTFoYkdsNlpXUkNiMjVsVG05a1pYMGdiM0lnZTBCc2FXNXJJRlpTVFVoMWJXRnViMmxrTG1kbGRGSmhkMEp2Ym1WT2IyUmxmUzVjYmlBZ0lDcGNiaUFnSUNvZ1FGUlBSRThnUVdSa0lHRWdiR2x1YXlCMGJ5QldVazBnYzNCbFkxeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklISmxZV1J2Ym14NUlHaDFiV0Z1YjJsa09pQldVazFJZFcxaGJtOXBaRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl1ZEdGcGJuTWdlMEJzYVc1cklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlmU0J2WmlCMGFHVWdWbEpOTGx4dUlDQWdLaUJaYjNVZ2JXbG5hSFFnZDJGdWRDQjBieUJqYjI1MGNtOXNJSFJvWlhObElHWmhZMmxoYkNCbGVIQnlaWE56YVc5dWN5QjJhV0VnZTBCc2FXNXJJRlpTVFVWNGNISmxjM05wYjI1TllXNWhaMlZ5TG5ObGRGWmhiSFZsZlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCbGVIQnlaWE56YVc5dVRXRnVZV2RsY2o4NklGWlNUVVY0Y0hKbGMzTnBiMjVOWVc1aFoyVnlPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjUwWVdsdWN5QjdRR3hwYm1zZ1ZsSk5SbWx5YzNSUVpYSnpiMjU5SUc5bUlIUm9aU0JXVWswdVhHNGdJQ0FxSUZaU1RVWnBjbk4wVUdWeWMyOXVJR2x6SUcxdmMzUnNlU0IxYzJWa0lHWnZjaUJ0WlhOb0lHTjFiR3hwYm1jZ1ptOXlJR1pwY25OMElIQmxjbk52YmlCMmFXVjNMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJR1pwY25OMFVHVnljMjl1UHpvZ1ZsSk5SbWx5YzNSUVpYSnpiMjQ3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5SaGFXNXpJSHRBYkdsdWF5QldVazFNYjI5clFYUjlJRzltSUhSb1pTQldVazB1WEc0Z0lDQXFJRmx2ZFNCdGFXZG9kQ0IzWVc1MElIUnZJSFZ6WlNCN1FHeHBibXNnVmxKTlRHOXZhMEYwTG5SaGNtZGxkSDBnZEc4Z1kyOXVkSEp2YkNCMGFHVWdaWGxsSUdScGNtVmpkR2x2YmlCdlppQjViM1Z5SUZaU1RYTXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbVZoWkc5dWJIa2diRzl2YTBGMFB6b2dWbEpOVEc5dmEwRjBPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRjbVZoZEdVZ1lTQnVaWGNnVmxKTklHbHVjM1JoYm1ObExseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdjR0Z5WVcxeklGdGJWbEpOVUdGeVlXMWxkR1Z5YzExZElIUm9ZWFFnY21Wd2NtVnpaVzUwY3lCamIyMXdiMjVsYm5SeklHOW1JSFJvWlNCV1VrMWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWh3WVhKaGJYTTZJRlpTVFVOdmNtVlFZWEpoYldWMFpYSnpLU0I3WEc0Z0lDQWdkR2hwY3k1elkyVnVaU0E5SUhCaGNtRnRjeTV6WTJWdVpUdGNiaUFnSUNCMGFHbHpMbTFsZEdFZ1BTQndZWEpoYlhNdWJXVjBZVHRjYmlBZ0lDQjBhR2x6TG1oMWJXRnViMmxrSUQwZ2NHRnlZVzF6TG1oMWJXRnViMmxrTzF4dUlDQWdJSFJvYVhNdVpYaHdjbVZ6YzJsdmJrMWhibUZuWlhJZ1BTQndZWEpoYlhNdVpYaHdjbVZ6YzJsdmJrMWhibUZuWlhJN1hHNGdJQ0FnZEdocGN5NW1hWEp6ZEZCbGNuTnZiaUE5SUhCaGNtRnRjeTVtYVhKemRGQmxjbk52Ymp0Y2JpQWdJQ0IwYUdsekxteHZiMnRCZENBOUlIQmhjbUZ0Y3k1c2IyOXJRWFE3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ0tpcFpiM1VnYm1WbFpDQjBieUJqWVd4c0lIUm9hWE1nYjI0Z2VXOTFjaUIxY0dSaGRHVWdiRzl2Y0M0cUtseHVJQ0FnS2x4dUlDQWdLaUJVYUdseklHWjFibU4wYVc5dUlIVndaR0YwWlhNZ1pYWmxjbmtnVmxKTklHTnZiWEJ2Ym1WdWRITXVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JrWld4MFlTQmtaV3gwWVZScGJXVmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QjFjR1JoZEdVb1pHVnNkR0U2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lIUm9hWE11YUhWdFlXNXZhV1F1ZFhCa1lYUmxLQ2s3WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTVzYjI5clFYUXBJSHRjYmlBZ0lDQWdJSFJvYVhNdWJHOXZhMEYwTG5Wd1pHRjBaU2hrWld4MFlTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdVpYaHdjbVZ6YzJsdmJrMWhibUZuWlhJcElIdGNiaUFnSUNBZ0lIUm9hWE11Wlhod2NtVnpjMmx2YmsxaGJtRm5aWEl1ZFhCa1lYUmxLQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzRpTENKcGJYQnZjblFnZXlCSFRGUkdMQ0JIVEZSR1RHOWhaR1Z5VUd4MVoybHVMQ0JIVEZSR1VHRnljMlZ5SUgwZ1puSnZiU0FuZEdoeVpXVXZaWGhoYlhCc1pYTXZhbk50TDJ4dllXUmxjbk12UjB4VVJreHZZV1JsY2k1cWN5YzdYRzVwYlhCdmNuUWdleUJXVWsxRGIzSmxURzloWkdWeVVHeDFaMmx1VDNCMGFXOXVjeUI5SUdaeWIyMGdKeTR2VmxKTlEyOXlaVXh2WVdSbGNsQnNkV2RwYms5d2RHbHZibk1uTzF4dWFXMXdiM0owSUhzZ1ZsSk5RMjl5WlNCOUlHWnliMjBnSnk0dlZsSk5RMjl5WlNjN1hHNXBiWEJ2Y25RZ2V5QldVazFGZUhCeVpYTnphVzl1VEc5aFpHVnlVR3gxWjJsdUlIMGdabkp2YlNBbkxpOWxlSEJ5WlhOemFXOXVjeTlXVWsxRmVIQnlaWE56YVc5dVRHOWhaR1Z5VUd4MVoybHVKenRjYm1sdGNHOXlkQ0I3SUZaU1RVWnBjbk4wVUdWeWMyOXVURzloWkdWeVVHeDFaMmx1SUgwZ1puSnZiU0FuTGk5bWFYSnpkRkJsY25OdmJpOVdVazFHYVhKemRGQmxjbk52Ymt4dllXUmxjbEJzZFdkcGJpYzdYRzVwYlhCdmNuUWdleUJXVWsxSWRXMWhibTlwWkV4dllXUmxjbEJzZFdkcGJpQjlJR1p5YjIwZ0p5NHZhSFZ0WVc1dmFXUXZWbEpOU0hWdFlXNXZhV1JNYjJGa1pYSlFiSFZuYVc0bk8xeHVhVzF3YjNKMElIc2dWbEpOVFdWMFlVeHZZV1JsY2xCc2RXZHBiaUI5SUdaeWIyMGdKeTR2YldWMFlTOVdVazFOWlhSaFRHOWhaR1Z5VUd4MVoybHVKenRjYm1sdGNHOXlkQ0I3SUZaU1RVeHZiMnRCZEV4dllXUmxjbEJzZFdkcGJpQjlJR1p5YjIwZ0p5NHZiRzl2YTBGMEwxWlNUVXh2YjJ0QmRFeHZZV1JsY2xCc2RXZHBiaWM3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFVoMWJXRnViMmxrSUgwZ1puSnZiU0FuTGk5b2RXMWhibTlwWkNjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RVMWxkR0VnZlNCbWNtOXRJQ2N1TDIxbGRHRW5PMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOUTI5eVpVeHZZV1JsY2xCc2RXZHBiaUJwYlhCc1pXMWxiblJ6SUVkTVZFWk1iMkZrWlhKUWJIVm5hVzRnZTF4dUlDQndkV0pzYVdNZ1oyVjBJRzVoYldVb0tUb2djM1J5YVc1bklIdGNiaUFnSUNBdkx5QlhaU0J6YUc5MWJHUWdkWE5sSUhSb1pTQmxlSFJsYm5OcGIyNGdibUZ0WlNCcGJuTjBaV0ZrSUdKMWRDQjNaU0JvWVhabElHMTFiSFJwY0d4bElIQnNkV2RwYm5NZ1ptOXlJR0Z1SUdWNGRHVnVjMmx2Ymk0dUxseHVJQ0FnSUhKbGRIVnliaUFuVmxKTlExOTJjbTBuTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUhCaGNuTmxjam9nUjB4VVJsQmhjbk5sY2p0Y2JseHVJQ0J3ZFdKc2FXTWdjbVZoWkc5dWJIa2daWGh3Y21WemMybHZibEJzZFdkcGJqb2dWbEpOUlhod2NtVnpjMmx2Ymt4dllXUmxjbEJzZFdkcGJqdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJR1pwY25OMFVHVnljMjl1VUd4MVoybHVPaUJXVWsxR2FYSnpkRkJsY25OdmJreHZZV1JsY2xCc2RXZHBianRjYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUdoMWJXRnViMmxrVUd4MVoybHVPaUJXVWsxSWRXMWhibTlwWkV4dllXUmxjbEJzZFdkcGJqdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJR3h2YjJ0QmRGQnNkV2RwYmpvZ1ZsSk5URzl2YTBGMFRHOWhaR1Z5VUd4MVoybHVPMXh1SUNCd2RXSnNhV01nY21WaFpHOXViSGtnYldWMFlWQnNkV2RwYmpvZ1ZsSk5UV1YwWVV4dllXUmxjbEJzZFdkcGJqdGNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2NHRnljMlZ5T2lCSFRGUkdVR0Z5YzJWeUxDQnZjSFJwYjI1elB6b2dWbEpOUTI5eVpVeHZZV1JsY2xCc2RXZHBiazl3ZEdsdmJuTXBJSHRjYmlBZ0lDQjBhR2x6TG5CaGNuTmxjaUE5SUhCaGNuTmxjanRjYmx4dUlDQWdJR052Ym5OMElHaGxiSEJsY2xKdmIzUWdQU0J2Y0hScGIyNXpQeTVvWld4d1pYSlNiMjkwTzF4dUlDQWdJR052Ym5OMElHRjFkRzlWY0dSaGRHVklkVzFoYmtKdmJtVnpJRDBnYjNCMGFXOXVjejh1WVhWMGIxVndaR0YwWlVoMWJXRnVRbTl1WlhNN1hHNWNiaUFnSUNCMGFHbHpMbVY0Y0hKbGMzTnBiMjVRYkhWbmFXNGdQU0J2Y0hScGIyNXpQeTVsZUhCeVpYTnphVzl1VUd4MVoybHVJRDgvSUc1bGR5QldVazFGZUhCeVpYTnphVzl1VEc5aFpHVnlVR3gxWjJsdUtIQmhjbk5sY2lrN1hHNGdJQ0FnZEdocGN5NW1hWEp6ZEZCbGNuTnZibEJzZFdkcGJpQTlJRzl3ZEdsdmJuTS9MbVpwY25OMFVHVnljMjl1VUd4MVoybHVJRDgvSUc1bGR5QldVazFHYVhKemRGQmxjbk52Ymt4dllXUmxjbEJzZFdkcGJpaHdZWEp6WlhJcE8xeHVJQ0FnSUhSb2FYTXVhSFZ0WVc1dmFXUlFiSFZuYVc0Z1BWeHVJQ0FnSUNBZ2IzQjBhVzl1Y3o4dWFIVnRZVzV2YVdSUWJIVm5hVzRnUHo4Z2JtVjNJRlpTVFVoMWJXRnViMmxrVEc5aFpHVnlVR3gxWjJsdUtIQmhjbk5sY2l3Z2V5Qm9aV3h3WlhKU2IyOTBMQ0JoZFhSdlZYQmtZWFJsU0hWdFlXNUNiMjVsY3lCOUtUdGNiaUFnSUNCMGFHbHpMbXh2YjJ0QmRGQnNkV2RwYmlBOUlHOXdkR2x2Ym5NL0xteHZiMnRCZEZCc2RXZHBiaUEvUHlCdVpYY2dWbEpOVEc5dmEwRjBURzloWkdWeVVHeDFaMmx1S0hCaGNuTmxjaXdnZXlCb1pXeHdaWEpTYjI5MElIMHBPMXh1SUNBZ0lIUm9hWE11YldWMFlWQnNkV2RwYmlBOUlHOXdkR2x2Ym5NL0xtMWxkR0ZRYkhWbmFXNGdQejhnYm1WM0lGWlNUVTFsZEdGTWIyRmtaWEpRYkhWbmFXNG9jR0Z5YzJWeUtUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmhjM2x1WXlCaFpuUmxjbEp2YjNRb1oyeDBaam9nUjB4VVJpazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWJXVjBZVkJzZFdkcGJpNWhablJsY2xKdmIzUW9aMngwWmlrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1b2RXMWhibTlwWkZCc2RXZHBiaTVoWm5SbGNsSnZiM1FvWjJ4MFppazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NWxlSEJ5WlhOemFXOXVVR3gxWjJsdUxtRm1kR1Z5VW05dmRDaG5iSFJtS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG14dmIydEJkRkJzZFdkcGJpNWhablJsY2xKdmIzUW9aMngwWmlrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bWFYSnpkRkJsY25OdmJsQnNkV2RwYmk1aFpuUmxjbEp2YjNRb1oyeDBaaWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnRaWFJoSUQwZ1oyeDBaaTUxYzJWeVJHRjBZUzUyY20xTlpYUmhJR0Z6SUZaU1RVMWxkR0VnZkNCdWRXeHNPMXh1SUNBZ0lHTnZibk4wSUdoMWJXRnViMmxrSUQwZ1oyeDBaaTUxYzJWeVJHRjBZUzUyY20xSWRXMWhibTlwWkNCaGN5QldVazFJZFcxaGJtOXBaQ0I4SUc1MWJHdzdYRzVjYmlBZ0lDQXZMeUJ0WlhSaElHRnVaQ0JvZFcxaGJtOXBaQ0JoY21VZ2NtVnhkV2x5WldRZ2RHOGdZbVVnWVNCV1VrMHVYRzRnSUNBZ0x5OGdSRzl1SjNRZ1kzSmxZWFJsSUZaU1RTQnBaaUIwYUdWNUlHRnlaU0J1ZFd4c1hHNGdJQ0FnYVdZZ0tHMWxkR0VnSmlZZ2FIVnRZVzV2YVdRcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhaeWJVTnZjbVVnUFNCdVpYY2dWbEpOUTI5eVpTaDdYRzRnSUNBZ0lDQWdJSE5qWlc1bE9pQm5iSFJtTG5OalpXNWxMRnh1SUNBZ0lDQWdJQ0JsZUhCeVpYTnphVzl1VFdGdVlXZGxjam9nWjJ4MFppNTFjMlZ5UkdGMFlTNTJjbTFGZUhCeVpYTnphVzl1VFdGdVlXZGxjaXhjYmlBZ0lDQWdJQ0FnWm1seWMzUlFaWEp6YjI0NklHZHNkR1l1ZFhObGNrUmhkR0V1ZG5KdFJtbHljM1JRWlhKemIyNHNYRzRnSUNBZ0lDQWdJR2gxYldGdWIybGtMRnh1SUNBZ0lDQWdJQ0JzYjI5clFYUTZJR2RzZEdZdWRYTmxja1JoZEdFdWRuSnRURzl2YTBGMExGeHVJQ0FnSUNBZ0lDQnRaWFJoTEZ4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lHZHNkR1l1ZFhObGNrUmhkR0V1ZG5KdFEyOXlaU0E5SUhaeWJVTnZjbVU3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzRpWFN3aWJtRnRaWE1pT2xzaVVFOVRVMGxDVEVWZlUxQkZRMTlXUlZKVFNVOU9VeUlzSWw5Mk0wRWlMQ0pmZGpOQ0lpd2lYM0YxWVhSQklpd2lYM0YxWVhSQ0lpd2lWa1ZETTE5UVQxTkpWRWxXUlY5YUlpd2lYMlYxYkdWeVFTSmRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3p0QlFVbEJPMEZCUTBFN1FVRkRZU3hOUVVGQkxHRkJRV01zVTBGQlVTeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkJPMEZCYjBNdlF6czdPMEZCUjBjN1FVRkRTQ3hKUVVGQkxFbEJRVmNzYlVKQlFXMUNMRWRCUVVFN1FVRkROVUlzVVVGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4aFFVRmhMRXRCUVVzc1QwRkJUeXhGUVVGRk8wRkJRMnhETEZsQlFVRXNUMEZCVHl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRPMEZCUTNSRExGTkJRVUU3UVVGQlRTeGhRVUZCTEVsQlFVa3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1MwRkJTeXhQUVVGUExFVkJRVVU3V1VGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRM0JDTEZOQlFVRTdRVUZCVFN4aFFVRkJPMEZCUTB3c1dVRkJRU3hQUVVGUExFZEJRVWNzUTBGQlF6dEJRVU5hTEZOQlFVRTdTMEZEUmp0QlFVVkVPenM3UVVGSFJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4dlFrRkJiMElzUjBGQlFUdEJRVU0zUWl4UlFVRkJMRWxCUVVrc1NVRkJTU3hEUVVGRExHTkJRV01zUzBGQlN5eFBRVUZQTEVWQlFVVTdRVUZEYmtNc1dVRkJRU3hQUVVGUExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGRFTXNVMEZCUVR0QlFVRk5MR0ZCUVVFc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eExRVUZMTEU5QlFVOHNSVUZCUlR0WlFVTXhReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEY0VJc1UwRkJRVHRCUVVGTkxHRkJRVUU3UVVGRFRDeFpRVUZCTEU5QlFVOHNSMEZCUnl4RFFVRkRPMEZCUTFvc1UwRkJRVHRMUVVOR08wRkJSVVE3T3p0QlFVZEhPMEZCUTBnc1NVRkJRU3hKUVVGWExHMUNRVUZ0UWl4SFFVRkJPMEZCUXpWQ0xGRkJRVUVzU1VGQlNTeEpRVUZKTEVOQlFVTXNZVUZCWVN4TFFVRkxMRTlCUVU4c1JVRkJSVHRCUVVOc1F5eFpRVUZCTEU5QlFVOHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVTjBReXhUUVVGQk8wRkJRVTBzWVVGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4aFFVRmhMRXRCUVVzc1QwRkJUeXhGUVVGRk8xbEJRM3BETEU5QlFVOHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOd1FpeFRRVUZCTzBGQlFVMHNZVUZCUVR0QlFVTk1MRmxCUVVFc1QwRkJUeXhIUVVGSExFTkJRVU03UVVGRFdpeFRRVUZCTzB0QlEwWTdRVUZGUkN4SlFVRkJMRmRCUVVFc1EwRkJXU3hqUVVGelFpeEZRVUZCTzBGQlEyaERMRkZCUVVFc1MwRkJTeXhGUVVGRkxFTkJRVU03UVVGNFJWWTdPMEZCUlVjN1VVRkRTU3hKUVVGTkxFTkJRVUVzVFVGQlFTeEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVVndRanM3UVVGRlJ6dFJRVU5KTEVsQlFWRXNRMEZCUVN4UlFVRkJMRWRCUVVjc1MwRkJTeXhEUVVGRE8wRkJSWGhDT3p0QlFVVkhPMUZCUTBrc1NVRkJZU3hEUVVGQkxHRkJRVUVzUjBGQk9FSXNUVUZCVFN4RFFVRkRPMEZCUlhwRU96dEJRVVZITzFGQlEwa3NTVUZCWXl4RFFVRkJMR05CUVVFc1IwRkJPRUlzVFVGQlRTeERRVUZETzBGQlJURkVPenRCUVVWSE8xRkJRMGtzU1VGQllTeERRVUZCTEdGQlFVRXNSMEZCT0VJc1RVRkJUU3hEUVVGRE8xRkJSV3BFTEVsQlFVMHNRMEZCUVN4TlFVRkJMRWRCUVhkQ0xFVkJRVVVzUTBGQlF6dEJRV2xFZGtNc1VVRkJRU3hKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFXbENMR05CUVVFc1JVRkJRU3hqUVVGakxFVkJRVVVzUTBGQlF6dEJRVU01UXl4UlFVRkJMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzWTBGQll5eERRVUZET3p0QlFVZHlReXhSUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NaVUZCWlN4RFFVRkRPenM3UVVGSk5VSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU4wUWp0QlFVVk5MRWxCUVVFc1QwRkJUeXhEUVVGRExFbEJRWFZDTEVWQlFVRTdRVUZEY0VNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVONFFqdEJRVVZFT3pzN1FVRkhSenRCUVVOSkxFbEJRVUVzVjBGQlZ5eERRVUZETEU5QlQyeENMRVZCUVVFN08wRkJRME1zVVVGQlFTeEpRVUZKTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhIUVVGSExFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTnNSaXhaUVVGWkxFbEJRVWtzUTBGQlFTeEZRVUZCTEVkQlFVRXNUMEZCVHl4TFFVRlFMRWxCUVVFc1NVRkJRU3hQUVVGUExFdEJRVkFzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1QwRkJUeXhEUVVGRkxGVkJRVlVzVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeEhRVUZITEVOQlFVTTdRVUZGTTBNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRMMFE3UVVGRlJEczdRVUZGUnp0SlFVTkpMR3RDUVVGclFpeEhRVUZCTzBGQlEzWkNMRkZCUVVFc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRXRCUVVzc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMRU5CUVVNc1EwRkJRenRMUVVNeFJEdEJRVU5HT3p0QlF6bElSRHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQmIwZEJPMEZCUTA4c1UwRkJVeXhUUVVGVExFTkJRVU1zVDBGQlR5eEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1UwRkJVeXhGUVVGRk8wRkJRemRFTEVsQlFVa3NVMEZCVXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzVDBGQlR5eExRVUZMTEZsQlFWa3NRMEZCUXl4SFFVRkhMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eFZRVUZWTEU5QlFVOHNSVUZCUlN4RlFVRkZMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZPMEZCUTJoSUxFbEJRVWtzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFVkJRVVVzVlVGQlZTeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZPMEZCUXk5RUxGRkJRVkVzVTBGQlV5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlR0QlFVTnVSeXhSUVVGUkxGTkJRVk1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlR0QlFVTjBSeXhSUVVGUkxGTkJRVk1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTXNSVUZCUlR0QlFVTjBTQ3hSUVVGUkxFbEJRVWtzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeFZRVUZWTEVsQlFVa3NSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU01UlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVOUUxFTkJRVU03UVVGblRVUTdRVUZEZFVJc1QwRkJUeXhsUVVGbExFdEJRVXNzVlVGQlZTeEhRVUZITEdWQlFXVXNSMEZCUnl4VlFVRlZMRXRCUVVzc1JVRkJSU3hWUVVGVkxFVkJRVVVzVDBGQlR5eEZRVUZGTzBGQlEzWklMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRMMElzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXl4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEZWQlFWVXNSMEZCUnl4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pHT3p0QlF6RlVRU3hUUVVGVExIbENRVUY1UWl4RFFVRkRMRWxCUVZVc1JVRkJSU3hUUVVGcFFpeEZRVUZGTEVsQlFXOUNMRVZCUVVFN08wRkJRM0JHTEVsQlFVRXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUYzUWl4RFFVRkRPMEZCUld4RU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCYVVSSE96dEpRVWRJTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFbEJRVWtzUTBGQlF5eExRVUZMTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVjc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGRE0wTXNTVUZCU1N4VlFVRlZMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRM1JDTEZGQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXh0UkVGQmJVUXNVMEZCVXl4RFFVRkJMRzlEUVVGQkxFTkJRWE5ETEVOQlFVTXNRMEZCUXp0QlFVTnFTQ3hSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNTMEZCUVR0QlFVVkVMRWxCUVVFc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTnNReXhKUVVGSkxGTkJRVk1zU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEY2tJc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEV0QlFVRTdPMGxCUjBRc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTTFReXhKUVVGSkxGVkJRVlVzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEZEVJc1VVRkJRU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEc5RVFVRnZSQ3hUUVVGVExFTkJRVUVzYjBOQlFVRXNRMEZCYzBNc1EwRkJReXhEUVVGRE8wRkJRMnhJTEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhMUVVGQk8wRkJSVVFzU1VGQlFTeE5RVUZOTEdOQlFXTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF6czdTVUZIY0VRc1RVRkJUU3hWUVVGVkxFZEJRV2xDTEVWQlFVVXNRMEZCUXp0QlFVTndReXhKUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVrN1FVRkRka0lzVVVGQlFTeEpRVUZKTEZWQlFWVXNRMEZCUXl4TlFVRk5MRWRCUVVjc1kwRkJZeXhGUVVGRk8xbEJRM1JETEVsQlFVc3NUVUZCWXl4RFFVRkRMRTFCUVUwc1JVRkJSVHRCUVVNeFFpeG5Ra0ZCUVN4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVzlDTEVOQlFVTXNRMEZCUXp0QlFVTjJReXhoUVVGQk8wRkJRMFlzVTBGQlFUdEJRVU5JTEV0QlFVTXNRMEZCUXl4RFFVRkRPMEZCUlVnc1NVRkJRU3hQUVVGUExGVkJRVlVzUTBGQlF6dEJRVU53UWl4RFFVRkRPMEZCUlVRN096czdPenM3TzBGQlVVYzdRVUZEYlVJc1UwRkJRU3cyUWtGQk5rSXNRMEZCUXl4SlFVRlZMRVZCUVVVc1UwRkJhVUlzUlVGQlFUczdRVUZETDBVc1VVRkJRU3hOUVVGTkxFbEJRVWtzUjBGQmJVSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRhRVlzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUTNwRUxFTkJRVUVzUTBGQlFUdEJRVUZCTEVOQlFVRTdRVUZGUkRzN096czdPenM3UVVGUlJ6dEJRVU5ITEZOQlFXZENMRGhDUVVFNFFpeERRVUZETEVsQlFWVXNSVUZCUVRzN1VVRkROMFFzVFVGQlRTeExRVUZMTEVkQlFYRkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1FVRkRNVVVzVVVGQlFTeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJkMElzUTBGQlF6dFJRVVUxUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NTMEZCU1R0WlFVTTFRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eDVRa0ZCZVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUXpWRUxFbEJRVWtzVFVGQlRTeEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTnNRaXhuUWtGQlFTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU40UWl4aFFVRkJPMEZCUTBnc1UwRkJReXhEUVVGRExFTkJRVU03UVVGRlNDeFJRVUZCTEU5QlFVOHNSMEZCUnl4RFFVRkRPMHRCUTFvc1EwRkJRU3hEUVVGQk8wRkJRVUU3TzBGRE5VaEVPenM3T3pzN1FVRk5SenRCUVVOaExGTkJRVUVzT0VKQlFUaENMRU5CUVVNc1RVRkJhMElzUlVGQlJTeFJRVUYzUWl4RlFVRkJPenRKUVVONlJpeE5RVUZOTEdGQlFXRXNSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVVnVSQ3hKUVVGSkxFdEJRVXNzUjBGQmEwSXNTVUZCU1N4RFFVRkRPMGxCUldoRExFbEJRVWtzWVVGQllTeEpRVUZKTEVkQlFVY3NSVUZCUlR0QlFVTjRRaXhSUVVGQkxFdEJRVXNzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJTeFRRVUZUTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVa3NTVUZCU1N4RFFVRkRPMEZCUXpsRUxFdEJRVUU3UVVGQlRTeFRRVUZCTzBGQlYwd3NVVUZCUVN4TlFVRk5MRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU1zV1VGQmMwTXNRMEZCUXp0UlFVVnVSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJSVGRETEVsQlFVa3NRMEZCUVN4VFFVRlRMRXRCUVVFc1NVRkJRU3hKUVVGVUxGTkJRVk1zUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJWQ3hUUVVGVExFTkJRVVVzU1VGQlNTeE5RVUZMTEZkQlFWY3NSVUZCUlR0QlFVTnVReXhaUVVGQkxFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRPMEZCUTNwQ0xGTkJRVUU3UVVGRFJpeExRVUZCTzBGQlJVUXNTVUZCUVN4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObU96dEJRM1JEUVR0QlFVVmhMRTFCUVVFc2RVSkJRWFZDTEVkQlFVYzdRVUZEY2tNc1NVRkJRU3hGUVVGRkxFVkJRVVVzU1VGQlNUdEJRVU5TTEVsQlFVRXNSVUZCUlN4RlFVRkZMRWxCUVVrN1FVRkRVaXhKUVVGQkxFVkJRVVVzUlVGQlJTeEpRVUZKTzBGQlExSXNTVUZCUVN4RlFVRkZMRVZCUVVVc1NVRkJTVHRCUVVOU0xFbEJRVUVzUlVGQlJTeEZRVUZGTEVsQlFVazdRVUZEVWl4SlFVRkJMRXRCUVVzc1JVRkJSU3hQUVVGUE8wRkJRMlFzU1VGQlFTeExRVUZMTEVWQlFVVXNUMEZCVHp0QlFVTmtMRWxCUVVFc1MwRkJTeXhGUVVGRkxFOUJRVTg3UVVGRFpDeEpRVUZCTEVkQlFVY3NSVUZCUlN4TFFVRkxPMEZCUTFZc1NVRkJRU3hQUVVGUExFVkJRVVVzVTBGQlV6dEJRVU5zUWl4SlFVRkJMRTFCUVUwc1JVRkJSU3hSUVVGUk8wRkJRMmhDTEVsQlFVRXNVMEZCVXl4RlFVRkZMRmRCUVZjN1FVRkRkRUlzU1VGQlFTeFJRVUZSTEVWQlFVVXNWVUZCVlR0QlFVTndRaXhKUVVGQkxGRkJRVkVzUlVGQlJTeFZRVUZWTzBGQlEzQkNMRWxCUVVFc1UwRkJVeXhGUVVGRkxGZEJRVmM3UVVGRGRFSXNTVUZCUVN4VFFVRlRMRVZCUVVVc1YwRkJWenRCUVVOMFFpeEpRVUZCTEZWQlFWVXNSVUZCUlN4WlFVRlpPMEZCUTNoQ0xFbEJRVUVzVDBGQlR5eEZRVUZGTEZOQlFWTTdPenRCUTNCQ2NFSTdPenM3UVVGSlJ6dEJRVU5ITEZOQlFWVXNVVUZCVVN4RFFVRkRMRXRCUVdFc1JVRkJRVHRCUVVOd1F5eEpRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU0zUXpzN1RVTklZU3h2UWtGQmIwSXNRMEZCUVR0QlFYRkNMMElzU1VGQlFTeEpRVUZYTEZkQlFWY3NSMEZCUVR0QlFVTndRaXhSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRMUVVOdVF6dEJRVTFFTEVsQlFVRXNTVUZCVnl4aFFVRmhMRWRCUVVFN1VVRkRkRUlzVDBGQlR5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdTMEZETDBNN1FVRkZSRHM3UVVGRlJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4dFFrRkJiVUlzUjBGQlFUdFJRVU0xUWl4TlFVRk5MRTFCUVUwc1IwRkJNRVFzUlVGQlJTeERRVUZETzBGQlJYcEZMRkZCUVVFc1RVRkJUU3hoUVVGaExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFWTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZPVVVzVVVGQlFTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hWUVVGVkxFTkJRVU1zUzBGQlNUdEJRVU5xUlN4WlFVRkJMRWxCUVVrc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlR0QlFVTXpRaXhuUWtGQlFTeE5RVUZOTEVOQlFVTXNTVUZCSzBJc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF6dEJRVU4wUkN4aFFVRkJPMEZCUTBnc1UwRkJReXhEUVVGRExFTkJRVU03UVVGRlNDeFJRVUZCTEU5QlFVOHNUVUZCVFN4RFFVRkRPMHRCUTJZN1FVRkZSRHM3UVVGRlJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4dFFrRkJiVUlzUjBGQlFUdFJRVU0xUWl4TlFVRk5MRTFCUVUwc1IwRkJjME1zUlVGQlJTeERRVUZETzBGQlJYSkVMRkZCUVVFc1RVRkJUU3hoUVVGaExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFWTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZPVVVzVVVGQlFTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hWUVVGVkxFTkJRVU1zUzBGQlNUdEJRVU5xUlN4WlFVRkJMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZPMEZCUXpWQ0xHZENRVUZCTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU03UVVGRE0wSXNZVUZCUVR0QlFVTklMRk5CUVVNc1EwRkJReXhEUVVGRE8wRkJSVWdzVVVGQlFTeFBRVUZQTEUxQlFVMHNRMEZCUXp0TFFVTm1PMEZCUlVRN08wRkJSVWM3UVVGRFNDeEpRVUZCTEZkQlFVRXNSMEZCUVR0QlFYSkZRVHM3UVVGRlJ6dFJRVU5KTEVsQlFXOUNMRU5CUVVFc2IwSkJRVUVzUjBGQlJ5eERRVUZETEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03UVVGRmJrVTdPMEZCUlVjN1VVRkRTU3hKUVVGeFFpeERRVUZCTEhGQ1FVRkJMRWRCUVVjc1EwRkJReXhWUVVGVkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRCUVVVdlJUczdRVUZGUnp0QlFVTkpMRkZCUVVFc1NVRkJRU3hEUVVGQkxHOUNRVUZ2UWl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJSVGRFT3pzN1FVRkhSenRSUVVOTExFbEJRVmtzUTBGQlFTeFpRVUZCTEVkQlFXOUNMRVZCUVVVc1EwRkJRenRCUVVzelF6czdRVUZGUnp0UlFVTkxMRWxCUVdNc1EwRkJRU3hqUVVGQkxFZEJRWE5ETEVWQlFVVXNRMEZCUXpzN1MwRTBRemxFTzBGQlJVUTdPenM3UVVGSlJ6dEJRVU5KTEVsQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVRSQ0xFVkJRVUU3TzFGQlJYUkRMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1FVRkRMME1zVVVGQlFTeFhRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hMUVVGSk8wRkJRMnBETEZsQlFVRXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUTNoRExGTkJRVU1zUTBGQlF5eERRVUZET3p0UlFVZElMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNWVUZCVlN4TFFVRkpPMEZCUTNwRExGbEJRVUVzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlEzUkRMRk5CUVVNc1EwRkJReXhEUVVGRE96dFJRVWRJTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUjBGQlJ5eE5RVUZOTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdVVUZEYWtVc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4SFFVRkhMRTFCUVUwc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOdVJTeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFZEJRVWNzVFVGQlRTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlJXcEZMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UzBGRFlqdEJRVVZFT3pzN1FVRkhSenRKUVVOSkxFdEJRVXNzUjBGQlFUdFJRVU5XTEU5QlFVOHNTVUZCU1N4dlFrRkJiMElzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVNNVF6dEJRVVZFT3pzN096dEJRVXRITzBGQlEwa3NTVUZCUVN4aFFVRmhMRU5CUVVNc1NVRkJjME1zUlVGQlFUczdVVUZEZWtRc1QwRkJUeXhEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGSkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGQkxFbEJRVWtzUTBGQlF6dExRVU14UXp0QlFVVkVPenM3TzBGQlNVYzdRVUZEU1N4SlFVRkJMR3RDUVVGclFpeERRVUZETEZWQlFYbENMRVZCUVVFN1FVRkRha1FzVVVGQlFTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU51UXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGVkJRVlVzUTBGQlF5eGpRVUZqTEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNN1MwRkROMFE3UVVGRlJEczdPenRCUVVsSE8wRkJRMGtzU1VGQlFTeHZRa0ZCYjBJc1EwRkJReXhWUVVGNVFpeEZRVUZCTzFGQlEyNUVMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRM0JFTEZGQlFVRXNTVUZCU1N4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3UVVGRGFFSXNXVUZCUVN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUZRVUZ0UlN4RFFVRkRMRU5CUVVNN1FVRkRia1lzVTBGQlFUdFJRVVZFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVReXhQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNWVUZCVlN4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8wdEJRM1pFTzBGQlJVUTdPenM3TzBGQlMwYzdRVUZEU1N4SlFVRkJMRkZCUVZFc1EwRkJReXhKUVVGelF5eEZRVUZCT3p0UlFVTndSQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRelZETEU5QlFVOHNRMEZCUVN4RlFVRkJMRWRCUVVFc1ZVRkJWU3hMUVVGQkxFbEJRVUVzU1VGQlZpeFZRVUZWTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVllzVlVGQlZTeERRVUZGTEUxQlFVMHNUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4SlFVRkpMRU5CUVVNN1MwRkRia003UVVGRlJEczdPenM3UVVGTFJ6dEpRVU5KTEZGQlFWRXNRMEZCUXl4SlFVRnpReXhGUVVGRkxFMUJRV01zUlVGQlFUdFJRVU53UlN4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUXpWRExGRkJRVUVzU1VGQlNTeFZRVUZWTEVWQlFVVTdRVUZEWkN4WlFVRkJMRlZCUVZVc1EwRkJReXhOUVVGTkxFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTNSRExGTkJRVUU3UzBGRFJqdEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCZVVKSE8wRkJRMGtzU1VGQlFTeHpRa0ZCYzBJc1EwRkJReXhKUVVGelF5eEZRVUZCTzFGQlEyeEZMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkROVU1zVVVGQlFTeFBRVUZQTEZWQlFWVXNSMEZCUnl4RFFVRkhMRVZCUVVFc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlV5eFBRVUZCTEVOQlFVRXNSMEZCUnl4SlFVRkpMRU5CUVVNN1MwRkRlRVE3UVVGRlJEczdRVUZGUnp0SlFVTkpMRTFCUVUwc1IwRkJRVHM3UVVGRldDeFJRVUZCTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzU1VGQlNTeERRVUZETERKQ1FVRXlRaXhGUVVGRkxFTkJRVU03TzFGQlJ6ZEVMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNWVUZCVlN4TFFVRkpPMWxCUTNaRExGVkJRVlVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8wRkJRMnhETEZOQlFVTXNRMEZCUXl4RFFVRkRPenRSUVVkSUxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hMUVVGSk8xbEJRM1pETEVsQlFVa3NWVUZCVlN4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVOeVFpeFpRVUZCTEUxQlFVMHNTVUZCU1N4SFFVRkhMRlZCUVZVc1EwRkJReXhqUVVGakxFTkJRVU03V1VGRmRrTXNTVUZCU1N4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzBGQlEyeEVMR2RDUVVGQkxGVkJRVlVzU1VGQlNTeHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFTkJRVU03UVVGRGRrTXNZVUZCUVR0WlFVVkVMRWxCUVVrc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0QlFVTnVSQ3huUWtGQlFTeFZRVUZWTEVsQlFVa3NhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEzaERMR0ZCUVVFN1dVRkZSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN1FVRkRiRVFzWjBKQlFVRXNWVUZCVlN4SlFVRkpMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTjJReXhoUVVGQk8wRkJSVVFzV1VGQlFTeFZRVUZWTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU42UXl4VFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOS08wRkJSVVE3TzBGQlJVYzdTVUZEU3l3eVFrRkJNa0lzUjBGQlFUdFJRVXRxUXl4SlFVRkpMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGFFSXNTVUZCU1N4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRE8xRkJRMnBDTEVsQlFVa3NTMEZCU3l4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVWb1FpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExGVkJRVlVzUzBGQlNUdEJRVU4yUXl4WlFVRkJMRXRCUVVzc1NVRkJTU3hWUVVGVkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1FVRkRlRU1zV1VGQlFTeE5RVUZOTEVsQlFVa3NWVUZCVlN4RFFVRkRMRzlDUVVGdlFpeERRVUZETzBGQlF6RkRMRmxCUVVFc1MwRkJTeXhKUVVGSkxGVkJRVlVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJRenRCUVVNeFF5eFRRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNM1FpeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdVVUZETDBJc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJSVGRDTEZGQlFVRXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTTdTMEZEYWtNN1FVRkRSanM3UVVOc1VVUTdRVUZGWVN4TlFVRkJMRGhDUVVFNFFpeEhRVUZITzBGQlF6VkRMRWxCUVVFc1MwRkJTeXhGUVVGRkxFOUJRVTg3UVVGRFpDeEpRVUZCTEdGQlFXRXNSVUZCUlN4bFFVRmxPMEZCUXpsQ0xFbEJRVUVzVlVGQlZTeEZRVUZGTEZsQlFWazdRVUZEZUVJc1NVRkJRU3hYUVVGWExFVkJRVVVzWVVGQllUdEJRVU14UWl4SlFVRkJMRkZCUVZFc1JVRkJSU3hWUVVGVk8wRkJRM0JDTEVsQlFVRXNXVUZCV1N4RlFVRkZMR05CUVdNN1JVRkRia0k3UVVGTFNpeE5RVUZOTERSQ1FVRTBRaXhIUVVGclJUdEpRVU42Unl4TlFVRk5MRVZCUVVVc09FSkJRVGhDTEVOQlFVTXNTMEZCU3p0SlFVTTFReXhqUVVGakxFVkJRVVVzT0VKQlFUaENMRU5CUVVNc1lVRkJZVHRKUVVNMVJDeFhRVUZYTEVWQlFVVXNPRUpCUVRoQ0xFTkJRVU1zVlVGQlZUdEpRVU4wUkN4VFFVRlRMRVZCUVVVc09FSkJRVGhDTEVOQlFVTXNVVUZCVVR0SlFVTnNSQ3hoUVVGaExFVkJRVVVzT0VKQlFUaENMRU5CUVVNc1dVRkJXVHREUVVNelJEczdRVU5vUWtRc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRnRRbXBET3p0QlFVVkhPMDFCUTFVc09FSkJRVGhDTEVOQlFVRTdTVUZ6UkhwRExGZEJRVzFDTEVOQlFVRXNSVUZEYWtJc1VVRkJVU3hGUVVOU0xFbEJRVWtzUlVGRFNpeFhRVUZYTEVWQlExZ3NWMEZCVnl4SFFYRkNXaXhGUVVGQk8wRkJRME1zVVVGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJRenRCUVVONlFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJRMnBDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhYUVVGWExFTkJRVU03VVVGREwwSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhYUVVGWExFdEJRVUVzU1VGQlFTeEpRVUZZTEZkQlFWY3NTMEZCV0N4TFFVRkJMRU5CUVVFc1IwRkJRU3hYUVVGWExFZEJRVWtzUjBGQlJ5eERRVUZET3p0QlFVZDBReXhSUVVGQkxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeERRVUZETzBGQlEzcERMRkZCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03VVVGRGVrTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhGUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZCUXp0TFFVTm9RenRCUVVWTkxFbEJRVUVzVjBGQlZ5eERRVUZETEUxQlFXTXNSVUZCUVR0UlFVTXZRaXhOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRmNrTXNTVUZCU1N4TFFVRkxMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRMnBDTEZsQlFVRXNUVUZCVFN4RlFVRkZMRmxCUVZrc1JVRkJSU3hWUVVGVkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTTdXVUZGTTBNc1RVRkJUU3hOUVVGTkxFZEJRVWtzU1VGQlNTeERRVUZETEZGQlFXZENMRU5CUVVNc1dVRkJXU3hEUVVGblFpeERRVUZETzFsQlEyNUZMRWxCUVVrc1RVRkJUU3hKUVVGSkxGTkJRVk1zUlVGQlJUdEJRVU4yUWl4blFrRkJRU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zWTBGQll5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkROVVFzWVVGQlFUdEJRVU5HTEZOQlFVRTdVVUZGUkN4SlFVRkpMRXRCUVVzc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGFrSXNXVUZCUVN4TlFVRk5MRVZCUVVVc1dVRkJXU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVVXpReXhOUVVGTkxFMUJRVTBzUjBGQlNTeEpRVUZKTEVOQlFVTXNVVUZCWjBJc1EwRkJReXhaUVVGWkxFTkJRVmNzUTBGQlF6dFpRVU01UkN4SlFVRkpMRTFCUVUwc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlEzSkNMRWxCUVVrc1EwRkJReXhSUVVGblFpeERRVUZETEZsQlFWa3NRMEZCV1N4SlFVRkpMRlZCUVZVc1IwRkJSeXhOUVVGTkxFTkJRVU03UVVGRGVrVXNZVUZCUVR0QlFVTkdMRk5CUVVFN1MwRkRSanRKUVVWTkxHdENRVUZyUWl4SFFVRkJPMUZCUTNaQ0xFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dFJRVVZ5UXl4SlFVRkpMRXRCUVVzc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGFrSXNXVUZCUVN4TlFVRk5MRVZCUVVVc1dVRkJXU3hGUVVGRkxGbEJRVmtzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVVTNReXhOUVVGTkxFMUJRVTBzUjBGQlNTeEpRVUZKTEVOQlFVTXNVVUZCWjBJc1EwRkJReXhaUVVGWkxFTkJRV2RDTEVOQlFVTTdXVUZEYmtVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVTBGQlV5eEZRVUZGTzBGQlEzWkNMR2RDUVVGQkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1FVRkRNMElzWVVGQlFUdEJRVU5HTEZOQlFVRTdVVUZGUkN4SlFVRkpMRXRCUVVzc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGFrSXNXVUZCUVN4TlFVRk5MRVZCUVVVc1dVRkJXU3hGUVVGRkxGbEJRVmtzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVVTNReXhOUVVGTkxFMUJRVTBzUjBGQlNTeEpRVUZKTEVOQlFVTXNVVUZCWjBJc1EwRkJReXhaUVVGWkxFTkJRVmNzUTBGQlF6dFpRVU01UkN4SlFVRkpMRTFCUVUwc1NVRkJTU3hUUVVGVExFVkJRVVU3UVVGRGNrSXNaMEpCUVVFc1NVRkJTU3hEUVVGRExGRkJRV2RDTEVOQlFVTXNXVUZCV1N4RFFVRlpMRWRCUVVjc1dVRkJXU3hEUVVGRE8wRkJRMnBGTEdGQlFVRTdRVUZEUml4VFFVRkJPMHRCUTBZN1NVRkZUeXh0UWtGQmJVSXNSMEZCUVRzN1VVRkRla0lzVFVGQlRTeEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRVZCUVVVc1YwRkJWeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETzBGQlJUZERMRkZCUVVFc1RVRkJUU3hsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03UVVGRGJrUXNVVUZCUVN4TlFVRk5MRmxCUVZrc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4bFFVRmxMR0ZCUVdZc1pVRkJaU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRm1MR1ZCUVdVc1EwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJTU3hKUVVGSkxFTkJRVU03VVVGRk1VUXNTVUZCU1N4WlFVRlpMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRM2hDTEZsQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRWaXhEUVVGQkxHMUVRVUZCTEVWQlEwVXNUVUZCUVN4UlFVRlJMRU5CUVVNc1NVRkJTU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGSkxGZEJRMjVDTEVOQlFVRXNWMEZCUVN4RlFVRmpMRWxCUVVrc1EwRkJRU3dyUTBGQlFTeERRVUZwUkN4RFFVTndSU3hEUVVGRE8wRkJSVVlzV1VGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMRk5CUVVFN1FVRkZSQ3hSUVVGQkxFMUJRVTBzVFVGQlRTeEhRVUZKTEZGQlFXZENMRU5CUVVNc1dVRkJXU3hEUVVGblFpeERRVUZETzBGQlJUbEVMRkZCUVVFc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPenRCUVVkd1F5eFJRVUZCTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGRGFFTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF5eEZRVU01UWl4WFFVRlhMRU5CUVVNc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVWQlF6bENMRmRCUVZjc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEVOQlFVTXNRMEZETDBJc1EwRkJRenRCUVVWR0xGRkJRVUVzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFTkJRVU03UzBGRGJrUTdTVUZGVHl4dFFrRkJiVUlzUjBGQlFUczdVVUZEZWtJc1RVRkJUU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJSVGRETEZGQlFVRXNUVUZCVFN4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRU5CUVVNN1FVRkRia1FzVVVGQlFTeE5RVUZOTEZsQlFWa3NSMEZCUnl4RFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeGxRVUZsTEdGQlFXWXNaVUZCWlN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZtTEdWQlFXVXNRMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eERRVUZETEVOQlFVTXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCU1N4SlFVRkpMRU5CUVVNN1FVRkZNVVFzVVVGQlFTeEpRVUZKTEZsQlFWa3NTVUZCU1N4SlFVRkpMRWxCUVVrc1YwRkJWeXhMUVVGTExFZEJRVWNzUlVGQlJUdEJRVU12UXl4WlFVRkJMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRMVlzUTBGQlFTeHRSRUZCUVN4RlFVTkZMRTFCUVVFc1VVRkJVU3hEUVVGRExFbEJRVWtzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlNTeFhRVU51UWl4RFFVRkJMRmRCUVVFc1JVRkJZeXhKUVVGSkxFTkJRVUVzY1VSQlFVRXNRMEZCZFVRc1EwRkRNVVVzUTBGQlF6dEJRVVZHTEZsQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhUUVVGQk8xRkJSVVFzU1VGQlNTeFpRVUZaTEVsQlFVa3NTVUZCU1N4RlFVRkZPMEZCUTNoQ0xGbEJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4VFFVRkJPMEZCUlVRc1VVRkJRU3hOUVVGTkxGbEJRVmtzUjBGQlNTeFJRVUZuUWl4RFFVRkRMRmxCUVZrc1EwRkJWeXhEUVVGRE8wRkJSUzlFTEZGQlFVRXNUVUZCVFN4VlFVRlZMRWRCUVVjc1YwRkJWeXhIUVVGSExGbEJRVmtzUTBGQlF6dEJRVVU1UXl4UlFVRkJMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUlN4RFFVRkRPMHRCUTI1RU8wbEJSVThzYlVKQlFXMUNMRWRCUVVFN08wRkJSM3BDTEZGQlFVRXNVVUZEUlN4RFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRGhDUVVFNFFpeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1MwRkJTVHRaUVVNeFJpeFBRVUZSTEVsQlFVa3NRMEZCUXl4UlFVRm5RaXhEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXp0QlFVTjRSQ3hUUVVGRExFTkJRVU1zVFVGQlJ5eEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUVN4RFFVRkRMRU5CUVVNc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFVkJRMlk3UzBGRFNEczdRVUYyVFVRN096czdRVUZKUnp0QlFVTklPMEZCUTBFN1FVRkRaU3c0UWtGQlFTeERRVUZCTEcxQ1FVRnRRaXhIUVVVNVFqdEJRVU5HTEVsQlFVRXNjMEpCUVhOQ0xFVkJRVVU3UVVGRGRFSXNVVUZCUVN4TFFVRkxMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVVVzVTBGQlV5eERRVUZETzBGQlF6TkNMRkZCUVVFc1lVRkJZU3hGUVVGRkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXp0QlFVTnNReXhMUVVGQk8wRkJRMFFzU1VGQlFTeHRRa0ZCYlVJc1JVRkJSVHRCUVVOdVFpeFJRVUZCTEV0QlFVc3NSVUZCUlN4RFFVRkRMRTlCUVU4c1JVRkJSU3hUUVVGVExFTkJRVU03UVVGRE5VSXNTMEZCUVR0QlFVTkVMRWxCUVVFc1pVRkJaU3hGUVVGRk8wRkJRMllzVVVGQlFTeExRVUZMTEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1UwRkJVeXhEUVVGRE8wRkJRek5DTEZGQlFVRXNZVUZCWVN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF6dEJRVU5xUXl4UlFVRkJMRmxCUVZrc1JVRkJSU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZMRWxCUVVrc1EwRkJRenRCUVVNeFF5eFJRVUZCTEZkQlFWY3NSVUZCUlN4RFFVRkRMR05CUVdNc1JVRkJSU3hKUVVGSkxFTkJRVU03UVVGRGJrTXNVVUZCUVN4UlFVRlJMRVZCUVVVc1EwRkJReXd3UWtGQk1FSXNSVUZCUlN4SlFVRkpMRU5CUVVNN1FVRkROVU1zVVVGQlFTeFZRVUZWTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeEpRVUZKTEVOQlFVTTdRVUZEZGtNc1MwRkJRVHREUVVOR096dEJRMnBFU0RzN1FVRkZSenROUVVOVkxEUkNRVUUwUWl4RFFVRkJPMEZCWjBKMlF5eEpRVUZCTEZkQlFVRXNRMEZCYlVJc1JVRkRha0lzVlVGQlZTeEZRVU5XTEV0QlFVc3NSVUZEVEN4TlFVRk5MRWRCWjBKUUxFVkJRVUU3UVVGRFF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1ZVRkJWU3hEUVVGRE8wRkJRemRDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRGJrSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF6dExRVU4wUWp0QlFVVk5MRWxCUVVFc1YwRkJWeXhEUVVGRExFMUJRV01zUlVGQlFUdFJRVU12UWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NTMEZCU1RzN1FVRkRMMElzV1VGQlFTeEpRVUZKTEVOQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU1N4SlFVRkpMRVZCUVVVN1FVRkRjRVFzWjBKQlFVRXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0QlFVTm9SU3hoUVVGQk8wRkJRMGdzVTBGQlF5eERRVUZETEVOQlFVTTdTMEZEU2p0SlFVVk5MR3RDUVVGclFpeEhRVUZCTzFGQlEzWkNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4TFFVRkpPenRCUVVNdlFpeFpRVUZCTEVsQlFVa3NRMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkpMRWxCUVVrc1JVRkJSVHRuUWtGRGNFUXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRE9VTXNZVUZCUVR0QlFVTklMRk5CUVVNc1EwRkJReXhEUVVGRE8wdEJRMG83UVVGRFJqczdRVU16UkVRc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkZhRU03TzBGQlJVYzdUVUZEVlN4cFEwRkJhVU1zUTBGQlFUdEJRV3RFTlVNc1NVRkJRU3hYUVVGQkxFTkJRVzFDTEVWQlEycENMRkZCUVZFc1JVRkRVaXhMUVVGTExFVkJRMHdzVFVGQlRTeEhRV2RDVUN4RlFVRkJPenRCUVVORExGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4UlFVRlJMRU5CUVVNN1FVRkRla0lzVVVGQlFTeEpRVUZKTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVOdVFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRE8wRkJSWEpDTEZGQlFVRXNUVUZCVFN4aFFVRmhMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4cFEwRkJhVU1zUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGRE5VWXNRMEZCUXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGSk8wRkJRMnhDTEZsQlFVRXNUMEZCVVN4UlFVRm5RaXhEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXp0QlFVTnVSQ3hUUVVGRExFTkJRMFlzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWUUxFbEJRVWtzWVVGQllTeEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTjZRaXhaUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlExWXNRMEZCUVN4elJFRkJRU3hGUVVORkxFTkJRVUVzUlVGQlFTeEhRVUZCTEZGQlFWRXNRMEZCUXl4SlFVRkpMRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1YwRkRia0lzUTBGQmNVTXNiVU5CUVVFc1EwRkJRU3hEUVVOMFF5eERRVUZETzBGQlJVWXNXVUZCUVN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dEJRVU4yUWl4VFFVRkJPMEZCUVUwc1lVRkJRVHRCUVVOTUxGbEJRVUVzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkZkRUlzV1VGQlFTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1dVRkJXU3hMUVVGSk96dG5Ra0ZEY2tNc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVVXNVVUZCWjBJc1EwRkJReXhaUVVGWkxFTkJRU3RDTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU03WjBKQlEzaEdMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVU3UVVGRFdpeHZRa0ZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOaUxHbENRVUZCTzBGQlJVRXNaMEpCUVVFc1VVRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNN1owSkJSVEZETEUxQlFVMHNZVUZCWVN4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdaMEpCUXpkRExFMUJRVTBzV1VGQldTeEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03WjBKQlF6VkRMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03WjBKQlEzUkVMRTFCUVUwc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03UVVGRmJrUXNaMEpCUVVFc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEY0VJc2IwSkJRVUVzU1VGQlNTeEZRVUZGTEZsQlFWazdiMEpCUTJ4Q0xHRkJRV0U3YjBKQlEySXNWMEZCVnp0dlFrRkRXQ3haUVVGWk8yOUNRVU5hTEZWQlFWVTdRVUZEV0N4cFFrRkJRU3hEUVVGRExFTkJRVU03UVVGRFRDeGhRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMRk5CUVVFN1MwRkRSanRCUVVWTkxFbEJRVUVzVjBGQlZ5eERRVUZETEUxQlFXTXNSVUZCUVR0UlFVTXZRaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRkZCUVZFc1MwRkJTVHRaUVVOd1F5eE5RVUZOTEUxQlFVMHNSMEZCU1N4SlFVRkpMRU5CUVVNc1VVRkJaMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRnJRaXhEUVVGRE8xbEJRM1JGTEVsQlFVa3NUVUZCVFN4TFFVRkxMRk5CUVZNc1JVRkJSVHRuUWtGRGVFSXNUMEZCVHp0QlFVTlNMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzcEZMRmxCUVVFc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE1VVXNVMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRTanRKUVVWTkxHdENRVUZyUWl4SFFVRkJPMUZCUTNaQ0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hMUVVGSk8xbEJRM0JETEUxQlFVMHNUVUZCVFN4SFFVRkpMRWxCUVVrc1EwRkJReXhSUVVGblFpeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVd0Q0xFTkJRVU03V1VGRGRFVXNTVUZCU1N4TlFVRk5MRXRCUVVzc1UwRkJVeXhGUVVGRk8yZENRVU40UWl4UFFVRlBPMEZCUTFJc1lVRkJRVHRaUVVWRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFpRVU16UXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1FVRkROVU1zVTBGQlF5eERRVUZETEVOQlFVTTdTMEZEU2pzN1FVRjRTV01zYVVOQlFVRXNRMEZCUVN4cFFrRkJhVUlzUjBGQk1FTTdRVUZEZUVVc1NVRkJRU3h6UWtGQmMwSXNSVUZCUlR0UlFVTjBRaXhMUVVGTE8xRkJRMHdzWVVGQllUdFJRVU5pTEZOQlFWTTdVVUZEVkN4WFFVRlhPMUZCUTFnc2FVSkJRV2xDTzFGQlEycENMR05CUVdNN1VVRkRaQ3hqUVVGak8xRkJRMlFzVlVGQlZUdEJRVU5ZTEV0QlFVRTdRVUZEUkN4SlFVRkJMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMR0ZCUVdFc1JVRkJSU3hWUVVGVkxFTkJRVU03UVVGRGRrUXNTVUZCUVN4bFFVRmxMRVZCUVVVN1VVRkRaaXhMUVVGTE8xRkJRMHdzVjBGQlZ6dFJRVU5ZTEdGQlFXRTdVVUZEWWl4elFrRkJjMEk3VVVGRGRFSXNiMEpCUVc5Q08xRkJRM0JDTERaQ1FVRTJRanRSUVVNM1FpeDNRa0ZCZDBJN1FVRkRla0lzUzBGQlFUdERRVU5HT3p0QlEyWklPenRCUVVWSE8wRkJRMGdzVFVGQlRVRXNkMEpCUVhOQ0xFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVUxUkRzN1FVRkZSenROUVVOVkxIbENRVUY1UWl4RFFVRkJPMEZCZVVKd1F5eEpRVUZCTEVsQlFWY3NTVUZCU1N4SFFVRkJPenRCUVVWaUxGRkJRVUVzVDBGQlR5d3lRa0ZCTWtJc1EwRkJRenRMUVVOd1F6dEJRVVZFTEVsQlFVRXNWMEZCUVN4RFFVRnRRaXhOUVVGclFpeEZRVUZCTzBGQlEyNURMRkZCUVVFc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdTMEZEZEVJN1FVRkZXU3hKUVVGQkxGTkJRVk1zUTBGQlF5eEpRVUZWTEVWQlFVRTdPMEZCUXk5Q0xGbEJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4dlFrRkJiMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGREwwUXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkJRVHRCUVVWRU96czdPMEZCU1VjN1FVRkRWeXhKUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZWTEVWQlFVRTdPMWxCUXpsQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU0xUXl4WlFVRkJMRWxCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zWjBKQlFVRXNUMEZCVHl4UlFVRlJMRU5CUVVNN1FVRkRha0lzWVVGQlFUdFpRVVZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTTFReXhaUVVGQkxFbEJRVWtzVVVGQlVTeEZRVUZGTzBGQlExb3NaMEpCUVVFc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGFrSXNZVUZCUVR0QlFVVkVMRmxCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03VTBGRFlpeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVRkJPMEZCUldFc1NVRkJRU3hUUVVGVExFTkJRVU1zU1VGQlZTeEZRVUZCT3pzN1FVRkRhRU1zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdPMEZCUjJ4RUxGbEJRVUVzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eE5RVUZGTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTzBGQlEyUXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzFsQlJVUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhWUVVGVkxFTkJRVzlETEVOQlFVTTdXVUZEYmtZc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJUdEJRVU5rTEdkQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMklzWVVGQlFUdEJRVVZFTEZsQlFVRXNUVUZCVFN4WFFVRlhMRWRCUVVjc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF6dEJRVU14UXl4WlFVRkJMRWxCUVVrc1EwRkJRMEVzZDBKQlFYTkNMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTzBGQlF6VkRMR2RDUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNORVJCUVRSRUxGZEJRVmNzUTBGQlFTeERRVUZCTEVOQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNwR0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhUUVVGVExFTkJRVU1zVjBGQlZ5eERRVUZETzFsQlEyaEVMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSVUZCUlR0QlFVTjBRaXhuUWtGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMR0ZCUVVFN08wRkJSMFFzV1VGQlFTeE5RVUZOTEdGQlFXRXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJVeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU01UlN4WlFVRkJMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVd0RExFTkJRVU03UVVGRk1VVXNXVUZCUVN4SlFVRkpMR2xDUVVGcFFpeERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRjRU1zWjBKQlFVRXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4blFrRkJaMElzUTBGQlF5eExRVUZKTzI5Q1FVTTFSU3hKUVVGSkxHZENRVUZuUWl4SlFVRkpMRWxCUVVrc1JVRkJSVHQzUWtGRE5VSXNUMEZCVHp0QlFVTlNMSEZDUVVGQk8wRkJSVVFzYjBKQlFVRXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdRVUZETlVJc2QwSkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4dFJFRkJiVVFzU1VGQlNTeERRVUZCTEcxRFFVRkJMRU5CUVhGRExFTkJRVU1zUTBGQlF6dDNRa0ZETTBjc1QwRkJUenRCUVVOU0xIRkNRVUZCTzBGQlJVUXNiMEpCUVVFc2RVSkJRWFZDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4RFFVRkRPMEZCUTNSRUxHbENRVUZETEVOQlFVTXNRMEZCUXp0QlFVTktMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFbEJRVWtzYVVKQlFXbENMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU53UXl4blFrRkJRU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxHZENRVUZuUWl4RFFVRkRMRXRCUVVrN1FVRkROVVVzYjBKQlFVRXNTVUZCU1N4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzBGQlF6TkNMSGRDUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlExWXNlVVZCUVhsRkxFbEJRVWtzUTBGQlFTd3dRa0ZCUVN4RFFVRTBRaXhEUVVNeFJ5eERRVUZETzNkQ1FVTkdMRTlCUVU4N1FVRkRVaXh4UWtGQlFUdEJRVVZFTEc5Q1FVRkJMSFZDUVVGMVFpeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0QlFVTjBSQ3hwUWtGQlF5eERRVUZETEVOQlFVTTdRVUZEU2l4aFFVRkJPenRCUVVkRUxGbEJRVUVzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4dlFrRkJiMElzUlVGQlJTeERRVUZET3p0WlFVY3pReXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlEyWXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMR2RDUVVGblFpeERRVUZETEV0QlFVa3NVMEZCUVN4RFFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFTkJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4aFFVRkJPenRCUVVOdVJpeG5Ra0ZCUVN4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTXpReXhuUWtGQlFTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZGTTBJc1ZVRkJWU3hEUVVGRExGRkJRVkVzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4blFrRkJaMElzUTBGQlF5eFJRVUZSTEUxQlFVa3NTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVRXNTMEZCU3l4RFFVRkRPMmRDUVVONlJDeFZRVUZWTEVOQlFVTXNZVUZCWVN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxHZENRVUZuUWl4RFFVRkRMR0ZCUVdFc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hOUVVGTkxFTkJRVU03WjBKQlEzQkZMRlZCUVZVc1EwRkJReXhqUVVGakxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNaMEpCUVdkQ0xFTkJRVU1zWTBGQll5eE5RVUZKTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZCTEUxQlFVMHNRMEZCUXp0blFrRkRkRVVzVlVGQlZTeERRVUZETEdGQlFXRXNSMEZCUnl4RFFVRkJMRVZCUVVFc1IwRkJRU3huUWtGQlowSXNRMEZCUXl4aFFVRmhMRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1RVRkJUU3hEUVVGRE8yZENRVVZ3UlN4RFFVRkJMRVZCUVVFc1IwRkJRU3huUWtGQlowSXNRMEZCUXl4blFrRkJaMElzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUlN4UFFVRlBMRU5CUVVNc1EwRkJUeXhKUVVGSkxFdEJRVWtzVTBGQlFTeERRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRU5CUVVFc1JVRkJRU3hMUVVGQkxFTkJRVUVzUlVGQlFTeGhRVUZCT3p0dlFrRkRlRVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMRk5CUVZNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eExRVUZMTEZOQlFWTXNSVUZCUlR0M1FrRkRka1FzVDBGQlR6dEJRVU5TTEhGQ1FVRkJPMEZCUlVRc2IwSkJRVUVzVFVGQlRTeFZRVUZWTEVsQlFVa3NUVUZCVFN3MlFrRkJOa0lzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRkxFTkJRVU03UVVGRE0wVXNiMEpCUVVFc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE96dEJRVWR3UXl4dlFrRkJRU3hKUVVORkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZEWml4RFFVRkRMRk5CUVZNc1MwRkRVaXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF6dEJRVU01UXl4M1FrRkJRU3huUWtGQlowSXNSMEZCUnl4VFFVRlRMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNUVUZCVFN4RFFVTTFSQ3hGUVVORU8zZENRVU5CTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUTFZc1EwRkJPRUlzTWtKQlFVRXNSVUZCUVN4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFUWkNMREJDUVVGQkxFVkJRVUVzWjBKQlFXZENMRU5CUVdsQ0xHVkJRVUVzUTBGQlFTeERRVU5zU0N4RFFVRkRPM2RDUVVOR0xFOUJRVTg3UVVGRFVpeHhRa0ZCUVR0QlFVVkVMRzlDUVVGQkxGVkJRVlVzUTBGQlF5eFBRVUZQTEVOQlEyaENMRWxCUVVrc05FSkJRVFJDTEVOQlFVTTdkMEpCUXk5Q0xGVkJRVlU3UVVGRFZpeDNRa0ZCUVN4TFFVRkxMRVZCUVVVc1owSkJRV2RDTzBGQlEzWkNMSGRDUVVGQkxFMUJRVTBzUlVGQlJTeERRVUZCTEVWQlFVRXNSMEZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3h0UTBGQlNTeEhRVUZITzBGQlF6TkNMSEZDUVVGQkxFTkJRVU1zUTBGRFNDeERRVUZETzJsQ1FVTklMRU5CUVVFc1EwRkJReXhEUVVGRE8wRkJSVWdzWjBKQlFVRXNTVUZCU1N4blFrRkJaMElzUTBGQlF5eHJRa0ZCYTBJc1NVRkJTU3huUWtGQlowSXNRMEZCUXl4eFFrRkJjVUlzUlVGQlJUczdiMEpCUldwR0xFMUJRVTBzWVVGQllTeEhRVUZ4UWl4RlFVRkZMRU5CUVVNN2IwSkJRek5ETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zVFVGQlRTeExRVUZKTzBGQlF6ZENMSGRDUVVGQkxFMUJRVTBzVVVGQlVTeEhRVUZKTEUxQlFXTXNRMEZCUXl4UlFVRnpReXhEUVVGRE8wRkJRM2hGTEhkQ1FVRkJMRWxCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zTkVKQlFVRXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU01UWl4NVFrRkJRVHRCUVVOSUxIRkNRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkZTQ3hEUVVGQkxFVkJRVUVzUjBGQlFTeG5Ra0ZCWjBJc1EwRkJReXhyUWtGQmEwSXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSU3hQUVVGUExFTkJRVU1zUTBGQlR5eEpRVUZKTEV0QlFVa3NVMEZCUVN4RFFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFTkJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4aFFVRkJPM2RDUVVNeFJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVVVGQlVTeExRVUZKT3pSQ1FVTnNSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5dzRRa0ZCT0VJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUXpWRkxEUkNRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1MwRkJTeXhoUVVGaExFTkJRVU03UVVGRGVrTXNlVUpCUVVNc1EwRkJReXhEUVVGRE8wRkJSVWdzZDBKQlFVRXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExGRkJRVkVzUzBGQlNUdEJRVU0zUWl3MFFrRkJRU3hWUVVGVkxFTkJRVU1zVDBGQlR5eERRVU5vUWl4SlFVRkpMRGhDUVVFNFFpeERRVUZETzJkRFFVTnFReXhSUVVGUk8yZERRVU5TTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1NVRkJTVHRCUVVObUxHZERRVUZCTEZkQlFWY3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRCUVVNeFJDeG5RMEZCUVN4WFFVRlhMRVZCUVVVc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYWtNc05rSkJRVUVzUTBGQlF5eERRVU5JTEVOQlFVTTdRVUZEU2l4NVFrRkJReXhEUVVGRExFTkJRVU03Y1VKQlEwb3NRMEZCUVN4RFFVRkRMRU5CUVVNN2IwSkJSVWdzUTBGQlFTeEZRVUZCTEVkQlFVRXNaMEpCUVdkQ0xFTkJRVU1zY1VKQlFYRkNMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVVVzVDBGQlR5eERRVUZETEVOQlFVOHNTVUZCU1N4TFFVRkpMRk5CUVVFc1EwRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeERRVUZCTEVWQlFVRXNTMEZCUVN4RFFVRkJMRVZCUVVFc1lVRkJRVHQzUWtGRE4wUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZGQlFWRXNTMEZCU1RzMFFrRkRiRVFzVFVGQlRTeGhRVUZoTEVkQlFVY3NPRUpCUVRoQ0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNMVJTdzBRa0ZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFdEJRVXNzWVVGQllTeERRVUZETzBGQlEzcERMSGxDUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZJTEhkQ1FVRkJMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFJRVUZSTEV0QlFVazdPMEZCUXpkQ0xEUkNRVUZCTEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUTJoQ0xFbEJRVWtzYVVOQlFXbERMRU5CUVVNN1owTkJRM0JETEZGQlFWRTdRVUZEVWl4blEwRkJRU3hOUVVGTkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5vUlN4blEwRkJRU3hMUVVGTExFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVUVzU1VGQlNTeERRVUZETEV0QlFVc3NUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU12UkN3MlFrRkJRU3hEUVVGRExFTkJRMGdzUTBGQlF6dEJRVU5LTEhsQ1FVRkRMRU5CUVVNc1EwRkJRenR4UWtGRFNpeERRVUZCTEVOQlFVTXNRMEZCUXp0QlFVTktMR2xDUVVGQk8wRkJSVVFzWjBKQlFVRXNUMEZCVHl4RFFVRkRMR3RDUVVGclFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMkZCUTNoRExFTkJRVUVzUTBGQlF5eERRVU5JTEVOQlFVTTdRVUZGUml4WlFVRkJMRTlCUVU4c1QwRkJUeXhEUVVGRE96dEJRVU5vUWl4TFFVRkJPMEZCUldFc1NVRkJRU3hUUVVGVExFTkJRVU1zU1VGQlZTeEZRVUZCT3pzN1FVRkRhRU1zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdPMWxCUjJ4RUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVVXNSMEZCTkVJc1EwRkJRenRaUVVNM1JDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZPMEZCUTFnc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0WlFVTnFSQ3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVN1FVRkRja0lzWjBKQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhoUVVGQk8wRkJSVVFzV1VGQlFTeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRzlDUVVGdlFpeEZRVUZGTEVOQlFVTTdRVUZGTTBNc1dVRkJRU3hOUVVGTkxITkNRVUZ6UWl4SFFVRkhMR2RDUVVGblFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xbEJRMnBGTEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUlVGQlJUdEJRVU16UWl4blFrRkJRU3hQUVVGUExFOUJRVThzUTBGQlF6dEJRVU5vUWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGVkxFTkJRVU03V1VGRk5VTXNUVUZCVFN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVObUxITkNRVUZ6UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGUExGZEJRVmNzUzBGQlNTeFRRVUZCTEVOQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1EwRkJRU3hGUVVGQkxFdEJRVUVzUTBGQlFTeEZRVUZCTEdGQlFVRTdPMEZCUXk5RExHZENRVUZCTEUxQlFVMHNXVUZCV1N4SFFVRkhMRmRCUVZjc1EwRkJReXhWUVVGVkxFTkJRVU03UVVGRE5VTXNaMEpCUVVFc1RVRkJUU3haUVVGWkxFZEJRMmhDTEVOQlFVTXNXVUZCV1N4SlFVRkpMRWxCUVVrc1NVRkJTU3g1UWtGQmVVSXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4SlFVRkpMRU5CUVVNN1owSkJRemxHTEUxQlFVMHNTVUZCU1N4SFFVRkhMRmxCUVZrc1MwRkJXaXhKUVVGQkxFbEJRVUVzV1VGQldTeExRVUZhTEV0QlFVRXNRMEZCUVN4SFFVRkJMRmxCUVZrc1IwRkJTU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETzJkQ1FVVTVReXhKUVVGSkxFbEJRVWtzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYUVJc2IwSkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl3eVJrRkJNa1lzUTBGQlF5eERRVUZETzI5Q1FVTXhSeXhQUVVGUE8wRkJRMUlzYVVKQlFVRTdPMEZCUjBRc1owSkJRVUVzU1VGQlNTeHBRa0ZCYVVJc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdRVUZETDBJc2IwSkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4dFJFRkJiVVFzV1VGQldTeERRVUZCTEdkRVFVRkJMRU5CUVd0RUxFTkJRMnhJTEVOQlFVTTdiMEpCUTBZc1QwRkJUenRCUVVOU0xHbENRVUZCTzBGQlJVUXNaMEpCUVVFc2FVSkJRV2xDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wRkJSVFZDTEdkQ1FVRkJMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUXpORExHZENRVUZCTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzJkQ1FVVXpRaXhWUVVGVkxFTkJRVU1zVVVGQlVTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRmRCUVZjc1EwRkJReXhSUVVGUkxFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzUzBGQlN5eERRVUZET3pzN1owSkJTWEJFTEVsQlFVa3NWMEZCVnl4RFFVRkRMRXRCUVVzc1JVRkJSVHR2UWtGRGNrSXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlR5eEpRVUZKTEV0QlFVa3NVMEZCUVN4RFFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFTkJRVUVzUlVGQlFTeExRVUZCTEVOQlFVRXNSVUZCUVN4aFFVRkJPenQzUWtGRGRrTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExGTkJRVk1zU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4TFFVRkxMRk5CUVZNc1JVRkJSVHMwUWtGRGRrUXNUMEZCVHp0QlFVTlNMSGxDUVVGQk8zZENRVVZFTEUxQlFVMHNZMEZCWXl4SFFVRmhMRVZCUVVVc1EwRkJRenQzUWtGRGNFTXNRMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3hEUVVGRExFdEJRVXNzVFVGQlJTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eExRVUZKTzBGQlF6bENMRFJDUVVGQkxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4SlFVRkpMRU5CUVVNc1NVRkJTU3hGUVVGRk8wRkJRek5DTEdkRFFVRkJMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZUVJc05rSkJRVUU3UVVGRFNDeDVRa0ZCUXl4RFFVRkRMRU5CUVVNN1FVRkZTQ3gzUWtGQlFTeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdkMEpCUlhCRExFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZEWml4alFVRmpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVThzVTBGQlV5eExRVUZKTEZOQlFVRXNRMEZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hEUVVGQkxFVkJRVUVzUzBGQlFTeERRVUZCTEVWQlFVRXNZVUZCUVRzN05FSkJRM0pETEUxQlFVMHNWVUZCVlN4SlFVRkpMRTFCUVUwc05rSkJRVFpDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRkxFTkJRVU03TzBGQlJ6TkZMRFJDUVVGQkxFbEJRMFVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVTm1MRU5CUVVNc1UwRkJVeXhMUVVOU0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMSEZDUVVGeFFpeERRVUZETzBGQlF6bERMR2REUVVGQkxHZENRVUZuUWl4SFFVRkhMRk5CUVZNc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TlFVRk5MRU5CUXpWRUxFVkJRMFE3WjBOQlEwRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkRWaXhEUVVFNFFpd3lRa0ZCUVN4RlFVRkJMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRWE5DTEcxQ1FVRkJMRVZCUVVFc1owSkJRV2RDTEVOQlFYbENMSFZDUVVGQkxFTkJRVUVzUTBGRE9VY3NRMEZCUXp0blEwRkRSaXhQUVVGUE8wRkJRMUlzTmtKQlFVRTdRVUZGUkN3MFFrRkJRU3hWUVVGVkxFTkJRVU1zVDBGQlR5eERRVU5vUWl4SlFVRkpMRFJDUVVFMFFpeERRVUZETzJkRFFVTXZRaXhWUVVGVk8wRkJRMVlzWjBOQlFVRXNTMEZCU3l4RlFVRkZMR2RDUVVGblFqdEJRVU4yUWl4blEwRkJRU3hOUVVGTkxFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVRXNSVUZCUVN4SFFVRkJMRWxCUVVrc1EwRkJReXhOUVVGTkxFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzUjBGQlJ5eERRVUZETzBGQlEzQkRMRFpDUVVGQkxFTkJRVU1zUTBGRFNDeERRVUZETzNsQ1FVTklMRU5CUVVFc1EwRkJReXhEUVVOSUxFTkJRVU03Y1VKQlEwZ3NRMEZCUVN4RFFVRkRMRU5CUVVNN1FVRkRTaXhwUWtGQlFUczdRVUZIUkN4blFrRkJRU3hOUVVGTkxHTkJRV01zUjBGQlJ5eFhRVUZYTEVOQlFVTXNZMEZCWXl4RFFVRkRPMEZCUTJ4RUxHZENRVUZCTEVsQlFVa3NZMEZCWXl4SlFVRkpMR05CUVdNc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEZRVUZGTzBGQlEycEVMRzlDUVVGQkxHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4aFFVRmhMRXRCUVVrN1FVRkRka01zZDBKQlFVRXNTVUZEUlN4aFFVRmhMRU5CUVVNc1dVRkJXU3hMUVVGTExGTkJRVk03TkVKQlEzaERMR0ZCUVdFc1EwRkJReXhaUVVGWkxFdEJRVXNzVTBGQlV6dEJRVU40UXl3MFFrRkJRU3hoUVVGaExFTkJRVU1zVjBGQlZ5eExRVUZMTEZOQlFWTXNSVUZEZGtNN05FSkJRMEVzVDBGQlR6dEJRVU5TTEhsQ1FVRkJPMEZCUlVRN096czdPenRCUVUxSE8zZENRVU5JTEUxQlFVMHNVMEZCVXl4SFFVRnhRaXhGUVVGRkxFTkJRVU03ZDBKQlEzWkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4TFFVRkpPelJDUVVNM1FpeEpRVUZMTEUxQlFXTXNRMEZCUXl4UlFVRlJMRVZCUVVVN1FVRkROVUlzWjBOQlFVRXNUVUZCVFN4UlFVRlJMRWRCUVhWRExFMUJRV01zUTBGQlF5eFJRVUZSTEVOQlFVTTdRVUZETjBVc1owTkJRVUVzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRk8yOURRVU16UWl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVOYUxFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZEYUVJc1EwRkJReXhIUVVGSExFdEJRMFlzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4TFFVRkxMR0ZCUVdFc1EwRkJReXhaUVVGaE8zZERRVU4yUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hMUVVGTExHRkJRV0VzUTBGQlF5eFpRVUZoTEVkQlFVY3NXVUZCV1R0M1EwRkRla1FzVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGRGFFTXNRMEZEUml4RFFVRkRPMEZCUTBnc2FVTkJRVUU3UVVGQlRTeHhRMEZCUVN4SlFVRkpMRkZCUVZFc1EwRkJReXhKUVVGSkxFdEJRVXNzWVVGQllTeERRVUZETEZsQlFWa3NTVUZCU1N4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMEZCUXpkR0xHOURRVUZCTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRE1VSXNhVU5CUVVFN1FVRkRSaXcyUWtGQlFUdEJRVU5JTEhsQ1FVRkRMRU5CUVVNc1EwRkJRenRCUVVWSUxIZENRVUZCTEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzWVVGQllTeERRVUZETEZsQlFWa3NRMEZCUXp0QlFVTjRSQ3gzUWtGQlFTeFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hMUVVGSk96czBRa0ZGTjBJc1NVRkJTU3h2UWtGQmIwSXNTMEZCU3l4aFFVRmhMRVZCUVVVN1owTkJRekZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTXNWMEZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxHRkJRV0VzUTBGQlF5eFhRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUTBGRE9VWXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4WFFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzWVVGQllTeERRVUZETEZkQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJSUzlHTEdkRFFVRkJMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZ3UXl4blEwRkJRU3hWUVVGVkxFTkJRVU1zVDBGQlR5eERRVU5vUWl4SlFVRkpMR2xEUVVGcFF5eERRVUZETzI5RFFVTndReXhSUVVGUk8yOURRVU5TTEV0QlFVczdiME5CUTB3c1RVRkJUVHRCUVVOUUxHbERRVUZCTEVOQlFVTXNRMEZEU0N4RFFVRkRPMmREUVVWR0xFOUJRVTg3UVVGRFVpdzJRa0ZCUVRzN1FVRkhSQ3cwUWtGQlFTeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExEUkNRVUUwUWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTTdRVUZETjBVc05FSkJRVUVzU1VGQlNTeHBRa0ZCYVVJc1JVRkJSVHRCUVVOeVFpeG5RMEZCUVN4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVOb1FpeEpRVUZKTERoQ1FVRTRRaXhEUVVGRE8yOURRVU5xUXl4UlFVRlJPMEZCUTFJc2IwTkJRVUVzU1VGQlNTeEZRVUZGTEdsQ1FVRnBRanRCUVVOMlFpeHZRMEZCUVN4WFFVRlhMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMR0ZCUVdFc1EwRkJReXhYUVVGWkxFTkJRVU03UVVGRGNFVXNiME5CUVVFc1YwRkJWeXhGUVVGRkxHRkJRV0VzUTBGQlF5eFhRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpORExHbERRVUZCTEVOQlFVTXNRMEZEU0N4RFFVRkRPMmREUVVWR0xFOUJRVTg3UVVGRFVpdzJRa0ZCUVR0QlFVVkVMRFJDUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRCUVVNelJDeDVRa0ZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3h4UWtGQlF5eERRVUZETEVOQlFVTTdRVUZEU2l4cFFrRkJRVHRCUVVWRUxHZENRVUZCTEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0aFFVTjRReXhEUVVGQkxFTkJRVU1zUTBGRFNDeERRVUZETzBGQlJVWXNXVUZCUVN4UFFVRlBMRTlCUVU4c1EwRkJRenM3UVVGRGFFSXNTMEZCUVRzN1FVRjJXWE5DTEhsQ1FVRkJMRU5CUVVFc2FVSkJRV2xDTEVkQlFYbEZPMEZCUXk5SExFbEJRVUVzUTBGQlF5eEZRVUZGTEVsQlFVazdRVUZEVUN4SlFVRkJMRU5CUVVNc1JVRkJSU3hKUVVGSk8wRkJRMUFzU1VGQlFTeERRVUZETEVWQlFVVXNTVUZCU1R0QlFVTlFMRWxCUVVFc1EwRkJReXhGUVVGRkxFbEJRVWs3UVVGRFVDeEpRVUZCTEVOQlFVTXNSVUZCUlN4SlFVRkpPMEZCUTFBc1NVRkJRU3hMUVVGTExFVkJRVVVzVDBGQlR6dEJRVU5rTEVsQlFVRXNSMEZCUnl4RlFVRkZMRTlCUVU4N1FVRkRXaXhKUVVGQkxFdEJRVXNzUlVGQlJTeFBRVUZQTzBGQlEyUXNTVUZCUVN4TlFVRk5MRVZCUVVVc1MwRkJTenRCUVVOaUxFbEJRVUVzUjBGQlJ5eEZRVUZGTEZOQlFWTTdRVUZEWkN4SlFVRkJMRTFCUVUwc1JVRkJSU3hSUVVGUk8wRkJRMmhDTEVsQlFVRXNVVUZCVVN4RlFVRkZMRlZCUVZVN1FVRkRjRUlzU1VGQlFTeFJRVUZSTEVWQlFVVXNWVUZCVlR0QlFVTndRaXhKUVVGQkxGTkJRVk1zUlVGQlJTeFhRVUZYT3p0QlFVVjBRaXhKUVVGQkxFOUJRVThzUlVGQlJTeFhRVUZYT3p0QlFVVndRaXhKUVVGQkxFOUJRVThzUlVGQlJTeFpRVUZaTzBGQlEzSkNMRWxCUVVFc1QwRkJUeXhGUVVGRkxGTkJRVk03UTBGRGJrSTdPMEZETlVOSU8wRkJSV0VzVFVGQlFTeDVRa0ZCZVVJc1IwRkJSenRCUVVOMlF5eEpRVUZCTEVsQlFVa3NSVUZCUlN4TlFVRk5PMEZCUTFvc1NVRkJRU3hMUVVGTExFVkJRVVVzVDBGQlR6dEJRVU5rTEVsQlFVRXNTMEZCU3l4RlFVRkZMRTlCUVU4N096dE5RMFJJTEdOQlFXTXNRMEZCUVR0QlFUQkNla0k3T3pzN08wRkJTMGM3U1VGRFNDeFhRVUZ0UWl4RFFVRkJMRkZCUVhGQ0xFVkJRVVVzWlVGQkswTXNSVUZCUVR0QlFWaHFSaXhSUVVGQkxFbEJRVUVzUTBGQlFTeHhRa0ZCY1VJc1IwRkJSeXhqUVVGakxFTkJRVU1zT0VKQlFUaENMRU5CUVVNN1FVRkRkRVVzVVVGQlFTeEpRVUZCTEVOQlFVRXNjVUpCUVhGQ0xFZEJRVWNzWTBGQll5eERRVUZETERoQ1FVRTRRaXhEUVVGRE8xRkJSWFJGTEVsQlFXdENMRU5CUVVFc2EwSkJRVUVzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZUYWtNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXp0QlFVTjZRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVkQlFVY3NaVUZCWlN4RFFVRkRPMHRCUTNoRE8wRkJSVVE3T3pzN08wRkJTMGM3UVVGRFNTeEpRVUZCTEVsQlFVa3NRMEZCUXl4TlFVRnpRaXhGUVVGQk8wRkJRMmhETEZGQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3hMUVVGTExFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVTdRVUZEY2tNc1dVRkJRU3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhkRVFVRjNSQ3hEUVVGRExFTkJRVU03UVVGRE0wVXNVMEZCUVR0QlFVVkVMRkZCUVVFc1NVRkJTU3hEUVVGRExHVkJRV1VzUjBGQlJ5eE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGVkJRVlVzVFVGQlRUdEJRVU5xUlN4WlFVRkJMRTFCUVUwc1JVRkJSU3hWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlR0WlFVTnNReXhKUVVGSkxFVkJRVVVzVlVGQlZTeERRVUZETEVsQlFVazdRVUZEZEVJc1UwRkJRU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVZLTEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1MwRkRZanRCUVVWRU96czdRVUZIUnp0SlFVTkpMRXRCUVVzc1IwRkJRVHRCUVVOV0xGRkJRVUVzVDBGQlR5eEpRVUZKTEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE0wVTdRVUZGUkRzN096czdPenM3UVVGUlJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4dlFrRkJiMElzUjBGQlFUdFJRVU0zUWl4UFFVRlBMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXp0TFFVTnVRenRCUVVWRU96czdPenM3T3p0QlFWRkhPMEZCUTBnc1NVRkJRU3hKUVVGWExHOUNRVUZ2UWl4SFFVRkJPMUZCUXpkQ0xFOUJRVThzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRE8wdEJRMjVETzBGQlJVUTdPenM3T3pzN096czdPMEZCVjBjN1FVRkRTU3hKUVVGQkxFdEJRVXNzUTBGQlF5eEZRVU5ZTEc5Q1FVRnZRaXhIUVVGSExHTkJRV01zUTBGQlF5dzRRa0ZCT0VJc1JVRkRjRVVzYjBKQlFXOUNMRWRCUVVjc1kwRkJZeXhEUVVGRExEaENRVUU0UWl4SFFVTnlSU3hIUVVGSExFVkJRVVVzUlVGQlFUdFJRVU5LTEVsQlFVa3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEZRVUZGTzFsQlF6TkNMRTlCUVU4N1FVRkRVaXhUUVVGQk8wRkJRMFFzVVVGQlFTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFZEJRVWNzYjBKQlFXOUNMRU5CUVVNN1FVRkRiRVFzVVVGQlFTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFZEJRVWNzYjBKQlFXOUNMRU5CUVVNN1VVRkZiRVFzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFdEJRVWs3V1VGRGNFTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEV0QlFVazdRVUZETTBJc1owSkJRVUVzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMR2xDUVVGcFFpeEZRVUZGTzI5Q1FVTnVReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0QlFVTTFReXh2UWtGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1MwRkJTeXhMUVVGTExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRVVzYVVKQlFVRTdRVUZCVFN4eFFrRkJRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NhVUpCUVdsQ0xFVkJRVVU3YjBKQlF6RkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETzBGQlF6VkRMRzlDUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRXRCUVVzc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjRSU3hwUWtGQlFUdEJRVUZOTEhGQ1FVRkJMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUzBGQlN5eE5RVUZOTEVWQlFVVTdRVUZETDBJc2IwSkJRVUVzU1VGQlNTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEycERMR2xDUVVGQk8wRkJRMGdzWVVGQlF5eERRVUZETEVOQlFVTTdRVUZEVEN4VFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWSUxGRkJRVUVzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUTBGQlF6dExRVU5vUXp0QlFVVlBMRWxCUVVFc2FVSkJRV2xDTEVOQlFVTXNVMEZCYlVJc1JVRkJSU3hIUVVGbExFVkJRVVVzVTBGQmNVSXNSVUZCUlN4UFFVRnBRaXhGUVVGQk8xRkJRM1JITEVsQlFVa3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOa0xFbEJRVWtzUjBGQlJ5eEpRVUZKTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdEJRVU5xUXl4WlFVRkJMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdRVUZETlVNc1owSkJRVUVzVFVGQlRTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU4yUWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNelFpeE5RVUZOTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6TkNMR2RDUVVGQkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOdVFpeG5Ra0ZCUVN4TlFVRk5MRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGTTBJc1owSkJRVUVzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVUZGTEZOQlFWTTdRVUZEZGtRc1owSkJRVUVzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVUZGTEZOQlFWTTdRVUZEZGtRc1owSkJRVUVzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVUZGTEZOQlFWTTdRVUZEZGtRc1owSkJRVUVzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVUZGTEZOQlFWTTdRVUZGZGtRc1owSkJRVUVzVFVGQlRTeEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMjVDTEdkQ1FVRkJMRTFCUVUwc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpRaXhuUWtGQlFTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlFVVXNVMEZCVXp0QlFVTjJSQ3huUWtGQlFTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlFVVXNVMEZCVXp0QlFVTjJSQ3huUWtGQlFTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlFVVXNVMEZCVXp0QlFVTjJSQ3huUWtGQlFTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlFVVXNVMEZCVXp0QlFVVjJSQ3huUWtGQlFTeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJrSXNaMEpCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpOQ0xHZENRVUZCTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZCUlN4VFFVRlRPMEZCUTNaRUxHZENRVUZCTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZCUlN4VFFVRlRPMEZCUTNaRUxHZENRVUZCTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZCUlN4VFFVRlRPMEZCUTNaRUxHZENRVUZCTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZCUlN4VFFVRlRPMEZCUlhaRUxHZENRVUZCTEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU4yUWl4blFrRkJRU3hUUVVGVExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRka0lzWjBKQlFVRXNVMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlEzaENMR0ZCUVVFN1FVRkRSaXhUUVVGQk8wRkJRMFFzVVVGQlFTeFBRVUZQTEV0QlFVc3NRMEZCUXp0TFFVTmtPMGxCUlU4c2FVSkJRV2xDTEVOQlFVTXNSMEZCYzBJc1JVRkJSU3hwUWtGQk1rSXNSVUZCUVR0QlFVTXpSU3hSUVVGQkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU4wUlN4SFFVRkhMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVUVzUlVGQlJ5eEhRVUZITEVOQlFVTXNTVUZCU1N4VFFVRlRMRU5CUVVNN1FVRkRhRU1zVVVGQlFTeEhRVUZITEVOQlFVTXNZVUZCWVN4SFFVRkhMRWRCUVVjc1EwRkJReXhoUVVGaExFTkJRVU03VVVGRGRFTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU03UVVGRk0wTXNVVUZCUVN4TlFVRk5MRkZCUVZFc1IwRkJSeXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETzFGQlJUbENMRTFCUVUwc1lVRkJZU3hIUVVGSExGRkJRVkVzUTBGQlF5eFpRVUZaTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1FVRkRla1FzVVVGQlFTeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExHRkJRV0VzV1VGQldTeExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzUlVGQlJTeEhRVUZITEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRka2NzVFVGQlRTeFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRPMEZCUTNKQ0xGRkJRVUVzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExHdENRVUZyUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzFsQlEzSkVMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU03WjBKQlEySXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzSkNMR2RDUVVGQkxHdENRVUZyUWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRGVrSXNaMEpCUVVFc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVONlFpeG5Ra0ZCUVN4clFrRkJhMElzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpGQ0xHRkJRVUVzUTBGQlF5eERRVUZETzBGQlEwb3NVMEZCUVR0UlFVVkVMRTFCUVUwc1kwRkJZeXhIUVVGSExGRkJRVkVzUTBGQlF5eFpRVUZaTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1FVRkRNMFFzVVVGQlFTeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExHTkJRV01zV1VGQldTeExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzUlVGQlJTeEhRVUZITEdOQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRNVWNzVFVGQlRTeFZRVUZWTEVkQlFVY3NSVUZCUlN4RFFVRkRPMEZCUTNSQ0xGRkJRVUVzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzFsQlEzUkVMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU03WjBKQlEyUXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzUkNMR2RDUVVGQkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRE1VSXNaMEpCUVVFc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVNeFFpeG5Ra0ZCUVN4dFFrRkJiVUlzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpOQ0xHRkJRVUVzUTBGQlF5eERRVUZETzBGQlEwb3NVMEZCUVR0QlFVVkVMRkZCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUTJ4RExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVTdRVUZEVml4WlFVRkJMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zTWtOQlFUSkRMRU5CUVVNc1EwRkJRenRCUVVNNVJDeFRRVUZCTzFGQlEwUXNUVUZCVFN4WlFVRlpMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkZOME1zVVVGQlFTeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRlZCUVZVc1JVRkJSU3hUUVVGVExFVkJRVVVzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRSUVVNM1JpeE5RVUZOTEZkQlFWY3NSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRha01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTTVRaXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnhETEZOQlFVRTdRVUZEUkN4UlFVRkJMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdPMUZCUnk5Q0xFbEJRVWtzUjBGQlJ5eERRVUZETEdOQlFXTXNSVUZCUlR0QlFVTjBRaXhaUVVGQkxFZEJRVWNzUTBGQlF5eGpRVUZqTEVkQlFVY3NSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJRenRCUVVONlF5eFRRVUZCTzFGQlEwUXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTJwSExGRkJRVUVzVDBGQlR5eEhRVUZITEVOQlFVTTdTMEZEV2p0SlFVVlBMR3REUVVGclF5eERRVUZETEUxQlFYTkNMRVZCUVVVc1NVRkJkVUlzUlVGQlFUdFJRVU40Uml4TlFVRk5MR2RDUVVGblFpeEhRVUZoTEVWQlFVVXNRMEZCUXp0QlFVTjBReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEV0QlFVazdRVUZETVVNc1dVRkJRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUVVVc1owSkJRVUVzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlF6bEVMRk5CUVVNc1EwRkJReXhEUVVGRE96dEJRVWRJTEZGQlFVRXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlR0WlFVTTFRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0WlFVTXZReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0WlFVTXZReXhQUVVGUE8wRkJRMUlzVTBGQlFUdFJRVU5FTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8xRkJRelZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3hSUVVGQkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1MwRkRja0k3UVVGRlR5eEpRVUZCTEc5Q1FVRnZRaXhEUVVGRExFbEJRVzlDTEVWQlFVRTdRVUZETDBNc1VVRkJRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NUMEZCVHl4RlFVRkZPMWxCUTNwQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMEZCUXpWRExGbEJRVUVzU1VGQlNTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRk8wRkJRemRDTEdkQ1FVRkJMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eExRVUZMTEV0QlFVc3NTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU40UlN4aFFVRkJPMEZCUVUwc2FVSkJRVUU3UVVGRFRDeG5Ra0ZCUVN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0blFrRkRha01zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkJMRlZCUVVFc1JVRkJZU3hKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdaMEpCUTNaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMEZCUXpsRExHZENRVUZCTEVsQlFVa3NRMEZCUXl4TlFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEzcENMR2RDUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTzNGQ1FVTldMRTFCUVUwc1EwRkJReXhEUVVGRExFdEJRVXNzUzBGQlN5eExRVUZMTEVOQlFVTXNTVUZCU1N4TFFVRkxMR0ZCUVdFc1EwRkJRenRCUVVNdlF5eHhRa0ZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhMUVVGTExFdEJRVWs3YjBKQlEycENMRTFCUVUwc1YwRkJWeXhIUVVGSExFdEJRVEJDTEVOQlFVTTdRVUZETDBNc2IwSkJRVUVzU1VGQlNTeERRVUZETEd0RFFVRnJReXhEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3hwUWtGQlF5eERRVUZETEVOQlFVTTdRVUZEVGl4aFFVRkJPMEZCUTBZc1UwRkJRVHRCUVVGTkxHRkJRVUVzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMR0ZCUVdFc1JVRkJSVHRaUVVOMFF5eE5RVUZOTEZkQlFWY3NSMEZCUnl4SlFVRjVRaXhEUVVGRE8xbEJRemxETEVsQlFVa3NRMEZCUXl4clEwRkJhME1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8wRkJRM0JGTEZOQlFVRTdRVUZCVFN4aFFVRkJPMEZCUTB3c1dVRkJRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRemRDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8wRkJRelZETEdkQ1FVRkJMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eExRVUZMTEV0QlFVc3NTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU40UlN4aFFVRkJPMEZCUTBZc1UwRkJRVHRMUVVOR08wRkJSVThzU1VGQlFTeGpRVUZqTEVOQlFVTXNTVUZCYjBJc1JVRkJRVHRSUVVONlF5eEpRVUZKTEVsQlFVa3NTMEZCU3l4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlR0QlFVTnFSQ3haUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNVMEZCUVR0QlFVRk5MR0ZCUVVFc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdRVUZEZGtJc1dVRkJRU3hQUVVGUExFdEJRVXNzUTBGQlF6dEJRVU5rTEZOQlFVRTdRVUZCVFN4aFFVRkJPMWxCUTB3c1QwRkJUeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVONlF5eFRRVUZCTzB0QlEwWTdPMEZCTDFGRU96czdPMEZCU1VjN1FVRkRiMElzWTBGQk9FSXNRMEZCUVN3NFFrRkJRU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVVV4UkRzN096dEJRVWxITzBGQlEyOUNMR05CUVRoQ0xFTkJRVUVzT0VKQlFVRXNSMEZCUnl4RlFVRkZPenRCUTFBMVJEczdRVUZGUnp0QlFVTklMRTFCUVUxQkxIZENRVUZ6UWl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZOVVE3TzBGQlJVYzdUVUZEVlN3d1FrRkJNRUlzUTBGQlFUdEJRVWR5UXl4SlFVRkJMRWxCUVZjc1NVRkJTU3hIUVVGQk96dEJRVVZpTEZGQlFVRXNUMEZCVHl3MFFrRkJORUlzUTBGQlF6dExRVU55UXp0QlFVVkVMRWxCUVVFc1YwRkJRU3hEUVVGdFFpeE5RVUZyUWl4RlFVRkJPMEZCUTI1RExGRkJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNN1MwRkRkRUk3UVVGRldTeEpRVUZCTEZOQlFWTXNRMEZCUXl4SlFVRlZMRVZCUVVFN08wRkJReTlDTEZsQlFVRXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZ6UXl4RFFVRkRPenM3V1VGSmVrVXNTVUZCU1N4WFFVRlhMRXRCUVVzc1NVRkJTU3hGUVVGRk8yZENRVU40UWl4UFFVRlBPMEZCUTFJc1lVRkJRVHRwUWtGQlRTeEpRVUZKTEZkQlFWY3NTMEZCU3l4VFFVRlRMRVZCUVVVN1FVRkRjRU1zWjBKQlFVRXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkRZaXh4UjBGQmNVY3NRMEZEZEVjc1EwRkJRenRCUVVOSUxHRkJRVUU3UVVGRlJDeFpRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1kwRkJZeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VTBGRGRFVXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkJRVHRCUVVWRU96czdPenRCUVV0SE8wbEJSVmNzVDBGQlR5eERRVUZETEVsQlFWVXNSVUZCUlN4UlFVRTBRaXhGUVVGQk96dFpRVU0xUkN4SlFVRkpMRkZCUVZFc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGNFSXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzFsQlJVUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NSVUZCUlN4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVOMFJDeFpRVUZCTEVsQlFVa3NVVUZCVVN4RlFVRkZPMEZCUTFvc1owSkJRVUVzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYWtJc1lVRkJRVHRaUVVWRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEZEVRc1dVRkJRU3hKUVVGSkxGRkJRVkVzUlVGQlJUdEJRVU5hTEdkQ1FVRkJMRTlCUVU4c1VVRkJVU3hEUVVGRE8wRkJRMnBDTEdGQlFVRTdRVUZGUkN4WlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8xTkJRMklzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZCUVR0SlFVVmhMRk5CUVZNc1EwRkJReXhKUVVGVkxFVkJRVVVzVVVGQmNVSXNSVUZCUVRzN08wRkJRM1pFTEZsQlFVRXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUYzUWl4RFFVRkRPenRCUVVkc1JDeFpRVUZCTEUxQlFVMHNVMEZCVXl4SFFVRkhMRU5CUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEdOQlFXTXNUVUZCUlN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJRU3hQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEUxQlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRiRVVzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlR0QlFVTmtMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0WlFVVkVMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVWNzVlVGQlZTeERRVUZ2UXl4RFFVRkRPMWxCUTI1R0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdRVUZEWkN4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdRVUZGUkN4WlFVRkJMRTFCUVUwc1YwRkJWeXhIUVVGSExGTkJRVk1zUTBGQlF5eFhRVUZYTEVOQlFVTTdRVUZETVVNc1dVRkJRU3hKUVVGSkxFTkJRVU5CTEhkQ1FVRnpRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlR0QlFVTTFReXhuUWtGQlFTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRFpFUVVFMlJDeFhRVUZYTEVOQlFVRXNRMEZCUVN4RFFVRkhMRU5CUVVNc1EwRkJRenRCUVVNeFJpeG5Ra0ZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOaUxHRkJRVUU3UVVGRlJDeFpRVUZCTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzVTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXp0WlFVTm9SQ3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVN1FVRkRkRUlzWjBKQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhoUVVGQk8xbEJSVVFzVFVGQlRTeGxRVUZsTEVkQlFXMURMRVZCUVVVc1EwRkJRenRCUVVNelJDeFpRVUZCTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzVFVGQlRTdzRRa0ZCT0VJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU55UlN4WlFVRkJMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zUzBGQlNUczdRVUZETVVVc1owSkJRVUVzVFVGQlRTeFZRVUZWTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zWlVGQlpUdEJRVU5zUkN4elFrRkJSU3hwUWtGQmFVSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRXRCUVVzc1UwRkJVeXhEUVVGRE8zTkNRVU51UlN4VFFVRlRMRU5CUVVNN1owSkJSV1FzWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTnVRaXh2UWtGQlFTeE5RVUZOTEVWQlFVVXNWVUZCVlR0dlFrRkRiRUlzU1VGQlNTeEZRVUZGTEVOQlFVRXNSVUZCUVN4SFFVRkJMRlZCUVZVc1MwRkJWaXhKUVVGQkxFbEJRVUVzVlVGQlZTeDFRa0ZCVml4VlFVRlZMRU5CUVVVc1NVRkJTU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGSkxFMUJRVTA3UVVGRGFrTXNhVUpCUVVFc1EwRkJReXhEUVVGRE8wRkJRMHdzWVVGQlF5eERRVUZETEVOQlFVTTdRVUZGU0N4WlFVRkJMRTlCUVU4c1NVRkJTU3hqUVVGakxFTkJRVU1zVVVGQlVTeEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPenRCUVVOMFJDeExRVUZCTzBsQlJXRXNVMEZCVXl4RFFVRkRMRWxCUVZVc1JVRkJSU3hSUVVGeFFpeEZRVUZCT3pzN1FVRkRka1FzV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdXVUZGYkVRc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJTeEhRVUUwUWl4RFFVRkRPMWxCUXpkRUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdRVUZEV0N4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdRVUZGUkN4WlFVRkJMRTFCUVUwc2FVSkJRV2xDTEVkQlFXdERMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU03V1VGRE5VVXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTzBGQlEzUkNMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0WlFVVkVMRTFCUVUwc1pVRkJaU3hIUVVGdFF5eEZRVUZGTEVOQlFVTTdRVUZETTBRc1dVRkJRU3hOUVVGTkxHbENRVUZwUWl4SFFVRkhMRTFCUVUwc09FSkJRVGhDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkZja1VzV1VGQlFTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNWVUZCVlN4RFFVRkRMRXRCUVVrN1owSkJRekZGTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdRVUZGTVVNc1owSkJRVUVzVFVGQlRTeEpRVUZKTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zWlVGQlpUdEJRVU0xUXl4elFrRkJSU3hwUWtGQmFVSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRXRCUVVzc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF6dHpRa0ZEZWtVc1UwRkJVeXhEUVVGRE8yZENRVVZrTEdWQlFXVXNRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRia0lzYjBKQlFVRXNUVUZCVFN4RlFVRkZMRlZCUVZVN1FVRkRiRUlzYjBKQlFVRXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRXRCUVVvc1NVRkJRU3hKUVVGQkxFbEJRVWtzUzBGQlNpeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hKUVVGSkxFTkJRVVVzWlVGQlpTeERRVUZETzBGQlEzcEVMR2xDUVVGQkxFTkJRVU1zUTBGQlF6dEJRVU5NTEdGQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlVnc1dVRkJRU3hQUVVGUExFbEJRVWtzWTBGQll5eERRVUZETEZGQlFWRXNSVUZCUlN4bFFVRmxMRU5CUVVNc1EwRkJRenM3UVVGRGRFUXNTMEZCUVR0QlFVVlBMRWxCUVVFc2MwSkJRWE5DTEVOQlFVTXNTVUZCZDBJc1JVRkJRVHRSUVVOeVJDeEpRVUZKTEVsQlFVa3NTMEZCU3l4cFFrRkJhVUlzUlVGQlJUdEJRVU01UWl4WlFVRkJMRTlCUVU4c2FVSkJRV2xDTEVOQlFVTTdRVUZETVVJc1UwRkJRVHRoUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEdsQ1FVRnBRaXhGUVVGRk8wRkJRM0pETEZsQlFVRXNUMEZCVHl4cFFrRkJhVUlzUTBGQlF6dEJRVU14UWl4VFFVRkJPMkZCUVUwc1NVRkJTU3hKUVVGSkxFdEJRVXNzVFVGQlRTeEZRVUZGTzBGQlF6RkNMRmxCUVVFc1QwRkJUeXhOUVVGTkxFTkJRVU03UVVGRFppeFRRVUZCTzBGQlFVMHNZVUZCUVR0QlFVTk1MRmxCUVVFc1QwRkJUeXhOUVVGTkxFTkJRVU03UVVGRFppeFRRVUZCTzB0QlEwWTdRVUZEUmpzN1FVTXpTa1E3UVVGRllTeE5RVUZCTEdkRFFVRm5ReXhIUVVGSE8wRkJRemxETEVsQlFVRXNTVUZCU1N4RlFVRkZMRTFCUVUwN1FVRkRXaXhKUVVGQkxFbEJRVWtzUlVGQlJTeE5RVUZOTzBGQlExb3NTVUZCUVN4bFFVRmxMRVZCUVVVc2FVSkJRV2xDTzBGQlEyeERMRWxCUVVFc1pVRkJaU3hGUVVGRkxHbENRVUZwUWpzN08wRkRSbkJETEUxQlFVMURMRTFCUVVrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVTnFReXhOUVVGTlF5eE5RVUZKTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGFrTXNUVUZCVFVNc1VVRkJUU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMEZCUlhwQ0xFMUJRVUVzYVVKQlFXdENMRk5CUVZFc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlFUdEJRVWxvUkN4SlFVRkJMRmRCUVVFc1EwRkJiVUlzVVVGQmNVSXNSVUZCUVR0QlFVTjBReXhSUVVGQkxFdEJRVXNzUlVGQlJTeERRVUZETzBGQlJWSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExGRkJRVkVzUTBGQlF6dEJRVVUxUWl4UlFVRkJMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVVTVRaXhSUVVGQkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NTMEZCU1R0WlFVTnNSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRmVrTXNXVUZCUVN4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVkQlFVY3NTMEZCU3l4RFFVRkRPMEZCUlM5Q0xGbEJRVUVzVFVGQlRTeERRVUZETEZGQlFUSkNMRU5CUVVNc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGQlF6dEJRVU55UkN4WlFVRkJMRTFCUVUwc1EwRkJReXhSUVVFeVFpeERRVUZETEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkZka1FzV1VGQlFTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJSV3BDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTjBReXhUUVVGRExFTkJRVU1zUTBGQlF6dExRVU5LTzBsQlJVMHNUMEZCVHl4SFFVRkJPMEZCUTFvc1VVRkJRU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRXRCUVVrN1FVRkRkRVFzV1VGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRM1pDTEZsQlFVRXNTVUZCU1N4RFFVRkRMRkZCUVRKQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZET1VNc1UwRkJReXhEUVVGRExFTkJRVU03UzBGRFNqdEJRVVZOTEVsQlFVRXNhVUpCUVdsQ0xFTkJRVU1zUzBGQll5eEZRVUZCTzFGQlEzSkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGSk8xbEJReTlFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJSWHBETEZsQlFVRXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eERRVUZEUml4TlFVRkpMRVZCUVVWRkxGRkJRVTBzUlVGQlJVUXNUVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkZjRVFzV1VGQlFTeE5RVUZOTEV0QlFVc3NSMEZCUjBRc1RVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlEwTXNUVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRia1FzV1VGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU4yUkN4VFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWSUxGRkJRVUVzUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzB0QlEyaERPMEZCUTBZN08wRkRjRVJFTzBGQlNVRTdPMEZCUlVjN1FVRkRWU3hOUVVGQkxHZENRVUZuUWl4SFFVRjFRanRKUVVOc1JDeE5RVUZOTzBsQlEwNHNUMEZCVHp0SlFVTlFMRTlCUVU4N1NVRkRVQ3haUVVGWk8wbEJRMW9zVFVGQlRUdEpRVVZPTEUxQlFVMDdTVUZEVGl4VFFVRlRPMGxCUTFRc1ZVRkJWVHRKUVVOV0xFdEJRVXM3U1VGRlRDeGpRVUZqTzBsQlEyUXNZMEZCWXp0SlFVTmtMRlZCUVZVN1NVRkRWaXhWUVVGVk8wbEJSVllzWlVGQlpUdEpRVU5tTEdWQlFXVTdTVUZEWml4WFFVRlhPMGxCUTFnc1YwRkJWenRKUVVWWUxHTkJRV003U1VGRFpDeGpRVUZqTzBsQlEyUXNZMEZCWXp0SlFVTmtMRlZCUVZVN1NVRkZWaXhsUVVGbE8wbEJRMllzWlVGQlpUdEpRVU5tTEdWQlFXVTdTVUZEWml4WFFVRlhPMGxCUlZnc2NVSkJRWEZDTzBsQlEzSkNMRzFDUVVGdFFqdEpRVU51UWl4cFFrRkJhVUk3U1VGRGFrSXNiVUpCUVcxQ08wbEJRMjVDTEhWQ1FVRjFRanRKUVVOMlFpeHBRa0ZCYVVJN1NVRkRha0lzYjBKQlFXOUNPMGxCUTNCQ0xIZENRVUYzUWp0SlFVTjRRaXhyUWtGQmEwSTdTVUZEYkVJc2EwSkJRV3RDTzBsQlEyeENMSE5DUVVGelFqdEpRVU4wUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVc5Q08wbEJRM0JDTEhkQ1FVRjNRanRKUVVONFFpeHJRa0ZCYTBJN1NVRkZiRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQmEwSTdTVUZEYkVJc2IwSkJRVzlDTzBsQlEzQkNMSGRDUVVGM1FqdEpRVU40UWl4clFrRkJhMEk3U1VGRGJFSXNjVUpCUVhGQ08wbEJRM0pDTEhsQ1FVRjVRanRKUVVONlFpeHRRa0ZCYlVJN1NVRkRia0lzYlVKQlFXMUNPMGxCUTI1Q0xIVkNRVUYxUWp0SlFVTjJRaXhwUWtGQmFVSTdTVUZEYWtJc2NVSkJRWEZDTzBsQlEzSkNMSGxDUVVGNVFqdEpRVU42UWl4dFFrRkJiVUk3T3p0QlEzSkZja0k3UVVGRlFUczdPenRCUVVsSE8wRkJRMVVzVFVGQlFTeG5Ra0ZCWjBJc1IwRkJSenRCUVVNNVFpeEpRVUZCTEVsQlFVa3NSVUZCUlN4TlFVRk5PMEZCUTFvc1NVRkJRU3hMUVVGTExFVkJRVVVzVDBGQlR6dEJRVU5rTEVsQlFVRXNTMEZCU3l4RlFVRkZMRTlCUVU4N1FVRkRaQ3hKUVVGQkxGVkJRVlVzUlVGQlJTeFpRVUZaTzBGQlEzaENMRWxCUVVFc1NVRkJTU3hGUVVGRkxFMUJRVTA3UVVGRldpeEpRVUZCTEVsQlFVa3NSVUZCUlN4TlFVRk5PMEZCUTFvc1NVRkJRU3hQUVVGUExFVkJRVVVzVTBGQlV6dEJRVU5zUWl4SlFVRkJMRkZCUVZFc1JVRkJSU3hWUVVGVk8wRkJRM0JDTEVsQlFVRXNSMEZCUnl4RlFVRkZMRXRCUVVzN1FVRkZWaXhKUVVGQkxGbEJRVmtzUlVGQlJTeGpRVUZqTzBGQlF6VkNMRWxCUVVFc1dVRkJXU3hGUVVGRkxHTkJRV003UVVGRE5VSXNTVUZCUVN4UlFVRlJMRVZCUVVVc1ZVRkJWVHRCUVVOd1FpeEpRVUZCTEZGQlFWRXNSVUZCUlN4VlFVRlZPMEZCUlhCQ0xFbEJRVUVzWVVGQllTeEZRVUZGTEdWQlFXVTdRVUZET1VJc1NVRkJRU3hoUVVGaExFVkJRVVVzWlVGQlpUdEJRVU01UWl4SlFVRkJMRk5CUVZNc1JVRkJSU3hYUVVGWE8wRkJRM1JDTEVsQlFVRXNVMEZCVXl4RlFVRkZMRmRCUVZjN1FVRkZkRUlzU1VGQlFTeFpRVUZaTEVWQlFVVXNZMEZCWXp0QlFVTTFRaXhKUVVGQkxGbEJRVmtzUlVGQlJTeGpRVUZqTzBGQlF6VkNMRWxCUVVFc1dVRkJXU3hGUVVGRkxHTkJRV003UVVGRE5VSXNTVUZCUVN4UlFVRlJMRVZCUVVVc1ZVRkJWVHRCUVVWd1FpeEpRVUZCTEdGQlFXRXNSVUZCUlN4bFFVRmxPMEZCUXpsQ0xFbEJRVUVzWVVGQllTeEZRVUZGTEdWQlFXVTdRVUZET1VJc1NVRkJRU3hoUVVGaExFVkJRVVVzWlVGQlpUdEJRVU01UWl4SlFVRkJMRk5CUVZNc1JVRkJSU3hYUVVGWE8wRkJSWFJDTEVsQlFVRXNiVUpCUVcxQ0xFVkJRVVVzY1VKQlFYRkNPMEZCUXpGRExFbEJRVUVzYVVKQlFXbENMRVZCUVVVc2JVSkJRVzFDTzBGQlEzUkRMRWxCUVVFc1pVRkJaU3hGUVVGRkxHbENRVUZwUWp0QlFVTnNReXhKUVVGQkxHbENRVUZwUWl4RlFVRkZMRzFDUVVGdFFqdEJRVU4wUXl4SlFVRkJMSEZDUVVGeFFpeEZRVUZGTEhWQ1FVRjFRanRCUVVNNVF5eEpRVUZCTEdWQlFXVXNSVUZCUlN4cFFrRkJhVUk3UVVGRGJFTXNTVUZCUVN4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJN1FVRkRlRU1zU1VGQlFTeHpRa0ZCYzBJc1JVRkJSU3gzUWtGQmQwSTdRVUZEYUVRc1NVRkJRU3huUWtGQlowSXNSVUZCUlN4clFrRkJhMEk3UVVGRGNFTXNTVUZCUVN4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJN1FVRkRjRU1zU1VGQlFTeHZRa0ZCYjBJc1JVRkJSU3h6UWtGQmMwSTdRVUZETlVNc1NVRkJRU3hqUVVGakxFVkJRVVVzWjBKQlFXZENPMEZCUTJoRExFbEJRVUVzYTBKQlFXdENMRVZCUVVVc2IwSkJRVzlDTzBGQlEzaERMRWxCUVVFc2MwSkJRWE5DTEVWQlFVVXNkMEpCUVhkQ08wRkJRMmhFTEVsQlFVRXNaMEpCUVdkQ0xFVkJRVVVzYTBKQlFXdENPMEZCUlhCRExFbEJRVUVzYjBKQlFXOUNMRVZCUVVVc2MwSkJRWE5DTzBGQlF6VkRMRWxCUVVFc2EwSkJRV3RDTEVWQlFVVXNiMEpCUVc5Q08wRkJRM2hETEVsQlFVRXNaMEpCUVdkQ0xFVkJRVVVzYTBKQlFXdENPMEZCUTNCRExFbEJRVUVzYTBKQlFXdENMRVZCUVVVc2IwSkJRVzlDTzBGQlEzaERMRWxCUVVFc2MwSkJRWE5DTEVWQlFVVXNkMEpCUVhkQ08wRkJRMmhFTEVsQlFVRXNaMEpCUVdkQ0xFVkJRVVVzYTBKQlFXdENPMEZCUTNCRExFbEJRVUVzYlVKQlFXMUNMRVZCUVVVc2NVSkJRWEZDTzBGQlF6RkRMRWxCUVVFc2RVSkJRWFZDTEVWQlFVVXNlVUpCUVhsQ08wRkJRMnhFTEVsQlFVRXNhVUpCUVdsQ0xFVkJRVVVzYlVKQlFXMUNPMEZCUTNSRExFbEJRVUVzYVVKQlFXbENMRVZCUVVVc2JVSkJRVzFDTzBGQlEzUkRMRWxCUVVFc2NVSkJRWEZDTEVWQlFVVXNkVUpCUVhWQ08wRkJRemxETEVsQlFVRXNaVUZCWlN4RlFVRkZMR2xDUVVGcFFqdEJRVU5zUXl4SlFVRkJMRzFDUVVGdFFpeEZRVUZGTEhGQ1FVRnhRanRCUVVNeFF5eEpRVUZCTEhWQ1FVRjFRaXhGUVVGRkxIbENRVUY1UWp0QlFVTnNSQ3hKUVVGQkxHbENRVUZwUWl4RlFVRkZMRzFDUVVGdFFqczdPMEZEY2tWNFF6dEJRVWxCT3pzN08wRkJTVWM3UVVGRFZTeE5RVUZCTEhGQ1FVRnhRaXhIUVVFMFJEdEJRVU0xUml4SlFVRkJMRWxCUVVrc1JVRkJSU3hKUVVGSk8wRkJRMVlzU1VGQlFTeExRVUZMTEVWQlFVVXNUVUZCVFR0QlFVTmlMRWxCUVVFc1MwRkJTeXhGUVVGRkxFOUJRVTg3UVVGRFpDeEpRVUZCTEZWQlFWVXNSVUZCUlN4UFFVRlBPMEZCUTI1Q0xFbEJRVUVzU1VGQlNTeEZRVUZGTEZsQlFWazdRVUZGYkVJc1NVRkJRU3hKUVVGSkxFVkJRVVVzVFVGQlRUdEJRVU5hTEVsQlFVRXNUMEZCVHl4RlFVRkZMRTFCUVUwN1FVRkRaaXhKUVVGQkxGRkJRVkVzUlVGQlJTeE5RVUZOTzBGQlEyaENMRWxCUVVFc1IwRkJSeXhGUVVGRkxFMUJRVTA3UVVGRldDeEpRVUZCTEZsQlFWa3NSVUZCUlN4TlFVRk5PMEZCUTNCQ0xFbEJRVUVzV1VGQldTeEZRVUZGTEdOQlFXTTdRVUZETlVJc1NVRkJRU3hSUVVGUkxFVkJRVVVzWTBGQll6dEJRVU40UWl4SlFVRkJMRkZCUVZFc1JVRkJSU3hWUVVGVk8wRkJSWEJDTEVsQlFVRXNZVUZCWVN4RlFVRkZMRTFCUVUwN1FVRkRja0lzU1VGQlFTeGhRVUZoTEVWQlFVVXNaVUZCWlR0QlFVTTVRaXhKUVVGQkxGTkJRVk1zUlVGQlJTeGxRVUZsTzBGQlF6RkNMRWxCUVVFc1UwRkJVeXhGUVVGRkxGZEJRVmM3UVVGRmRFSXNTVUZCUVN4WlFVRlpMRVZCUVVVc1dVRkJXVHRCUVVNeFFpeEpRVUZCTEZsQlFWa3NSVUZCUlN4alFVRmpPMEZCUXpWQ0xFbEJRVUVzV1VGQldTeEZRVUZGTEdOQlFXTTdRVUZETlVJc1NVRkJRU3hSUVVGUkxFVkJRVVVzWTBGQll6dEJRVVY0UWl4SlFVRkJMR0ZCUVdFc1JVRkJSU3haUVVGWk8wRkJRek5DTEVsQlFVRXNZVUZCWVN4RlFVRkZMR1ZCUVdVN1FVRkRPVUlzU1VGQlFTeGhRVUZoTEVWQlFVVXNaVUZCWlR0QlFVTTVRaXhKUVVGQkxGTkJRVk1zUlVGQlJTeGxRVUZsTzBGQlJURkNMRWxCUVVFc2JVSkJRVzFDTEVWQlFVVXNWVUZCVlR0QlFVTXZRaXhKUVVGQkxHbENRVUZwUWl4RlFVRkZMSEZDUVVGeFFqdEJRVU40UXl4SlFVRkJMR1ZCUVdVc1JVRkJSU3h0UWtGQmJVSTdRVUZEY0VNc1NVRkJRU3hwUWtGQmFVSXNSVUZCUlN4VlFVRlZPMEZCUXpkQ0xFbEJRVUVzY1VKQlFYRkNMRVZCUVVVc2JVSkJRVzFDTzBGQlF6RkRMRWxCUVVFc1pVRkJaU3hGUVVGRkxIVkNRVUYxUWp0QlFVTjRReXhKUVVGQkxHdENRVUZyUWl4RlFVRkZMRlZCUVZVN1FVRkRPVUlzU1VGQlFTeHpRa0ZCYzBJc1JVRkJSU3h2UWtGQmIwSTdRVUZETlVNc1NVRkJRU3huUWtGQlowSXNSVUZCUlN4M1FrRkJkMEk3UVVGRE1VTXNTVUZCUVN4blFrRkJaMElzUlVGQlJTeFZRVUZWTzBGQlF6VkNMRWxCUVVFc2IwSkJRVzlDTEVWQlFVVXNhMEpCUVd0Q08wRkJRM2hETEVsQlFVRXNZMEZCWXl4RlFVRkZMSE5DUVVGelFqdEJRVU4wUXl4SlFVRkJMR3RDUVVGclFpeEZRVUZGTEZWQlFWVTdRVUZET1VJc1NVRkJRU3h6UWtGQmMwSXNSVUZCUlN4dlFrRkJiMEk3UVVGRE5VTXNTVUZCUVN4blFrRkJaMElzUlVGQlJTeDNRa0ZCZDBJN1FVRkZNVU1zU1VGQlFTeHZRa0ZCYjBJc1JVRkJSU3hYUVVGWE8wRkJRMnBETEVsQlFVRXNhMEpCUVd0Q0xFVkJRVVVzYzBKQlFYTkNPMEZCUXpGRExFbEJRVUVzWjBKQlFXZENMRVZCUVVVc2IwSkJRVzlDTzBGQlEzUkRMRWxCUVVFc2EwSkJRV3RDTEVWQlFVVXNWMEZCVnp0QlFVTXZRaXhKUVVGQkxITkNRVUZ6UWl4RlFVRkZMRzlDUVVGdlFqdEJRVU0xUXl4SlFVRkJMR2RDUVVGblFpeEZRVUZGTEhkQ1FVRjNRanRCUVVNeFF5eEpRVUZCTEcxQ1FVRnRRaXhGUVVGRkxGZEJRVmM3UVVGRGFFTXNTVUZCUVN4MVFrRkJkVUlzUlVGQlJTeHhRa0ZCY1VJN1FVRkRPVU1zU1VGQlFTeHBRa0ZCYVVJc1JVRkJSU3g1UWtGQmVVSTdRVUZETlVNc1NVRkJRU3hwUWtGQmFVSXNSVUZCUlN4WFFVRlhPMEZCUXpsQ0xFbEJRVUVzY1VKQlFYRkNMRVZCUVVVc2JVSkJRVzFDTzBGQlF6RkRMRWxCUVVFc1pVRkJaU3hGUVVGRkxIVkNRVUYxUWp0QlFVTjRReXhKUVVGQkxHMUNRVUZ0UWl4RlFVRkZMRmRCUVZjN1FVRkRhRU1zU1VGQlFTeDFRa0ZCZFVJc1JVRkJSU3h4UWtGQmNVSTdRVUZET1VNc1NVRkJRU3hwUWtGQmFVSXNSVUZCUlN4NVFrRkJlVUk3T3p0QlEzSkZPVU03T3pzN08wRkJTMGM3UVVGRFJ5eFRRVUZWTEdkQ1FVRm5RaXhEUVVFMlFpeE5RVUZUTEVWQlFVRTdTVUZEY0VVc1NVRkJTeXhOUVVGakxFTkJRVU1zVFVGQlRTeEZRVUZGTzFGQlF6RkNMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dEJRVU5xUWl4TFFVRkJPMEZCUVUwc1UwRkJRVHRSUVVOS0xFMUJRV01zUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVTXpRaXhMUVVGQk8wRkJSVVFzU1VGQlFTeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RanM3UVVOVVFTeE5RVUZOUkN4TlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYWtNc1RVRkJUVVVzVVVGQlRTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wRkJSWFJET3p0QlFVVkhPMDFCUTFVc1RVRkJUU3hEUVVGQk8wRkJZV3BDT3pzN1FVRkhSenRCUVVOSUxFbEJRVUVzVjBGQlFTeERRVUZ0UWl4VlFVRjVRaXhGUVVGQk8wRkJRekZETEZGQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhWUVVGVkxFTkJRVU03UVVGRk4wSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0TFFVTjRRenRCUVVWRU96czdPMEZCU1VjN1NVRkRTU3hsUVVGbExFZEJRVUU3VVVGRGNFSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1JVRkJZU3hEUVVGRE8wRkJSVE5DTEZGQlFVRXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc2FVSkJRV2xDTEV0QlFVazdXVUZEZWtRc1RVRkJUU3hYUVVGWExFZEJRVWNzYVVKQlFYRkRMRU5CUVVNN1dVRkRNVVFzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6czdXVUZITTBNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJUdG5Ra0ZEVkN4UFFVRlBPMEZCUTFJc1lVRkJRVHM3UVVGSFJDeFpRVUZCUml4TlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTjZRaXhaUVVGQlJTeFJRVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6czdXVUZITjBJc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITzBGQlEyeENMR2RDUVVGQkxGRkJRVkVzUlVGQlJVWXNUVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJPRUk3UVVGRGNFUXNaMEpCUVVFc1VVRkJVU3hGUVVGRlJTeFJRVUZOTEVOQlFVTXNUMEZCVHl4RlFVRnpRenRoUVVNdlJDeERRVUZETzBGQlEwb3NVMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZTQ3hSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzB0QlEySTdRVUZGUkRzN096dEJRVWxITzBsQlEwa3NUMEZCVHl4SFFVRkJPMUZCUTFvc1RVRkJUU3hKUVVGSkxFZEJRVWNzUlVGQllTeERRVUZETzBGQlJUTkNMRkZCUVVFc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zWTBGQll5eExRVUZKTzFsQlEzUkVMRTFCUVUwc1VVRkJVU3hIUVVGSExHTkJRV3RETEVOQlFVTTdXVUZEY0VRc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenM3V1VGSGVFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSVHRuUWtGRFZDeFBRVUZQTzBGQlExSXNZVUZCUVRzN1dVRkhSRVlzVFVGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeENSU3hSUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZGYkVJc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNeFF5eFpRVUZCTEVsQlFVa3NVMEZCVXl4TFFVRlVMRWxCUVVFc1NVRkJRU3hUUVVGVExIVkNRVUZVTEZOQlFWTXNRMEZCUlN4UlFVRlJMRVZCUVVVN1owSkJRM1pDUml4TlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRCUVVNM1F5eGhRVUZCTzBGQlEwUXNXVUZCUVN4SlFVRkpMRk5CUVZNc1MwRkJWQ3hKUVVGQkxFbEJRVUVzVTBGQlV5eDFRa0ZCVkN4VFFVRlRMRU5CUVVVc1VVRkJVU3hGUVVGRk8yZENRVU4yUWl4blFrRkJaMElzUTBGQlEwVXNVVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjRSQ3hoUVVGQk96dEJRVWRFTEZsQlFVRkdMRTFCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUTNoQ0xGbEJRVUZGTEZGQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZET3p0WlFVZHdReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVYzdRVUZEWml4blFrRkJRU3hSUVVGUkxFVkJRVVZHTEUxQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVRoQ08wRkJRM0JFTEdkQ1FVRkJMRkZCUVZFc1JVRkJSVVVzVVVGQlRTeERRVUZETEU5QlFVOHNSVUZCYzBNN1lVRkRMMFFzUTBGQlF6dEJRVU5LTEZOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlVnc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dExRVU5pTzBGQlJVUTdPenM3T3pzN1FVRlBSenRCUVVOSkxFbEJRVUVzVDBGQlR5eERRVUZETEZWQlFXMUNMRVZCUVVFN1FVRkRhRU1zVVVGQlFTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNZMEZCWXl4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGSk8xbEJRemRFTEUxQlFVMHNVVUZCVVN4SFFVRkhMR05CUVd0RExFTkJRVU03V1VGRGNFUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXpzN1dVRkhlRU1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlR0blFrRkRWQ3hQUVVGUE8wRkJRMUlzWVVGQlFUdFpRVVZFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZETVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJUczdaMEpCUldRc1QwRkJUenRCUVVOU0xHRkJRVUU3TzBGQlIwUXNXVUZCUVN4SlFVRkpMRXRCUVVzc1MwRkJUQ3hKUVVGQkxFbEJRVUVzUzBGQlN5eDFRa0ZCVEN4TFFVRkxMRU5CUVVVc1VVRkJVU3hGUVVGRk8yZENRVU51UWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1owSkJSWGhETEVsQlFVa3NVMEZCVXl4RFFVRkRMRkZCUVZFc1JVRkJSVHRCUVVOMFFpeHZRa0ZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlEwWXNUVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjJSQ3hwUWtGQlFUdEJRVU5HTEdGQlFVRTdRVUZGUkN4WlFVRkJMRWxCUVVrc1MwRkJTeXhMUVVGTUxFbEJRVUVzU1VGQlFTeExRVUZMTEhWQ1FVRk1MRXRCUVVzc1EwRkJSU3hSUVVGUkxFVkJRVVU3WjBKQlEyNUNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRuUWtGRk1VTXNTVUZCU1N4VFFVRlRMRU5CUVVNc1VVRkJVU3hGUVVGRk8wRkJRM1JDTEc5Q1FVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZEUlN4UlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJoRkxHbENRVUZCTzBGQlEwWXNZVUZCUVR0QlFVTklMRk5CUVVNc1EwRkJReXhEUVVGRE8wdEJRMG83UVVGRlJEczdRVUZGUnp0SlFVTkpMRk5CUVZNc1IwRkJRVHRCUVVOa0xGRkJRVUVzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVWs3V1VGRGVrUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUUwUWl4RFFVRkRMRU5CUVVNN1dVRkZOVVFzU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlR0blFrRkRWQ3hQUVVGUE8wRkJRMUlzWVVGQlFUdEJRVVZFTEZsQlFVRXNTVUZCU1N4SlFVRkpMRXRCUVVvc1NVRkJRU3hKUVVGQkxFbEJRVWtzZFVKQlFVb3NTVUZCU1N4RFFVRkZMRkZCUVZFc1JVRkJSVHRuUWtGRGJFSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUTNoRExHRkJRVUU3UVVGRlJDeFpRVUZCTEVsQlFVa3NTVUZCU1N4TFFVRktMRWxCUVVFc1NVRkJRU3hKUVVGSkxIVkNRVUZLTEVsQlFVa3NRMEZCUlN4UlFVRlJMRVZCUVVVN1owSkJRMnhDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTXhReXhoUVVGQk8wRkJRMGdzVTBGQlF5eERRVUZETEVOQlFVTTdTMEZEU2p0QlFVVkVPenM3TzBGQlNVYzdRVUZEU1N4SlFVRkJMRTlCUVU4c1EwRkJReXhKUVVGelFpeEZRVUZCT3p0UlFVTnVReXhQUVVGUExFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzVTBGQlV5eERRVUZETzB0QlF6TkRPMEZCUlVRN096czdRVUZKUnp0QlFVTkpMRWxCUVVFc1YwRkJWeXhEUVVGRExFbEJRWE5DTEVWQlFVRTdPMEZCUTNaRExGRkJRVUVzVDBGQlR5eERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRkZMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFbEJRVWtzVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTTdTMEZETlVNN1FVRkRSanM3UVVONlRFUXNUVUZCVFVZc1RVRkJTU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJwRExFMUJRVTFGTEZGQlFVMHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVU4wUXl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVVXhRenM3UVVGRlJ6dEJRVU5ITEUxQlFVOHNZMEZCWlN4VFFVRlJMRTFCUVUwc1EwRkJRVHRKUVVNNVFpeFBRVUZQTEdkQ1FVRm5RaXhEUVVGRExGRkJRV2RDTEVWQlFVRTdRVUZOYUVRc1VVRkJRU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRCUVVOc1F5eFJRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1owSkJRV2RDTEVOQlFVTTdPMUZCUnpkQ0xFMUJRVTBzYTBKQlFXdENMRWRCUVhWRUxFVkJRVVVzUTBGQlF6dFJRVVZzUml4TlFVRk5MR0ZCUVdFc1IwRkJNRVFzUlVGQlJTeERRVUZETzFGQlEyaEdMRTFCUVUwc2IwSkJRVzlDTEVkQlFUQkVMRVZCUVVVc1EwRkJRenRCUVVWMlJpeFJRVUZCTEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZGQlFWRXNTMEZCU1RzN1dVRkRjRU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVVZvUkN4WlFVRkJMRWxCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zWjBKQlFVRXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVNNVF5eG5Ra0ZCUVN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wRkJSV3BFTEdkQ1FVRkJMRkZCUVZFc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlEzaERMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eERRVUZETEdsQ1FVRnBRaXhGUVVGRkxHbENRVUZwUWl4RlFVRkZSaXhOUVVGSkxFTkJRVU1zUTBGQlF6dEJRVVV6UlN4blFrRkJRU3hyUWtGQmEwSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXp0blFrRkZha1FzWVVGQllTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdRVUZGZEVRc1owSkJRVUVzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0QlFVTnVSQ3huUWtGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4UlFVRlJMRU5CUVVNc1RVRkJUU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZGTEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVOQkxFMUJRVWtzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSVUVzVFVGQlNTeERRVUZETEVOQlFVTTdRVUZEZUVVc1owSkJRVUVzYjBKQlFXOUNMRU5CUVVNc1VVRkJVU3hEUVVGRExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNN1FVRkRkRVFzWVVGQlFUdEJRVU5JTEZOQlFVTXNRMEZCUXl4RFFVRkRPenRSUVVkSUxFMUJRVTBzVVVGQlVTeEhRVUV5UWl4RlFVRkZMRU5CUVVNN1FVRkROVU1zVVVGQlFTeG5Ra0ZCWjBJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFJRVUZSTEV0QlFVazdPMWxCUTNCRExFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRmFFUXNXVUZCUVN4SlFVRkpMRkZCUVZFc1JVRkJSVHRCUVVOYUxHZENRVUZCTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1VVRkJVU3hEUVVGclFpeERRVUZET3p0blFrRkhlRVVzU1VGQlNTeGxRVUZsTEVkQlFUUkNMRkZCUVZFc1EwRkJRenRCUVVONFJDeG5Ra0ZCUVN4SlFVRkpMSFZDUVVGclJDeERRVUZETzJkQ1FVTjJSQ3hQUVVGUExIVkNRVUYxUWl4SlFVRkpMRWxCUVVrc1JVRkJSVHRCUVVOMFF5eHZRa0ZCUVN4bFFVRmxMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN2IwSkJRM3BFTEVsQlFVa3NaVUZCWlN4SlFVRkpMRWxCUVVrc1JVRkJSVHQzUWtGRE0wSXNUVUZCVFR0QlFVTlFMSEZDUVVGQk8wRkJRMFFzYjBKQlFVRXNkVUpCUVhWQ0xFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03UVVGREwwUXNhVUpCUVVFN08wRkJSMFFzWjBKQlFVRXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdaMEpCUTNwRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVkQlFVY3NZVUZCWVN4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRmFrUXNaMEpCUVVFc1RVRkJUU3hwUWtGQmFVSXNTVUZCU1N4bFFVRmxMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVVVGQlVTeERRVUZETEdWQlFXVXNRMEZCUXl3d1EwRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZ0UWl4RFFVRkRPMEZCUlhaSExHZENRVUZCTEdsQ1FVRnBRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0QlFVTnVReXhuUWtGQlFTeFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMEZCUXpkRExHZENRVUZCTEVsQlFVa3NkVUpCUVhWQ0xFVkJRVVU3UVVGRE0wSXNiMEpCUVVFc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dEJRVU51UkN4cFFrRkJRVHRuUWtGRlJDeFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1JVRkJSU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVOQlFVTTdRVUZETlVNc1lVRkJRVHRCUVVOSUxGTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVZ3NUMEZCVHp0QlFVTk1MRmxCUVVFc1VVRkJVU3hGUVVGRkxGRkJRWGxDTzFsQlEyNURMRWxCUVVrN1dVRkRTaXh2UWtGQmIwSTdXVUZEY0VJc1lVRkJZVHRUUVVOa0xFTkJRVU03UzBGRFNEdEJRVTlFTEVsQlFVRXNWMEZCUVN4RFFVRnRRaXhSUVVGblFpeEZRVUZCTzBGQlEycERMRkZCUVVFc1RVRkJUU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVVzWVVGQllTeEZRVUZGTEVkQlFVY3NZMEZCWXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUlRGSExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVVm9RaXhSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRPMEZCUTNwQ0xGRkJRVUVzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkRha0lzVVVGQlFTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFZEJRVWNzYjBKQlFXOUNMRU5CUVVNN1FVRkRiRVFzVVVGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMR0ZCUVdFc1EwRkJRenRMUVVOeVF6dEJRVVZFT3p0QlFVVkhPMGxCUTBrc1RVRkJUU3hIUVVGQk8wRkJRMWdzVVVGQlFTeG5Ra0ZCWjBJc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFJRVUZSTEV0QlFVazdXVUZEY0VNc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03V1VGRmNrUXNTVUZCU1N4UlFVRlJMRWxCUVVrc1NVRkJTU3hGUVVGRk8yZENRVU53UWl4TlFVRk5MRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUlN4RFFVRkRPMmRDUVVOb1JDeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhSUVVGUkxFTkJRVVVzUTBGQlF6dG5Ra0ZEYkVVc1RVRkJUU3h6UWtGQmMwSXNSMEZCUjBVc1VVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzJkQ1FVTjZSU3hOUVVGTkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRkZCUVZFc1EwRkJSU3hEUVVGRE8wRkJSWEJFTEdkQ1FVRkJMRkZCUVZFc1EwRkJReXhWUVVGVk8wRkJRMmhDTEhGQ1FVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETzNGQ1FVTTFRaXhSUVVGUkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN2NVSkJRemRDTEZkQlFWY3NRMEZCUXl4elFrRkJjMElzUTBGQlF6dHhRa0ZEYmtNc1VVRkJVU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZET3p0blFrRkhNVUlzU1VGQlNTeFJRVUZSTEV0QlFVc3NUVUZCVFN4RlFVRkZPMjlDUVVOMlFpeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExGZEJRVmNzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dHZRa0ZEZEVVc1VVRkJVU3hEUVVGRExFMUJRVThzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEYUVRc2IwSkJRVUVzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlR5eERRVUZETEZkQlFWY3NRMEZCUXp0dlFrRkRka1FzVFVGQlRTeGhRVUZoTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zV1VGQldTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEYWtZc2IwSkJRVUVzVVVGQlVTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRGRrTXNhVUpCUVVFN1FVRkRSaXhoUVVGQk8wRkJRMGdzVTBGQlF5eERRVUZETEVOQlFVTTdTMEZEU2p0QlFVTkdPenRCUTJ4SlJEczdRVUZGUnp0TlFVTlZMRmRCUVZjc1EwRkJRVHRCUVcxQ2RFSTdPMEZCUlVjN1FVRkRTQ3hKUVVGQkxFbEJRVmNzVVVGQlVTeEhRVUZCTzBGQlEycENMRkZCUVVFc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5dzBSa0ZCTkVZc1EwRkJReXhEUVVGRE8xRkJSVE5ITEU5QlFVOHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRMUVVONlFqdEJRVVZFT3pzN1FVRkhSenRCUVVOSUxFbEJRVUVzU1VGQlZ5eFhRVUZYTEVkQlFVRTdRVUZEY0VJc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNVVUZCVVN4RFFVRkRPMHRCUTNKRE8wRkJSVVE3T3p0QlFVZEhPMEZCUTBnc1NVRkJRU3hKUVVGWExHdENRVUZyUWl4SFFVRkJPMEZCUXpOQ0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVVVGQlVTeERRVUZETzB0QlF6VkRPMEZCUlVRN08wRkJSVWM3UVVGRFNDeEpRVUZCTEVsQlFWY3NWVUZCVlN4SFFVRkJPenRCUVVWdVFpeFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhWUVVGVkxFTkJRVU03UzBGRGRrTTdRVUZGUkRzN1FVRkZSenRCUVVOSUxFbEJRVUVzU1VGQlZ5eGhRVUZoTEVkQlFVRTdRVUZEZEVJc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNWVUZCVlN4RFFVRkRPMHRCUTNaRE8wRkJSVVE3TzBGQlJVYzdRVUZEU0N4SlFVRkJMRWxCUVZjc2IwSkJRVzlDTEVkQlFVRTdRVUZETjBJc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhWUVVGVkxFTkJRVU03UzBGRE9VTTdRVUZGUkRzN1FVRkZSenRCUVVOSUxFbEJRVUVzU1VGQlZ5eDNRa0ZCZDBJc1IwRkJRVHRCUVVOcVF5eFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZCUXp0TFFVTjRRenRCUVVWRU96czdPMEZCU1VjN1NVRkRTQ3hYUVVGdFFpeERRVUZCTEZWQlFYbENMRVZCUVVVc1QwRkJORU1zUlVGQlFUczdRVUZEZUVZc1VVRkJRU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVDBGQlR5eExRVUZCTEVsQlFVRXNTVUZCVUN4UFFVRlBMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFWQXNUMEZCVHl4RFFVRkZMRzlDUVVGdlFpeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZKTEVsQlFVa3NRMEZCUXp0UlFVTnNSU3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRemRETEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03UzBGRGRFVTdRVUZGUkRzN096dEJRVWxITzBGQlEwa3NTVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJiVUlzUlVGQlFUdEJRVU0zUWl4UlFVRkJMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNSMEZCUnl4TlFVRk5MRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdVVUZEZUVRc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGNFUXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeEhRVUZITEVsQlFVa3NZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dEJRVVZ5UlN4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMkk3UVVGRlJEczdPMEZCUjBjN1NVRkRTU3hMUVVGTExFZEJRVUU3VVVGRFZpeFBRVUZQTEVsQlFVa3NWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTjZSenRCUVVWRU96dEJRVVZITzBsQlEwa3NaVUZCWlN4SFFVRkJPMEZCUTNCQ0xGRkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4MVNFRkJkVWdzUTBGRGVFZ3NRMEZCUXp0QlFVVkdMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc1EwRkJRenRMUVVOc1F6dEJRVVZFT3pzN08wRkJTVWM3U1VGRFNTeHJRa0ZCYTBJc1IwRkJRVHRCUVVOMlFpeFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dExRVU01UXp0QlFVVkVPenM3TzBGQlNVYzdTVUZEU1N4NVFrRkJlVUlzUjBGQlFUdEJRVU01UWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8wdEJRM0pFTzBGQlJVUTdPMEZCUlVjN1NVRkRTU3hQUVVGUExFZEJRVUU3UVVGRFdpeFJRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc0swWkJRU3RHTEVOQlFVTXNRMEZCUXp0QlFVVTVSeXhSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMHRCUXpGQ08wRkJSVVE3T3pzN1FVRkpSenRKUVVOSkxGVkJRVlVzUjBGQlFUdEJRVU5tTEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzB0QlEzUkRPMEZCUlVRN096czdRVUZKUnp0SlFVTkpMR2xDUVVGcFFpeEhRVUZCTzBGQlEzUkNMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UzBGRE4wTTdRVUZGUkRzN1FVRkZSenRCUVVOSkxFbEJRVUVzVDBGQlR5eERRVUZETEZWQlFXMUNMRVZCUVVFN1FVRkRhRU1zVVVGQlFTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMQ3RHUVVFclJpeERRVUZETEVOQlFVTTdRVUZGT1Vjc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1MwRkRjRU03UVVGRlJEczdPenM3T3pzN08wRkJVMGM3UVVGRFNTeEpRVUZCTEZWQlFWVXNRMEZCUXl4VlFVRnRRaXhGUVVGQk8xRkJRMjVETEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdTMEZEYUVRN1FVRkZSRHM3T3pzN096dEJRVTlITzBGQlEwa3NTVUZCUVN4cFFrRkJhVUlzUTBGQlF5eFZRVUZ0UWl4RlFVRkJPMUZCUXpGRExFOUJRVThzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0TFFVTjJSRHRCUVVWRU96dEJRVVZITzBsQlEwa3NVMEZCVXl4SFFVRkJPMEZCUTJRc1VVRkJRU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEhGSFFVRnhSeXhEUVVGRExFTkJRVU03UVVGRmNFZ3NVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dExRVU0xUWp0QlFVVkVPenM3TzBGQlNVYzdTVUZEU1N4WlFVRlpMRWRCUVVFN1FVRkRha0lzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03UzBGRGVFTTdRVUZGUkRzN1FVRkZSenRKUVVOSkxHMUNRVUZ0UWl4SFFVRkJPMEZCUTNoQ0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTMEZETDBNN1FVRkZSRHM3UVVGRlJ6dEJRVU5KTEVsQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVhOQ0xFVkJRVUU3UVVGRGJrTXNVVUZCUVN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExDdEdRVUVyUml4RFFVRkRMRU5CUVVNN1FVRkZPVWNzVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE9VSTdRVUZGUkRzN096dEJRVWxITzBGQlEwa3NTVUZCUVN4VlFVRlZMRU5CUVVNc1NVRkJjMElzUlVGQlFUdFJRVU4wUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUXpGRE8wRkJSVVE3T3pzN1FVRkpSenRCUVVOSkxFbEJRVUVzYVVKQlFXbENMRU5CUVVNc1NVRkJjMElzUlVGQlFUdFJRVU0zUXl4UFFVRlBMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRGFrUTdRVUZGUkRzN1FVRkZSenRCUVVOSkxFbEJRVUVzVjBGQlZ5eERRVUZETEVsQlFYTkNMRVZCUVVFN1FVRkRka01zVVVGQlFTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTldMREpIUVVFeVJ5eERRVU0xUnl4RFFVRkRPMEZCUlVZc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRiRU03UVVGRlJEczdPenRCUVVsSE8wRkJRMGtzU1VGQlFTeGpRVUZqTEVOQlFVTXNTVUZCYzBJc1JVRkJRVHRSUVVNeFF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlF6bERPMEZCUlVRN096czdRVUZKUnp0QlFVTkpMRWxCUVVFc2NVSkJRWEZDTEVOQlFVTXNTVUZCYzBJc1JVRkJRVHRSUVVOcVJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRja1E3UVVGRlJEczdPenRCUVVsSE8wbEJRMGtzVFVGQlRTeEhRVUZCTzFGQlExZ3NTVUZCU1N4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVTdRVUZETjBJc1dVRkJRU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03UVVGRGNrTXNVMEZCUVR0TFFVTkdPMEZCUTBZN08wRkRNVk5FTzBGQlJXRXNUVUZCUVN4M1FrRkJkMElzUjBGQlJ6dEJRVU4wUXl4SlFVRkJMRWxCUVVrc1JVRkJSU3hOUVVGTk8wRkJRMW9zU1VGQlFTeExRVUZMTEVWQlFVVXNUMEZCVHp0QlFVTmtMRWxCUVVFc1NVRkJTU3hGUVVGRkxFMUJRVTA3UVVGRFdpeEpRVUZCTEZsQlFWa3NSVUZCUlN4alFVRmpPMEZCUXpWQ0xFbEJRVUVzV1VGQldTeEZRVUZGTEdOQlFXTTdRVUZETlVJc1NVRkJRU3hSUVVGUkxFVkJRVVVzVlVGQlZUdEJRVU53UWl4SlFVRkJMR0ZCUVdFc1JVRkJSU3hsUVVGbE8wRkJRemxDTEVsQlFVRXNZVUZCWVN4RlFVRkZMR1ZCUVdVN1FVRkRPVUlzU1VGQlFTeFRRVUZUTEVWQlFVVXNWMEZCVnp0QlFVTjBRaXhKUVVGQkxGbEJRVmtzUlVGQlJTeGpRVUZqTzBGQlF6VkNMRWxCUVVFc1dVRkJXU3hGUVVGRkxHTkJRV003UVVGRE5VSXNTVUZCUVN4UlFVRlJMRVZCUVVVc1ZVRkJWVHRCUVVOd1FpeEpRVUZCTEdGQlFXRXNSVUZCUlN4bFFVRmxPMEZCUXpsQ0xFbEJRVUVzWVVGQllTeEZRVUZGTEdWQlFXVTdRVUZET1VJc1NVRkJRU3hUUVVGVExFVkJRVVVzVjBGQlZ6czdPMEZEVG5oQ096dEJRVVZITzBGQlEwZ3NUVUZCVFVnc2QwSkJRWE5DTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVTFSRHM3UVVGRlJ6dEJRVU5JTEUxQlFVMHNaMEpCUVdkQ0xFZEJRWEZGTzBGQlEzcEdMRWxCUVVFc2FVSkJRV2xDTEVWQlFVVXNjVUpCUVhGQ08wRkJRM2hETEVsQlFVRXNjVUpCUVhGQ0xFVkJRVVVzYlVKQlFXMUNPMEZCUXpGRExFbEJRVUVzYTBKQlFXdENMRVZCUVVVc2MwSkJRWE5DTzBGQlF6RkRMRWxCUVVFc2MwSkJRWE5DTEVWQlFVVXNiMEpCUVc5Q08wTkJRemRETEVOQlFVTTdRVUZGUmpzN1FVRkZSenROUVVOVkxIVkNRVUYxUWl4RFFVRkJPMEZCV1d4RExFbEJRVUVzU1VGQlZ5eEpRVUZKTEVkQlFVRTdPMEZCUldJc1VVRkJRU3hQUVVGUExIbENRVUY1UWl4RFFVRkRPMHRCUTJ4RE8wbEJSVVFzVjBGQmJVSXNRMEZCUVN4TlFVRnJRaXhGUVVGRkxFOUJRWGRETEVWQlFVRTdRVUZETjBVc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVVnlRaXhKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEU5QlFVOHNTMEZCUVN4SlFVRkJMRWxCUVZBc1QwRkJUeXhMUVVGUUxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRTlCUVU4c1EwRkJSU3hWUVVGVkxFTkJRVU03VVVGRGRFTXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeEhRVUZITEU5QlFVOHNTMEZCUVN4SlFVRkJMRWxCUVZBc1QwRkJUeXhMUVVGUUxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRTlCUVU4c1EwRkJSU3h2UWtGQmIwSXNRMEZCUXp0TFFVTXpSRHRCUVVWWkxFbEJRVUVzVTBGQlV5eERRVUZETEVsQlFWVXNSVUZCUVRzN1FVRkRMMElzV1VGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRkRVFzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZCUVR0QlFVVkVPenM3TzBGQlNVYzdRVUZEVnl4SlFVRkJMRTlCUVU4c1EwRkJReXhKUVVGVkxFVkJRVUU3TzFsQlF6bENMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVNMVF5eFpRVUZCTEVsQlFVa3NVVUZCVVN4RlFVRkZPMEZCUTFvc1owSkJRVUVzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYWtJc1lVRkJRVHRaUVVWRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU0xUXl4WlFVRkJMRWxCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zWjBKQlFVRXNUMEZCVHl4UlFVRlJMRU5CUVVNN1FVRkRha0lzWVVGQlFUdEJRVVZFTEZsQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1UwRkRZaXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVUZCTzBGQlJXRXNTVUZCUVN4VFFVRlRMRU5CUVVNc1NVRkJWU3hGUVVGQk96czdRVUZEYUVNc1dVRkJRU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVhkQ0xFTkJRVU03TzBGQlIyeEVMRmxCUVVFc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4SlFVRkpMRU5CUVVNc1kwRkJZeXhOUVVGRkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZCTEU5QlFVOHNRMEZCUXl4VlFVRlZMRU5CUVVNc1RVRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRk8wRkJRMlFzWjBKQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhoUVVGQk8xbEJSVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4VlFVRlZMRU5CUVc5RExFTkJRVU03V1VGRGJrWXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSVHRCUVVOa0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVFVGQlRTeFhRVUZYTEVkQlFVY3NVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRCUVVNeFF5eFpRVUZCTEVsQlFVa3NRMEZCUTBFc2QwSkJRWE5DTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRk8wRkJRelZETEdkQ1FVRkJMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zTUVSQlFUQkVMRmRCUVZjc1EwRkJRU3hEUVVGQkxFTkJRVWNzUTBGQlF5eERRVUZETzBGQlEzWkdMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVMRmxCUVVFc1RVRkJUU3hqUVVGakxFZEJRVWNzVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXp0WlFVTXhReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTzBGQlEyNUNMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVPenM3TzBGQlNVYzdXVUZEU0N4TlFVRk5MSFZDUVVGMVFpeEhRVU14UWl4alFVRmpMRU5CUVVNc1ZVRkJhMElzUTBGQlF5eHhRa0ZCY1VJc1NVRkJTU3hKUVVGSk8wRkJReTlFTEdkQ1FVRkJMR05CUVdNc1EwRkJReXhWUVVGclFpeERRVUZETEhOQ1FVRnpRaXhKUVVGSkxFbEJRVWtzUTBGQlF6dFpRVVZ3UlN4TlFVRk5MRlZCUVZVc1IwRkJNa0lzUlVGQlJTeERRVUZETzBGQlF6bERMRmxCUVVFc1NVRkJTU3hqUVVGakxFTkJRVU1zVlVGQlZTeEpRVUZKTEVsQlFVa3NSVUZCUlR0blFrRkRja01zVFVGQlRTeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVTm1MRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGUExFTkJRVU1zWTBGQll5eEZRVUZGTEdWQlFXVXNRMEZCUXl4TFFVRkpMRk5CUVVFc1EwRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeERRVUZCTEVWQlFVRXNTMEZCUVN4RFFVRkJMRVZCUVVFc1lVRkJRVHR2UWtGRGVFWXNTVUZCU1N4UlFVRlJMRWRCUVVjc1kwRkJiVVFzUTBGQlF6dEJRVU51UlN4dlFrRkJRU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eGxRVUZsTEVOQlFVTXNTVUZCU1N4RFFVRkRPenRCUVVkdVF5eHZRa0ZCUVN4SlFVRkpMSFZDUVVGMVFpeEZRVUZGTzBGQlF6TkNMSGRDUVVGQkxFMUJRVTBzWVVGQllTeEhRVUZITEdkQ1FVRm5RaXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzNkQ1FVTnFSQ3hKUVVGSkxHRkJRV0VzU1VGQlNTeEpRVUZKTEVWQlFVVTdORUpCUTNwQ0xGRkJRVkVzUjBGQlJ5eGhRVUZoTEVOQlFVTTdRVUZETVVJc2VVSkJRVUU3UVVGRFJpeHhRa0ZCUVR0QlFVVkVMRzlDUVVGQkxFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPenR2UWtGSE5VUXNTVUZCU1N4SlFVRkpMRWxCUVVrc1NVRkJTU3hGUVVGRk8zZENRVU5vUWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVUVzZFVOQlFVRXNSVUZCTUVNc1VVRkJVU3hEUVVGaExGVkJRVUVzUlVGQlFTeExRVUZMTEVOQlFXdENMR2RDUVVGQkxFTkJRVUVzUTBGQlF5eERRVUZETzNkQ1FVTnlSeXhQUVVGUE8wRkJRMUlzY1VKQlFVRTdPMEZCUjBRc2IwSkJRVUVzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU03YVVKQlEycERMRU5CUVVFc1EwRkJReXhEUVVOSUxFTkJRVU03UVVGRFNDeGhRVUZCTzFsQlJVUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEhsQ1FVRjVRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTzJkQ1FVTXpSU3h2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTzBGQlEyaEVMR0ZCUVVFc1EwRkJReXhEUVVGRE8xbEJRMGdzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRU5CUVVNN1dVRkZiRVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZPMEZCUTI1Q0xHZENRVUZCTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRMME1zWjBKQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdaMEpCUXpWQ0xFMUJRVTBzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFTkJRVU03UVVGRGJFUXNZVUZCUVR0QlFVVkVMRmxCUVVFc1QwRkJUeXhSUVVGUkxFTkJRVU03TzBGQlEycENMRXRCUVVFN1FVRkZZU3hKUVVGQkxGTkJRVk1zUTBGQlF5eEpRVUZWTEVWQlFVRTdPenRCUVVOb1F5eFpRVUZCTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQmQwSXNRMEZCUXp0WlFVVnNSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZGTEVkQlFUUkNMRU5CUVVNN1dVRkROMFFzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlR0QlFVTllMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVMRmxCUVVFc1RVRkJUU3hqUVVGakxFZEJRU3RDTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkRia1VzU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlR0QlFVTnVRaXhuUWtGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMR0ZCUVVFN1dVRkZSQ3hOUVVGTkxGVkJRVlVzUjBGQk1rSXNSVUZCUlN4RFFVRkRPMEZCUXpsRExGbEJRVUVzU1VGQlNTeGpRVUZqTEVOQlFVTXNWVUZCVlN4SlFVRkpMRWxCUVVrc1JVRkJSVHRCUVVOeVF5eG5Ra0ZCUVN4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRMllzWTBGQll5eERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJUeXhKUVVGSkxFdEJRVWtzVTBGQlFTeERRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRU5CUVVFc1JVRkJRU3hMUVVGQkxFTkJRVUVzUlVGQlFTeGhRVUZCTzBGQlF6TkRMRzlDUVVGQkxFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNN1FVRkRNMElzYjBKQlFVRXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF6dEJRVVY0UWl4dlFrRkJRU3hKUVVGSkxGRkJRVkVzU1VGQlNTeEpRVUZKTEVsQlFVa3NTMEZCU3l4SlFVRkpMRWxCUVVrc1JVRkJSVHQzUWtGRGNrTXNUMEZCVHp0QlFVTlNMSEZDUVVGQk8wRkJSVVFzYjBKQlFVRXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdGQlFXRXNRMEZCUXl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03TzI5Q1FVYzFSQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeEpRVUZKTEVWQlFVVTdkMEpCUTJoQ0xFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUVN4MVEwRkJRU3hGUVVFd1F5eFJRVUZSTEVOQlFXRXNWVUZCUVN4RlFVRkJMRXRCUVVzc1EwRkJhMElzWjBKQlFVRXNRMEZCUVN4RFFVRkRMRU5CUVVNN2QwSkJRM0pITEU5QlFVODdRVUZEVWl4eFFrRkJRVHM3UVVGSFJDeHZRa0ZCUVN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenR2UWtGRGFrUXNUVUZCVFN4WFFVRlhMRWxCUVVrc1lVRkJZU3hMUVVGQkxFbEJRVUVzU1VGQllpeGhRVUZoTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVdJc1lVRkJZU3hIUVVGSkxGRkJRVkVzUTBGQmMwTXNRMEZCUXpzN08wRkJTWEpHTEc5Q1FVRkJMRWxCUVVrc1ZVRkJWU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlR0M1FrRkRia01zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4RFFVRkJMREJDUVVGQkxFVkJRVFpDTEZkQlFWY3NRMEZCYzBJc2JVSkJRVUVzUlVGQlFTeExRVUZMTEVOQlFXbERMQ3RDUVVGQkxFTkJRVUVzUTBGRGNrY3NRMEZCUXp0M1FrRkRSaXhQUVVGUE8wRkJRMUlzY1VKQlFVRTdPMEZCUjBRc2IwSkJRVUVzVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hGUVVGRkxFTkJRVU03YVVKQlEzQkRMRU5CUVVFc1EwRkJReXhEUVVOSUxFTkJRVU03UVVGRFNDeGhRVUZCTzFsQlJVUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEhsQ1FVRjVRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTzJkQ1FVTXpSU3h2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTzBGQlEyaEVMR0ZCUVVFc1EwRkJReXhEUVVGRE8xbEJRMGdzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRU5CUVVNN1dVRkZiRVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZPMEZCUTI1Q0xHZENRVUZCTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRMME1zWjBKQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdaMEpCUXpWQ0xFMUJRVTBzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFTkJRVU03UVVGRGJFUXNZVUZCUVR0QlFVVkVMRmxCUVVFc1QwRkJUeXhSUVVGUkxFTkJRVU03TzBGQlEycENMRXRCUVVFN1FVRkZSRHM3T3p0QlFVbEhPMEZCUTBzc1NVRkJRU3g1UWtGQmVVSXNRMEZCUXl4VlFVRnJReXhGUVVGQk96dFJRVVZzUlN4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUTNwRkxFTkJRVU1zWjBKQlFXZENMRXRCUVVzc1ZVRkJWU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVNelJDeERRVUZET3p0QlFVZEdMRkZCUVVFc1NVRkJTU3h2UWtGQmIwSXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8wRkJRMjVETEZsQlFVRXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkRZaXhEUVVGQkxEQkZRVUZCTEVWQlFUWkZMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJSU3hEUVVGQkxFTkJReTlITEVOQlFVTTdRVUZEU0N4VFFVRkJPMEZCUlVRc1VVRkJRU3hQUVVGUExGVkJRVEpDTEVOQlFVTTdTMEZEY0VNN1FVRkRSanM3UVVNMVQxa3NUVUZCUVN4cFFrRkJhMElzVTBGQlVTeExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkJPMEZCVVhwRUxFbEJRVUVzVjBGQlFTeEhRVUZCTzBGQlEwVXNVVUZCUVN4TFFVRkxMRVZCUVVVc1EwRkJRenRSUVU1R0xFbEJRV0VzUTBGQlFTeGhRVUZCTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJ4Q0xFbEJRV01zUTBGQlFTeGpRVUZCTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCVDNwQ0xGRkJRVUVzU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRha0lzVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVOc1FpeFJRVUZCTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1IwRkJSeXhEUVVGRE8wRkJRM3BDTEZGQlFVRXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRk1VSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRka1VzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlJUZERMRkZCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hYUVVGWExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM2hGTEZGQlFVRXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZGTDBJc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFGQlEyNUNMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dExRVU5tTzBsQlJVMHNUVUZCVFN4SFFVRkJPMUZCUTFnc1NVRkJTU3h2UWtGQmIwSXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkZha01zVVVGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4aFFVRmhMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJUdEJRVU55UXl4WlFVRkJMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXp0WlFVTm9ReXh2UWtGQmIwSXNSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkROMElzVTBGQlFUdEJRVVZFTEZGQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhMUVVGTExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdRVUZEZGtNc1dVRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRiRU1zYjBKQlFXOUNMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJRemRDTEZOQlFVRTdRVUZGUkN4UlFVRkJMRWxCUVVrc2IwSkJRVzlDTEVWQlFVVTdXVUZEZUVJc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzBGQlEzWkNMRk5CUVVFN1MwRkRSanRKUVVWUExHTkJRV01zUjBGQlFUdEJRVU53UWl4UlFVRkJMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJYWkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE0wSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNN1FVRkZNVU1zV1VGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFY3NVMEZCUVR0QlFVVkVMRkZCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMHRCUTJ4RE8wbEJSVThzVjBGQlZ5eEhRVUZCTzFGQlEycENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3UVVGRE0wSXNXVUZCUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOb1JDeFRRVUZCTzBGQlJVUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTMEZEY0VNN1FVRkRSanM3UVVNdlJGa3NUVUZCUVN3eVFrRkJORUlzVTBGQlVTeExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkJPMEZCVVc1RkxFbEJRVUVzVjBGQlFTeEhRVUZCTzBGQlEwVXNVVUZCUVN4TFFVRkxMRVZCUVVVc1EwRkJRenRCUVVWU0xGRkJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRiRUlzVVVGQlFTeEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVVeFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzFGQlEyaERMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkZlRU1zVVVGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU53UlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkZOME1zVVVGQlFTeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU55UlN4UlFVRkJMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMUZCUlM5Q0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdTMEZEWmp0SlFVVk5MRTFCUVUwc1IwRkJRVHRSUVVOWUxFbEJRVWtzYjBKQlFXOUNMRWRCUVVjc1MwRkJTeXhEUVVGRE8wRkJSV3BETEZGQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhMUVVGTExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdRVUZEZGtNc1dVRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRiRU1zYjBKQlFXOUNMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJRemRDTEZOQlFVRTdVVUZGUkN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRk8xbEJRM2hETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTnNReXh2UWtGQmIwSXNSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkROMElzVTBGQlFUdEJRVVZFTEZGQlFVRXNTVUZCU1N4dlFrRkJiMElzUlVGQlJUdFpRVU40UWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03UVVGRGRrSXNVMEZCUVR0TFFVTkdPMGxCUlU4c1kwRkJZeXhIUVVGQk8xRkJRM0JDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRNMElzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZGTDBJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTjJSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNMVJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUkN4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRVZCUVVVc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRNVVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlRsRkxGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRiRU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRmVFWXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTMEZEYkVNN1NVRkZUeXhYUVVGWExFZEJRVUU3VVVGRGFrSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVNelFpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzBGQlJYaENMRmxCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEY0VNc1dVRkJRU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU51UkN4WlFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pFTEZOQlFVRTdVVUZEUkN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJSVzVETEZGQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzQkRPMEZCUTBZN08wRkRlRVZFTEUxQlFVMUhMRkZCUVUwc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0QlFVTjBReXhOUVVGTlF5eFJRVUZOTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03UVVGRGRFTXNUVUZCVFVnc1RVRkJTU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJwRExFMUJRVTFETEUxQlFVa3NSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVVZxUXl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVNelF5eE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF6dEJRVU12UlN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVVUxUXl4TlFVRkJMR1ZCUVdkQ0xGTkJRVkVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUVR0QlFVMDVReXhKUVVGQkxGZEJRVUVzUTBGQmJVSXNUVUZCYVVJc1JVRkJRVHRCUVVOc1F5eFJRVUZCTEV0QlFVc3NSVUZCUlN4RFFVRkRPMEZCUTFJc1VVRkJRU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1MwRkJTeXhEUVVGRE8wRkJSVGxDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU03UVVGRmVFSXNVVUZCUVR0QlFVTkZMRmxCUVVFc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8wRkJRM3BETEZsQlFVRXNVVUZCVVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRmRFSXNXVUZCUVN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRCUVVNelF5eG5Ra0ZCUVN4TFFVRkxMRVZCUVVVc1VVRkJVVHRCUVVObUxHZENRVUZCTEZkQlFWY3NSVUZCUlN4SlFVRkpPMEZCUTJwQ0xHZENRVUZCTEU5QlFVOHNSVUZCUlN4SFFVRkhPMmRDUVVOYUxFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNWVUZCVlR0QlFVTjBRaXhuUWtGQlFTeFRRVUZUTEVWQlFVVXNTMEZCU3p0QlFVTm9RaXhuUWtGQlFTeFZRVUZWTEVWQlFVVXNTMEZCU3p0QlFVTnNRaXhoUVVGQkxFTkJRVU1zUTBGQlF6dEJRVVZJTEZsQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM0pFTEZsQlFVRXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdRVUZETTBJc1UwRkJRVHRCUVVWRUxGRkJRVUU3UVVGRFJTeFpRVUZCTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXp0QlFVTjZReXhaUVVGQkxGRkJRVkVzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRPMEZCUlhSQ0xGbEJRVUVzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTTdRVUZETTBNc1owSkJRVUVzUzBGQlN5eEZRVUZGTEZGQlFWRTdRVUZEWml4blFrRkJRU3hYUVVGWExFVkJRVVVzU1VGQlNUdEJRVU5xUWl4blFrRkJRU3hQUVVGUExFVkJRVVVzUjBGQlJ6dG5Ra0ZEV2l4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExGVkJRVlU3UVVGRGRFSXNaMEpCUVVFc1UwRkJVeXhGUVVGRkxFdEJRVXM3UVVGRGFFSXNaMEpCUVVFc1ZVRkJWU3hGUVVGRkxFdEJRVXM3UVVGRGJFSXNZVUZCUVN4RFFVRkRMRU5CUVVNN1FVRkZTQ3haUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTnVSQ3haUVVGQkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM3BDTEZOQlFVRTdRVUZGUkN4UlFVRkJPMEZCUTBVc1dVRkJRU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTERKQ1FVRXlRaXhGUVVGRkxFTkJRVU03UVVGRGJrUXNXVUZCUVN4UlFVRlJMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF6dEJRVVYwUWl4WlFVRkJMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVGRE8wRkJRek5ETEdkQ1FVRkJMRXRCUVVzc1JVRkJSU3hSUVVGUk8wRkJRMllzWjBKQlFVRXNVMEZCVXl4RlFVRkZMRXRCUVVzN1FVRkRhRUlzWjBKQlFVRXNWVUZCVlN4RlFVRkZMRXRCUVVzN1FVRkRiRUlzWVVGQlFTeERRVUZETEVOQlFVTTdRVUZGU0N4WlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU01UkN4WlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTjJReXhaUVVGQkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8wRkJRelZDTEZOQlFVRTdTMEZEUmp0SlFVVk5MRTlCUVU4c1IwRkJRVHRCUVVOYUxGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGFrTXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVVnFReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMjVETEZGQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZGYmtNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVOd1F5eFJRVUZCTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzB0QlEzSkRPMEZCUlUwc1NVRkJRU3hwUWtGQmFVSXNRMEZCUXl4TFFVRmpMRVZCUVVFN08wRkJSWEpETEZGQlFVRXNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU03VVVGRGVrUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVTnVReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8wRkJSV2hETEZGQlFVRXNUVUZCVFN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRE4wUXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTjJReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE96dEJRVWRzUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zYzBKQlFYTkNMRU5CUVVORUxFMUJRVWtzUTBGQlF5eERRVUZETzBGQlF6VkRMRkZCUVVFc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eDNRa0ZCZDBJc1EwRkJRMFVzVVVGQlRTeERRVUZETEVOQlFVTTdPMEZCUjJoRUxGRkJRVUZCTEZGQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eHpRa0ZCYzBJc1EwRkJRME1zVVVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXpzN1VVRkhMMFFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRFNDeE5RVUZKTEVOQlFVTXNRMEZCUXp0UlFVTnNReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVORkxGRkJRVTBzUTBGQlF5eERRVUZETzFGQlJYUkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUTBZc1RVRkJTU3hEUVVGRExFTkJRVU03VVVGRGNFTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZEUlN4UlFVRk5MRU5CUVVNc1EwRkJRenRCUVVONFF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlEwTXNVVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEdWQlFXVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMjVHTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXpzN1VVRkhiRVFzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VlFVRlZMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETzBGQlF6bERMRkZCUVVFc1NVRkJTU3hOUVVGTkxFbEJRVWtzU1VGQlNTeEpRVUZKTEZWQlFWVXNSVUZCUlR0WlFVTm9ReXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVOR0xFMUJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUTBRc1RVRkJTU3hEUVVGRExFTkJRVU03V1VGRGVFTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUTBNc1RVRkJTU3hEUVVGRExFTkJRVU03UVVGRE1VTXNXVUZCUVN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTnVReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVORUxFMUJRVWtzUTBGQlF5eERRVUZETzBGQlEzUkRMRk5CUVVFN08wRkJSMFFzVVVGQlFTeExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTMEZEYUVNN1FVRkRSanM3UVVNelNFUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEZEVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkZia003T3pzN096czdRVUZQUnp0QlFVTmhMRk5CUVVFc2MwSkJRWE5DTEVOQlFVTXNUVUZCYzBJc1JVRkJSU3hIUVVGeFFpeEZRVUZCTzBsQlEyeEdMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGNrUXNTVUZCUVN4UFFVRlBMRWRCUVVjc1EwRkJRenRCUVVOaU96dEJRMlJCT3pzN096czdPenM3TzBGQlZVYzdRVUZEUnl4VFFVRlZMRzFDUVVGdFFpeERRVUZETEUxQlFYRkNMRVZCUVVFN1NVRkRka1FzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWklPenRCUTJaQk96czdPenM3T3pzN1FVRlRSenRCUVVOSExGTkJRVlVzWVVGQllTeERRVUZETEV0QlFXRXNSVUZCUVR0QlFVTjZReXhKUVVGQkxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRjRVFzVDBGQlR5eExRVUZMTEVkQlFVY3NSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhGUVVGRkxFZEJRVWNzVTBGQlV5eERRVUZETzBGQlF6TkRPenRCUTB4QkxFMUJRVTFKTEdsQ1FVRmxMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRmVrUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYWtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRha01zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGFrTXNUVUZCVFVZc1VVRkJUU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMEZCUTNSRExFMUJRVTFETEZGQlFVMHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVU4wUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0QlFVTjBReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVOMFF5eE5RVUZOUlN4VFFVRlBMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdRVUZGYkVNN08wRkJSVWM3VFVGRFZTeFRRVUZUTEVOQlFVRTdRVUU0UTNCQ096dEJRVVZITzBGQlEwZ3NTVUZCUVN4SlFVRlhMRWRCUVVjc1IwRkJRVHRSUVVOYUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0TFFVTnNRanRCUVVWRU96dEJRVVZITzBsQlEwZ3NTVUZCVnl4SFFVRkhMRU5CUVVNc1MwRkJZU3hGUVVGQk8wRkJRekZDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRGJFSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF6dExRVU14UWp0QlFVOUVPenRCUVVWSE8wRkJRMGdzU1VGQlFTeEpRVUZYTEV0QlFVc3NSMEZCUVR0UlFVTmtMRTlCUVU4c1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dExRVU53UWp0QlFVVkVPenRCUVVWSE8wbEJRMGdzU1VGQlZ5eExRVUZMTEVOQlFVTXNTMEZCWVN4RlFVRkJPMEZCUXpWQ0xGRkJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRjRUlzVVVGQlFTeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJRenRMUVVNeFFqdEJRVmxFT3p0QlFVVkhPMEZCUTBnc1NVRkJRU3hKUVVGWExFdEJRVXNzUjBGQlFUdEJRVU5rTEZGQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXg1UkVGQmVVUXNRMEZCUXl4RFFVRkRPMUZCUlhoRkxFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETzB0QlEzcERPMEZCUlVRN096czdPMEZCUzBjN1NVRkRTQ3hYUVVGdFFpeERRVUZCTEZGQlFYRkNMRVZCUVVVc1QwRkJlVUlzUlVGQlFUdEJRWFpIYmtVN08wRkJSVWM3UVVGRFNTeFJRVUZCTEVsQlFVRXNRMEZCUVN4clFrRkJhMElzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVZsb1JEczdPenM3UVVGTFJ6dFJRVU5KTEVsQlFWVXNRMEZCUVN4VlFVRkJMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJWWHBDT3pzN08wRkJTVWM3UVVGRFNTeFJRVUZCTEVsQlFVRXNRMEZCUVN4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGdlJXeEVMRkZCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTTdRVUZEZWtJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXp0QlFVVjJRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRPMEZCUTJoQ0xGRkJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRiRUlzVVVGQlFTeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJRenRCUVVWNlFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRMUVVOMlJqdEJRVVZFT3pzN096dEJRVXRITzBGQlEwa3NTVUZCUVN4UlFVRlJMRU5CUVVNc1RVRkJiVUlzUlVGQlFUdEJRVU5xUXl4UlFVRkJMRTlCUVU4c1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wdEJRek5ITzBGQlJVUTdPenM3T3p0QlFVMUhPMEZCUTBrc1NVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQmFVSXNSVUZCUVR0QlFVTXpRaXhSUVVGQkxFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNTMEZCU3l4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVGRk8wRkJRM0pETEZsQlFVRXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh0UkVGQmJVUXNRMEZCUXl4RFFVRkRPMEZCUTNSRkxGTkJRVUU3VVVGRlJDeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZETzBGQlEzaEVMRkZCUVVFc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRPMEZCUXpsQ0xGRkJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRE8wRkJRM0JETEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETzFGQlF6VkNMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVWMFF5eFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJN1FVRkZSRHM3T3p0QlFVbEhPMGxCUTBrc1MwRkJTeXhIUVVGQk8wRkJRMVlzVVVGQlFTeFBRVUZQTEVsQlFVa3NVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU01UkR0QlFVVkVPenRCUVVWSE8wbEJRMGtzUzBGQlN5eEhRVUZCTzBGQlExWXNVVUZCUVN4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF6dEJRVU5vUWl4UlFVRkJMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETzBGQlEyeENMRkZCUVVFc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTMEZETVVJN1FVRkZSRHM3T3p0QlFVbEhPMEZCUTBrc1NVRkJRU3h6UWtGQmMwSXNRMEZCUXl4TlFVRnhRaXhGUVVGQk8xRkJRMnBFTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVUZETEUxQlFVMHNRMEZCUlN4RFFVRkRPMEZCUlc1RUxGRkJRVUVzVDBGQlR5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdTMEZETlVVN1FVRkZSRHM3T3pzN1FVRkxSenRCUVVOSkxFbEJRVUVzZDBKQlFYZENMRU5CUVVNc1RVRkJkMElzUlVGQlFUdFJRVU4wUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXl4TlFVRk5MRU5CUVVVc1EwRkJRenRCUVVWdVJDeFJRVUZCTEU5QlFVOHNjMEpCUVhOQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMHRCUXpkRE8wRkJSVVE3T3pzN1FVRkpSenRCUVVOSkxFbEJRVUVzYzBKQlFYTkNMRU5CUVVNc1RVRkJkMElzUlVGQlFUdFJRVU53UkN4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zYVVKQlFXbENMRU5CUVVORUxHbENRVUZsTEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVN1dVRkROVVFzVDBGQlR5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8wRkJRelZFTEZOQlFVRTdRVUZGUkN4UlFVRkJMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF5eEhRVUZITEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVTnNSaXhSUVVGQlF5eFRRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUlVGQlJTeHBRa0ZCYVVJc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVUzUlN4UFFVRlBMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU5CTEZOQlFVOHNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNN1MwRkRkRWM3UVVGRlJEczdPenRCUVVsSE8wRkJRMGtzU1VGQlFTeDFRa0ZCZFVJc1EwRkJReXhOUVVGeFFpeEZRVUZCTzBGQlEyeEVMRkZCUVVFc1NVRkJTU3hEUVVGRExIZENRVUYzUWl4RFFVRkRSaXhSUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU4wUXl4UlFVRkJMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVWd1F5eFJRVUZCTEU5QlFVOHNUVUZCVFR0aFFVTldMRWxCUVVrc1EwRkJRME1zYVVKQlFXVXNRMEZCUXp0aFFVTnlRaXhsUVVGbExFTkJRVU5FTEZGQlFVMHNRMEZCUXp0aFFVTjJRaXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETzJGQlEzWkNMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZEUlN4VFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRM1pETzBGQlJVUTdPenM3T3pzN08wRkJVVWM3UVVGRFNTeEpRVUZCTEUxQlFVMHNRMEZCUXl4UlFVRjFRaXhGUVVGQk96dFJRVVZ1UXl4TlFVRk5MR05CUVdNc1IwRkJSMGdzVVVGQlRUdEJRVU14UWl4aFFVRkJMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNN1lVRkRia01zVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eDNRa0ZCZDBJc1EwRkJRME1zVVVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKRkxFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdPMEZCUnk5R0xGRkJRVUVzVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4WlFVRlpMRU5CUVVNc1IwRkJSeXh0UWtGQmJVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGVFVXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU12UkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhoUVVGaExFTkJRVU1zVTBGQlV5eEhRVUZITEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTI1RUxFMUJRVTBzUzBGQlN5eEhRVUZITEdGQlFXRXNRMEZCUXl4WlFVRlpMRWRCUVVjc1ZVRkJWU3hEUVVGRExFTkJRVU03TzFGQlIzWkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1IwRkJSeXhEUVVGRE8xRkJRekZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRPMEZCUlRsRExGRkJRVUVzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1MwRkRNVUk3UVVGRlJEczdPenM3UVVGTFJ6dEJRVU5KTEVsQlFVRXNUVUZCVFN4RFFVRkRMRXRCUVdFc1JVRkJRVHRSUVVONlFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVTdRVUZETVVNc1dVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOcVJDeFRRVUZCTzFGQlJVUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRk8wRkJRM0pDTEZsQlFVRXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRk1VSXNXVUZCUVN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU53UkN4VFFVRkJPMHRCUTBZN08wRkJNVkZ6UWl4VFFVRkJMRU5CUVVFc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF6czdRVU5vUWpkRExFMUJRVTBzWlVGQlpTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUlhwRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wRkJRM1JETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzBGQlEzUkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVVjBSRHM3TzBGQlIwYzdUVUZEVlN4dlFrRkJiMElzUTBGQlFUdEJRVEJFTDBJN096czdPenM3TzBGQlVVYzdTVUZEU0N4WFFVTkZMRU5CUVVFc1VVRkJjVUlzUlVGRGNrSXNkVUpCUVRCRExFVkJRekZETEhWQ1FVRXdReXhGUVVNeFF5eHZRa0ZCZFVNc1JVRkRka01zYTBKQlFYRkRMRVZCUVVFN1FVRkZja01zVVVGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJRenRCUVVWNlFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUjBGQlJ5eDFRa0ZCZFVJc1EwRkJRenRCUVVOMlJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUjBGQlJ5eDFRa0ZCZFVJc1EwRkJRenRCUVVOMlJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJRenRCUVVOcVJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUjBGQlJ5eHJRa0ZCYTBJc1EwRkJRenRCUVVVM1F5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03TzFGQlIyeEVMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU12UXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03VVVGRGFFUXNTVUZCU1N4RFFVRkRMREpDUVVFeVFpeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xRkJRekZFTEVsQlFVa3NRMEZCUXl3MFFrRkJORUlzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRSUVVVelJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR05CUVdNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dEJRVVV4UkN4UlFVRkJMRWxCUVVrc1QwRkJUeXhGUVVGRk8xbEJRMWdzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkRMME1zYzBKQlFYTkNMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6dEJRVU16UlN4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxGRkJRVkVzUlVGQlJUdFpRVU5hTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xbEJRMnBFTEhOQ1FVRnpRaXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdRVUZETjBVc1UwRkJRVHRMUVVOR08wRkJSVVE3T3pzN08wRkJTMGM3U1VGRFNTeGhRVUZoTEVOQlFVTXNSMEZCVnl4RlFVRkZMRXRCUVdFc1JVRkJRVHRSUVVNM1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR05CUVdNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU14UkN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRla1VzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZET3p0QlFVVXpSU3hSUVVGQkxFbEJRVWtzVDBGQlR5eEZRVUZGTzFsQlExZ3NTVUZCU1N4TFFVRkxMRWRCUVVjc1IwRkJSeXhGUVVGRk8wRkJRMllzWjBKQlFVRXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU01UlN4aFFVRkJPMEZCUVUwc2FVSkJRVUU3UVVGRFRDeG5Ra0ZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRE1VVXNZVUZCUVR0WlFVVkVMRWxCUVVrc1IwRkJSeXhIUVVGSExFZEJRVWNzUlVGQlJUdEJRVU5pTEdkQ1FVRkJMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZETDBVc1lVRkJRVHRCUVVGTkxHbENRVUZCTzBGQlEwd3NaMEpCUVVFc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlF6ZEZMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkROMElzV1VGQlFTeEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdPenM3V1VGTGNFTXNhVUpCUVd0Q0xFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlJYUkdMRmxCUVVFc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6czdPMEZCU1RsRExGbEJRVUVzVDBGQlR5eERRVUZETEZWQlFWVTdRVUZEWml4cFFrRkJRU3hKUVVGSkxFTkJRVU1zYVVKQlFXdENMRU5CUVVNc1ZVRkJWU3hEUVVGRE8ybENRVU51UXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRMmhDTEdsQ1FVRkJMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdRVUZETlVJc2FVSkJRVUVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzBGQlEzQkRMRk5CUVVFN08wRkJSMFFzVVVGQlFTeEpRVUZKTEZGQlFWRXNSVUZCUlR0WlFVTmFMRWxCUVVrc1MwRkJTeXhIUVVGSExFZEJRVWNzUlVGQlJUdEJRVU5tTEdkQ1FVRkJMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZET1VVc1lVRkJRVHRCUVVGTkxHbENRVUZCTzBGQlEwd3NaMEpCUVVFc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlF6RkZMR0ZCUVVFN1dVRkZSQ3hKUVVGSkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVWQlFVVTdRVUZEWWl4blFrRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXk5RkxHRkJRVUU3UVVGQlRTeHBRa0ZCUVR0QlFVTk1MR2RDUVVGQkxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTTNSU3hoUVVGQk8wRkJSVVFzV1VGQlFTeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRemRDTEZsQlFVRXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPenM3TzFsQlMzQkRMR3RDUVVGdFFpeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVVjJSaXhaUVVGQkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRFJDUVVFMFFpeERRVUZETEVOQlFVTTdPenRCUVVrdlF5eFpRVUZCTEZGQlFWRXNRMEZCUXl4VlFVRlZPMEZCUTJoQ0xHbENRVUZCTEVsQlFVa3NRMEZCUXl4clFrRkJiVUlzUTBGQlF5eFZRVUZWTEVOQlFVTTdhVUpCUTNCRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEYUVJc2FVSkJRVUVzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRCUVVNMVFpeHBRa0ZCUVN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1FVRkRja01zVTBGQlFUdExRVU5HTzBGQlJVUTdPMEZCUlVjN1FVRkRTU3hKUVVGQkxFMUJRVTBzUTBGQlF5eExRVUZyUWl4RlFVRkJPMEZCUXpsQ0xGRkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4dlJVRkJiMFVzUTBGQlF5eERRVUZETzFGQlJXNUdMRTFCUVUwc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE9VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWb1JDeFJRVUZCTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzB0QlEyaERPMEZCUlVRN096czdRVUZKUnp0QlFVTkxMRWxCUVVFc2MwSkJRWE5DTEVOQlFVTXNUVUZCZDBJc1JVRkJRVHRSUVVOeVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hGUVVGRk8wRkJRelZFTEZsQlFVRXNUMEZCVHl4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03UVVGRE1VSXNVMEZCUVR0QlFVVkVMRkZCUVVFc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUTJ4R0xGRkJRVUVzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NaMEpCUVdkQ0xFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRk4wVXNVVUZCUVN4UFFVRlBMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTMEZEY2tNN08wRkJPVTFFT3p0QlFVVkhPMEZCUTI5Q0xHOUNRVUZKTEVOQlFVRXNTVUZCUVN4SFFVRkhMRTFCUVUwN08wRkRhRUowUXpzN08wRkJSMGM3VFVGRFZTd3dRa0ZCTUVJc1EwRkJRVHRCUVdkRGNrTTdPenM3T3pzN08wRkJVVWM3U1VGRFNDeFhRVU5GTEVOQlFVRXNWMEZCYVVNc1JVRkRha01zZFVKQlFUQkRMRVZCUXpGRExIVkNRVUV3UXl4RlFVTXhReXh2UWtGQmRVTXNSVUZEZGtNc2EwSkJRWEZETEVWQlFVRTdRVUZGY2tNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEZkQlFWY3NRMEZCUXp0QlFVVXZRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1IwRkJSeXgxUWtGQmRVSXNRMEZCUXp0QlFVTjJSQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1IwRkJSeXgxUWtGQmRVSXNRMEZCUXp0QlFVTjJSQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXp0QlFVTnFSQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0TFFVTTVRenRCUVVWRU96czdPenRCUVV0SE8wbEJRMGtzWVVGQllTeERRVUZETEVkQlFWY3NSVUZCUlN4TFFVRmhMRVZCUVVFN1VVRkROME1zU1VGQlNTeExRVUZMTEVkQlFVY3NSMEZCUnl4RlFVRkZPMWxCUTJZc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRek5ETEZsQlFVRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRekZGTEZOQlFVRTdRVUZCVFN4aFFVRkJPMWxCUTB3c1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRM3BETEZsQlFVRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNM1JTeFRRVUZCTzFGQlJVUXNTVUZCU1N4SFFVRkhMRWRCUVVjc1IwRkJSeXhGUVVGRk8xbEJRMklzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlF6TkRMRmxCUVVFc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyaEdMRk5CUVVFN1FVRkJUU3hoUVVGQk8xbEJRMHdzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlF6VkRMRmxCUVVFc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU01UlN4VFFVRkJPMHRCUTBZN1FVRkZSRHM3UVVGRlJ6dEJRVU5KTEVsQlFVRXNUVUZCVFN4RFFVRkRMRXRCUVd0Q0xFVkJRVUU3UVVGRE9VSXNVVUZCUVN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExHOUZRVUZ2UlN4RFFVRkRMRU5CUVVNN1VVRkZia1lzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTVReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlJXaEVMRkZCUVVFc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eEhRVUZITEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRhRU03TzBGQmVrWkVPenRCUVVWSE8wRkJRMjlDTERCQ1FVRkpMRU5CUVVFc1NVRkJRU3hIUVVGSExGbEJRVms3TzAxRFdDOUNMR2xDUVVGcFFpeERRVUZCTzBGQldUVkNPenM3T3p0QlFVdEhPMGxCUTBnc1YwRkJiVUlzUTBGQlFTeGhRVUZ4UWl4RlFVRkZMRmRCUVcxQ0xFVkJRVUU3UVVGRE0wUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExHRkJRV0VzUTBGQlF6dEJRVU51UXl4UlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzVjBGQlZ5eERRVUZETzB0QlEyaERPMEZCUlVRN096dEJRVWRITzBGQlEwa3NTVUZCUVN4SFFVRkhMRU5CUVVNc1IwRkJWeXhGUVVGQk8wRkJRM0JDTEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wdEJRemxFTzBGQlEwWTdPMEZEYWtKRU96dEJRVVZITzBGQlEwZ3NUVUZCVFVvc2QwSkJRWE5DTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVTFSRHM3TzBGQlIwYzdRVUZEU0N4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEVsQlFVa3NRMEZCUXp0QlFVVnlRenM3UVVGRlJ6dE5RVU5WTEhGQ1FVRnhRaXhEUVVGQk8wRkJWV2hETEVsQlFVRXNTVUZCVnl4SlFVRkpMRWRCUVVFN08wRkJSV0lzVVVGQlFTeFBRVUZQTEhWQ1FVRjFRaXhEUVVGRE8wdEJRMmhETzBsQlJVUXNWMEZCYlVJc1EwRkJRU3hOUVVGclFpeEZRVUZGTEU5QlFYTkRMRVZCUVVFN1FVRkRNMFVzVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVWeVFpeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRTlCUVU4c1MwRkJRU3hKUVVGQkxFbEJRVkFzVDBGQlR5eExRVUZRTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFOUJRVThzUTBGQlJTeFZRVUZWTEVOQlFVTTdTMEZEZGtNN1FVRkZXU3hKUVVGQkxGTkJRVk1zUTBGQlF5eEpRVUZWTEVWQlFVRTdPMEZCUXk5Q0xGbEJRVUVzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGelF5eERRVUZET3pzN1dVRkpla1VzU1VGQlNTeFhRVUZYTEV0QlFVc3NTVUZCU1N4RlFVRkZPMmRDUVVONFFpeFBRVUZQTzBGQlExSXNZVUZCUVR0cFFrRkJUU3hKUVVGSkxGZEJRVmNzUzBGQlN5eFRRVUZUTEVWQlFVVTdRVUZEY0VNc1owSkJRVUVzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4blIwRkJaMGNzUTBGQlF5eERRVUZETzBGQlEyNUlMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHZRa0ZCZDBRc1EwRkJRenRaUVVWd1J5eEpRVUZKTEc5Q1FVRnZRaXhMUVVGTExFbEJRVWtzUlVGQlJUdG5Ra0ZEYWtNc1QwRkJUenRCUVVOU0xHRkJRVUU3YVVKQlFVMHNTVUZCU1N4dlFrRkJiMElzUzBGQlN5eFRRVUZUTEVWQlFVVTdRVUZETjBNc1owSkJRVUVzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZEWWl3eVIwRkJNa2NzUTBGRE5VY3NRMEZCUXp0QlFVTklMR0ZCUVVFN1FVRkZSQ3haUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNVMEZCVXl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZMRzlDUVVGdlFpeERRVUZETEVOQlFVTTdVMEZEZGtZc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGQlFUdEJRVVZFT3pzN096czdRVUZOUnp0QlFVTlhMRWxCUVVFc1QwRkJUeXhEUVVOdVFpeEpRVUZWTEVWQlExWXNVVUZCTkVJc1JVRkROVUlzVjBGQmQwTXNSVUZCUVRzN1FVRkZlRU1zV1VGQlFTeEpRVUZKTEZGQlFWRXNTVUZCU1N4SlFVRkpMRWxCUVVrc1YwRkJWeXhKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU16UXl4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdRVUZGUkN4WlFVRkJMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzBGQlEyNUZMRmxCUVVFc1NVRkJTU3hSUVVGUkxFVkJRVVU3UVVGRFdpeG5Ra0ZCUVN4UFFVRlBMRkZCUVZFc1EwRkJRenRCUVVOcVFpeGhRVUZCTzBGQlJVUXNXVUZCUVN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dEJRVU51UlN4WlFVRkJMRWxCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zWjBKQlFVRXNUMEZCVHl4UlFVRlJMRU5CUVVNN1FVRkRha0lzWVVGQlFUdEJRVVZFTEZsQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1UwRkRZaXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVUZCTzBGQlJXRXNTVUZCUVN4VFFVRlRMRU5CUTNKQ0xFbEJRVlVzUlVGRFZpeFJRVUZ4UWl4RlFVTnlRaXhYUVVGcFF5eEZRVUZCT3pzN1FVRkZha01zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdPMEZCUjJ4RUxGbEJRVUVzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eE5RVUZGTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTzBGQlEyUXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzFsQlJVUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhWUVVGVkxFTkJRVzlETEVOQlFVTTdXVUZEYmtZc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJUdEJRVU5rTEdkQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMklzWVVGQlFUdEJRVVZFTEZsQlFVRXNUVUZCVFN4WFFVRlhMRWRCUVVjc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF6dEJRVU14UXl4WlFVRkJMRWxCUVVrc1EwRkJRMEVzZDBKQlFYTkNMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eEZRVUZGTzBGQlF6VkRMR2RDUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNkMFJCUVhkRUxGZEJRVmNzUTBGQlFTeERRVUZCTEVOQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNKR0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVFVGQlRTeFpRVUZaTEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJRenRaUVVOMFF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZPMEZCUTJwQ0xHZENRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJJc1lVRkJRVHRCUVVWRUxGbEJRVUVzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhaUVVGWkxFTkJRVU1zU1VGQlNTeExRVUZMTEZsQlFWa3NSMEZCUnl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJSVE5GTEZsQlFVRXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRmxCUVZrc1EwRkJReXgxUWtGQmRVSXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzBGQlF5OUdMRmxCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGbEJRVmtzUTBGQlF5eDFRa0ZCZFVJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMEZCUXk5R0xGbEJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZsQlFWa3NRMEZCUXl4dlFrRkJiMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8wRkJRelZHTEZsQlFVRXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRmxCUVZrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzBGQlJURkdMRmxCUVVFc1NVRkJTU3hQUVVGUExFTkJRVU03UVVGRldpeFpRVUZCTEVsQlFVa3NXVUZCV1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhaUVVGWkxFVkJRVVU3UVVGRGRFTXNaMEpCUVVFc1QwRkJUeXhIUVVGSExFbEJRVWtzTUVKQlFUQkNMRU5CUVVNc1YwRkJWeXhGUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRMjVHTEdGQlFVRTdRVUZCVFN4cFFrRkJRVHRCUVVOTUxHZENRVUZCTEU5QlFVOHNSMEZCUnl4SlFVRkpMRzlDUVVGdlFpeERRVUZETEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTXhSU3hoUVVGQk8xbEJSVVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdRVUZGY2tRc1dVRkJRU3hOUVVGTkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVUVzUlVGQlFTeEhRVUZCTEZsQlFWa3NRMEZCUXl4clFrRkJhMElzVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeERRVUZETEVkQlFVY3NSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVY2Uml4WlFVRkJMRTlCUVU4c1RVRkJUU3hEUVVGRE96dEJRVU5tTEV0QlFVRTdTVUZGVHl4cFFrRkJhVUlzUTBGRGRrSXNZMEZCYzBRc1JVRkRkRVFzYTBKQlFUQkNMRVZCUVVFN08wRkJSVEZDTEZGQlFVRXNTVUZCU1N4aFFVRmhMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzWTBGQll5eExRVUZrTEVsQlFVRXNTVUZCUVN4alFVRmpMRXRCUVdRc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNZMEZCWXl4RFFVRkZMR0ZCUVdFc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU03UVVGRE1VUXNVVUZCUVN4TlFVRk5MRmRCUVZjc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeGpRVUZqTEV0QlFXUXNTVUZCUVN4SlFVRkJMR05CUVdNc1MwRkJaQ3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4alFVRmpMRU5CUVVVc1YwRkJWeXhOUVVGSkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGQkxHdENRVUZyUWl4RFFVRkRPenM3TzFGQlMzUkZMRWxCUVVrc1lVRkJZU3hIUVVGSExIVkNRVUYxUWl4RlFVRkZPMEZCUXpORExGbEJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4eFIwRkJjVWNzUTBGRGRFY3NRMEZCUXp0WlFVTkdMR0ZCUVdFc1IwRkJSeXgxUWtGQmRVSXNRMEZCUXp0QlFVTjZReXhUUVVGQk8wRkJSVVFzVVVGQlFTeFBRVUZQTEVsQlFVa3NhVUpCUVdsQ0xFTkJRVU1zWVVGQllTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMHRCUXpGRU8wRkJSV0VzU1VGQlFTeFRRVUZUTEVOQlEzSkNMRWxCUVZVc1JVRkRWaXhSUVVGeFFpeEZRVU55UWl4WFFVRnBReXhGUVVGQk96czdRVUZGYWtNc1dVRkJRU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVhkQ0xFTkJRVU03TzFsQlIyeEVMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVVVzUjBGQk5FSXNRMEZCUXp0WlFVTTNSQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlExZ3NaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzBGQlJVUXNXVUZCUVN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNN1dVRkROME1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRk8wRkJRM1JDTEdkQ1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMklzWVVGQlFUdEJRVVZFTEZsQlFVRXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhqUVVGakxFdEJRVXNzV1VGQldTeEhRVUZITEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkZNVVlzV1VGQlFTeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zY1VKQlFYRkNMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0QlFVTnVSeXhaUVVGQkxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzBGQlEyNUhMRmxCUVVFc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03UVVGRGFFY3NXVUZCUVN4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVVNVJpeFpRVUZCTEVsQlFVa3NUMEZCVHl4RFFVRkRPMEZCUlZvc1dVRkJRU3hKUVVGSkxHbENRVUZwUWl4RFFVRkRMR05CUVdNc1MwRkJTeXhaUVVGWkxFVkJRVVU3UVVGRGNrUXNaMEpCUVVFc1QwRkJUeXhIUVVGSExFbEJRVWtzTUVKQlFUQkNMRU5CUVVNc1YwRkJWeXhGUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRMjVHTEdGQlFVRTdRVUZCVFN4cFFrRkJRVHRCUVVOTUxHZENRVUZCTEU5QlFVOHNSMEZCUnl4SlFVRkpMRzlDUVVGdlFpeERRVUZETEZGQlFWRXNSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTXhSU3hoUVVGQk8xbEJSVVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZGY2tRc1NVRkJTU3hwUWtGQmFVSXNRMEZCUXl4eFFrRkJjVUlzUlVGQlJUdEJRVU16UXl4blFrRkJRU3hOUVVGTkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVNelFpeERRVUZCTEVWQlFVRXNSMEZCUVN4cFFrRkJhVUlzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRExFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVWtzUjBGQlJ5eEZRVU5vUkN4TlFVRkJMR2xDUVVGcFFpeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFTkJRVU1zVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVWQlEycEVMRVZCUVVVc1EwRkJRU3hGUVVGQkxFZEJRVUVzYVVKQlFXbENMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkpMRWRCUVVjc1EwRkJReXhEUVVOd1JDeERRVUZETzBGQlEwZ3NZVUZCUVR0QlFVRk5MR2xDUVVGQk8yZENRVU5NTEUxQlFVMHNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU12UXl4aFFVRkJPenRCUVVkRUxGbEJRVUVzVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUlhKRExFbEJRVWtzVDBGQlR5eFpRVUZaTEc5Q1FVRnZRaXhGUVVGRk8wRkJRek5ETEdkQ1FVRkJMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU4yUXl4aFFVRkJPMEZCUlVRc1dVRkJRU3hQUVVGUExFMUJRVTBzUTBGQlF6czdRVUZEWml4TFFVRkJPMGxCUlU4c2EwSkJRV3RDTEVOQlEzaENMR1ZCUVhWRUxFVkJRM1pFTEd0Q1FVRXdRaXhGUVVGQk96dFJRVVV4UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhsUVVGbExFdEJRVUVzU1VGQlFTeEpRVUZtTEdWQlFXVXNTMEZCWml4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeGxRVUZsTEVOQlFVVXNTMEZCU3l4RFFVRkRPMUZCUTNKRExFbEJRVWtzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXh0UWtGQmJVSXNSVUZCUlR0QlFVTnFSQ3haUVVGQkxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMFZCUVdkRkxFTkJRVU1zUTBGQlF6dEJRVU5vUml4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4bFFVRmxMRXRCUVdZc1NVRkJRU3hKUVVGQkxHVkJRV1VzUzBGQlppeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hsUVVGbExFTkJRVVVzVFVGQlRTeE5RVUZKTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXp0QlFVTTNReXhSUVVGQkxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMR1ZCUVdVc1MwRkJaaXhKUVVGQkxFbEJRVUVzWlVGQlpTeExRVUZtTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxHVkJRV1VzUTBGQlJTeE5RVUZOTEUxQlFVa3NTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVRXNhMEpCUVd0Q0xFTkJRVU03T3pzN1VVRkxOMFFzU1VGQlNTeE5RVUZOTEVkQlFVY3NkVUpCUVhWQ0xFVkJRVVU3UVVGRGNFTXNXVUZCUVN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExHZEhRVUZuUnl4RFFVRkRMRU5CUVVNN1dVRkRMMGNzVFVGQlRTeEhRVUZITEhWQ1FVRjFRaXhEUVVGRE8wRkJRMnhETEZOQlFVRTdRVUZGUkN4UlFVRkJMRTlCUVU4c1NVRkJTU3hwUWtGQmFVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UzBGRE9VTTdTVUZGVHl4aFFVRmhMRU5CUVVNc1VVRkJjVUlzUlVGQlJTeFBRVUY1UWl4RlFVRkJPMUZCUTNCRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NVMEZCVXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVVZvUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVU3UVVGRGJrSXNXVUZCUVN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxHVkJRV1VzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXpReXhaUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRelZDTEUxQlFVMHNRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFhRVUZYTEVOQlFVTTdRVUZEYkVRc1UwRkJRVHRCUVVWRUxGRkJRVUVzVDBGQlR5eE5RVUZOTEVOQlFVTTdTMEZEWmp0QlFVTkdPenRCUTNaUlJEdEJRVVZCT3p0QlFVVkhPMEZCUTFVc1RVRkJRU3hwUWtGQmFVSXNSMEZCUnp0QlFVTXZRaXhKUVVGQkxFbEJRVWtzUlVGQlJTeE5RVUZOTzBGQlExb3NTVUZCUVN4VlFVRlZMRVZCUVVVc1dVRkJXVHM3TzBGRFVERkNPenRCUVVWSE8wRkJRMkVzVTBGQlFTeFZRVUZWTEVOQlFVTXNSMEZCVnl4RlFVRkZMRWxCUVZrc1JVRkJRVHM3UVVGRmJFUXNTVUZCUVN4SlFVRkpMRTlCUVU4c1IwRkJSeXhMUVVGTExGRkJRVkVzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZCUlR0QlFVRkZMRkZCUVVFc1QwRkJUeXhGUVVGRkxFTkJRVU03TzBGQlIzSkVMRWxCUVVFc1NVRkJTU3hsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVTdVVUZEYWtRc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNkMEpCUVhkQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEY2tRc1MwRkJRVHM3UVVGSFJDeEpRVUZCTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXp0QlFVRkZMRkZCUVVFc1QwRkJUeXhIUVVGSExFTkJRVU03TzBGQlJ6ZERMRWxCUVVFc1NVRkJTU3hsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXp0QlFVRkZMRkZCUVVFc1QwRkJUeXhIUVVGSExFTkJRVU03TzBGQlJ6RkRMRWxCUVVFc1NVRkJTU3haUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXp0QlFVRkZMRkZCUVVFc1QwRkJUeXhIUVVGSExFTkJRVU03TzBsQlIzWkRMRTlCUVU4c1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF6dEJRVU53UWpzN1FVTmFRVHM3UVVGRlJ6dEJRVU5JTEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVVUxUkRzN1FVRkZSenROUVVOVkxHMUNRVUZ0UWl4RFFVRkJPMEZCZFVJNVFpeEpRVUZCTEVsQlFWY3NTVUZCU1N4SFFVRkJPenRCUVVWaUxGRkJRVUVzVDBGQlR5eHhRa0ZCY1VJc1EwRkJRenRMUVVNNVFqdEpRVVZFTEZkQlFXMUNMRU5CUVVFc1RVRkJhMElzUlVGQlJTeFBRVUZ2UXl4RlFVRkJPenRCUVVONlJTeFJRVUZCTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRE8wRkJSWEpDTEZGQlFVRXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRTlCUVU4c1MwRkJRU3hKUVVGQkxFbEJRVkFzVDBGQlR5eExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGUUxFOUJRVThzUTBGQlJTeHJRa0ZCYTBJc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJTU3hKUVVGSkxFTkJRVU03UVVGRE9VUXNVVUZCUVN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1QwRkJUeXhMUVVGUUxFbEJRVUVzU1VGQlFTeFBRVUZQTEV0QlFWQXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzVDBGQlR5eERRVUZGTEdsQ1FVRnBRaXhOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGSkxFTkJRVU1zSzBKQlFTdENMRU5CUVVNc1EwRkJRenRCUVVONlJpeFJRVUZCTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVDBGQlR5eExRVUZCTEVsQlFVRXNTVUZCVUN4UFFVRlBMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFWQXNUMEZCVHl4RFFVRkZMRmxCUVZrc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJTU3hKUVVGSkxFTkJRVU03UzBGRGJrUTdRVUZGV1N4SlFVRkJMRk5CUVZNc1EwRkJReXhKUVVGVkxFVkJRVUU3TzBGQlF5OUNMRmxCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEyeEVMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRVUU3UVVGRllTeEpRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRlZMRVZCUVVFN08xbEJRemxDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTTFReXhKUVVGSkxGRkJRVkVzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEY0VJc1owSkJRVUVzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYWtJc1lVRkJRVHRaUVVWRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU0xUXl4SlFVRkpMRkZCUVZFc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGNFSXNaMEpCUVVFc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGFrSXNZVUZCUVR0QlFVVkVMRmxCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03VTBGRFlpeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVRkJPMEZCUldFc1NVRkJRU3hUUVVGVExFTkJRVU1zU1VGQlZTeEZRVUZCT3pzN1FVRkRhRU1zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdPMEZCUjJ4RUxGbEJRVUVzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eE5RVUZGTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTzBGQlEyUXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzFsQlJVUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhWUVVGVkxFTkJRVzlETEVOQlFVTTdXVUZEYmtZc1NVRkJTU3hUUVVGVExFbEJRVWtzU1VGQlNTeEZRVUZGTzBGQlEzSkNMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVMRmxCUVVFc1RVRkJUU3hYUVVGWExFZEJRVWNzVTBGQlV5eERRVUZETEZkQlFWY3NRMEZCUXp0QlFVTXhReXhaUVVGQkxFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhIUVVGSExFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVVTdRVUZETlVNc1owSkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4elJFRkJjMFFzVjBGQlZ5eERRVUZCTEVOQlFVRXNRMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRia1lzWjBKQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRZaXhoUVVGQk8wRkJSVVFzV1VGQlFTeE5RVUZOTEZWQlFWVXNSMEZCUnl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRMnhETEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVN1FVRkRaaXhuUWtGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXp0QlFVTmlMR0ZCUVVFN08wRkJSMFFzV1VGQlFTeE5RVUZOTEZWQlFWVXNSMEZCUnl4VlFVRlZMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xbEJRM3BETEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdRVUZETjBRc1dVRkJRU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTzBGQlEzcERMR2RDUVVGQkxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNlVU5CUVhsRExGVkJRVlVzUTBGQlFTeHBRa0ZCUVN4RFFVRnRRaXhEUVVGRExFTkJRVU03UVVGRGVrWXNZVUZCUVR0WlFVVkVMRWxCUVVrc1kwRkJZeXhIUVVGcFF5eFRRVUZUTEVOQlFVTTdXVUZETjBRc1NVRkJTU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRWxCUVVrc1ZVRkJWU3hEUVVGRExHTkJRV01zU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYUVVc1owSkJRVUVzWTBGQll5eEhRVUZITEVOQlFVRXNSVUZCUVN4SlFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZKTEZOQlFWTXNRMEZCUXp0QlFVTjZSaXhoUVVGQk8xbEJSVVFzVDBGQlR6dEJRVU5NTEdkQ1FVRkJMRmRCUVZjc1JVRkJSU3hIUVVGSE8yZENRVU5vUWl4SlFVRkpMRVZCUVVVc1ZVRkJWU3hEUVVGRExFbEJRVWs3WjBKQlEzSkNMRTlCUVU4c1JVRkJSU3hWUVVGVkxFTkJRVU1zVDBGQlR6dG5Ra0ZETTBJc1QwRkJUeXhGUVVGRkxGVkJRVlVzUTBGQlF5eFBRVUZQTzJkQ1FVTXpRaXh2UWtGQmIwSXNSVUZCUlN4VlFVRlZMRU5CUVVNc2IwSkJRVzlDTzJkQ1FVTnlSQ3hyUWtGQmEwSXNSVUZCUlN4VlFVRlZMRU5CUVVNc2EwSkJRV3RDTzJkQ1FVTnFSQ3hWUVVGVkxFVkJRVVVzVlVGQlZTeERRVUZETEZWQlFWVTdaMEpCUTJwRExHdENRVUZyUWl4RlFVRkZMRlZCUVZVc1EwRkJReXhyUWtGQmEwSTdaMEpCUTJwRUxHTkJRV003WjBKQlEyUXNWVUZCVlN4RlFVRkZMRlZCUVZVc1EwRkJReXhWUVVGVk8yZENRVU5xUXl4blFrRkJaMElzUlVGQlJTeFZRVUZWTEVOQlFVTXNaMEpCUVdkQ08yZENRVU0zUXl3MFFrRkJORUlzUlVGQlJTeFZRVUZWTEVOQlFVTXNORUpCUVRSQ08yZENRVU55UlN3eVFrRkJNa0lzUlVGQlJTeFZRVUZWTEVOQlFVTXNNa0pCUVRKQ08yZENRVU51UlN4bFFVRmxMRVZCUVVVc1ZVRkJWU3hEUVVGRExHVkJRV1U3WjBKQlF6TkRMRGhDUVVFNFFpeEZRVUZGTEZWQlFWVXNRMEZCUXl3NFFrRkJPRUk3WjBKQlEzcEZMREJDUVVFd1FpeEZRVUZGTEZWQlFWVXNRMEZCUXl3d1FrRkJNRUk3WjBKQlEycEZMR05CUVdNc1JVRkJSU3hWUVVGVkxFTkJRVU1zWTBGQll6dG5Ra0ZEZWtNc2JVSkJRVzFDTEVWQlFVVXNWVUZCVlN4RFFVRkRMRzFDUVVGdFFqdG5Ra0ZEYmtRc1dVRkJXU3hGUVVGRkxGVkJRVlVzUTBGQlF5eFpRVUZaTzJkQ1FVTnlReXhsUVVGbExFVkJRVVVzVlVGQlZTeERRVUZETEdWQlFXVTdZVUZETlVNc1EwRkJRenM3UVVGRFNDeExRVUZCTzBGQlJXRXNTVUZCUVN4VFFVRlRMRU5CUVVNc1NVRkJWU3hGUVVGQk96czdRVUZEYUVNc1dVRkJRU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVhkQ0xFTkJRVU03TzFsQlIyeEVMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVVVzUjBGQk5FSXNRMEZCUXp0WlFVTTNSQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlExZ3NaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFlpeGhRVUZCTzBGQlJVUXNXVUZCUVN4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETzFsQlF5OUNMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVU3UVVGRFppeG5Ra0ZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOaUxHRkJRVUU3TzBGQlIwUXNXVUZCUVN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJUdEJRVU4wUWl4blFrRkJRU3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETERoRlFVRTRSU3hEUVVGRExFTkJRVU03UVVGRGFrY3NZVUZCUVRzN1FVRkhSQ3haUVVGQkxFbEJRVWtzVDBGQmVVTXNRMEZCUXp0QlFVTTVReXhaUVVGQkxFbEJRVWtzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhKUVVGSkxGVkJRVlVzUTBGQlF5eFBRVUZQTEVsQlFVa3NTVUZCU1N4SlFVRkpMRlZCUVZVc1EwRkJReXhQUVVGUExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVTdRVUZEZEVZc1owSkJRVUVzVDBGQlR5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zVTBGQlV5eEZRVUZGTEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNeFJTeGhRVUZCTzFsQlJVUXNUMEZCVHp0QlFVTk1MR2RDUVVGQkxGZEJRVmNzUlVGQlJTeEhRVUZITzJkQ1FVTm9RaXhsUVVGbExFVkJRVVVzVlVGQlZTeERRVUZETEdWQlFXVTdaMEpCUXpORExFMUJRVTBzUlVGQlJTeFZRVUZWTEVOQlFVTXNUVUZCVFR0blFrRkRla0lzYjBKQlFXOUNMRVZCUVVVc1ZVRkJWU3hEUVVGRExHOUNRVUZ2UWp0blFrRkRja1FzYTBKQlFXdENMRVZCUVVVc1ZVRkJWU3hEUVVGRExHdENRVUZyUWp0blFrRkRha1FzVjBGQlZ5eEZRVUZGTEZWQlFWVXNRMEZCUXl4WFFVRlhPMmRDUVVOdVF5eGxRVUZsTEVWQlFVVXNWVUZCVlN4RFFVRkRMR1ZCUVdVN1owSkJRek5ETEd0Q1FVRnJRaXhGUVVGRkxGVkJRVlVzUTBGQlF5eHJRa0ZCYTBJN1owSkJRMnBFTEZOQlFWTXNSVUZCUlN4VlFVRlZMRU5CUVVNc1UwRkJVenRuUWtGREwwSXNaMEpCUVdkQ0xFVkJRVVVzVlVGQlZTeERRVUZETEdkQ1FVRm5RanRCUVVNM1F5eG5Ra0ZCUVN4UFFVRlBMRVZCUVVVc1QwRkJUeXhMUVVGQkxFbEJRVUVzU1VGQlVDeFBRVUZQTEV0QlFWQXNTMEZCUVN4RFFVRkJMRWRCUVVFc1QwRkJUeXhIUVVGSkxGTkJRVk03WjBKQlF6ZENMRXRCUVVzc1JVRkJSU3hWUVVGVkxFTkJRVU1zUzBGQlN6dG5Ra0ZEZGtJc1QwRkJUeXhGUVVGRkxGVkJRVlVzUTBGQlF5eFBRVUZQTzJkQ1FVTXpRaXhwUWtGQmFVSXNSVUZCUlN4VlFVRlZMRU5CUVVNc2FVSkJRV2xDTzJGQlEyaEVMRU5CUVVNN08wRkJRMGdzUzBGQlFUdEJRVVZoTEVsQlFVRXNhVUpCUVdsQ0xFTkJRVU1zUzBGQllTeEZRVUZCT3pzN1FVRkRNME1zV1VGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdXVUZGYkVRc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVVndReXhKUVVGSkxFMUJRVTBzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYkVJc1owSkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml3NFEwRkJPRU1zUzBGQlN5eERRVUZCTEc5RVFVRkJMRU5CUVhORUxFTkJRekZITEVOQlFVTTdRVUZEUml4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdPenRCUVV0RUxGbEJRVUVzU1VGQlNTeFRRVUZUTEVkQlFYVkNMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU03TzBGQlJ5OURMRmxCUVVFc1NVRkJTU3hOUVVGTkxFTkJRVU1zVlVGQlZTeEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTTNRaXhuUWtGQlFTeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zWVVGQllTeERRVUZETEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRGNFWXNaMEpCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVNdlJDeG5Ra0ZCUVN4VFFVRlRMRWRCUVVjc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTjJReXhoUVVGQk8xbEJSVVFzU1VGQlNTeFRRVUZUTEVsQlFVa3NTVUZCU1N4RlFVRkZPMEZCUTNKQ0xHZENRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUTFZc09FTkJRVGhETEV0QlFVc3NRMEZCUVN3MlJFRkJRU3hEUVVFclJDeERRVU51U0N4RFFVRkRPMEZCUTBZc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRaUVVOMlF5eFBRVUZQTEUxQlFVMHNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eEZRVUZITEVsQlFVa3NRMEZCUXl4TlFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1MwRkJTeXhMUVVGSk8wRkJRM1JITEdkQ1FVRkJMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEY2tJc1owSkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4MVJFRkJkVVFzUTBGQlF5eERRVUZETzBGQlEzUkZMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEyUXNZVUZCUXl4RFFVRkRMRU5CUVVNN08wRkJRMG9zUzBGQlFUdEJRVU5HT3p0QlF5OU5SRHM3TzBGQlIwYzdUVUZEVlN4UFFVRlBMRU5CUVVFN1FVRnpRMnhDT3pzN08wRkJTVWM3UVVGRFNDeEpRVUZCTEZkQlFVRXNRMEZCYlVJc1RVRkJlVUlzUlVGQlFUdEJRVU14UXl4UlFVRkJMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTXhRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVONFFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF6dEJRVU5vUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4TlFVRk5MRU5CUVVNc2FVSkJRV2xDTEVOQlFVTTdRVUZEYkVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNN1FVRkRkRU1zVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU03UzBGRE4wSTdRVUZGUkRzN096czdPMEZCVFVjN1FVRkRTU3hKUVVGQkxFMUJRVTBzUTBGQlF5eExRVUZoTEVWQlFVRTdRVUZEZWtJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMUZCUlhaQ0xFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlR0QlFVTm1MRmxCUVVFc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRNMElzVTBGQlFUdFJRVVZFTEVsQlFVa3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTzBGQlF6RkNMRmxCUVVFc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8wRkJRMnBETEZOQlFVRTdTMEZEUmp0QlFVTkdPenROUTNaRldTeHRRa0ZCYlVJc1EwRkJRVHRCUVVNNVFpeEpRVUZCTEVsQlFWY3NTVUZCU1N4SFFVRkJPenRCUVVWaUxGRkJRVUVzVDBGQlR5eFZRVUZWTEVOQlFVTTdTMEZEYmtJN1NVRlZSQ3hYUVVGdFFpeERRVUZCTEUxQlFXdENMRVZCUVVVc1QwRkJiME1zUlVGQlFUczdRVUZEZWtVc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVVnlRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFBRVUZQTEV0QlFVRXNTVUZCUVN4SlFVRlFMRTlCUVU4c1MwRkJVQ3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4UFFVRlBMRU5CUVVVc1ZVRkJWU3hEUVVGRE8xRkJRM1pETEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzVDBGQlR5eExRVUZCTEVsQlFVRXNTVUZCVUN4UFFVRlBMRXRCUVZBc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNUMEZCVHl4RFFVRkZMRzlDUVVGdlFpeERRVUZETzBGQlJUTkVMRkZCUVVFc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFOUJRVThzWVVGQlVDeFBRVUZQTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVkFzVDBGQlR5eERRVUZGTEdkQ1FVRm5RaXhOUVVGSkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGQkxFbEJRVWtzZVVKQlFYbENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRE0wWXNVVUZCUVN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1QwRkJUeXhoUVVGUUxFOUJRVThzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJVQ3hQUVVGUExFTkJRVVVzYVVKQlFXbENMRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3d3UWtGQk1FSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNNVJpeFJRVUZCTEVsQlFVa3NRMEZCUXl4alFVRmpPMEZCUTJwQ0xGbEJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNUMEZCVHl4TFFVRlFMRWxCUVVFc1NVRkJRU3hQUVVGUExIVkNRVUZRTEU5QlFVOHNRMEZCUlN4alFVRmpMRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3gxUWtGQmRVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hWUVVGVkxFVkJRVVVzYjBKQlFXOUNMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM1pITEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVDBGQlR5eExRVUZRTEVsQlFVRXNTVUZCUVN4UFFVRlBMSFZDUVVGUUxFOUJRVThzUTBGQlJTeFpRVUZaTEUxQlFVa3NTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4eFFrRkJjVUlzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJReTlHTEZGQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeFBRVUZQTEdGQlFWQXNUMEZCVHl4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZRTEU5QlFVOHNRMEZCUlN4VlFVRlZMRTFCUVVrc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRMUVVNeFJUdEJRVVZaTEVsQlFVRXNVMEZCVXl4RFFVRkRMRWxCUVZVc1JVRkJRVHM3V1VGREwwSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTjBReXhOUVVGTkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRekZETEUxQlFVMHNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNMVF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlEzaERMRTFCUVUwc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVVUzUXl4WlFVRkJMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCZVVJc1EwRkJRenRCUVVOeVJDeFpRVUZCTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQmFVTXNRMEZCUXpzN08xbEJTV3BGTEVsQlFVa3NTVUZCU1N4SlFVRkpMRkZCUVZFc1JVRkJSVHRCUVVOd1FpeG5Ra0ZCUVN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF6dHZRa0ZETVVJc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTzBGQlEycENMRzlDUVVGQkxHbENRVUZwUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zYjBKQlFXOUNPMEZCUTNKRUxHOUNRVUZCTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV003YjBKQlEzcERMRkZCUVZFN1FVRkRVaXh2UWtGQlFTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVE8yOUNRVU12UWl4SlFVRkpPMEZCUTB3c2FVSkJRVUVzUTBGQlF5eERRVUZETzBGQlJVZ3NaMEpCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRPMEZCUTJwRExHRkJRVUU3VTBGRFJpeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVRkJPMEZCUTBZN096czdJbjA9XG4iLCJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBWUk1Db3JlIH0gZnJvbSAnQHBpeGl2L3RocmVlLXZybS1jb3JlJztcbmltcG9ydCB7IFZSTU5vZGVDb25zdHJhaW50TWFuYWdlciB9IGZyb20gJ0BwaXhpdi90aHJlZS12cm0tbm9kZS1jb25zdHJhaW50JztcbmltcG9ydCB7IFZSTVNwcmluZ0JvbmVNYW5hZ2VyIH0gZnJvbSAnQHBpeGl2L3RocmVlLXZybS1zcHJpbmdib25lJztcbmltcG9ydCB7IFZSTVBhcmFtZXRlcnMgfSBmcm9tICcuL1ZSTVBhcmFtZXRlcnMnO1xuXG4vKipcbiAqIEEgY2xhc3MgdGhhdCByZXByZXNlbnRzIGEgc2luZ2xlIFZSTSBtb2RlbC5cbiAqL1xuZXhwb3J0IGNsYXNzIFZSTSBleHRlbmRzIFZSTUNvcmUge1xuICAvKipcbiAgICogQ29udGFpbnMgbWF0ZXJpYWxzIG9mIHRoZSBWUk0uXG4gICAqIGB1cGRhdGVgIG1ldGhvZCBvZiB0aGVzZSBtYXRlcmlhbHMgd2lsbCBiZSBjYWxsZWQgdmlhIGl0cyB7QGxpbmsgVlJNLnVwZGF0ZX0gbWV0aG9kLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hdGVyaWFscz86IFRIUkVFLk1hdGVyaWFsW107XG5cbiAgLyoqXG4gICAqIEEge0BsaW5rIFZSTVNwcmluZ0JvbmVNYW5hZ2VyfSBtYW5pcHVsYXRlcyBhbGwgc3ByaW5nIGJvbmVzIGF0dGFjaGVkIG9uIHRoZSBWUk0uXG4gICAqIFVzdWFsbHkgeW91IGRvbid0IGhhdmUgdG8gY2FyZSBhYm91dCB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNwcmluZ0JvbmVNYW5hZ2VyPzogVlJNU3ByaW5nQm9uZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIEEge0BsaW5rIFZSTU5vZGVDb25zdHJhaW50TWFuYWdlcn0gbWFuaXB1bGF0ZXMgYWxsIGNvbnN0cmFpbnRzIGF0dGFjaGVkIG9uIHRoZSBWUk0uXG4gICAqIFVzdWFsbHkgeW91IGRvbid0IGhhdmUgdG8gY2FyZSBhYm91dCB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vZGVDb25zdHJhaW50TWFuYWdlcj86IFZSTU5vZGVDb25zdHJhaW50TWFuYWdlcjtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IFZSTSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyBbW1ZSTVBhcmFtZXRlcnNdXSB0aGF0IHJlcHJlc2VudHMgY29tcG9uZW50cyBvZiB0aGUgVlJNXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBWUk1QYXJhbWV0ZXJzKSB7XG4gICAgc3VwZXIocGFyYW1zKTtcblxuICAgIHRoaXMubWF0ZXJpYWxzID0gcGFyYW1zLm1hdGVyaWFscztcbiAgICB0aGlzLnNwcmluZ0JvbmVNYW5hZ2VyID0gcGFyYW1zLnNwcmluZ0JvbmVNYW5hZ2VyO1xuICAgIHRoaXMubm9kZUNvbnN0cmFpbnRNYW5hZ2VyID0gcGFyYW1zLm5vZGVDb25zdHJhaW50TWFuYWdlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiAqKllvdSBuZWVkIHRvIGNhbGwgdGhpcyBvbiB5b3VyIHVwZGF0ZSBsb29wLioqXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyBldmVyeSBWUk0gY29tcG9uZW50cy5cbiAgICpcbiAgICogQHBhcmFtIGRlbHRhIGRlbHRhVGltZVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZShkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlKGRlbHRhKTtcblxuICAgIGlmICh0aGlzLm5vZGVDb25zdHJhaW50TWFuYWdlcikge1xuICAgICAgdGhpcy5ub2RlQ29uc3RyYWludE1hbmFnZXIudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3ByaW5nQm9uZU1hbmFnZXIpIHtcbiAgICAgIHRoaXMuc3ByaW5nQm9uZU1hbmFnZXIudXBkYXRlKGRlbHRhKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXRlcmlhbHMpIHtcbiAgICAgIHRoaXMubWF0ZXJpYWxzLmZvckVhY2goKG1hdGVyaWFsOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKG1hdGVyaWFsLnVwZGF0ZSkge1xuICAgICAgICAgIG1hdGVyaWFsLnVwZGF0ZShkZWx0YSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XHJcbiAgICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cclxuICAgIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XHJcbiAgICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcclxuICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xyXG4gICAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcclxuICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcclxuICAgICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xyXG4gICAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xyXG4gICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XHJcbiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XHJcbiAgICBkb25lID0gdHJ1ZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XHJcbiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcclxuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcclxuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcclxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcclxuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XHJcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xyXG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspO1xyXG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcclxuICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9O1xyXG4gICAgfVxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcclxufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBvW2syXSA9IG1ba107XHJcbn0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBvKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIHApKSBfX2NyZWF0ZUJpbmRpbmcobywgbSwgcCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09IFwibnVtYmVyXCIpIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbi8qKiBAZGVwcmVjYXRlZCAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbi8qKiBAZGVwcmVjYXRlZCAqL1xyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheXMoKSB7XHJcbiAgICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcclxuICAgIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKylcclxuICAgICAgICBmb3IgKHZhciBhID0gYXJndW1lbnRzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKylcclxuICAgICAgICAgICAgcltrXSA9IGFbal07XHJcbiAgICByZXR1cm4gcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXkodG8sIGZyb20sIHBhY2spIHtcclxuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xyXG4gICAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xyXG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlmIChnW25dKSBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cclxuICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cclxuICAgIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xyXG4gICAgdmFyIGksIHA7XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XHJcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XHJcbiAgICBpZiAocmVjZWl2ZXIgPT09IG51bGwgfHwgKHR5cGVvZiByZWNlaXZlciAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgcmVjZWl2ZXIgIT09IFwiZnVuY3Rpb25cIikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgdXNlICdpbicgb3BlcmF0b3Igb24gbm9uLW9iamVjdFwiKTtcclxuICAgIHJldHVybiB0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyID09PSBzdGF0ZSA6IHN0YXRlLmhhcyhyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZShlbnYsIHZhbHVlLCBhc3luYykge1xyXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcclxuICAgICAgICB2YXIgZGlzcG9zZTtcclxuICAgICAgICBpZiAoYXN5bmMpIHtcclxuICAgICAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICAgICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xyXG4gICAgICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIGRpc3Bvc2UgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBub3QgZGlzcG9zYWJsZS5cIik7XHJcbiAgICAgICAgZW52LnN0YWNrLnB1c2goeyB2YWx1ZTogdmFsdWUsIGRpc3Bvc2U6IGRpc3Bvc2UsIGFzeW5jOiBhc3luYyB9KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGFzeW5jKSB7XHJcbiAgICAgICAgZW52LnN0YWNrLnB1c2goeyBhc3luYzogdHJ1ZSB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxudmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2Rpc3Bvc2VSZXNvdXJjZXMoZW52KSB7XHJcbiAgICBmdW5jdGlvbiBmYWlsKGUpIHtcclxuICAgICAgICBlbnYuZXJyb3IgPSBlbnYuaGFzRXJyb3IgPyBuZXcgX1N1cHByZXNzZWRFcnJvcihlLCBlbnYuZXJyb3IsIFwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLlwiKSA6IGU7XHJcbiAgICAgICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIG5leHQoKSB7XHJcbiAgICAgICAgd2hpbGUgKGVudi5zdGFjay5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmFyIHJlYyA9IGVudi5zdGFjay5wb3AoKTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSByZWMuZGlzcG9zZSAmJiByZWMuZGlzcG9zZS5jYWxsKHJlYy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVjLmFzeW5jKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkudGhlbihuZXh0LCBmdW5jdGlvbihlKSB7IGZhaWwoZSk7IHJldHVybiBuZXh0KCk7IH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBmYWlsKGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbnYuaGFzRXJyb3IpIHRocm93IGVudi5lcnJvcjtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXh0KCk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIF9fZXh0ZW5kczogX19leHRlbmRzLFxyXG4gICAgX19hc3NpZ246IF9fYXNzaWduLFxyXG4gICAgX19yZXN0OiBfX3Jlc3QsXHJcbiAgICBfX2RlY29yYXRlOiBfX2RlY29yYXRlLFxyXG4gICAgX19wYXJhbTogX19wYXJhbSxcclxuICAgIF9fbWV0YWRhdGE6IF9fbWV0YWRhdGEsXHJcbiAgICBfX2F3YWl0ZXI6IF9fYXdhaXRlcixcclxuICAgIF9fZ2VuZXJhdG9yOiBfX2dlbmVyYXRvcixcclxuICAgIF9fY3JlYXRlQmluZGluZzogX19jcmVhdGVCaW5kaW5nLFxyXG4gICAgX19leHBvcnRTdGFyOiBfX2V4cG9ydFN0YXIsXHJcbiAgICBfX3ZhbHVlczogX192YWx1ZXMsXHJcbiAgICBfX3JlYWQ6IF9fcmVhZCxcclxuICAgIF9fc3ByZWFkOiBfX3NwcmVhZCxcclxuICAgIF9fc3ByZWFkQXJyYXlzOiBfX3NwcmVhZEFycmF5cyxcclxuICAgIF9fc3ByZWFkQXJyYXk6IF9fc3ByZWFkQXJyYXksXHJcbiAgICBfX2F3YWl0OiBfX2F3YWl0LFxyXG4gICAgX19hc3luY0dlbmVyYXRvcjogX19hc3luY0dlbmVyYXRvcixcclxuICAgIF9fYXN5bmNEZWxlZ2F0b3I6IF9fYXN5bmNEZWxlZ2F0b3IsXHJcbiAgICBfX2FzeW5jVmFsdWVzOiBfX2FzeW5jVmFsdWVzLFxyXG4gICAgX19tYWtlVGVtcGxhdGVPYmplY3Q6IF9fbWFrZVRlbXBsYXRlT2JqZWN0LFxyXG4gICAgX19pbXBvcnRTdGFyOiBfX2ltcG9ydFN0YXIsXHJcbiAgICBfX2ltcG9ydERlZmF1bHQ6IF9faW1wb3J0RGVmYXVsdCxcclxuICAgIF9fY2xhc3NQcml2YXRlRmllbGRHZXQ6IF9fY2xhc3NQcml2YXRlRmllbGRHZXQsXHJcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0LFxyXG4gICAgX19jbGFzc1ByaXZhdGVGaWVsZEluOiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4sXHJcbiAgICBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZTogX19hZGREaXNwb3NhYmxlUmVzb3VyY2UsXHJcbiAgICBfX2Rpc3Bvc2VSZXNvdXJjZXM6IF9fZGlzcG9zZVJlc291cmNlcyxcclxufTtcclxuIiwiLyohXG4gKiBAcGl4aXYvdGhyZWUtdnJtLW1hdGVyaWFscy1tdG9vbiB2Mi4xLjFcbiAqIE1Ub29uICh0b29uIG1hdGVyaWFsKSBtb2R1bGUgZm9yIEBwaXhpdi90aHJlZS12cm1cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyNCBwaXhpdiBJbmMuXG4gKiBAcGl4aXYvdGhyZWUtdnJtLW1hdGVyaWFscy1tdG9vbiBpcyBkaXN0cmlidXRlZCB1bmRlciBNSVQgTGljZW5zZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3BpeGl2L3RocmVlLXZybS9ibG9iL3JlbGVhc2UvTElDRU5TRVxuICovXG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG5cclxuZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxudHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbn07XG5cbnZhciB2ZXJ0ZXhTaGFkZXIgPSBcIi8vICNkZWZpbmUgUEhPTkdcXG5cXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcXG5cXG4jaWZuZGVmIEZMQVRfU0hBREVEXFxuICB2YXJ5aW5nIHZlYzMgdk5vcm1hbDtcXG4jZW5kaWZcXG5cXG4jaW5jbHVkZSA8Y29tbW9uPlxcblxcbi8vICNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cXG4jaWZkZWYgTVRPT05fVVNFX1VWXFxuICB2YXJ5aW5nIHZlYzIgdlV2O1xcblxcbiAgLy8gQ09NUEFUOiBwcmUtcjE1MSB1c2VzIGEgY29tbW9uIHV2VHJhbnNmb3JtXFxuICAjaWYgVEhSRUVfVlJNX1RIUkVFX1JFVklTSU9OIDwgMTUxXFxuICAgIHVuaWZvcm0gbWF0MyB1dlRyYW5zZm9ybTtcXG4gICNlbmRpZlxcbiNlbmRpZlxcblxcbi8vICNpbmNsdWRlIDx1djJfcGFyc192ZXJ0ZXg+XFxuLy8gQ09NQVBUOiBwcmUtcjE1MSB1c2VzIHV2MiBmb3IgbGlnaHRNYXAgYW5kIGFvTWFwXFxuI2lmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA8IDE1MVxcbiAgI2lmIGRlZmluZWQoIFVTRV9MSUdIVE1BUCApIHx8IGRlZmluZWQoIFVTRV9BT01BUCApXFxuICAgIGF0dHJpYnV0ZSB2ZWMyIHV2MjtcXG4gICAgdmFyeWluZyB2ZWMyIHZVdjI7XFxuICAgIHVuaWZvcm0gbWF0MyB1djJUcmFuc2Zvcm07XFxuICAjZW5kaWZcXG4jZW5kaWZcXG5cXG4vLyAjaW5jbHVkZSA8ZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4Plxcbi8vICNpbmNsdWRlIDxlbnZtYXBfcGFyc192ZXJ0ZXg+XFxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XFxuI2luY2x1ZGUgPG1vcnBodGFyZ2V0X3BhcnNfdmVydGV4PlxcbiNpbmNsdWRlIDxza2lubmluZ19wYXJzX3ZlcnRleD5cXG4jaW5jbHVkZSA8c2hhZG93bWFwX3BhcnNfdmVydGV4PlxcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxcblxcbiNpZmRlZiBVU0VfT1VUTElORVdJRFRITVVMVElQTFlURVhUVVJFXFxuICB1bmlmb3JtIHNhbXBsZXIyRCBvdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmU7XFxuICB1bmlmb3JtIG1hdDMgb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlVXZUcmFuc2Zvcm07XFxuI2VuZGlmXFxuXFxudW5pZm9ybSBmbG9hdCBvdXRsaW5lV2lkdGhGYWN0b3I7XFxuXFxudm9pZCBtYWluKCkge1xcblxcbiAgLy8gI2luY2x1ZGUgPHV2X3ZlcnRleD5cXG4gICNpZmRlZiBNVE9PTl9VU0VfVVZcXG4gICAgLy8gQ09NUEFUOiBwcmUtcjE1MSB1c2VzIGEgY29tbW9uIHV2VHJhbnNmb3JtXFxuICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTUxXFxuICAgICAgdlV2ID0gdXY7XFxuICAgICNlbHNlXFxuICAgICAgdlV2ID0gKCB1dlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcXG4gICAgI2VuZGlmXFxuICAjZW5kaWZcXG5cXG4gIC8vICNpbmNsdWRlIDx1djJfdmVydGV4PlxcbiAgLy8gQ09NQVBUOiBwcmUtcjE1MSB1c2VzIHV2MiBmb3IgbGlnaHRNYXAgYW5kIGFvTWFwXFxuICAjaWYgVEhSRUVfVlJNX1RIUkVFX1JFVklTSU9OIDwgMTUxXFxuICAgICNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxcbiAgICAgIHZVdjIgPSAoIHV2MlRyYW5zZm9ybSAqIHZlYzMoIHV2MiwgMSApICkueHk7XFxuICAgICNlbmRpZlxcbiAgI2VuZGlmXFxuXFxuICAjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxcblxcbiAgI2luY2x1ZGUgPGJlZ2lubm9ybWFsX3ZlcnRleD5cXG4gICNpbmNsdWRlIDxtb3JwaG5vcm1hbF92ZXJ0ZXg+XFxuICAjaW5jbHVkZSA8c2tpbmJhc2VfdmVydGV4PlxcbiAgI2luY2x1ZGUgPHNraW5ub3JtYWxfdmVydGV4PlxcblxcbiAgLy8gd2UgbmVlZCB0aGlzIHRvIGNvbXB1dGUgdGhlIG91dGxpbmUgcHJvcGVybHlcXG4gIG9iamVjdE5vcm1hbCA9IG5vcm1hbGl6ZSggb2JqZWN0Tm9ybWFsICk7XFxuXFxuICAjaW5jbHVkZSA8ZGVmYXVsdG5vcm1hbF92ZXJ0ZXg+XFxuXFxuICAjaWZuZGVmIEZMQVRfU0hBREVEIC8vIE5vcm1hbCBjb21wdXRlZCB3aXRoIGRlcml2YXRpdmVzIHdoZW4gRkxBVF9TSEFERURcXG4gICAgdk5vcm1hbCA9IG5vcm1hbGl6ZSggdHJhbnNmb3JtZWROb3JtYWwgKTtcXG4gICNlbmRpZlxcblxcbiAgI2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cXG5cXG4gICNpbmNsdWRlIDxtb3JwaHRhcmdldF92ZXJ0ZXg+XFxuICAjaW5jbHVkZSA8c2tpbm5pbmdfdmVydGV4PlxcbiAgLy8gI2luY2x1ZGUgPGRpc3BsYWNlbWVudG1hcF92ZXJ0ZXg+XFxuICAjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XFxuICAjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxcbiAgI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XFxuXFxuICB2Vmlld1Bvc2l0aW9uID0gLSBtdlBvc2l0aW9uLnh5ejtcXG5cXG4gIGZsb2F0IG91dGxpbmVUZXggPSAxLjA7XFxuXFxuICAjaWZkZWYgT1VUTElORVxcbiAgICAjaWZkZWYgVVNFX09VVExJTkVXSURUSE1VTFRJUExZVEVYVFVSRVxcbiAgICAgIHZlYzIgb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlVXYgPSAoIG91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZVV2VHJhbnNmb3JtICogdmVjMyggdlV2LCAxICkgKS54eTtcXG4gICAgICBvdXRsaW5lVGV4ID0gdGV4dHVyZTJEKCBvdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmUsIG91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZVV2ICkuZztcXG4gICAgI2VuZGlmXFxuXFxuICAgICNpZmRlZiBPVVRMSU5FX1dJRFRIX1dPUkxEXFxuICAgICAgZmxvYXQgd29ybGROb3JtYWxMZW5ndGggPSBsZW5ndGgoIHRyYW5zZm9ybWVkTm9ybWFsICk7XFxuICAgICAgdmVjMyBvdXRsaW5lT2Zmc2V0ID0gb3V0bGluZVdpZHRoRmFjdG9yICogb3V0bGluZVRleCAqIHdvcmxkTm9ybWFsTGVuZ3RoICogb2JqZWN0Tm9ybWFsO1xcbiAgICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQoIG91dGxpbmVPZmZzZXQgKyB0cmFuc2Zvcm1lZCwgMS4wICk7XFxuICAgICNlbmRpZlxcblxcbiAgICAjaWZkZWYgT1VUTElORV9XSURUSF9TQ1JFRU5cXG4gICAgICB2ZWMzIGNsaXBOb3JtYWwgPSAoIHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBvYmplY3ROb3JtYWwsIDAuMCApICkueHl6O1xcbiAgICAgIHZlYzIgcHJvamVjdGVkTm9ybWFsID0gbm9ybWFsaXplKCBjbGlwTm9ybWFsLnh5ICk7XFxuICAgICAgcHJvamVjdGVkTm9ybWFsLnggKj0gcHJvamVjdGlvbk1hdHJpeFsgMCBdLnggLyBwcm9qZWN0aW9uTWF0cml4WyAxIF0ueTtcXG4gICAgICBnbF9Qb3NpdGlvbi54eSArPSAyLjAgKiBvdXRsaW5lV2lkdGhGYWN0b3IgKiBvdXRsaW5lVGV4ICogcHJvamVjdGVkTm9ybWFsLnh5O1xcbiAgICAjZW5kaWZcXG5cXG4gICAgZ2xfUG9zaXRpb24ueiArPSAxRS02ICogZ2xfUG9zaXRpb24udzsgLy8gYW50aS1hcnRpZmFjdCBtYWdpY1xcbiAgI2VuZGlmXFxuXFxuICAjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxcbiAgLy8gI2luY2x1ZGUgPGVudm1hcF92ZXJ0ZXg+XFxuICAjaW5jbHVkZSA8c2hhZG93bWFwX3ZlcnRleD5cXG4gICNpbmNsdWRlIDxmb2dfdmVydGV4Plxcblxcbn1cIjtcblxudmFyIGZyYWdtZW50U2hhZGVyID0gXCIvLyAjZGVmaW5lIFBIT05HXFxuXFxudW5pZm9ybSB2ZWMzIGxpdEZhY3RvcjtcXG5cXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XFxuXFxudW5pZm9ybSB2ZWMzIHNoYWRlQ29sb3JGYWN0b3I7XFxuI2lmZGVmIFVTRV9TSEFERU1VTFRJUExZVEVYVFVSRVxcbiAgdW5pZm9ybSBzYW1wbGVyMkQgc2hhZGVNdWx0aXBseVRleHR1cmU7XFxuICB1bmlmb3JtIG1hdDMgc2hhZGVNdWx0aXBseVRleHR1cmVVdlRyYW5zZm9ybTtcXG4jZW5kaWZcXG5cXG51bmlmb3JtIGZsb2F0IHNoYWRpbmdTaGlmdEZhY3RvcjtcXG51bmlmb3JtIGZsb2F0IHNoYWRpbmdUb29ueUZhY3RvcjtcXG5cXG4jaWZkZWYgVVNFX1NIQURJTkdTSElGVFRFWFRVUkVcXG4gIHVuaWZvcm0gc2FtcGxlcjJEIHNoYWRpbmdTaGlmdFRleHR1cmU7XFxuICB1bmlmb3JtIG1hdDMgc2hhZGluZ1NoaWZ0VGV4dHVyZVV2VHJhbnNmb3JtO1xcbiAgdW5pZm9ybSBmbG9hdCBzaGFkaW5nU2hpZnRUZXh0dXJlU2NhbGU7XFxuI2VuZGlmXFxuXFxudW5pZm9ybSBmbG9hdCBnaUVxdWFsaXphdGlvbkZhY3RvcjtcXG5cXG51bmlmb3JtIHZlYzMgcGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yO1xcbiNpZmRlZiBVU0VfUklNTVVMVElQTFlURVhUVVJFXFxuICB1bmlmb3JtIHNhbXBsZXIyRCByaW1NdWx0aXBseVRleHR1cmU7XFxuICB1bmlmb3JtIG1hdDMgcmltTXVsdGlwbHlUZXh0dXJlVXZUcmFuc2Zvcm07XFxuI2VuZGlmXFxudW5pZm9ybSBmbG9hdCByaW1MaWdodGluZ01peEZhY3RvcjtcXG51bmlmb3JtIGZsb2F0IHBhcmFtZXRyaWNSaW1GcmVzbmVsUG93ZXJGYWN0b3I7XFxudW5pZm9ybSBmbG9hdCBwYXJhbWV0cmljUmltTGlmdEZhY3RvcjtcXG5cXG4jaWZkZWYgVVNFX01BVENBUFRFWFRVUkVcXG4gIHVuaWZvcm0gdmVjMyBtYXRjYXBGYWN0b3I7XFxuICB1bmlmb3JtIHNhbXBsZXIyRCBtYXRjYXBUZXh0dXJlO1xcbiAgdW5pZm9ybSBtYXQzIG1hdGNhcFRleHR1cmVVdlRyYW5zZm9ybTtcXG4jZW5kaWZcXG5cXG51bmlmb3JtIHZlYzMgZW1pc3NpdmU7XFxudW5pZm9ybSBmbG9hdCBlbWlzc2l2ZUludGVuc2l0eTtcXG5cXG51bmlmb3JtIHZlYzMgb3V0bGluZUNvbG9yRmFjdG9yO1xcbnVuaWZvcm0gZmxvYXQgb3V0bGluZUxpZ2h0aW5nTWl4RmFjdG9yO1xcblxcbiNpZmRlZiBVU0VfVVZBTklNQVRJT05NQVNLVEVYVFVSRVxcbiAgdW5pZm9ybSBzYW1wbGVyMkQgdXZBbmltYXRpb25NYXNrVGV4dHVyZTtcXG4gIHVuaWZvcm0gbWF0MyB1dkFuaW1hdGlvbk1hc2tUZXh0dXJlVXZUcmFuc2Zvcm07XFxuI2VuZGlmXFxuXFxudW5pZm9ybSBmbG9hdCB1dkFuaW1hdGlvblNjcm9sbFhPZmZzZXQ7XFxudW5pZm9ybSBmbG9hdCB1dkFuaW1hdGlvblNjcm9sbFlPZmZzZXQ7XFxudW5pZm9ybSBmbG9hdCB1dkFuaW1hdGlvblJvdGF0aW9uUGhhc2U7XFxuXFxuI2luY2x1ZGUgPGNvbW1vbj5cXG4jaW5jbHVkZSA8cGFja2luZz5cXG4jaW5jbHVkZSA8ZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XFxuXFxuLy8gI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XFxuI2lmICggZGVmaW5lZCggTVRPT05fVVNFX1VWICkgJiYgIWRlZmluZWQoIE1UT09OX1VWU19WRVJURVhfT05MWSApIClcXG4gIHZhcnlpbmcgdmVjMiB2VXY7XFxuI2VuZGlmXFxuXFxuLy8gI2luY2x1ZGUgPHV2Ml9wYXJzX2ZyYWdtZW50Plxcbi8vIENPTUFQVDogcHJlLXIxNTEgdXNlcyB1djIgZm9yIGxpZ2h0TWFwIGFuZCBhb01hcFxcbiNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPCAxNTFcXG4gICNpZiBkZWZpbmVkKCBVU0VfTElHSFRNQVAgKSB8fCBkZWZpbmVkKCBVU0VfQU9NQVAgKVxcbiAgICB2YXJ5aW5nIHZlYzIgdlV2MjtcXG4gICNlbmRpZlxcbiNlbmRpZlxcblxcbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cXG5cXG4jaWZkZWYgVVNFX01BUFxcbiAgdW5pZm9ybSBtYXQzIG1hcFV2VHJhbnNmb3JtO1xcbiNlbmRpZlxcblxcbi8vICNpbmNsdWRlIDxhbHBoYW1hcF9wYXJzX2ZyYWdtZW50PlxcblxcbiNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTMyXFxuICAjaW5jbHVkZSA8YWxwaGF0ZXN0X3BhcnNfZnJhZ21lbnQ+XFxuI2VuZGlmXFxuXFxuI2luY2x1ZGUgPGFvbWFwX3BhcnNfZnJhZ21lbnQ+XFxuLy8gI2luY2x1ZGUgPGxpZ2h0bWFwX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGVtaXNzaXZlbWFwX3BhcnNfZnJhZ21lbnQ+XFxuXFxuI2lmZGVmIFVTRV9FTUlTU0lWRU1BUFxcbiAgdW5pZm9ybSBtYXQzIGVtaXNzaXZlTWFwVXZUcmFuc2Zvcm07XFxuI2VuZGlmXFxuXFxuLy8gI2luY2x1ZGUgPGVudm1hcF9jb21tb25fcGFyc19mcmFnbWVudD5cXG4vLyAjaW5jbHVkZSA8ZW52bWFwX3BhcnNfZnJhZ21lbnQ+XFxuLy8gI2luY2x1ZGUgPGN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudD5cXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XFxuXFxuLy8gI2luY2x1ZGUgPGJzZGZzPlxcbi8vIENPTVBBVDogcHJlLXIxNTEgZG9lc24ndCBoYXZlIEJSREZfTGFtYmVydCBpbiA8Y29tbW9uPlxcbiNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPCAxNTFcXG4gIHZlYzMgQlJERl9MYW1iZXJ0KCBjb25zdCBpbiB2ZWMzIGRpZmZ1c2VDb2xvciApIHtcXG4gICAgcmV0dXJuIFJFQ0lQUk9DQUxfUEkgKiBkaWZmdXNlQ29sb3I7XFxuICB9XFxuI2VuZGlmXFxuXFxuI2luY2x1ZGUgPGxpZ2h0c19wYXJzX2JlZ2luPlxcblxcbiNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTMyXFxuICAjaW5jbHVkZSA8bm9ybWFsX3BhcnNfZnJhZ21lbnQ+XFxuI2VuZGlmXFxuXFxuLy8gI2luY2x1ZGUgPGxpZ2h0c19waG9uZ19wYXJzX2ZyYWdtZW50PlxcbnZhcnlpbmcgdmVjMyB2Vmlld1Bvc2l0aW9uO1xcblxcbiNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPCAxMzJcXG4gICNpZm5kZWYgRkxBVF9TSEFERURcXG4gICAgdmFyeWluZyB2ZWMzIHZOb3JtYWw7XFxuICAjZW5kaWZcXG4jZW5kaWZcXG5cXG5zdHJ1Y3QgTVRvb25NYXRlcmlhbCB7XFxuICB2ZWMzIGRpZmZ1c2VDb2xvcjtcXG4gIHZlYzMgc2hhZGVDb2xvcjtcXG4gIGZsb2F0IHNoYWRpbmdTaGlmdDtcXG59O1xcblxcbmZsb2F0IGxpbmVhcnN0ZXAoIGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHQgKSB7XFxuICByZXR1cm4gY2xhbXAoICggdCAtIGEgKSAvICggYiAtIGEgKSwgMC4wLCAxLjAgKTtcXG59XFxuXFxuLyoqXFxuICogQ29udmVydCBOZG90TCBpbnRvIHRvb24gc2hhZGluZyBmYWN0b3IgdXNpbmcgc2hhZGluZ1NoaWZ0IGFuZCBzaGFkaW5nVG9vbnlcXG4gKi9cXG5mbG9hdCBnZXRTaGFkaW5nKFxcbiAgY29uc3QgaW4gZmxvYXQgZG90TkwsXFxuICBjb25zdCBpbiBmbG9hdCBzaGFkb3csXFxuICBjb25zdCBpbiBmbG9hdCBzaGFkaW5nU2hpZnRcXG4pIHtcXG4gIGZsb2F0IHNoYWRpbmcgPSBkb3ROTDtcXG4gIHNoYWRpbmcgPSBzaGFkaW5nICsgc2hhZGluZ1NoaWZ0O1xcbiAgc2hhZGluZyA9IGxpbmVhcnN0ZXAoIC0xLjAgKyBzaGFkaW5nVG9vbnlGYWN0b3IsIDEuMCAtIHNoYWRpbmdUb29ueUZhY3Rvciwgc2hhZGluZyApO1xcbiAgc2hhZGluZyAqPSBzaGFkb3c7XFxuICByZXR1cm4gc2hhZGluZztcXG59XFxuXFxuLyoqXFxuICogTWl4IGRpZmZ1c2VDb2xvciBhbmQgc2hhZGVDb2xvciB1c2luZyBzaGFkaW5nIGZhY3RvciBhbmQgbGlnaHQgY29sb3JcXG4gKi9cXG52ZWMzIGdldERpZmZ1c2UoXFxuICBjb25zdCBpbiBNVG9vbk1hdGVyaWFsIG1hdGVyaWFsLFxcbiAgY29uc3QgaW4gZmxvYXQgc2hhZGluZyxcXG4gIGluIHZlYzMgbGlnaHRDb2xvclxcbikge1xcbiAgI2lmZGVmIERFQlVHX0xJVFNIQURFUkFURVxcbiAgICByZXR1cm4gdmVjMyggQlJERl9MYW1iZXJ0KCBzaGFkaW5nICogbGlnaHRDb2xvciApICk7XFxuICAjZW5kaWZcXG5cXG4gICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPCAxMzJcXG4gICAgI2lmbmRlZiBQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTXFxuICAgICAgbGlnaHRDb2xvciAqPSBQSTtcXG4gICAgI2VuZGlmXFxuICAjZW5kaWZcXG5cXG4gIHZlYzMgY29sID0gbGlnaHRDb2xvciAqIEJSREZfTGFtYmVydCggbWl4KCBtYXRlcmlhbC5zaGFkZUNvbG9yLCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IsIHNoYWRpbmcgKSApO1xcblxcbiAgLy8gVGhlIFxcXCJjb21tZW50IG91dCBpZiB5b3Ugd2FudCB0byBQQlIgYWJzb2x1dGVseVxcXCIgbGluZVxcbiAgI2lmZGVmIFYwX0NPTVBBVF9TSEFERVxcbiAgICBjb2wgPSBtaW4oIGNvbCwgbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XFxuICAjZW5kaWZcXG5cXG4gIHJldHVybiBjb2w7XFxufVxcblxcbi8vIENPTVBBVDogcHJlLXIxNTYgdXNlcyBhIHN0cnVjdCBHZW9tZXRyaWNDb250ZXh0XFxuI2lmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxNTdcXG4gIHZvaWQgUkVfRGlyZWN0X01Ub29uKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiB2ZWMzIGdlb21ldHJ5UG9zaXRpb24sIGNvbnN0IGluIHZlYzMgZ2VvbWV0cnlOb3JtYWwsIGNvbnN0IGluIHZlYzMgZ2VvbWV0cnlWaWV3RGlyLCBjb25zdCBpbiB2ZWMzIGdlb21ldHJ5Q2xlYXJjb2F0Tm9ybWFsLCBjb25zdCBpbiBNVG9vbk1hdGVyaWFsIG1hdGVyaWFsLCBjb25zdCBpbiBmbG9hdCBzaGFkb3csIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xcbiAgICBmbG9hdCBkb3ROTCA9IGNsYW1wKCBkb3QoIGdlb21ldHJ5Tm9ybWFsLCBkaXJlY3RMaWdodC5kaXJlY3Rpb24gKSwgLTEuMCwgMS4wICk7XFxuICAgIHZlYzMgaXJyYWRpYW5jZSA9IGRpcmVjdExpZ2h0LmNvbG9yO1xcblxcbiAgICAvLyBkaXJlY3RTcGVjdWxhciB3aWxsIGJlIHVzZWQgZm9yIHJpbSBsaWdodGluZywgbm90IGFuIGFjdHVhbCBzcGVjdWxhclxcbiAgICByZWZsZWN0ZWRMaWdodC5kaXJlY3RTcGVjdWxhciArPSBpcnJhZGlhbmNlO1xcblxcbiAgICBpcnJhZGlhbmNlICo9IGRvdE5MO1xcblxcbiAgICBmbG9hdCBzaGFkaW5nID0gZ2V0U2hhZGluZyggZG90TkwsIHNoYWRvdywgbWF0ZXJpYWwuc2hhZGluZ1NoaWZ0ICk7XFxuXFxuICAgIC8vIHRvb24gc2hhZGVkIGRpZmZ1c2VcXG4gICAgcmVmbGVjdGVkTGlnaHQuZGlyZWN0RGlmZnVzZSArPSBnZXREaWZmdXNlKCBtYXRlcmlhbCwgc2hhZGluZywgZGlyZWN0TGlnaHQuY29sb3IgKTtcXG4gIH1cXG5cXG4gIHZvaWQgUkVfSW5kaXJlY3REaWZmdXNlX01Ub29uKCBjb25zdCBpbiB2ZWMzIGlycmFkaWFuY2UsIGNvbnN0IGluIHZlYzMgZ2VvbWV0cnlQb3NpdGlvbiwgY29uc3QgaW4gdmVjMyBnZW9tZXRyeU5vcm1hbCwgY29uc3QgaW4gdmVjMyBnZW9tZXRyeVZpZXdEaXIsIGNvbnN0IGluIHZlYzMgZ2VvbWV0cnlDbGVhcmNvYXROb3JtYWwsIGNvbnN0IGluIE1Ub29uTWF0ZXJpYWwgbWF0ZXJpYWwsIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xcbiAgICAvLyBpbmRpcmVjdCBkaWZmdXNlIHdpbGwgdXNlIGRpZmZ1c2VDb2xvciwgbm8gc2hhZGVDb2xvciBpbnZvbHZlZFxcbiAgICByZWZsZWN0ZWRMaWdodC5pbmRpcmVjdERpZmZ1c2UgKz0gaXJyYWRpYW5jZSAqIEJSREZfTGFtYmVydCggbWF0ZXJpYWwuZGlmZnVzZUNvbG9yICk7XFxuXFxuICAgIC8vIGRpcmVjdFNwZWN1bGFyIHdpbGwgYmUgdXNlZCBmb3IgcmltIGxpZ2h0aW5nLCBub3QgYW4gYWN0dWFsIHNwZWN1bGFyXFxuICAgIHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGlycmFkaWFuY2U7XFxuICB9XFxuI2Vsc2VcXG4gIHZvaWQgUkVfRGlyZWN0X01Ub29uKCBjb25zdCBpbiBJbmNpZGVudExpZ2h0IGRpcmVjdExpZ2h0LCBjb25zdCBpbiBHZW9tZXRyaWNDb250ZXh0IGdlb21ldHJ5LCBjb25zdCBpbiBNVG9vbk1hdGVyaWFsIG1hdGVyaWFsLCBjb25zdCBpbiBmbG9hdCBzaGFkb3csIGlub3V0IFJlZmxlY3RlZExpZ2h0IHJlZmxlY3RlZExpZ2h0ICkge1xcbiAgICBmbG9hdCBkb3ROTCA9IGNsYW1wKCBkb3QoIGdlb21ldHJ5Lm5vcm1hbCwgZGlyZWN0TGlnaHQuZGlyZWN0aW9uICksIC0xLjAsIDEuMCApO1xcbiAgICB2ZWMzIGlycmFkaWFuY2UgPSBkaXJlY3RMaWdodC5jb2xvcjtcXG5cXG4gICAgI2lmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA8IDEzMlxcbiAgICAgICNpZm5kZWYgUEhZU0lDQUxMWV9DT1JSRUNUX0xJR0hUU1xcbiAgICAgICAgaXJyYWRpYW5jZSAqPSBQSTtcXG4gICAgICAjZW5kaWZcXG4gICAgI2VuZGlmXFxuXFxuICAgIC8vIGRpcmVjdFNwZWN1bGFyIHdpbGwgYmUgdXNlZCBmb3IgcmltIGxpZ2h0aW5nLCBub3QgYW4gYWN0dWFsIHNwZWN1bGFyXFxuICAgIHJlZmxlY3RlZExpZ2h0LmRpcmVjdFNwZWN1bGFyICs9IGlycmFkaWFuY2U7XFxuXFxuICAgIGlycmFkaWFuY2UgKj0gZG90Tkw7XFxuXFxuICAgIGZsb2F0IHNoYWRpbmcgPSBnZXRTaGFkaW5nKCBkb3ROTCwgc2hhZG93LCBtYXRlcmlhbC5zaGFkaW5nU2hpZnQgKTtcXG5cXG4gICAgLy8gdG9vbiBzaGFkZWQgZGlmZnVzZVxcbiAgICByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICs9IGdldERpZmZ1c2UoIG1hdGVyaWFsLCBzaGFkaW5nLCBkaXJlY3RMaWdodC5jb2xvciApO1xcbiAgfVxcblxcbiAgdm9pZCBSRV9JbmRpcmVjdERpZmZ1c2VfTVRvb24oIGNvbnN0IGluIHZlYzMgaXJyYWRpYW5jZSwgY29uc3QgaW4gR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeSwgY29uc3QgaW4gTVRvb25NYXRlcmlhbCBtYXRlcmlhbCwgaW5vdXQgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgKSB7XFxuICAgIC8vIGluZGlyZWN0IGRpZmZ1c2Ugd2lsbCB1c2UgZGlmZnVzZUNvbG9yLCBubyBzaGFkZUNvbG9yIGludm9sdmVkXFxuICAgIHJlZmxlY3RlZExpZ2h0LmluZGlyZWN0RGlmZnVzZSArPSBpcnJhZGlhbmNlICogQlJERl9MYW1iZXJ0KCBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgKTtcXG5cXG4gICAgLy8gZGlyZWN0U3BlY3VsYXIgd2lsbCBiZSB1c2VkIGZvciByaW0gbGlnaHRpbmcsIG5vdCBhbiBhY3R1YWwgc3BlY3VsYXJcXG4gICAgcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgKz0gaXJyYWRpYW5jZTtcXG4gIH1cXG4jZW5kaWZcXG5cXG4jZGVmaW5lIFJFX0RpcmVjdCBSRV9EaXJlY3RfTVRvb25cXG4jZGVmaW5lIFJFX0luZGlyZWN0RGlmZnVzZSBSRV9JbmRpcmVjdERpZmZ1c2VfTVRvb25cXG4jZGVmaW5lIE1hdGVyaWFsX0xpZ2h0UHJvYmVMT0QoIG1hdGVyaWFsICkgKDApXFxuXFxuI2luY2x1ZGUgPHNoYWRvd21hcF9wYXJzX2ZyYWdtZW50Plxcbi8vICNpbmNsdWRlIDxidW1wbWFwX3BhcnNfZnJhZ21lbnQ+XFxuXFxuLy8gI2luY2x1ZGUgPG5vcm1hbG1hcF9wYXJzX2ZyYWdtZW50PlxcbiNpZmRlZiBVU0VfTk9STUFMTUFQXFxuXFxuICB1bmlmb3JtIHNhbXBsZXIyRCBub3JtYWxNYXA7XFxuICB1bmlmb3JtIG1hdDMgbm9ybWFsTWFwVXZUcmFuc2Zvcm07XFxuICB1bmlmb3JtIHZlYzIgbm9ybWFsU2NhbGU7XFxuXFxuI2VuZGlmXFxuXFxuLy8gQ09NUEFUOiBVU0VfTk9STUFMTUFQX09CSkVDVFNQQUNFIHVzZWQgdG8gYmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIGluIHByZS1yMTUxXFxuI2lmIGRlZmluZWQoIFVTRV9OT1JNQUxNQVBfT0JKRUNUU1BBQ0UgKSB8fCBkZWZpbmVkKCBPQkpFQ1RTUEFDRV9OT1JNQUxNQVAgKVxcblxcbiAgdW5pZm9ybSBtYXQzIG5vcm1hbE1hdHJpeDtcXG5cXG4jZW5kaWZcXG5cXG4vLyBDT01QQVQ6IFVTRV9OT1JNQUxNQVBfVEFOR0VOVFNQQUNFIHVzZWQgdG8gYmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCBpbiBwcmUtcjE1MVxcbiNpZiAhIGRlZmluZWQgKCBVU0VfVEFOR0VOVCApICYmICggZGVmaW5lZCAoIFVTRV9OT1JNQUxNQVBfVEFOR0VOVFNQQUNFICkgfHwgZGVmaW5lZCAoIFRBTkdFTlRTUEFDRV9OT1JNQUxNQVAgKSApXFxuXFxuICAvLyBQZXItUGl4ZWwgVGFuZ2VudCBTcGFjZSBOb3JtYWwgTWFwcGluZ1xcbiAgLy8gaHR0cDovL2hhY2tzb2ZsaWZlLmJsb2dzcG90LmNoLzIwMDkvMTEvcGVyLXBpeGVsLXRhbmdlbnQtc3BhY2Utbm9ybWFsLW1hcHBpbmcuaHRtbFxcblxcbiAgLy8gdGhyZWUtdnJtIHNwZWNpZmljIGNoYW5nZTogaXQgcmVxdWlyZXMgYHV2YCBhcyBhbiBpbnB1dCBpbiBvcmRlciB0byBzdXBwb3J0IHV2IHNjcm9sbHNcXG5cXG4gIC8vIFRlbXBvcmFyeSBjb21wYXQgYWdhaW5zdCBzaGFkZXIgY2hhbmdlIEAgVGhyZWUuanMgcjEyNiwgcjE1MVxcbiAgI2lmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxNTFcXG5cXG4gICAgbWF0MyBnZXRUYW5nZW50RnJhbWUoIHZlYzMgZXllX3BvcywgdmVjMyBzdXJmX25vcm0sIHZlYzIgdXYgKSB7XFxuXFxuICAgICAgdmVjMyBxMCA9IGRGZHgoIGV5ZV9wb3MueHl6ICk7XFxuICAgICAgdmVjMyBxMSA9IGRGZHkoIGV5ZV9wb3MueHl6ICk7XFxuICAgICAgdmVjMiBzdDAgPSBkRmR4KCB1di5zdCApO1xcbiAgICAgIHZlYzIgc3QxID0gZEZkeSggdXYuc3QgKTtcXG5cXG4gICAgICB2ZWMzIE4gPSBzdXJmX25vcm07XFxuXFxuICAgICAgdmVjMyBxMXBlcnAgPSBjcm9zcyggcTEsIE4gKTtcXG4gICAgICB2ZWMzIHEwcGVycCA9IGNyb3NzKCBOLCBxMCApO1xcblxcbiAgICAgIHZlYzMgVCA9IHExcGVycCAqIHN0MC54ICsgcTBwZXJwICogc3QxLng7XFxuICAgICAgdmVjMyBCID0gcTFwZXJwICogc3QwLnkgKyBxMHBlcnAgKiBzdDEueTtcXG5cXG4gICAgICBmbG9hdCBkZXQgPSBtYXgoIGRvdCggVCwgVCApLCBkb3QoIEIsIEIgKSApO1xcbiAgICAgIGZsb2F0IHNjYWxlID0gKCBkZXQgPT0gMC4wICkgPyAwLjAgOiBpbnZlcnNlc3FydCggZGV0ICk7XFxuXFxuICAgICAgcmV0dXJuIG1hdDMoIFQgKiBzY2FsZSwgQiAqIHNjYWxlLCBOICk7XFxuXFxuICAgIH1cXG5cXG4gICNlbGlmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxMjZcXG5cXG4gICAgdmVjMyBwZXJ0dXJiTm9ybWFsMkFyYiggdmVjMiB1diwgdmVjMyBleWVfcG9zLCB2ZWMzIHN1cmZfbm9ybSwgdmVjMyBtYXBOLCBmbG9hdCBmYWNlRGlyZWN0aW9uICkge1xcblxcbiAgICAgIHZlYzMgcTAgPSB2ZWMzKCBkRmR4KCBleWVfcG9zLnggKSwgZEZkeCggZXllX3Bvcy55ICksIGRGZHgoIGV5ZV9wb3MueiApICk7XFxuICAgICAgdmVjMyBxMSA9IHZlYzMoIGRGZHkoIGV5ZV9wb3MueCApLCBkRmR5KCBleWVfcG9zLnkgKSwgZEZkeSggZXllX3Bvcy56ICkgKTtcXG4gICAgICB2ZWMyIHN0MCA9IGRGZHgoIHV2LnN0ICk7XFxuICAgICAgdmVjMiBzdDEgPSBkRmR5KCB1di5zdCApO1xcblxcbiAgICAgIHZlYzMgTiA9IG5vcm1hbGl6ZSggc3VyZl9ub3JtICk7XFxuXFxuICAgICAgdmVjMyBxMXBlcnAgPSBjcm9zcyggcTEsIE4gKTtcXG4gICAgICB2ZWMzIHEwcGVycCA9IGNyb3NzKCBOLCBxMCApO1xcblxcbiAgICAgIHZlYzMgVCA9IHExcGVycCAqIHN0MC54ICsgcTBwZXJwICogc3QxLng7XFxuICAgICAgdmVjMyBCID0gcTFwZXJwICogc3QwLnkgKyBxMHBlcnAgKiBzdDEueTtcXG5cXG4gICAgICAvLyB0aHJlZS12cm0gc3BlY2lmaWMgY2hhbmdlOiBXb3JrYXJvdW5kIGZvciB0aGUgaXNzdWUgdGhhdCBoYXBwZW5zIHdoZW4gZGVsdGEgb2YgdXYgPSAwLjBcXG4gICAgICAvLyBUT0RPOiBJcyB0aGlzIHN0aWxsIHJlcXVpcmVkPyBPciBzaGFsbCBJIG1ha2UgYSBQUiBhYm91dCBpdD9cXG4gICAgICBpZiAoIGxlbmd0aCggVCApID09IDAuMCB8fCBsZW5ndGgoIEIgKSA9PSAwLjAgKSB7XFxuICAgICAgICByZXR1cm4gc3VyZl9ub3JtO1xcbiAgICAgIH1cXG5cXG4gICAgICBmbG9hdCBkZXQgPSBtYXgoIGRvdCggVCwgVCApLCBkb3QoIEIsIEIgKSApO1xcbiAgICAgIGZsb2F0IHNjYWxlID0gKCBkZXQgPT0gMC4wICkgPyAwLjAgOiBmYWNlRGlyZWN0aW9uICogaW52ZXJzZXNxcnQoIGRldCApO1xcblxcbiAgICAgIHJldHVybiBub3JtYWxpemUoIFQgKiAoIG1hcE4ueCAqIHNjYWxlICkgKyBCICogKCBtYXBOLnkgKiBzY2FsZSApICsgTiAqIG1hcE4ueiApO1xcblxcbiAgICB9XFxuXFxuICAjZWxzZVxcblxcbiAgICB2ZWMzIHBlcnR1cmJOb3JtYWwyQXJiKCB2ZWMyIHV2LCB2ZWMzIGV5ZV9wb3MsIHZlYzMgc3VyZl9ub3JtLCB2ZWMzIG1hcE4gKSB7XFxuXFxuICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgQWRyZW5vIDNYWCBkRmQqKCB2ZWMzICkgYnVnLiBTZWUgIzk5ODhcXG5cXG4gICAgICB2ZWMzIHEwID0gdmVjMyggZEZkeCggZXllX3Bvcy54ICksIGRGZHgoIGV5ZV9wb3MueSApLCBkRmR4KCBleWVfcG9zLnogKSApO1xcbiAgICAgIHZlYzMgcTEgPSB2ZWMzKCBkRmR5KCBleWVfcG9zLnggKSwgZEZkeSggZXllX3Bvcy55ICksIGRGZHkoIGV5ZV9wb3MueiApICk7XFxuICAgICAgdmVjMiBzdDAgPSBkRmR4KCB1di5zdCApO1xcbiAgICAgIHZlYzIgc3QxID0gZEZkeSggdXYuc3QgKTtcXG5cXG4gICAgICBmbG9hdCBzY2FsZSA9IHNpZ24oIHN0MS50ICogc3QwLnMgLSBzdDAudCAqIHN0MS5zICk7IC8vIHdlIGRvIG5vdCBjYXJlIGFib3V0IHRoZSBtYWduaXR1ZGVcXG5cXG4gICAgICB2ZWMzIFMgPSAoIHEwICogc3QxLnQgLSBxMSAqIHN0MC50ICkgKiBzY2FsZTtcXG4gICAgICB2ZWMzIFQgPSAoIC0gcTAgKiBzdDEucyArIHExICogc3QwLnMgKSAqIHNjYWxlO1xcblxcbiAgICAgIC8vIHRocmVlLXZybSBzcGVjaWZpYyBjaGFuZ2U6IFdvcmthcm91bmQgZm9yIHRoZSBpc3N1ZSB0aGF0IGhhcHBlbnMgd2hlbiBkZWx0YSBvZiB1diA9IDAuMFxcbiAgICAgIC8vIFRPRE86IElzIHRoaXMgc3RpbGwgcmVxdWlyZWQ/IE9yIHNoYWxsIEkgbWFrZSBhIFBSIGFib3V0IGl0P1xcblxcbiAgICAgIGlmICggbGVuZ3RoKCBTICkgPT0gMC4wIHx8IGxlbmd0aCggVCApID09IDAuMCApIHtcXG4gICAgICAgIHJldHVybiBzdXJmX25vcm07XFxuICAgICAgfVxcblxcbiAgICAgIFMgPSBub3JtYWxpemUoIFMgKTtcXG4gICAgICBUID0gbm9ybWFsaXplKCBUICk7XFxuICAgICAgdmVjMyBOID0gbm9ybWFsaXplKCBzdXJmX25vcm0gKTtcXG5cXG4gICAgICAjaWZkZWYgRE9VQkxFX1NJREVEXFxuXFxuICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBBZHJlbm8gR1BVcyBnbF9Gcm9udEZhY2luZyBidWcuIFNlZSAjMTU4NTAgYW5kICMxMDMzMVxcblxcbiAgICAgICAgYm9vbCBmcm9udEZhY2luZyA9IGRvdCggY3Jvc3MoIFMsIFQgKSwgTiApID4gMC4wO1xcblxcbiAgICAgICAgbWFwTi54eSAqPSAoIGZsb2F0KCBmcm9udEZhY2luZyApICogMi4wIC0gMS4wICk7XFxuXFxuICAgICAgI2Vsc2VcXG5cXG4gICAgICAgIG1hcE4ueHkgKj0gKCBmbG9hdCggZ2xfRnJvbnRGYWNpbmcgKSAqIDIuMCAtIDEuMCApO1xcblxcbiAgICAgICNlbmRpZlxcblxcbiAgICAgIG1hdDMgdHNuID0gbWF0MyggUywgVCwgTiApO1xcbiAgICAgIHJldHVybiBub3JtYWxpemUoIHRzbiAqIG1hcE4gKTtcXG5cXG4gICAgfVxcblxcbiAgI2VuZGlmXFxuXFxuI2VuZGlmXFxuXFxuLy8gI2luY2x1ZGUgPHNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50Plxcblxcbi8vID09IHBvc3QgY29ycmVjdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxudm9pZCBwb3N0Q29ycmVjdGlvbigpIHtcXG4gICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cXG4gICNpbmNsdWRlIDxjb2xvcnNwYWNlX2ZyYWdtZW50PlxcbiAgI2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cXG4gICNpbmNsdWRlIDxwcmVtdWx0aXBsaWVkX2FscGhhX2ZyYWdtZW50PlxcbiAgI2luY2x1ZGUgPGRpdGhlcmluZ19mcmFnbWVudD5cXG59XFxuXFxuLy8gPT0gbWFpbiBwcm9jZWR1cmUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG52b2lkIG1haW4oKSB7XFxuICAjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxcblxcbiAgdmVjMiB1diA9IHZlYzIoMC41LCAwLjUpO1xcblxcbiAgI2lmICggZGVmaW5lZCggTVRPT05fVVNFX1VWICkgJiYgIWRlZmluZWQoIE1UT09OX1VWU19WRVJURVhfT05MWSApIClcXG4gICAgdXYgPSB2VXY7XFxuXFxuICAgIGZsb2F0IHV2QW5pbU1hc2sgPSAxLjA7XFxuICAgICNpZmRlZiBVU0VfVVZBTklNQVRJT05NQVNLVEVYVFVSRVxcbiAgICAgIHZlYzIgdXZBbmltYXRpb25NYXNrVGV4dHVyZVV2ID0gKCB1dkFuaW1hdGlvbk1hc2tUZXh0dXJlVXZUcmFuc2Zvcm0gKiB2ZWMzKCB1diwgMSApICkueHk7XFxuICAgICAgdXZBbmltTWFzayA9IHRleHR1cmUyRCggdXZBbmltYXRpb25NYXNrVGV4dHVyZSwgdXZBbmltYXRpb25NYXNrVGV4dHVyZVV2ICkuYjtcXG4gICAgI2VuZGlmXFxuXFxuICAgIHV2ID0gdXYgKyB2ZWMyKCB1dkFuaW1hdGlvblNjcm9sbFhPZmZzZXQsIHV2QW5pbWF0aW9uU2Nyb2xsWU9mZnNldCApICogdXZBbmltTWFzaztcXG4gICAgZmxvYXQgdXZSb3RDb3MgPSBjb3MoIHV2QW5pbWF0aW9uUm90YXRpb25QaGFzZSAqIHV2QW5pbU1hc2sgKTtcXG4gICAgZmxvYXQgdXZSb3RTaW4gPSBzaW4oIHV2QW5pbWF0aW9uUm90YXRpb25QaGFzZSAqIHV2QW5pbU1hc2sgKTtcXG4gICAgdXYgPSBtYXQyKCB1dlJvdENvcywgLXV2Um90U2luLCB1dlJvdFNpbiwgdXZSb3RDb3MgKSAqICggdXYgLSAwLjUgKSArIDAuNTtcXG4gICNlbmRpZlxcblxcbiAgI2lmZGVmIERFQlVHX1VWXFxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoIDAuMCwgMC4wLCAwLjAsIDEuMCApO1xcbiAgICAjaWYgKCBkZWZpbmVkKCBNVE9PTl9VU0VfVVYgKSAmJiAhZGVmaW5lZCggTVRPT05fVVZTX1ZFUlRFWF9PTkxZICkgKVxcbiAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoIHV2LCAwLjAsIDEuMCApO1xcbiAgICAjZW5kaWZcXG4gICAgcmV0dXJuO1xcbiAgI2VuZGlmXFxuXFxuICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGxpdEZhY3Rvciwgb3BhY2l0eSApO1xcbiAgUmVmbGVjdGVkTGlnaHQgcmVmbGVjdGVkTGlnaHQgPSBSZWZsZWN0ZWRMaWdodCggdmVjMyggMC4wICksIHZlYzMoIDAuMCApLCB2ZWMzKCAwLjAgKSwgdmVjMyggMC4wICkgKTtcXG4gIHZlYzMgdG90YWxFbWlzc2l2ZVJhZGlhbmNlID0gZW1pc3NpdmUgKiBlbWlzc2l2ZUludGVuc2l0eTtcXG5cXG4gICNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cXG5cXG4gIC8vICNpbmNsdWRlIDxtYXBfZnJhZ21lbnQ+XFxuICAjaWZkZWYgVVNFX01BUFxcbiAgICB2ZWMyIG1hcFV2ID0gKCBtYXBVdlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcXG4gICAgdmVjNCBzYW1wbGVkRGlmZnVzZUNvbG9yID0gdGV4dHVyZTJEKCBtYXAsIG1hcFV2ICk7XFxuICAgICNpZmRlZiBERUNPREVfVklERU9fVEVYVFVSRVxcbiAgICAgIHNhbXBsZWREaWZmdXNlQ29sb3IgPSB2ZWM0KCBtaXgoIHBvdyggc2FtcGxlZERpZmZ1c2VDb2xvci5yZ2IgKiAwLjk0Nzg2NzI5ODYgKyB2ZWMzKCAwLjA1MjEzMjcwMTQgKSwgdmVjMyggMi40ICkgKSwgc2FtcGxlZERpZmZ1c2VDb2xvci5yZ2IgKiAwLjA3NzM5OTM4MDgsIHZlYzMoIGxlc3NUaGFuRXF1YWwoIHNhbXBsZWREaWZmdXNlQ29sb3IucmdiLCB2ZWMzKCAwLjA0MDQ1ICkgKSApICksIHNhbXBsZWREaWZmdXNlQ29sb3IudyApO1xcbiAgICAjZW5kaWZcXG4gICAgZGlmZnVzZUNvbG9yICo9IHNhbXBsZWREaWZmdXNlQ29sb3I7XFxuICAjZW5kaWZcXG5cXG4gIC8vICNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cXG4gICNpZiAoIGRlZmluZWQoIFVTRV9DT0xPUiApICYmICFkZWZpbmVkKCBJR05PUkVfVkVSVEVYX0NPTE9SICkgKVxcbiAgICBkaWZmdXNlQ29sb3IucmdiICo9IHZDb2xvcjtcXG4gICNlbmRpZlxcblxcbiAgLy8gI2luY2x1ZGUgPGFscGhhbWFwX2ZyYWdtZW50PlxcblxcbiAgI2luY2x1ZGUgPGFscGhhdGVzdF9mcmFnbWVudD5cXG5cXG4gIC8vICNpbmNsdWRlIDxzcGVjdWxhcm1hcF9mcmFnbWVudD5cXG5cXG4gIC8vICNpbmNsdWRlIDxub3JtYWxfZnJhZ21lbnRfYmVnaW4+XFxuICBmbG9hdCBmYWNlRGlyZWN0aW9uID0gZ2xfRnJvbnRGYWNpbmcgPyAxLjAgOiAtMS4wO1xcblxcbiAgI2lmZGVmIEZMQVRfU0hBREVEXFxuXFxuICAgIHZlYzMgZmR4ID0gZEZkeCggdlZpZXdQb3NpdGlvbiApO1xcbiAgICB2ZWMzIGZkeSA9IGRGZHkoIHZWaWV3UG9zaXRpb24gKTtcXG4gICAgdmVjMyBub3JtYWwgPSBub3JtYWxpemUoIGNyb3NzKCBmZHgsIGZkeSApICk7XFxuXFxuICAjZWxzZVxcblxcbiAgICB2ZWMzIG5vcm1hbCA9IG5vcm1hbGl6ZSggdk5vcm1hbCApO1xcblxcbiAgICAjaWZkZWYgRE9VQkxFX1NJREVEXFxuXFxuICAgICAgbm9ybWFsICo9IGZhY2VEaXJlY3Rpb247XFxuXFxuICAgICNlbmRpZlxcblxcbiAgI2VuZGlmXFxuXFxuICAjaWZkZWYgVVNFX05PUk1BTE1BUFxcblxcbiAgICB2ZWMyIG5vcm1hbE1hcFV2ID0gKCBub3JtYWxNYXBVdlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcXG5cXG4gICNlbmRpZlxcblxcbiAgI2lmZGVmIFVTRV9OT1JNQUxNQVBfVEFOR0VOVFNQQUNFXFxuXFxuICAgICNpZmRlZiBVU0VfVEFOR0VOVFxcblxcbiAgICAgIG1hdDMgdGJuID0gbWF0Myggbm9ybWFsaXplKCB2VGFuZ2VudCApLCBub3JtYWxpemUoIHZCaXRhbmdlbnQgKSwgbm9ybWFsICk7XFxuXFxuICAgICNlbHNlXFxuXFxuICAgICAgbWF0MyB0Ym4gPSBnZXRUYW5nZW50RnJhbWUoIC0gdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBub3JtYWxNYXBVdiApO1xcblxcbiAgICAjZW5kaWZcXG5cXG4gICAgI2lmIGRlZmluZWQoIERPVUJMRV9TSURFRCApICYmICEgZGVmaW5lZCggRkxBVF9TSEFERUQgKVxcblxcbiAgICAgIHRiblswXSAqPSBmYWNlRGlyZWN0aW9uO1xcbiAgICAgIHRiblsxXSAqPSBmYWNlRGlyZWN0aW9uO1xcblxcbiAgICAjZW5kaWZcXG5cXG4gICNlbmRpZlxcblxcbiAgI2lmZGVmIFVTRV9DTEVBUkNPQVRfTk9STUFMTUFQXFxuXFxuICAgICNpZmRlZiBVU0VfVEFOR0VOVFxcblxcbiAgICAgIG1hdDMgdGJuMiA9IG1hdDMoIG5vcm1hbGl6ZSggdlRhbmdlbnQgKSwgbm9ybWFsaXplKCB2Qml0YW5nZW50ICksIG5vcm1hbCApO1xcblxcbiAgICAjZWxzZVxcblxcbiAgICAgIG1hdDMgdGJuMiA9IGdldFRhbmdlbnRGcmFtZSggLSB2Vmlld1Bvc2l0aW9uLCBub3JtYWwsIHZDbGVhcmNvYXROb3JtYWxNYXBVdiApO1xcblxcbiAgICAjZW5kaWZcXG5cXG4gICAgI2lmIGRlZmluZWQoIERPVUJMRV9TSURFRCApICYmICEgZGVmaW5lZCggRkxBVF9TSEFERUQgKVxcblxcbiAgICAgIHRibjJbMF0gKj0gZmFjZURpcmVjdGlvbjtcXG4gICAgICB0Ym4yWzFdICo9IGZhY2VEaXJlY3Rpb247XFxuXFxuICAgICNlbmRpZlxcblxcbiAgI2VuZGlmXFxuXFxuICAvLyBub24gcGVydHVyYmVkIG5vcm1hbCBmb3IgY2xlYXJjb2F0IGFtb25nIG90aGVyc1xcblxcbiAgdmVjMyBub25QZXJ0dXJiZWROb3JtYWwgPSBub3JtYWw7XFxuXFxuICAjaWZkZWYgT1VUTElORVxcbiAgICBub3JtYWwgKj0gLTEuMDtcXG4gICNlbmRpZlxcblxcbiAgLy8gI2luY2x1ZGUgPG5vcm1hbF9mcmFnbWVudF9tYXBzPlxcblxcbiAgLy8gQ09NUEFUOiBVU0VfTk9STUFMTUFQX09CSkVDVFNQQUNFIHVzZWQgdG8gYmUgT0JKRUNUU1BBQ0VfTk9STUFMTUFQIGluIHByZS1yMTUxXFxuICAjaWYgZGVmaW5lZCggVVNFX05PUk1BTE1BUF9PQkpFQ1RTUEFDRSApIHx8IGRlZmluZWQoIE9CSkVDVFNQQUNFX05PUk1BTE1BUCApXFxuXFxuICAgIG5vcm1hbCA9IHRleHR1cmUyRCggbm9ybWFsTWFwLCBub3JtYWxNYXBVdiApLnh5eiAqIDIuMCAtIDEuMDsgLy8gb3ZlcnJpZGVzIGJvdGggZmxhdFNoYWRpbmcgYW5kIGF0dHJpYnV0ZSBub3JtYWxzXFxuXFxuICAgICNpZmRlZiBGTElQX1NJREVEXFxuXFxuICAgICAgbm9ybWFsID0gLSBub3JtYWw7XFxuXFxuICAgICNlbmRpZlxcblxcbiAgICAjaWZkZWYgRE9VQkxFX1NJREVEXFxuXFxuICAgICAgLy8gVGVtcG9yYXJ5IGNvbXBhdCBhZ2FpbnN0IHNoYWRlciBjaGFuZ2UgQCBUaHJlZS5qcyByMTI2XFxuICAgICAgLy8gU2VlOiAjMjEyMDUsICMyMTMwNywgIzIxMjk5XFxuICAgICAgI2lmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxMjZcXG5cXG4gICAgICAgIG5vcm1hbCA9IG5vcm1hbCAqIGZhY2VEaXJlY3Rpb247XFxuXFxuICAgICAgI2Vsc2VcXG5cXG4gICAgICAgIG5vcm1hbCA9IG5vcm1hbCAqICggZmxvYXQoIGdsX0Zyb250RmFjaW5nICkgKiAyLjAgLSAxLjAgKTtcXG5cXG4gICAgICAjZW5kaWZcXG5cXG4gICAgI2VuZGlmXFxuXFxuICAgIG5vcm1hbCA9IG5vcm1hbGl6ZSggbm9ybWFsTWF0cml4ICogbm9ybWFsICk7XFxuXFxuICAvLyBDT01QQVQ6IFVTRV9OT1JNQUxNQVBfVEFOR0VOVFNQQUNFIHVzZWQgdG8gYmUgVEFOR0VOVFNQQUNFX05PUk1BTE1BUCBpbiBwcmUtcjE1MVxcbiAgI2VsaWYgZGVmaW5lZCggVVNFX05PUk1BTE1BUF9UQU5HRU5UU1BBQ0UgKSB8fCBkZWZpbmVkKCBUQU5HRU5UU1BBQ0VfTk9STUFMTUFQIClcXG5cXG4gICAgdmVjMyBtYXBOID0gdGV4dHVyZTJEKCBub3JtYWxNYXAsIG5vcm1hbE1hcFV2ICkueHl6ICogMi4wIC0gMS4wO1xcbiAgICBtYXBOLnh5ICo9IG5vcm1hbFNjYWxlO1xcblxcbiAgICAvLyBDT01QQVQ6IHByZS1yMTUxXFxuICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTUxIHx8IGRlZmluZWQoIFVTRV9UQU5HRU5UIClcXG5cXG4gICAgICBub3JtYWwgPSBub3JtYWxpemUoIHRibiAqIG1hcE4gKTtcXG5cXG4gICAgI2Vsc2VcXG5cXG4gICAgICAvLyBwcmUtcjEyNlxcbiAgICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTI2XFxuXFxuICAgICAgICBub3JtYWwgPSBwZXJ0dXJiTm9ybWFsMkFyYiggdXYsIC12Vmlld1Bvc2l0aW9uLCBub3JtYWwsIG1hcE4sIGZhY2VEaXJlY3Rpb24gKTtcXG5cXG4gICAgICAjZWxzZVxcblxcbiAgICAgICAgbm9ybWFsID0gcGVydHVyYk5vcm1hbDJBcmIoIHV2LCAtdlZpZXdQb3NpdGlvbiwgbm9ybWFsLCBtYXBOICk7XFxuXFxuICAgICAgI2VuZGlmXFxuXFxuICAgICNlbmRpZlxcblxcbiAgI2VuZGlmXFxuXFxuICAvLyAjaW5jbHVkZSA8ZW1pc3NpdmVtYXBfZnJhZ21lbnQ+XFxuICAjaWZkZWYgVVNFX0VNSVNTSVZFTUFQXFxuICAgIHZlYzIgZW1pc3NpdmVNYXBVdiA9ICggZW1pc3NpdmVNYXBVdlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcXG4gICAgdG90YWxFbWlzc2l2ZVJhZGlhbmNlICo9IHRleHR1cmUyRCggZW1pc3NpdmVNYXAsIGVtaXNzaXZlTWFwVXYgKS5yZ2I7XFxuICAjZW5kaWZcXG5cXG4gICNpZmRlZiBERUJVR19OT1JNQUxcXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCggMC41ICsgMC41ICogbm9ybWFsLCAxLjAgKTtcXG4gICAgcmV0dXJuO1xcbiAgI2VuZGlmXFxuXFxuICAvLyAtLSBNVG9vbjogbGlnaHRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIC8vIGFjY3VtdWxhdGlvblxcbiAgLy8gI2luY2x1ZGUgPGxpZ2h0c19waG9uZ19mcmFnbWVudD5cXG4gIE1Ub29uTWF0ZXJpYWwgbWF0ZXJpYWw7XFxuXFxuICBtYXRlcmlhbC5kaWZmdXNlQ29sb3IgPSBkaWZmdXNlQ29sb3IucmdiO1xcblxcbiAgbWF0ZXJpYWwuc2hhZGVDb2xvciA9IHNoYWRlQ29sb3JGYWN0b3I7XFxuICAjaWZkZWYgVVNFX1NIQURFTVVMVElQTFlURVhUVVJFXFxuICAgIHZlYzIgc2hhZGVNdWx0aXBseVRleHR1cmVVdiA9ICggc2hhZGVNdWx0aXBseVRleHR1cmVVdlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcXG4gICAgbWF0ZXJpYWwuc2hhZGVDb2xvciAqPSB0ZXh0dXJlMkQoIHNoYWRlTXVsdGlwbHlUZXh0dXJlLCBzaGFkZU11bHRpcGx5VGV4dHVyZVV2ICkucmdiO1xcbiAgI2VuZGlmXFxuXFxuICAjaWYgKCBkZWZpbmVkKCBVU0VfQ09MT1IgKSAmJiAhZGVmaW5lZCggSUdOT1JFX1ZFUlRFWF9DT0xPUiApIClcXG4gICAgbWF0ZXJpYWwuc2hhZGVDb2xvci5yZ2IgKj0gdkNvbG9yO1xcbiAgI2VuZGlmXFxuXFxuICBtYXRlcmlhbC5zaGFkaW5nU2hpZnQgPSBzaGFkaW5nU2hpZnRGYWN0b3I7XFxuICAjaWZkZWYgVVNFX1NIQURJTkdTSElGVFRFWFRVUkVcXG4gICAgdmVjMiBzaGFkaW5nU2hpZnRUZXh0dXJlVXYgPSAoIHNoYWRpbmdTaGlmdFRleHR1cmVVdlRyYW5zZm9ybSAqIHZlYzMoIHV2LCAxICkgKS54eTtcXG4gICAgbWF0ZXJpYWwuc2hhZGluZ1NoaWZ0ICs9IHRleHR1cmUyRCggc2hhZGluZ1NoaWZ0VGV4dHVyZSwgc2hhZGluZ1NoaWZ0VGV4dHVyZVV2ICkuciAqIHNoYWRpbmdTaGlmdFRleHR1cmVTY2FsZTtcXG4gICNlbmRpZlxcblxcbiAgLy8gI2luY2x1ZGUgPGxpZ2h0c19mcmFnbWVudF9iZWdpbj5cXG5cXG4gIC8vIE1Ub29uIFNwZWNpZmljIGNoYW5nZXM6XFxuICAvLyBTaW5jZSB3ZSB3YW50IHRvIHRha2Ugc2hhZG93cyBpbnRvIGFjY291bnQgb2Ygc2hhZGluZyBpbnN0ZWFkIG9mIGlycmFkaWFuY2UsXFxuICAvLyB3ZSBoYWQgdG8gbW9kaWZ5IHRoZSBjb2RlcyB0aGF0IG11bHRpcGxpZXMgdGhlIHJlc3VsdHMgb2Ygc2hhZG93bWFwIGludG8gY29sb3Igb2YgZGlyZWN0IGxpZ2h0cy5cXG5cXG4gIC8vIENPTVBBVDogcHJlLXIxNTYgdXNlcyBhIHN0cnVjdCBHZW9tZXRyaWNDb250ZXh0XFxuICAjaWYgVEhSRUVfVlJNX1RIUkVFX1JFVklTSU9OID49IDE1N1xcbiAgICB2ZWMzIGdlb21ldHJ5UG9zaXRpb24gPSAtIHZWaWV3UG9zaXRpb247XFxuICAgIHZlYzMgZ2VvbWV0cnlOb3JtYWwgPSBub3JtYWw7XFxuICAgIHZlYzMgZ2VvbWV0cnlWaWV3RGlyID0gKCBpc09ydGhvZ3JhcGhpYyApID8gdmVjMyggMCwgMCwgMSApIDogbm9ybWFsaXplKCB2Vmlld1Bvc2l0aW9uICk7XFxuXFxuICAgIHZlYzMgZ2VvbWV0cnlDbGVhcmNvYXROb3JtYWw7XFxuXFxuICAgICNpZmRlZiBVU0VfQ0xFQVJDT0FUXFxuXFxuICAgICAgZ2VvbWV0cnlDbGVhcmNvYXROb3JtYWwgPSBjbGVhcmNvYXROb3JtYWw7XFxuXFxuICAgICNlbmRpZlxcbiAgI2Vsc2VcXG4gICAgR2VvbWV0cmljQ29udGV4dCBnZW9tZXRyeTtcXG5cXG4gICAgZ2VvbWV0cnkucG9zaXRpb24gPSAtIHZWaWV3UG9zaXRpb247XFxuICAgIGdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbDtcXG4gICAgZ2VvbWV0cnkudmlld0RpciA9ICggaXNPcnRob2dyYXBoaWMgKSA/IHZlYzMoIDAsIDAsIDEgKSA6IG5vcm1hbGl6ZSggdlZpZXdQb3NpdGlvbiApO1xcblxcbiAgICAjaWZkZWYgVVNFX0NMRUFSQ09BVFxcblxcbiAgICAgIGdlb21ldHJ5LmNsZWFyY29hdE5vcm1hbCA9IGNsZWFyY29hdE5vcm1hbDtcXG5cXG4gICAgI2VuZGlmXFxuICAjZW5kaWZcXG5cXG4gIEluY2lkZW50TGlnaHQgZGlyZWN0TGlnaHQ7XFxuXFxuICAvLyBzaW5jZSB0aGVzZSB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGluIHVucm9sbGVkIGxvb3AsIHdlIGhhdmUgdG8gZGVmaW5lIGluIHByaW9yXFxuICBmbG9hdCBzaGFkb3c7XFxuXFxuICAjaWYgKCBOVU1fUE9JTlRfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXFxuXFxuICAgIFBvaW50TGlnaHQgcG9pbnRMaWdodDtcXG4gICAgI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiBOVU1fUE9JTlRfTElHSFRfU0hBRE9XUyA+IDBcXG4gICAgUG9pbnRMaWdodFNoYWRvdyBwb2ludExpZ2h0U2hhZG93O1xcbiAgICAjZW5kaWZcXG5cXG4gICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxcbiAgICBmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fUE9JTlRfTElHSFRTOyBpICsrICkge1xcblxcbiAgICAgIHBvaW50TGlnaHQgPSBwb2ludExpZ2h0c1sgaSBdO1xcblxcbiAgICAgIC8vIENPTVBBVDogcHJlLXIxNTYgdXNlcyBhIHN0cnVjdCBHZW9tZXRyaWNDb250ZXh0XFxuICAgICAgI2lmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxNTdcXG4gICAgICAgIGdldFBvaW50TGlnaHRJbmZvKCBwb2ludExpZ2h0LCBnZW9tZXRyeVBvc2l0aW9uLCBkaXJlY3RMaWdodCApO1xcbiAgICAgICNlbGlmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxMzJcXG4gICAgICAgIGdldFBvaW50TGlnaHRJbmZvKCBwb2ludExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcXG4gICAgICAjZWxzZVxcbiAgICAgICAgZ2V0UG9pbnREaXJlY3RMaWdodElycmFkaWFuY2UoIHBvaW50TGlnaHQsIGdlb21ldHJ5LCBkaXJlY3RMaWdodCApO1xcbiAgICAgICNlbmRpZlxcblxcbiAgICAgIHNoYWRvdyA9IDEuMDtcXG4gICAgICAjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmICggVU5ST0xMRURfTE9PUF9JTkRFWCA8IE5VTV9QT0lOVF9MSUdIVF9TSEFET1dTIClcXG4gICAgICBwb2ludExpZ2h0U2hhZG93ID0gcG9pbnRMaWdodFNoYWRvd3NbIGkgXTtcXG4gICAgICBzaGFkb3cgPSBhbGwoIGJ2ZWMyKCBkaXJlY3RMaWdodC52aXNpYmxlLCByZWNlaXZlU2hhZG93ICkgKSA/IGdldFBvaW50U2hhZG93KCBwb2ludFNoYWRvd01hcFsgaSBdLCBwb2ludExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93QmlhcywgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZQb2ludFNoYWRvd0Nvb3JkWyBpIF0sIHBvaW50TGlnaHRTaGFkb3cuc2hhZG93Q2FtZXJhTmVhciwgcG9pbnRMaWdodFNoYWRvdy5zaGFkb3dDYW1lcmFGYXIgKSA6IDEuMDtcXG4gICAgICAjZW5kaWZcXG5cXG4gICAgICAvLyBDT01QQVQ6IHByZS1yMTU2IHVzZXMgYSBzdHJ1Y3QgR2VvbWV0cmljQ29udGV4dFxcbiAgICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTU3XFxuICAgICAgICBSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeVBvc2l0aW9uLCBnZW9tZXRyeU5vcm1hbCwgZ2VvbWV0cnlWaWV3RGlyLCBnZW9tZXRyeUNsZWFyY29hdE5vcm1hbCwgbWF0ZXJpYWwsIHNoYWRvdywgcmVmbGVjdGVkTGlnaHQgKTtcXG4gICAgICAjZWxzZVxcbiAgICAgICAgUkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCBzaGFkb3csIHJlZmxlY3RlZExpZ2h0ICk7XFxuICAgICAgI2VuZGlmXFxuXFxuICAgIH1cXG4gICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcXG5cXG4gICNlbmRpZlxcblxcbiAgI2lmICggTlVNX1NQT1RfTElHSFRTID4gMCApICYmIGRlZmluZWQoIFJFX0RpcmVjdCApXFxuXFxuICAgIFNwb3RMaWdodCBzcG90TGlnaHQ7XFxuICAgICNpZiBkZWZpbmVkKCBVU0VfU0hBRE9XTUFQICkgJiYgTlVNX1NQT1RfTElHSFRfU0hBRE9XUyA+IDBcXG4gICAgU3BvdExpZ2h0U2hhZG93IHNwb3RMaWdodFNoYWRvdztcXG4gICAgI2VuZGlmXFxuXFxuICAgICNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcXG4gICAgZm9yICggaW50IGkgPSAwOyBpIDwgTlVNX1NQT1RfTElHSFRTOyBpICsrICkge1xcblxcbiAgICAgIHNwb3RMaWdodCA9IHNwb3RMaWdodHNbIGkgXTtcXG5cXG4gICAgICAvLyBDT01QQVQ6IHByZS1yMTU2IHVzZXMgYSBzdHJ1Y3QgR2VvbWV0cmljQ29udGV4dFxcbiAgICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTU3XFxuICAgICAgICBnZXRTcG90TGlnaHRJbmZvKCBzcG90TGlnaHQsIGdlb21ldHJ5UG9zaXRpb24sIGRpcmVjdExpZ2h0ICk7XFxuICAgICAgI2VsaWYgVEhSRUVfVlJNX1RIUkVFX1JFVklTSU9OID49IDEzMlxcbiAgICAgICAgZ2V0U3BvdExpZ2h0SW5mbyggc3BvdExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcXG4gICAgICAjZWxzZVxcbiAgICAgICAgZ2V0U3BvdERpcmVjdExpZ2h0SXJyYWRpYW5jZSggc3BvdExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcXG4gICAgICAjZW5kaWZcXG5cXG4gICAgICBzaGFkb3cgPSAxLjA7XFxuICAgICAgI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fU1BPVF9MSUdIVF9TSEFET1dTIClcXG4gICAgICBzcG90TGlnaHRTaGFkb3cgPSBzcG90TGlnaHRTaGFkb3dzWyBpIF07XFxuICAgICAgc2hhZG93ID0gYWxsKCBidmVjMiggZGlyZWN0TGlnaHQudmlzaWJsZSwgcmVjZWl2ZVNoYWRvdyApICkgPyBnZXRTaGFkb3coIHNwb3RTaGFkb3dNYXBbIGkgXSwgc3BvdExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIHNwb3RMaWdodFNoYWRvdy5zaGFkb3dCaWFzLCBzcG90TGlnaHRTaGFkb3cuc2hhZG93UmFkaXVzLCB2U3BvdFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcXG4gICAgICAjZW5kaWZcXG5cXG4gICAgICAvLyBDT01QQVQ6IHByZS1yMTU2IHVzZXMgYSBzdHJ1Y3QgR2VvbWV0cmljQ29udGV4dFxcbiAgICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTU3XFxuICAgICAgICBSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeVBvc2l0aW9uLCBnZW9tZXRyeU5vcm1hbCwgZ2VvbWV0cnlWaWV3RGlyLCBnZW9tZXRyeUNsZWFyY29hdE5vcm1hbCwgbWF0ZXJpYWwsIHNoYWRvdywgcmVmbGVjdGVkTGlnaHQgKTtcXG4gICAgICAjZWxzZVxcbiAgICAgICAgUkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCBzaGFkb3csIHJlZmxlY3RlZExpZ2h0ICk7XFxuICAgICAgI2VuZGlmXFxuXFxuICAgIH1cXG4gICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcXG5cXG4gICNlbmRpZlxcblxcbiAgI2lmICggTlVNX0RJUl9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0IClcXG5cXG4gICAgRGlyZWN0aW9uYWxMaWdodCBkaXJlY3Rpb25hbExpZ2h0O1xcbiAgICAjaWYgZGVmaW5lZCggVVNFX1NIQURPV01BUCApICYmIE5VTV9ESVJfTElHSFRfU0hBRE9XUyA+IDBcXG4gICAgRGlyZWN0aW9uYWxMaWdodFNoYWRvdyBkaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xcbiAgICAjZW5kaWZcXG5cXG4gICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxcbiAgICBmb3IgKCBpbnQgaSA9IDA7IGkgPCBOVU1fRElSX0xJR0hUUzsgaSArKyApIHtcXG5cXG4gICAgICBkaXJlY3Rpb25hbExpZ2h0ID0gZGlyZWN0aW9uYWxMaWdodHNbIGkgXTtcXG5cXG4gICAgICAvLyBDT01QQVQ6IHByZS1yMTU2IHVzZXMgYSBzdHJ1Y3QgR2VvbWV0cmljQ29udGV4dFxcbiAgICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTU3XFxuICAgICAgICBnZXREaXJlY3Rpb25hbExpZ2h0SW5mbyggZGlyZWN0aW9uYWxMaWdodCwgZGlyZWN0TGlnaHQgKTtcXG4gICAgICAjZWxpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTMyXFxuICAgICAgICBnZXREaXJlY3Rpb25hbExpZ2h0SW5mbyggZGlyZWN0aW9uYWxMaWdodCwgZ2VvbWV0cnksIGRpcmVjdExpZ2h0ICk7XFxuICAgICAgI2Vsc2VcXG4gICAgICAgIGdldERpcmVjdGlvbmFsRGlyZWN0TGlnaHRJcnJhZGlhbmNlKCBkaXJlY3Rpb25hbExpZ2h0LCBnZW9tZXRyeSwgZGlyZWN0TGlnaHQgKTtcXG4gICAgICAjZW5kaWZcXG5cXG4gICAgICBzaGFkb3cgPSAxLjA7XFxuICAgICAgI2lmIGRlZmluZWQoIFVTRV9TSEFET1dNQVAgKSAmJiAoIFVOUk9MTEVEX0xPT1BfSU5ERVggPCBOVU1fRElSX0xJR0hUX1NIQURPV1MgKVxcbiAgICAgIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBkaXJlY3Rpb25hbExpZ2h0U2hhZG93c1sgaSBdO1xcbiAgICAgIHNoYWRvdyA9IGFsbCggYnZlYzIoIGRpcmVjdExpZ2h0LnZpc2libGUsIHJlY2VpdmVTaGFkb3cgKSApID8gZ2V0U2hhZG93KCBkaXJlY3Rpb25hbFNoYWRvd01hcFsgaSBdLCBkaXJlY3Rpb25hbExpZ2h0U2hhZG93LnNoYWRvd01hcFNpemUsIGRpcmVjdGlvbmFsTGlnaHRTaGFkb3cuc2hhZG93QmlhcywgZGlyZWN0aW9uYWxMaWdodFNoYWRvdy5zaGFkb3dSYWRpdXMsIHZEaXJlY3Rpb25hbFNoYWRvd0Nvb3JkWyBpIF0gKSA6IDEuMDtcXG4gICAgICAjZW5kaWZcXG5cXG4gICAgICAvLyBDT01QQVQ6IHByZS1yMTU2IHVzZXMgYSBzdHJ1Y3QgR2VvbWV0cmljQ29udGV4dFxcbiAgICAgICNpZiBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT04gPj0gMTU3XFxuICAgICAgICBSRV9EaXJlY3QoIGRpcmVjdExpZ2h0LCBnZW9tZXRyeVBvc2l0aW9uLCBnZW9tZXRyeU5vcm1hbCwgZ2VvbWV0cnlWaWV3RGlyLCBnZW9tZXRyeUNsZWFyY29hdE5vcm1hbCwgbWF0ZXJpYWwsIHNoYWRvdywgcmVmbGVjdGVkTGlnaHQgKTtcXG4gICAgICAjZWxzZVxcbiAgICAgICAgUkVfRGlyZWN0KCBkaXJlY3RMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCBzaGFkb3csIHJlZmxlY3RlZExpZ2h0ICk7XFxuICAgICAgI2VuZGlmXFxuXFxuICAgIH1cXG4gICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcXG5cXG4gICNlbmRpZlxcblxcbiAgLy8gI2lmICggTlVNX1JFQ1RfQVJFQV9MSUdIVFMgPiAwICkgJiYgZGVmaW5lZCggUkVfRGlyZWN0X1JlY3RBcmVhIClcXG5cXG4gIC8vICAgUmVjdEFyZWFMaWdodCByZWN0QXJlYUxpZ2h0O1xcblxcbiAgLy8gICAjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XFxuICAvLyAgIGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9SRUNUX0FSRUFfTElHSFRTOyBpICsrICkge1xcblxcbiAgLy8gICAgIHJlY3RBcmVhTGlnaHQgPSByZWN0QXJlYUxpZ2h0c1sgaSBdO1xcbiAgLy8gICAgIFJFX0RpcmVjdF9SZWN0QXJlYSggcmVjdEFyZWFMaWdodCwgZ2VvbWV0cnksIG1hdGVyaWFsLCByZWZsZWN0ZWRMaWdodCApO1xcblxcbiAgLy8gICB9XFxuICAvLyAgICNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXFxuXFxuICAvLyAjZW5kaWZcXG5cXG4gICNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdERpZmZ1c2UgKVxcblxcbiAgICB2ZWMzIGlibElycmFkaWFuY2UgPSB2ZWMzKCAwLjAgKTtcXG5cXG4gICAgdmVjMyBpcnJhZGlhbmNlID0gZ2V0QW1iaWVudExpZ2h0SXJyYWRpYW5jZSggYW1iaWVudExpZ2h0Q29sb3IgKTtcXG5cXG4gICAgLy8gQ09NUEFUOiBwcmUtcjE1NiB1c2VzIGEgc3RydWN0IEdlb21ldHJpY0NvbnRleHRcXG4gICAgLy8gQ09NUEFUOiBwcmUtcjE1NiBkb2Vzbid0IGhhdmUgYSBkZWZpbmUgVVNFX0xJR0hUX1BST0JFU1xcbiAgICAjaWYgVEhSRUVfVlJNX1RIUkVFX1JFVklTSU9OID49IDE1N1xcbiAgICAgICNpZiBkZWZpbmVkKCBVU0VfTElHSFRfUFJPQkVTIClcXG4gICAgICAgIGlycmFkaWFuY2UgKz0gZ2V0TGlnaHRQcm9iZUlycmFkaWFuY2UoIGxpZ2h0UHJvYmUsIGdlb21ldHJ5Tm9ybWFsICk7XFxuICAgICAgI2VuZGlmXFxuICAgICNlbGlmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxMzNcXG4gICAgICBpcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeS5ub3JtYWwgKTtcXG4gICAgI2Vsc2VcXG4gICAgICBpcnJhZGlhbmNlICs9IGdldExpZ2h0UHJvYmVJcnJhZGlhbmNlKCBsaWdodFByb2JlLCBnZW9tZXRyeSApO1xcbiAgICAjZW5kaWZcXG5cXG4gICAgI2lmICggTlVNX0hFTUlfTElHSFRTID4gMCApXFxuXFxuICAgICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9zdGFydFxcbiAgICAgIGZvciAoIGludCBpID0gMDsgaSA8IE5VTV9IRU1JX0xJR0hUUzsgaSArKyApIHtcXG5cXG4gICAgICAgIC8vIENPTVBBVDogcHJlLXIxNTYgdXNlcyBhIHN0cnVjdCBHZW9tZXRyaWNDb250ZXh0XFxuICAgICAgICAjaWYgVEhSRUVfVlJNX1RIUkVFX1JFVklTSU9OID49IDE1N1xcbiAgICAgICAgICBpcnJhZGlhbmNlICs9IGdldEhlbWlzcGhlcmVMaWdodElycmFkaWFuY2UoIGhlbWlzcGhlcmVMaWdodHNbIGkgXSwgZ2VvbWV0cnlOb3JtYWwgKTtcXG4gICAgICAgICNlbGlmIFRIUkVFX1ZSTV9USFJFRV9SRVZJU0lPTiA+PSAxMzNcXG4gICAgICAgICAgaXJyYWRpYW5jZSArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5Lm5vcm1hbCApO1xcbiAgICAgICAgI2Vsc2VcXG4gICAgICAgICAgaXJyYWRpYW5jZSArPSBnZXRIZW1pc3BoZXJlTGlnaHRJcnJhZGlhbmNlKCBoZW1pc3BoZXJlTGlnaHRzWyBpIF0sIGdlb21ldHJ5ICk7XFxuICAgICAgICAjZW5kaWZcXG5cXG4gICAgICB9XFxuICAgICAgI3ByYWdtYSB1bnJvbGxfbG9vcF9lbmRcXG5cXG4gICAgI2VuZGlmXFxuXFxuICAjZW5kaWZcXG5cXG4gIC8vICNpZiBkZWZpbmVkKCBSRV9JbmRpcmVjdFNwZWN1bGFyIClcXG5cXG4gIC8vICAgdmVjMyByYWRpYW5jZSA9IHZlYzMoIDAuMCApO1xcbiAgLy8gICB2ZWMzIGNsZWFyY29hdFJhZGlhbmNlID0gdmVjMyggMC4wICk7XFxuXFxuICAvLyAjZW5kaWZcXG5cXG4gICNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfbWFwcz5cXG4gICNpbmNsdWRlIDxsaWdodHNfZnJhZ21lbnRfZW5kPlxcblxcbiAgLy8gbW9kdWxhdGlvblxcbiAgI2luY2x1ZGUgPGFvbWFwX2ZyYWdtZW50PlxcblxcbiAgdmVjMyBjb2wgPSByZWZsZWN0ZWRMaWdodC5kaXJlY3REaWZmdXNlICsgcmVmbGVjdGVkTGlnaHQuaW5kaXJlY3REaWZmdXNlO1xcblxcbiAgI2lmZGVmIERFQlVHX0xJVFNIQURFUkFURVxcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KCBjb2wsIGRpZmZ1c2VDb2xvci5hICk7XFxuICAgIHBvc3RDb3JyZWN0aW9uKCk7XFxuICAgIHJldHVybjtcXG4gICNlbmRpZlxcblxcbiAgLy8gLS0gTVRvb246IHJpbSBsaWdodGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgdmVjMyB2aWV3RGlyID0gbm9ybWFsaXplKCB2Vmlld1Bvc2l0aW9uICk7XFxuXFxuICAjaWZuZGVmIFBIWVNJQ0FMTFlfQ09SUkVDVF9MSUdIVFNcXG4gICAgcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIgLz0gUEk7XFxuICAjZW5kaWZcXG4gIHZlYzMgcmltTWl4ID0gbWl4KCB2ZWMzKCAxLjAgKSwgcmVmbGVjdGVkTGlnaHQuZGlyZWN0U3BlY3VsYXIsIDEuMCApO1xcblxcbiAgdmVjMyByaW0gPSBwYXJhbWV0cmljUmltQ29sb3JGYWN0b3IgKiBwb3coIHNhdHVyYXRlKCAxLjAgLSBkb3QoIHZpZXdEaXIsIG5vcm1hbCApICsgcGFyYW1ldHJpY1JpbUxpZnRGYWN0b3IgKSwgcGFyYW1ldHJpY1JpbUZyZXNuZWxQb3dlckZhY3RvciApO1xcblxcbiAgI2lmZGVmIFVTRV9NQVRDQVBURVhUVVJFXFxuICAgIHtcXG4gICAgICB2ZWMzIHggPSBub3JtYWxpemUoIHZlYzMoIHZpZXdEaXIueiwgMC4wLCAtdmlld0Rpci54ICkgKTtcXG4gICAgICB2ZWMzIHkgPSBjcm9zcyggdmlld0RpciwgeCApOyAvLyBndWFyYW50ZWVkIHRvIGJlIG5vcm1hbGl6ZWRcXG4gICAgICB2ZWMyIHNwaGVyZVV2ID0gMC41ICsgMC41ICogdmVjMiggZG90KCB4LCBub3JtYWwgKSwgLWRvdCggeSwgbm9ybWFsICkgKTtcXG4gICAgICBzcGhlcmVVdiA9ICggbWF0Y2FwVGV4dHVyZVV2VHJhbnNmb3JtICogdmVjMyggc3BoZXJlVXYsIDEgKSApLnh5O1xcbiAgICAgIHZlYzMgbWF0Y2FwID0gdGV4dHVyZTJEKCBtYXRjYXBUZXh0dXJlLCBzcGhlcmVVdiApLnJnYjtcXG4gICAgICByaW0gKz0gbWF0Y2FwRmFjdG9yICogbWF0Y2FwO1xcbiAgICB9XFxuICAjZW5kaWZcXG5cXG4gICNpZmRlZiBVU0VfUklNTVVMVElQTFlURVhUVVJFXFxuICAgIHZlYzIgcmltTXVsdGlwbHlUZXh0dXJlVXYgPSAoIHJpbU11bHRpcGx5VGV4dHVyZVV2VHJhbnNmb3JtICogdmVjMyggdXYsIDEgKSApLnh5O1xcbiAgICByaW0gKj0gdGV4dHVyZTJEKCByaW1NdWx0aXBseVRleHR1cmUsIHJpbU11bHRpcGx5VGV4dHVyZVV2ICkucmdiO1xcbiAgI2VuZGlmXFxuXFxuICBjb2wgKz0gcmltTWl4ICogcmltO1xcblxcbiAgLy8gLS0gTVRvb246IEVtaXNzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICBjb2wgKz0gdG90YWxFbWlzc2l2ZVJhZGlhbmNlO1xcblxcbiAgLy8gI2luY2x1ZGUgPGVudm1hcF9mcmFnbWVudD5cXG5cXG4gIC8vIC0tIEFsbW9zdCBkb25lISAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgI2lmIGRlZmluZWQoIE9VVExJTkUgKVxcbiAgICBjb2wgPSBvdXRsaW5lQ29sb3JGYWN0b3IucmdiICogbWl4KCB2ZWMzKCAxLjAgKSwgY29sLCBvdXRsaW5lTGlnaHRpbmdNaXhGYWN0b3IgKTtcXG4gICNlbmRpZlxcblxcbiAgI2lmZGVmIE9QQVFVRVxcbiAgICBkaWZmdXNlQ29sb3IuYSA9IDEuMDtcXG4gICNlbmRpZlxcblxcbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNCggY29sLCBkaWZmdXNlQ29sb3IuYSApO1xcbiAgcG9zdENvcnJlY3Rpb24oKTtcXG59XFxuXCI7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuLyoqXG4gKiBTcGVjaWZpZXJzIG9mIGRlYnVnIG1vZGUgb2Yge0BsaW5rIE1Ub29uTWF0ZXJpYWx9LlxuICpcbiAqIFNlZToge0BsaW5rIE1Ub29uTWF0ZXJpYWwuZGVidWdNb2RlfVxuICovXG5jb25zdCBNVG9vbk1hdGVyaWFsRGVidWdNb2RlID0ge1xuICAgIC8qKlxuICAgICAqIFJlbmRlciBub3JtYWxseS5cbiAgICAgKi9cbiAgICBOb25lOiAnbm9uZScsXG4gICAgLyoqXG4gICAgICogVmlzdWFsaXplIG5vcm1hbHMgb2YgdGhlIHN1cmZhY2UuXG4gICAgICovXG4gICAgTm9ybWFsOiAnbm9ybWFsJyxcbiAgICAvKipcbiAgICAgKiBWaXN1YWxpemUgbGl0L3NoYWRlIG9mIHRoZSBzdXJmYWNlLlxuICAgICAqL1xuICAgIExpdFNoYWRlUmF0ZTogJ2xpdFNoYWRlUmF0ZScsXG4gICAgLyoqXG4gICAgICogVmlzdWFsaXplIFVWIG9mIHRoZSBzdXJmYWNlLlxuICAgICAqL1xuICAgIFVWOiAndXYnLFxufTtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5jb25zdCBNVG9vbk1hdGVyaWFsT3V0bGluZVdpZHRoTW9kZSA9IHtcbiAgICBOb25lOiAnbm9uZScsXG4gICAgV29ybGRDb29yZGluYXRlczogJ3dvcmxkQ29vcmRpbmF0ZXMnLFxuICAgIFNjcmVlbkNvb3JkaW5hdGVzOiAnc2NyZWVuQ29vcmRpbmF0ZXMnLFxufTtcblxuY29uc3QgZW5jb2RpbmdDb2xvclNwYWNlTWFwID0ge1xuICAgIDMwMDA6ICcnLFxuICAgIDMwMDE6ICdzcmdiJyxcbn07XG4vKipcbiAqIEEgY29tcGF0IGZ1bmN0aW9uIHRvIGdldCB0ZXh0dXJlIGNvbG9yIHNwYWNlLlxuICpcbiAqIENPTVBBVDogcHJlLXIxNTJcbiAqIFN0YXJ0aW5nIGZyb20gVGhyZWUuanMgcjE1MiwgYHRleHR1cmUuZW5jb2RpbmdgIGlzIHJlbmFtZWQgdG8gYHRleHR1cmUuY29sb3JTcGFjZWAuXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgaGFuZGxlIHRoZSBjb21hcHQuXG4gKlxuICogQHBhcmFtIHRleHR1cmUgVGhlIHRleHR1cmUgeW91IHdhbnQgdG8gZ2V0IHRoZSBjb2xvciBzcGFjZSBmcm9tXG4gKi9cbmZ1bmN0aW9uIGdldFRleHR1cmVDb2xvclNwYWNlKHRleHR1cmUpIHtcbiAgICBpZiAocGFyc2VJbnQoVEhSRUUuUkVWSVNJT04sIDEwKSA+PSAxNTIpIHtcbiAgICAgICAgcmV0dXJuIHRleHR1cmUuY29sb3JTcGFjZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBlbmNvZGluZ0NvbG9yU3BhY2VNYXBbdGV4dHVyZS5lbmNvZGluZ107XG4gICAgfVxufVxuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptZW1iZXItb3JkZXJpbmcgKi9cbi8qKlxuICogTVRvb24gaXMgYSBtYXRlcmlhbCBzcGVjaWZpY2F0aW9uIHRoYXQgaGFzIHZhcmlvdXMgZmVhdHVyZXMuXG4gKiBUaGUgc3BlYyBhbmQgaW1wbGVtZW50YXRpb24gYXJlIG9yaWdpbmFsbHkgZm91bmRlZCBmb3IgVW5pdHkgZW5naW5lIGFuZCB0aGlzIGlzIGEgcG9ydCBvZiB0aGUgbWF0ZXJpYWwuXG4gKlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vU2FudGFyaC9NVG9vblxuICovXG5jbGFzcyBNVG9vbk1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuU2hhZGVyTWF0ZXJpYWwge1xuICAgIGdldCBjb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMubGl0RmFjdG9yLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgY29sb3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5saXRGYWN0b3IudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG1hcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMubWFwLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgbWFwKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXMubWFwLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBub3JtYWxNYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLm5vcm1hbE1hcC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IG5vcm1hbE1hcCh2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLm5vcm1hbE1hcC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgbm9ybWFsU2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLm5vcm1hbFNjYWxlLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgbm9ybWFsU2NhbGUodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5ub3JtYWxTY2FsZS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgZW1pc3NpdmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLmVtaXNzaXZlLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZW1pc3NpdmUodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5lbWlzc2l2ZS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgZW1pc3NpdmVJbnRlbnNpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLmVtaXNzaXZlSW50ZW5zaXR5LnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZW1pc3NpdmVJbnRlbnNpdHkodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5lbWlzc2l2ZUludGVuc2l0eS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgZW1pc3NpdmVNYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLmVtaXNzaXZlTWFwLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZW1pc3NpdmVNYXAodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5lbWlzc2l2ZU1hcC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc2hhZGVDb2xvckZhY3RvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMuc2hhZGVDb2xvckZhY3Rvci52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHNoYWRlQ29sb3JGYWN0b3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5zaGFkZUNvbG9yRmFjdG9yLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzaGFkZU11bHRpcGx5VGV4dHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMuc2hhZGVNdWx0aXBseVRleHR1cmUudmFsdWU7XG4gICAgfVxuICAgIHNldCBzaGFkZU11bHRpcGx5VGV4dHVyZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLnNoYWRlTXVsdGlwbHlUZXh0dXJlLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzaGFkaW5nU2hpZnRGYWN0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLnNoYWRpbmdTaGlmdEZhY3Rvci52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHNoYWRpbmdTaGlmdEZhY3Rvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLnNoYWRpbmdTaGlmdEZhY3Rvci52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc2hhZGluZ1NoaWZ0VGV4dHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMuc2hhZGluZ1NoaWZ0VGV4dHVyZS52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHNoYWRpbmdTaGlmdFRleHR1cmUodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5zaGFkaW5nU2hpZnRUZXh0dXJlLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzaGFkaW5nU2hpZnRUZXh0dXJlU2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLnNoYWRpbmdTaGlmdFRleHR1cmVTY2FsZS52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHNoYWRpbmdTaGlmdFRleHR1cmVTY2FsZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLnNoYWRpbmdTaGlmdFRleHR1cmVTY2FsZS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc2hhZGluZ1Rvb255RmFjdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51bmlmb3Jtcy5zaGFkaW5nVG9vbnlGYWN0b3IudmFsdWU7XG4gICAgfVxuICAgIHNldCBzaGFkaW5nVG9vbnlGYWN0b3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5zaGFkaW5nVG9vbnlGYWN0b3IudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGdpRXF1YWxpemF0aW9uRmFjdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51bmlmb3Jtcy5naUVxdWFsaXphdGlvbkZhY3Rvci52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGdpRXF1YWxpemF0aW9uRmFjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXMuZ2lFcXVhbGl6YXRpb25GYWN0b3IudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG1hdGNhcEZhY3RvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMubWF0Y2FwRmFjdG9yLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgbWF0Y2FwRmFjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXMubWF0Y2FwRmFjdG9yLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBtYXRjYXBUZXh0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51bmlmb3Jtcy5tYXRjYXBUZXh0dXJlLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgbWF0Y2FwVGV4dHVyZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLm1hdGNhcFRleHR1cmUudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBhcmFtZXRyaWNSaW1Db2xvckZhY3RvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMucGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgcGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXMucGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCByaW1NdWx0aXBseVRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLnJpbU11bHRpcGx5VGV4dHVyZS52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHJpbU11bHRpcGx5VGV4dHVyZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLnJpbU11bHRpcGx5VGV4dHVyZS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcmltTGlnaHRpbmdNaXhGYWN0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLnJpbUxpZ2h0aW5nTWl4RmFjdG9yLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgcmltTGlnaHRpbmdNaXhGYWN0b3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5yaW1MaWdodGluZ01peEZhY3Rvci52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcGFyYW1ldHJpY1JpbUZyZXNuZWxQb3dlckZhY3RvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMucGFyYW1ldHJpY1JpbUZyZXNuZWxQb3dlckZhY3Rvci52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHBhcmFtZXRyaWNSaW1GcmVzbmVsUG93ZXJGYWN0b3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5wYXJhbWV0cmljUmltRnJlc25lbFBvd2VyRmFjdG9yLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwYXJhbWV0cmljUmltTGlmdEZhY3RvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMucGFyYW1ldHJpY1JpbUxpZnRGYWN0b3IudmFsdWU7XG4gICAgfVxuICAgIHNldCBwYXJhbWV0cmljUmltTGlmdEZhY3Rvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLnBhcmFtZXRyaWNSaW1MaWZ0RmFjdG9yLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBvdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLm91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZS52YWx1ZTtcbiAgICB9XG4gICAgc2V0IG91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLm91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZS52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgb3V0bGluZVdpZHRoRmFjdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51bmlmb3Jtcy5vdXRsaW5lV2lkdGhGYWN0b3IudmFsdWU7XG4gICAgfVxuICAgIHNldCBvdXRsaW5lV2lkdGhGYWN0b3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy5vdXRsaW5lV2lkdGhGYWN0b3IudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IG91dGxpbmVDb2xvckZhY3RvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMub3V0bGluZUNvbG9yRmFjdG9yLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgb3V0bGluZUNvbG9yRmFjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXMub3V0bGluZUNvbG9yRmFjdG9yLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBvdXRsaW5lTGlnaHRpbmdNaXhGYWN0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLm91dGxpbmVMaWdodGluZ01peEZhY3Rvci52YWx1ZTtcbiAgICB9XG4gICAgc2V0IG91dGxpbmVMaWdodGluZ01peEZhY3Rvcih2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLm91dGxpbmVMaWdodGluZ01peEZhY3Rvci52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdXZBbmltYXRpb25NYXNrVGV4dHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMudXZBbmltYXRpb25NYXNrVGV4dHVyZS52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHV2QW5pbWF0aW9uTWFza1RleHR1cmUodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy51dkFuaW1hdGlvbk1hc2tUZXh0dXJlLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB1dkFuaW1hdGlvblNjcm9sbFhPZmZzZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZvcm1zLnV2QW5pbWF0aW9uU2Nyb2xsWE9mZnNldC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHV2QW5pbWF0aW9uU2Nyb2xsWE9mZnNldCh2YWx1ZSkge1xuICAgICAgICB0aGlzLnVuaWZvcm1zLnV2QW5pbWF0aW9uU2Nyb2xsWE9mZnNldC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdXZBbmltYXRpb25TY3JvbGxZT2Zmc2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy51bmlmb3Jtcy51dkFuaW1hdGlvblNjcm9sbFlPZmZzZXQudmFsdWU7XG4gICAgfVxuICAgIHNldCB1dkFuaW1hdGlvblNjcm9sbFlPZmZzZXQodmFsdWUpIHtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy51dkFuaW1hdGlvblNjcm9sbFlPZmZzZXQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHV2QW5pbWF0aW9uUm90YXRpb25QaGFzZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pZm9ybXMudXZBbmltYXRpb25Sb3RhdGlvblBoYXNlLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgdXZBbmltYXRpb25Sb3RhdGlvblBoYXNlKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXMudXZBbmltYXRpb25Sb3RhdGlvblBoYXNlLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZW4gdGhpcyBpcyBgdHJ1ZWAsIHZlcnRleCBjb2xvcnMgd2lsbCBiZSBpZ25vcmVkLlxuICAgICAqIGB0cnVlYCBieSBkZWZhdWx0LlxuICAgICAqL1xuICAgIGdldCBpZ25vcmVWZXJ0ZXhDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lnbm9yZVZlcnRleENvbG9yO1xuICAgIH1cbiAgICBzZXQgaWdub3JlVmVydGV4Q29sb3IodmFsdWUpIHtcbiAgICAgICAgdGhpcy5faWdub3JlVmVydGV4Q29sb3IgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZXJlIGlzIGEgbGluZSBvZiB0aGUgc2hhZGVyIGNhbGxlZCBcImNvbW1lbnQgb3V0IGlmIHlvdSB3YW50IHRvIFBCUiBhYnNvbHV0ZWx5XCIgaW4gVlJNMC4wIE1Ub29uLlxuICAgICAqIFdoZW4gdGhpcyBpcyB0cnVlLCB0aGUgbWF0ZXJpYWwgZW5hYmxlcyB0aGUgbGluZSB0byBtYWtlIGl0IGNvbXBhdGlibGUgd2l0aCB0aGUgbGVnYWN5IHJlbmRlcmluZyBvZiBWUk0uXG4gICAgICogVXN1YWxseSBub3QgcmVjb21tZW5kZWQgdG8gdHVybiB0aGlzIG9uLlxuICAgICAqIGBmYWxzZWAgYnkgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBnZXQgdjBDb21wYXRTaGFkZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3YwQ29tcGF0U2hhZGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZXJlIGlzIGEgbGluZSBvZiB0aGUgc2hhZGVyIGNhbGxlZCBcImNvbW1lbnQgb3V0IGlmIHlvdSB3YW50IHRvIFBCUiBhYnNvbHV0ZWx5XCIgaW4gVlJNMC4wIE1Ub29uLlxuICAgICAqIFdoZW4gdGhpcyBpcyB0cnVlLCB0aGUgbWF0ZXJpYWwgZW5hYmxlcyB0aGUgbGluZSB0byBtYWtlIGl0IGNvbXBhdGlibGUgd2l0aCB0aGUgbGVnYWN5IHJlbmRlcmluZyBvZiBWUk0uXG4gICAgICogVXN1YWxseSBub3QgcmVjb21tZW5kZWQgdG8gdHVybiB0aGlzIG9uLlxuICAgICAqIGBmYWxzZWAgYnkgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBzZXQgdjBDb21wYXRTaGFkZSh2KSB7XG4gICAgICAgIHRoaXMuX3YwQ29tcGF0U2hhZGUgPSB2O1xuICAgICAgICB0aGlzLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGVidWcgbW9kZSBmb3IgdGhlIG1hdGVyaWFsLlxuICAgICAqIFlvdSBjYW4gdmlzdWFsaXplIHNldmVyYWwgY29tcG9uZW50cyBmb3IgZGlhZ25vc2lzIHVzaW5nIGRlYnVnIG1vZGUuXG4gICAgICpcbiAgICAgKiBTZWU6IHtAbGluayBNVG9vbk1hdGVyaWFsRGVidWdNb2RlfVxuICAgICAqL1xuICAgIGdldCBkZWJ1Z01vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWJ1Z01vZGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlYnVnIG1vZGUgZm9yIHRoZSBtYXRlcmlhbC5cbiAgICAgKiBZb3UgY2FuIHZpc3VhbGl6ZSBzZXZlcmFsIGNvbXBvbmVudHMgZm9yIGRpYWdub3NpcyB1c2luZyBkZWJ1ZyBtb2RlLlxuICAgICAqXG4gICAgICogU2VlOiB7QGxpbmsgTVRvb25NYXRlcmlhbERlYnVnTW9kZX1cbiAgICAgKi9cbiAgICBzZXQgZGVidWdNb2RlKG0pIHtcbiAgICAgICAgdGhpcy5fZGVidWdNb2RlID0gbTtcbiAgICAgICAgdGhpcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIGdldCBvdXRsaW5lV2lkdGhNb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3V0bGluZVdpZHRoTW9kZTtcbiAgICB9XG4gICAgc2V0IG91dGxpbmVXaWR0aE1vZGUobSkge1xuICAgICAgICB0aGlzLl9vdXRsaW5lV2lkdGhNb2RlID0gbTtcbiAgICAgICAgdGhpcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIGdldCBpc091dGxpbmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc091dGxpbmU7XG4gICAgfVxuICAgIHNldCBpc091dGxpbmUoYikge1xuICAgICAgICB0aGlzLl9pc091dGxpbmUgPSBiO1xuICAgICAgICB0aGlzLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVhZG9ubHkgYm9vbGVhbiB0aGF0IGluZGljYXRlcyB0aGlzIGlzIGEgW1tNVG9vbk1hdGVyaWFsXV0uXG4gICAgICovXG4gICAgZ2V0IGlzTVRvb25NYXRlcmlhbCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcmFtZXRlcnMgPSB7fSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHN1cGVyKHsgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlciB9KTtcbiAgICAgICAgdGhpcy51dkFuaW1hdGlvblNjcm9sbFhTcGVlZEZhY3RvciA9IDAuMDtcbiAgICAgICAgdGhpcy51dkFuaW1hdGlvblNjcm9sbFlTcGVlZEZhY3RvciA9IDAuMDtcbiAgICAgICAgdGhpcy51dkFuaW1hdGlvblJvdGF0aW9uU3BlZWRGYWN0b3IgPSAwLjA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaGV0aGVyIHRoZSBtYXRlcmlhbCBpcyBhZmZlY3RlZCBieSBmb2cuXG4gICAgICAgICAqIGB0cnVlYCBieSBkZWZhdWx0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mb2cgPSB0cnVlO1xuICAgICAgICAvKipcbiAgICAgICAgICogV2lsbCBiZSByZWFkIGluIFdlYkdMUHJvZ3JhbXNcbiAgICAgICAgICpcbiAgICAgICAgICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2Jsb2IvNGY1MjM2YWMzZDZmNDFkOTA0YWE1ODQwMWI0MDU1NGU4ZmJkY2IxNS9zcmMvcmVuZGVyZXJzL3dlYmdsL1dlYkdMUHJvZ3JhbXMuanMjTDE5MC1MMTkxXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5vcm1hbE1hcFR5cGUgPSBUSFJFRS5UYW5nZW50U3BhY2VOb3JtYWxNYXA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaGVuIHRoaXMgaXMgYHRydWVgLCB2ZXJ0ZXggY29sb3JzIHdpbGwgYmUgaWdub3JlZC5cbiAgICAgICAgICogYHRydWVgIGJ5IGRlZmF1bHQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9pZ25vcmVWZXJ0ZXhDb2xvciA9IHRydWU7XG4gICAgICAgIHRoaXMuX3YwQ29tcGF0U2hhZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZGVidWdNb2RlID0gTVRvb25NYXRlcmlhbERlYnVnTW9kZS5Ob25lO1xuICAgICAgICB0aGlzLl9vdXRsaW5lV2lkdGhNb2RlID0gTVRvb25NYXRlcmlhbE91dGxpbmVXaWR0aE1vZGUuTm9uZTtcbiAgICAgICAgdGhpcy5faXNPdXRsaW5lID0gZmFsc2U7XG4gICAgICAgIC8vIG92ZXJyaWRlIGRlcHRoV3JpdGUgd2l0aCB0cmFuc3BhcmVudFdpdGhaV3JpdGVcbiAgICAgICAgaWYgKHBhcmFtZXRlcnMudHJhbnNwYXJlbnRXaXRoWldyaXRlKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLmRlcHRoV3JpdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSBwYXJhbWV0ZXJzLnRyYW5zcGFyZW50V2l0aFpXcml0ZTtcbiAgICAgICAgLy8gPT0gZW5hYmxpbmcgYnVuY2ggb2Ygc3R1ZmYgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgIHBhcmFtZXRlcnMuZm9nID0gdHJ1ZTtcbiAgICAgICAgcGFyYW1ldGVycy5saWdodHMgPSB0cnVlO1xuICAgICAgICBwYXJhbWV0ZXJzLmNsaXBwaW5nID0gdHJ1ZTtcbiAgICAgICAgLy8gQ09NUEFUOiBwcmUtcjEyOVxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvcHVsbC8yMTc4OFxuICAgICAgICBpZiAocGFyc2VJbnQoVEhSRUUuUkVWSVNJT04sIDEwKSA8IDEyOSkge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5za2lubmluZyA9IHBhcmFtZXRlcnMuc2tpbm5pbmcgfHwgZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ09NUEFUOiBwcmUtcjEzMVxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvcHVsbC8yMjE2OVxuICAgICAgICBpZiAocGFyc2VJbnQoVEhSRUUuUkVWSVNJT04sIDEwKSA8IDEzMSkge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5tb3JwaFRhcmdldHMgPSBwYXJhbWV0ZXJzLm1vcnBoVGFyZ2V0cyB8fCBmYWxzZTtcbiAgICAgICAgICAgIHBhcmFtZXRlcnMubW9ycGhOb3JtYWxzID0gcGFyYW1ldGVycy5tb3JwaE5vcm1hbHMgfHwgZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gPT0gdW5pZm9ybXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgIHRoaXMudW5pZm9ybXMgPSBUSFJFRS5Vbmlmb3Jtc1V0aWxzLm1lcmdlKFtcbiAgICAgICAgICAgIFRIUkVFLlVuaWZvcm1zTGliLmNvbW1vbixcbiAgICAgICAgICAgIFRIUkVFLlVuaWZvcm1zTGliLm5vcm1hbG1hcCxcbiAgICAgICAgICAgIFRIUkVFLlVuaWZvcm1zTGliLmVtaXNzaXZlbWFwLFxuICAgICAgICAgICAgVEhSRUUuVW5pZm9ybXNMaWIuZm9nLFxuICAgICAgICAgICAgVEhSRUUuVW5pZm9ybXNMaWIubGlnaHRzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxpdEZhY3RvcjogeyB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKDEuMCwgMS4wLCAxLjApIH0sXG4gICAgICAgICAgICAgICAgbWFwVXZUcmFuc2Zvcm06IHsgdmFsdWU6IG5ldyBUSFJFRS5NYXRyaXgzKCkgfSxcbiAgICAgICAgICAgICAgICBjb2xvckFscGhhOiB7IHZhbHVlOiAxLjAgfSxcbiAgICAgICAgICAgICAgICBub3JtYWxNYXBVdlRyYW5zZm9ybTogeyB2YWx1ZTogbmV3IFRIUkVFLk1hdHJpeDMoKSB9LFxuICAgICAgICAgICAgICAgIHNoYWRlQ29sb3JGYWN0b3I6IHsgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcigwLjk3LCAwLjgxLCAwLjg2KSB9LFxuICAgICAgICAgICAgICAgIHNoYWRlTXVsdGlwbHlUZXh0dXJlOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgc2hhZGVNdWx0aXBseVRleHR1cmVVdlRyYW5zZm9ybTogeyB2YWx1ZTogbmV3IFRIUkVFLk1hdHJpeDMoKSB9LFxuICAgICAgICAgICAgICAgIHNoYWRpbmdTaGlmdEZhY3RvcjogeyB2YWx1ZTogMC4wIH0sXG4gICAgICAgICAgICAgICAgc2hhZGluZ1NoaWZ0VGV4dHVyZTogeyB2YWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgICAgIHNoYWRpbmdTaGlmdFRleHR1cmVVdlRyYW5zZm9ybTogeyB2YWx1ZTogbmV3IFRIUkVFLk1hdHJpeDMoKSB9LFxuICAgICAgICAgICAgICAgIHNoYWRpbmdTaGlmdFRleHR1cmVTY2FsZTogeyB2YWx1ZTogMS4wIH0sXG4gICAgICAgICAgICAgICAgc2hhZGluZ1Rvb255RmFjdG9yOiB7IHZhbHVlOiAwLjkgfSxcbiAgICAgICAgICAgICAgICBnaUVxdWFsaXphdGlvbkZhY3RvcjogeyB2YWx1ZTogMC45IH0sXG4gICAgICAgICAgICAgICAgbWF0Y2FwRmFjdG9yOiB7IHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoMC4wLCAwLjAsIDAuMCkgfSxcbiAgICAgICAgICAgICAgICBtYXRjYXBUZXh0dXJlOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgbWF0Y2FwVGV4dHVyZVV2VHJhbnNmb3JtOiB7IHZhbHVlOiBuZXcgVEhSRUUuTWF0cml4MygpIH0sXG4gICAgICAgICAgICAgICAgcGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yOiB7IHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoMC4wLCAwLjAsIDAuMCkgfSxcbiAgICAgICAgICAgICAgICByaW1NdWx0aXBseVRleHR1cmU6IHsgdmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgICAgICByaW1NdWx0aXBseVRleHR1cmVVdlRyYW5zZm9ybTogeyB2YWx1ZTogbmV3IFRIUkVFLk1hdHJpeDMoKSB9LFxuICAgICAgICAgICAgICAgIHJpbUxpZ2h0aW5nTWl4RmFjdG9yOiB7IHZhbHVlOiAwLjAgfSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0cmljUmltRnJlc25lbFBvd2VyRmFjdG9yOiB7IHZhbHVlOiAxLjAgfSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0cmljUmltTGlmdEZhY3RvcjogeyB2YWx1ZTogMC4wIH0sXG4gICAgICAgICAgICAgICAgZW1pc3NpdmU6IHsgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcigwLjAsIDAuMCwgMC4wKSB9LFxuICAgICAgICAgICAgICAgIGVtaXNzaXZlSW50ZW5zaXR5OiB7IHZhbHVlOiAxLjAgfSxcbiAgICAgICAgICAgICAgICBlbWlzc2l2ZU1hcFV2VHJhbnNmb3JtOiB7IHZhbHVlOiBuZXcgVEhSRUUuTWF0cml4MygpIH0sXG4gICAgICAgICAgICAgICAgb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlVXZUcmFuc2Zvcm06IHsgdmFsdWU6IG5ldyBUSFJFRS5NYXRyaXgzKCkgfSxcbiAgICAgICAgICAgICAgICBvdXRsaW5lV2lkdGhGYWN0b3I6IHsgdmFsdWU6IDAuNSB9LFxuICAgICAgICAgICAgICAgIG91dGxpbmVDb2xvckZhY3RvcjogeyB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKDAuMCwgMC4wLCAwLjApIH0sXG4gICAgICAgICAgICAgICAgb3V0bGluZUxpZ2h0aW5nTWl4RmFjdG9yOiB7IHZhbHVlOiAxLjAgfSxcbiAgICAgICAgICAgICAgICB1dkFuaW1hdGlvbk1hc2tUZXh0dXJlOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgdXZBbmltYXRpb25NYXNrVGV4dHVyZVV2VHJhbnNmb3JtOiB7IHZhbHVlOiBuZXcgVEhSRUUuTWF0cml4MygpIH0sXG4gICAgICAgICAgICAgICAgdXZBbmltYXRpb25TY3JvbGxYT2Zmc2V0OiB7IHZhbHVlOiAwLjAgfSxcbiAgICAgICAgICAgICAgICB1dkFuaW1hdGlvblNjcm9sbFlPZmZzZXQ6IHsgdmFsdWU6IDAuMCB9LFxuICAgICAgICAgICAgICAgIHV2QW5pbWF0aW9uUm90YXRpb25QaGFzZTogeyB2YWx1ZTogMC4wIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKF9hID0gcGFyYW1ldGVycy51bmlmb3JtcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge30sXG4gICAgICAgIF0pO1xuICAgICAgICAvLyA9PSBmaW5hbGx5IGNvbXBpbGUgdGhlIHNoYWRlciBwcm9ncmFtID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgdGhpcy5zZXRWYWx1ZXMocGFyYW1ldGVycyk7XG4gICAgICAgIC8vID09IHVwbG9hZCB1bmlmb3JtcyB0aGF0IG5lZWQgdG8gdXBsb2FkID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICB0aGlzLl91cGxvYWRVbmlmb3Jtc1dvcmthcm91bmQoKTtcbiAgICAgICAgLy8gPT0gdXBkYXRlIHNoYWRlciBzdHVmZiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgIHRoaXMuY3VzdG9tUHJvZ3JhbUNhY2hlS2V5ID0gKCkgPT4gW1xuICAgICAgICAgICAgLi4uT2JqZWN0LmVudHJpZXModGhpcy5fZ2VuZXJhdGVEZWZpbmVzKCkpLm1hcCgoW3Rva2VuLCBtYWNyb10pID0+IGAke3Rva2VufToke21hY3JvfWApLFxuICAgICAgICAgICAgdGhpcy5tYXRjYXBUZXh0dXJlID8gYG1hdGNhcFRleHR1cmVDb2xvclNwYWNlOiR7Z2V0VGV4dHVyZUNvbG9yU3BhY2UodGhpcy5tYXRjYXBUZXh0dXJlKX1gIDogJycsXG4gICAgICAgICAgICB0aGlzLnNoYWRlTXVsdGlwbHlUZXh0dXJlXG4gICAgICAgICAgICAgICAgPyBgc2hhZGVNdWx0aXBseVRleHR1cmVDb2xvclNwYWNlOiR7Z2V0VGV4dHVyZUNvbG9yU3BhY2UodGhpcy5zaGFkZU11bHRpcGx5VGV4dHVyZSl9YFxuICAgICAgICAgICAgICAgIDogJycsXG4gICAgICAgICAgICB0aGlzLnJpbU11bHRpcGx5VGV4dHVyZSA/IGByaW1NdWx0aXBseVRleHR1cmVDb2xvclNwYWNlOiR7Z2V0VGV4dHVyZUNvbG9yU3BhY2UodGhpcy5yaW1NdWx0aXBseVRleHR1cmUpfWAgOiAnJyxcbiAgICAgICAgXS5qb2luKCcsJyk7XG4gICAgICAgIHRoaXMub25CZWZvcmVDb21waWxlID0gKHNoYWRlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGhyZWVSZXZpc2lvbiA9IHBhcnNlSW50KFRIUkVFLlJFVklTSU9OLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBkZWZpbmVzID0gT2JqZWN0LmVudHJpZXMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9nZW5lcmF0ZURlZmluZXMoKSksIHRoaXMuZGVmaW5lcykpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoW3Rva2VuLCBtYWNyb10pID0+ICEhbWFjcm8pXG4gICAgICAgICAgICAgICAgLm1hcCgoW3Rva2VuLCBtYWNyb10pID0+IGAjZGVmaW5lICR7dG9rZW59ICR7bWFjcm99YClcbiAgICAgICAgICAgICAgICAuam9pbignXFxuJykgKyAnXFxuJztcbiAgICAgICAgICAgIC8vIC0tIGdlbmVyYXRlIHNoYWRlciBjb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHNoYWRlci52ZXJ0ZXhTaGFkZXIgPSBkZWZpbmVzICsgc2hhZGVyLnZlcnRleFNoYWRlcjtcbiAgICAgICAgICAgIHNoYWRlci5mcmFnbWVudFNoYWRlciA9IGRlZmluZXMgKyBzaGFkZXIuZnJhZ21lbnRTaGFkZXI7XG4gICAgICAgICAgICAvLyAtLSBjb21wYXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBDT01QQVQ6IHByZS1yMTU0XG4gICAgICAgICAgICAvLyBUaHJlZS5qcyByMTU0IHJlbmFtZXMgdGhlIHNoYWRlciBjaHVuayA8Y29sb3JzcGFjZV9mcmFnbWVudD4gdG8gPGVuY29kaW5nc19mcmFnbWVudD5cbiAgICAgICAgICAgIGlmICh0aHJlZVJldmlzaW9uIDwgMTU0KSB7XG4gICAgICAgICAgICAgICAgc2hhZGVyLmZyYWdtZW50U2hhZGVyID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLnJlcGxhY2UoJyNpbmNsdWRlIDxjb2xvcnNwYWNlX2ZyYWdtZW50PicsICcjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ09NUEFUOiBwcmUtcjEzMlxuICAgICAgICAgICAgLy8gVGhyZWUuanMgcjEzMiBpbnRyb2R1Y2VzIG5ldyBzaGFkZXIgY2h1bmtzIDxub3JtYWxfcGFyc19mcmFnbWVudD4gYW5kIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD5cbiAgICAgICAgICAgIGlmICh0aHJlZVJldmlzaW9uIDwgMTMyKSB7XG4gICAgICAgICAgICAgICAgc2hhZGVyLmZyYWdtZW50U2hhZGVyID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLnJlcGxhY2UoJyNpbmNsdWRlIDxub3JtYWxfcGFyc19mcmFnbWVudD4nLCAnJyk7XG4gICAgICAgICAgICAgICAgc2hhZGVyLmZyYWdtZW50U2hhZGVyID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLnJlcGxhY2UoJyNpbmNsdWRlIDxhbHBoYXRlc3RfcGFyc19mcmFnbWVudD4nLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGlzIG1hdGVyaWFsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlbHRhIGRlbHRhVGltZSBzaW5jZSBsYXN0IHVwZGF0ZVxuICAgICAqL1xuICAgIHVwZGF0ZShkZWx0YSkge1xuICAgICAgICB0aGlzLl91cGxvYWRVbmlmb3Jtc1dvcmthcm91bmQoKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlVVZBbmltYXRpb24oZGVsdGEpO1xuICAgIH1cbiAgICBjb3B5KHNvdXJjZSkge1xuICAgICAgICBzdXBlci5jb3B5KHNvdXJjZSk7XG4gICAgICAgIC8vIHVuaWZvcm1zIGFyZSBhbHJlYWR5IGNvcGllZCBhdCB0aGlzIG1vbWVudFxuICAgICAgICAvLyBCZWdpbm5pbmcgZnJvbSByMTMzLCB1bmlmb3JtIHRleHR1cmVzIHdpbGwgYmUgY2xvbmVkIGluc3RlYWQgb2YgcmVmZXJlbmNlXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL2E4ODEzYmUwNGE4NDliZDE1NWY3Y2Y2ZjFiMjNkOGVlMmUwZmI0OGIvZXhhbXBsZXMvanNtL2xvYWRlcnMvR0xURkxvYWRlci5qcyNMMzA0N1xuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvYmxvYi9hODgxM2JlMDRhODQ5YmQxNTVmN2NmNmYxYjIzZDhlZTJlMGZiNDhiL3NyYy9yZW5kZXJlcnMvc2hhZGVycy9Vbmlmb3Jtc1V0aWxzLmpzI0wyMlxuICAgICAgICAvLyBUaGlzIHdpbGwgbGVhdmUgdGhlaXIgYC52ZXJzaW9uYCB0byBiZSBgMGBcbiAgICAgICAgLy8gYW5kIHRoZXNlIHRleHR1cmVzIHdvbid0IGJlIHVwbG9hZGVkIHRvIEdQVVxuICAgICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gd29ya2Fyb3VuZCB0aGlzIGluIGhlcmVcbiAgICAgICAgLy8gSSd2ZSBvcGVuZWQgYW4gaXNzdWUgZm9yIHRoaXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzIyNzE4XG4gICAgICAgIHRoaXMubWFwID0gc291cmNlLm1hcDtcbiAgICAgICAgdGhpcy5ub3JtYWxNYXAgPSBzb3VyY2Uubm9ybWFsTWFwO1xuICAgICAgICB0aGlzLmVtaXNzaXZlTWFwID0gc291cmNlLmVtaXNzaXZlTWFwO1xuICAgICAgICB0aGlzLnNoYWRlTXVsdGlwbHlUZXh0dXJlID0gc291cmNlLnNoYWRlTXVsdGlwbHlUZXh0dXJlO1xuICAgICAgICB0aGlzLnNoYWRpbmdTaGlmdFRleHR1cmUgPSBzb3VyY2Uuc2hhZGluZ1NoaWZ0VGV4dHVyZTtcbiAgICAgICAgdGhpcy5tYXRjYXBUZXh0dXJlID0gc291cmNlLm1hdGNhcFRleHR1cmU7XG4gICAgICAgIHRoaXMucmltTXVsdGlwbHlUZXh0dXJlID0gc291cmNlLnJpbU11bHRpcGx5VGV4dHVyZTtcbiAgICAgICAgdGhpcy5vdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmUgPSBzb3VyY2Uub3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlO1xuICAgICAgICB0aGlzLnV2QW5pbWF0aW9uTWFza1RleHR1cmUgPSBzb3VyY2UudXZBbmltYXRpb25NYXNrVGV4dHVyZTtcbiAgICAgICAgLy8gPT0gY29weSBtZW1iZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgIHRoaXMubm9ybWFsTWFwVHlwZSA9IHNvdXJjZS5ub3JtYWxNYXBUeXBlO1xuICAgICAgICB0aGlzLnV2QW5pbWF0aW9uU2Nyb2xsWFNwZWVkRmFjdG9yID0gc291cmNlLnV2QW5pbWF0aW9uU2Nyb2xsWFNwZWVkRmFjdG9yO1xuICAgICAgICB0aGlzLnV2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yID0gc291cmNlLnV2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yO1xuICAgICAgICB0aGlzLnV2QW5pbWF0aW9uUm90YXRpb25TcGVlZEZhY3RvciA9IHNvdXJjZS51dkFuaW1hdGlvblJvdGF0aW9uU3BlZWRGYWN0b3I7XG4gICAgICAgIHRoaXMuaWdub3JlVmVydGV4Q29sb3IgPSBzb3VyY2UuaWdub3JlVmVydGV4Q29sb3I7XG4gICAgICAgIHRoaXMudjBDb21wYXRTaGFkZSA9IHNvdXJjZS52MENvbXBhdFNoYWRlO1xuICAgICAgICB0aGlzLmRlYnVnTW9kZSA9IHNvdXJjZS5kZWJ1Z01vZGU7XG4gICAgICAgIHRoaXMub3V0bGluZVdpZHRoTW9kZSA9IHNvdXJjZS5vdXRsaW5lV2lkdGhNb2RlO1xuICAgICAgICB0aGlzLmlzT3V0bGluZSA9IHNvdXJjZS5pc091dGxpbmU7XG4gICAgICAgIC8vID09IHVwZGF0ZSBzaGFkZXIgc3R1ZmYgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICB0aGlzLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBVViBhbmltYXRpb24gc3RhdGUuXG4gICAgICogSW50ZW5kZWQgdG8gYmUgY2FsbGVkIHZpYSB7QGxpbmsgdXBkYXRlfS5cbiAgICAgKiBAcGFyYW0gZGVsdGEgZGVsdGFUaW1lXG4gICAgICovXG4gICAgX3VwZGF0ZVVWQW5pbWF0aW9uKGRlbHRhKSB7XG4gICAgICAgIHRoaXMudW5pZm9ybXMudXZBbmltYXRpb25TY3JvbGxYT2Zmc2V0LnZhbHVlICs9IGRlbHRhICogdGhpcy51dkFuaW1hdGlvblNjcm9sbFhTcGVlZEZhY3RvcjtcbiAgICAgICAgdGhpcy51bmlmb3Jtcy51dkFuaW1hdGlvblNjcm9sbFlPZmZzZXQudmFsdWUgKz0gZGVsdGEgKiB0aGlzLnV2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yO1xuICAgICAgICB0aGlzLnVuaWZvcm1zLnV2QW5pbWF0aW9uUm90YXRpb25QaGFzZS52YWx1ZSArPSBkZWx0YSAqIHRoaXMudXZBbmltYXRpb25Sb3RhdGlvblNwZWVkRmFjdG9yO1xuICAgICAgICB0aGlzLnVuaWZvcm1zTmVlZFVwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwbG9hZCB1bmlmb3JtcyB0aGF0IG5lZWQgdG8gdXBsb2FkIGJ1dCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgYmVjYXVzZSBvZiByZWFzb25zLlxuICAgICAqIEludGVuZGVkIHRvIGJlIGNhbGxlZCB2aWEge0BsaW5rIGNvbnN0cnVjdG9yfSBhbmQge0BsaW5rIHVwZGF0ZX0uXG4gICAgICovXG4gICAgX3VwbG9hZFVuaWZvcm1zV29ya2Fyb3VuZCgpIHtcbiAgICAgICAgLy8gd29ya2Fyb3VuZDogc2luY2Ugb3BhY2l0eSBpcyBkZWZpbmVkIGFzIGEgcHJvcGVydHkgaW4gVEhSRUUuTWF0ZXJpYWxcbiAgICAgICAgLy8gYW5kIGNhbm5vdCBiZSBvdmVycmlkZGVuIGFzIGFuIGFjY2Vzc29yLFxuICAgICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gdXBkYXRlIG9wYWNpdHkgaGVyZVxuICAgICAgICB0aGlzLnVuaWZvcm1zLm9wYWNpdHkudmFsdWUgPSB0aGlzLm9wYWNpdHk7XG4gICAgICAgIC8vIHdvcmthcm91bmQ6IHRleHR1cmUgdHJhbnNmb3JtcyBhcmUgbm90IHVwZGF0ZWQgYXV0b21hdGljYWxseVxuICAgICAgICB0aGlzLl91cGRhdGVUZXh0dXJlTWF0cml4KHRoaXMudW5pZm9ybXMubWFwLCB0aGlzLnVuaWZvcm1zLm1hcFV2VHJhbnNmb3JtKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlVGV4dHVyZU1hdHJpeCh0aGlzLnVuaWZvcm1zLm5vcm1hbE1hcCwgdGhpcy51bmlmb3Jtcy5ub3JtYWxNYXBVdlRyYW5zZm9ybSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRleHR1cmVNYXRyaXgodGhpcy51bmlmb3Jtcy5lbWlzc2l2ZU1hcCwgdGhpcy51bmlmb3Jtcy5lbWlzc2l2ZU1hcFV2VHJhbnNmb3JtKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlVGV4dHVyZU1hdHJpeCh0aGlzLnVuaWZvcm1zLnNoYWRlTXVsdGlwbHlUZXh0dXJlLCB0aGlzLnVuaWZvcm1zLnNoYWRlTXVsdGlwbHlUZXh0dXJlVXZUcmFuc2Zvcm0pO1xuICAgICAgICB0aGlzLl91cGRhdGVUZXh0dXJlTWF0cml4KHRoaXMudW5pZm9ybXMuc2hhZGluZ1NoaWZ0VGV4dHVyZSwgdGhpcy51bmlmb3Jtcy5zaGFkaW5nU2hpZnRUZXh0dXJlVXZUcmFuc2Zvcm0pO1xuICAgICAgICB0aGlzLl91cGRhdGVUZXh0dXJlTWF0cml4KHRoaXMudW5pZm9ybXMubWF0Y2FwVGV4dHVyZSwgdGhpcy51bmlmb3Jtcy5tYXRjYXBUZXh0dXJlVXZUcmFuc2Zvcm0pO1xuICAgICAgICB0aGlzLl91cGRhdGVUZXh0dXJlTWF0cml4KHRoaXMudW5pZm9ybXMucmltTXVsdGlwbHlUZXh0dXJlLCB0aGlzLnVuaWZvcm1zLnJpbU11bHRpcGx5VGV4dHVyZVV2VHJhbnNmb3JtKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlVGV4dHVyZU1hdHJpeCh0aGlzLnVuaWZvcm1zLm91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZSwgdGhpcy51bmlmb3Jtcy5vdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmVVdlRyYW5zZm9ybSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRleHR1cmVNYXRyaXgodGhpcy51bmlmb3Jtcy51dkFuaW1hdGlvbk1hc2tUZXh0dXJlLCB0aGlzLnVuaWZvcm1zLnV2QW5pbWF0aW9uTWFza1RleHR1cmVVdlRyYW5zZm9ybSk7XG4gICAgICAgIC8vIENPTVBBVCB3b3JrYXJvdW5kOiBzdGFydGluZyBmcm9tIHIxMzIsIGFscGhhVGVzdCBiZWNvbWVzIGEgdW5pZm9ybSBpbnN0ZWFkIG9mIHByZXByb2Nlc3NvciB2YWx1ZVxuICAgICAgICBjb25zdCB0aHJlZVJldmlzaW9uID0gcGFyc2VJbnQoVEhSRUUuUkVWSVNJT04sIDEwKTtcbiAgICAgICAgaWYgKHRocmVlUmV2aXNpb24gPj0gMTMyKSB7XG4gICAgICAgICAgICB0aGlzLnVuaWZvcm1zLmFscGhhVGVzdC52YWx1ZSA9IHRoaXMuYWxwaGFUZXN0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudW5pZm9ybXNOZWVkVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIG1hcCBvYmplY3Qgb2YgcHJlcHJvY2Vzc29yIHRva2VuIGFuZCBtYWNybyBvZiB0aGUgc2hhZGVyIHByb2dyYW0uXG4gICAgICovXG4gICAgX2dlbmVyYXRlRGVmaW5lcygpIHtcbiAgICAgICAgY29uc3QgdGhyZWVSZXZpc2lvbiA9IHBhcnNlSW50KFRIUkVFLlJFVklTSU9OLCAxMCk7XG4gICAgICAgIGNvbnN0IHVzZVV2SW5WZXJ0ID0gdGhpcy5vdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmUgIT09IG51bGw7XG4gICAgICAgIGNvbnN0IHVzZVV2SW5GcmFnID0gdGhpcy5tYXAgIT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMuZW1pc3NpdmVNYXAgIT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMuc2hhZGVNdWx0aXBseVRleHR1cmUgIT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMuc2hhZGluZ1NoaWZ0VGV4dHVyZSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy5yaW1NdWx0aXBseVRleHR1cmUgIT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMudXZBbmltYXRpb25NYXNrVGV4dHVyZSAhPT0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC8vIFRlbXBvcmFyeSBjb21wYXQgYWdhaW5zdCBzaGFkZXIgY2hhbmdlIEAgVGhyZWUuanMgcjEyNlxuICAgICAgICAgICAgLy8gU2VlOiAjMjEyMDUsICMyMTMwNywgIzIxMjk5XG4gICAgICAgICAgICBUSFJFRV9WUk1fVEhSRUVfUkVWSVNJT046IHRocmVlUmV2aXNpb24sXG4gICAgICAgICAgICBPVVRMSU5FOiB0aGlzLl9pc091dGxpbmUsXG4gICAgICAgICAgICBNVE9PTl9VU0VfVVY6IHVzZVV2SW5WZXJ0IHx8IHVzZVV2SW5GcmFnLFxuICAgICAgICAgICAgTVRPT05fVVZTX1ZFUlRFWF9PTkxZOiB1c2VVdkluVmVydCAmJiAhdXNlVXZJbkZyYWcsXG4gICAgICAgICAgICBWMF9DT01QQVRfU0hBREU6IHRoaXMuX3YwQ29tcGF0U2hhZGUsXG4gICAgICAgICAgICBVU0VfU0hBREVNVUxUSVBMWVRFWFRVUkU6IHRoaXMuc2hhZGVNdWx0aXBseVRleHR1cmUgIT09IG51bGwsXG4gICAgICAgICAgICBVU0VfU0hBRElOR1NISUZUVEVYVFVSRTogdGhpcy5zaGFkaW5nU2hpZnRUZXh0dXJlICE9PSBudWxsLFxuICAgICAgICAgICAgVVNFX01BVENBUFRFWFRVUkU6IHRoaXMubWF0Y2FwVGV4dHVyZSAhPT0gbnVsbCxcbiAgICAgICAgICAgIFVTRV9SSU1NVUxUSVBMWVRFWFRVUkU6IHRoaXMucmltTXVsdGlwbHlUZXh0dXJlICE9PSBudWxsLFxuICAgICAgICAgICAgVVNFX09VVExJTkVXSURUSE1VTFRJUExZVEVYVFVSRTogdGhpcy5faXNPdXRsaW5lICYmIHRoaXMub3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlICE9PSBudWxsLFxuICAgICAgICAgICAgVVNFX1VWQU5JTUFUSU9OTUFTS1RFWFRVUkU6IHRoaXMudXZBbmltYXRpb25NYXNrVGV4dHVyZSAhPT0gbnVsbCxcbiAgICAgICAgICAgIElHTk9SRV9WRVJURVhfQ09MT1I6IHRoaXMuX2lnbm9yZVZlcnRleENvbG9yID09PSB0cnVlLFxuICAgICAgICAgICAgREVCVUdfTk9STUFMOiB0aGlzLl9kZWJ1Z01vZGUgPT09ICdub3JtYWwnLFxuICAgICAgICAgICAgREVCVUdfTElUU0hBREVSQVRFOiB0aGlzLl9kZWJ1Z01vZGUgPT09ICdsaXRTaGFkZVJhdGUnLFxuICAgICAgICAgICAgREVCVUdfVVY6IHRoaXMuX2RlYnVnTW9kZSA9PT0gJ3V2JyxcbiAgICAgICAgICAgIE9VVExJTkVfV0lEVEhfV09STEQ6IHRoaXMuX2lzT3V0bGluZSAmJiB0aGlzLl9vdXRsaW5lV2lkdGhNb2RlID09PSBNVG9vbk1hdGVyaWFsT3V0bGluZVdpZHRoTW9kZS5Xb3JsZENvb3JkaW5hdGVzLFxuICAgICAgICAgICAgT1VUTElORV9XSURUSF9TQ1JFRU46IHRoaXMuX2lzT3V0bGluZSAmJiB0aGlzLl9vdXRsaW5lV2lkdGhNb2RlID09PSBNVG9vbk1hdGVyaWFsT3V0bGluZVdpZHRoTW9kZS5TY3JlZW5Db29yZGluYXRlcyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX3VwZGF0ZVRleHR1cmVNYXRyaXgoc3JjLCBkc3QpIHtcbiAgICAgICAgaWYgKHNyYy52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHNyYy52YWx1ZS5tYXRyaXhBdXRvVXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgc3JjLnZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZHN0LnZhbHVlLmNvcHkoc3JjLnZhbHVlLm1hdHJpeCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGNvbG9yU3BhY2VFbmNvZGluZ01hcCA9IHtcbiAgICAnJzogMzAwMCxcbiAgICBzcmdiOiAzMDAxLFxufTtcbi8qKlxuICogQSBjb21wYXQgZnVuY3Rpb24gdG8gc2V0IHRleHR1cmUgY29sb3Igc3BhY2UuXG4gKlxuICogQ09NUEFUOiBwcmUtcjE1MlxuICogU3RhcnRpbmcgZnJvbSBUaHJlZS5qcyByMTUyLCBgdGV4dHVyZS5lbmNvZGluZ2AgaXMgcmVuYW1lZCB0byBgdGV4dHVyZS5jb2xvclNwYWNlYC5cbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBoYW5kbGUgdGhlIGNvbWFwdC5cbiAqXG4gKiBAcGFyYW0gdGV4dHVyZSBUaGUgdGV4dHVyZSB5b3Ugd2FudCB0byBzZXQgdGhlIGNvbG9yIHNwYWNlIHRvXG4gKiBAcGFyYW0gY29sb3JTcGFjZSBUaGUgY29sb3Igc3BhY2UgeW91IHdhbnQgdG8gc2V0IHRvIHRoZSB0ZXh0dXJlXG4gKi9cbmZ1bmN0aW9uIHNldFRleHR1cmVDb2xvclNwYWNlKHRleHR1cmUsIGNvbG9yU3BhY2UpIHtcbiAgICBpZiAocGFyc2VJbnQoVEhSRUUuUkVWSVNJT04sIDEwKSA+PSAxNTIpIHtcbiAgICAgICAgdGV4dHVyZS5jb2xvclNwYWNlID0gY29sb3JTcGFjZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRleHR1cmUuZW5jb2RpbmcgPSBjb2xvclNwYWNlRW5jb2RpbmdNYXBbY29sb3JTcGFjZV07XG4gICAgfVxufVxuXG4vKipcbiAqIE1hdGVyaWFsUGFyYW1ldGVycyBoYXRlcyBgdW5kZWZpbmVkYC4gVGhpcyBoZWxwZXIgYXV0b21hdGljYWxseSByZWplY3RzIGFzc2lnbiBvZiB0aGVzZSBgdW5kZWZpbmVkYC5cbiAqIEl0IGFsc28gaGFuZGxlcyBhc3luY2hyb25vdXMgcHJvY2VzcyBvZiB0ZXh0dXJlcy5cbiAqIE1ha2Ugc3VyZSBhd2FpdCBmb3Ige0BsaW5rIEdMVEZNVG9vbk1hdGVyaWFsUGFyYW1zQXNzaWduSGVscGVyLnBlbmRpbmd9LlxuICovXG5jbGFzcyBHTFRGTVRvb25NYXRlcmlhbFBhcmFtc0Fzc2lnbkhlbHBlciB7XG4gICAgZ2V0IHBlbmRpbmcoKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbCh0aGlzLl9wZW5kaW5ncyk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcnNlciwgbWF0ZXJpYWxQYXJhbXMpIHtcbiAgICAgICAgdGhpcy5fcGFyc2VyID0gcGFyc2VyO1xuICAgICAgICB0aGlzLl9tYXRlcmlhbFBhcmFtcyA9IG1hdGVyaWFsUGFyYW1zO1xuICAgICAgICB0aGlzLl9wZW5kaW5ncyA9IFtdO1xuICAgIH1cbiAgICBhc3NpZ25QcmltaXRpdmUoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fbWF0ZXJpYWxQYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzc2lnbkNvbG9yKGtleSwgdmFsdWUsIGNvbnZlcnRTUkdCVG9MaW5lYXIpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX21hdGVyaWFsUGFyYW1zW2tleV0gPSBuZXcgVEhSRUUuQ29sb3IoKS5mcm9tQXJyYXkodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGNvbnZlcnRTUkdCVG9MaW5lYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXRlcmlhbFBhcmFtc1trZXldLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25UZXh0dXJlKGtleSwgdGV4dHVyZSwgaXNDb2xvclRleHR1cmUpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSAoKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZXh0dXJlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5fcGFyc2VyLmFzc2lnblRleHR1cmUodGhpcy5fbWF0ZXJpYWxQYXJhbXMsIGtleSwgdGV4dHVyZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0NvbG9yVGV4dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGV4dHVyZUNvbG9yU3BhY2UodGhpcy5fbWF0ZXJpYWxQYXJhbXNba2V5XSwgJ3NyZ2InKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKSgpO1xuICAgICAgICAgICAgdGhpcy5fcGVuZGluZ3MucHVzaChwcm9taXNlKTtcbiAgICAgICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXNzaWduVGV4dHVyZUJ5SW5kZXgoa2V5LCB0ZXh0dXJlSW5kZXgsIGlzQ29sb3JUZXh0dXJlKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hc3NpZ25UZXh0dXJlKGtleSwgdGV4dHVyZUluZGV4ICE9IG51bGwgPyB7IGluZGV4OiB0ZXh0dXJlSW5kZXggfSA6IHVuZGVmaW5lZCwgaXNDb2xvclRleHR1cmUpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8qKlxuICogUG9zc2libGUgc3BlYyB2ZXJzaW9ucyBpdCByZWNvZ25pemVzLlxuICovXG5jb25zdCBQT1NTSUJMRV9TUEVDX1ZFUlNJT05TID0gbmV3IFNldChbJzEuMCcsICcxLjAtYmV0YSddKTtcbmNsYXNzIE1Ub29uTWF0ZXJpYWxMb2FkZXJQbHVnaW4ge1xuICAgIGdldCBuYW1lKCkge1xuICAgICAgICByZXR1cm4gTVRvb25NYXRlcmlhbExvYWRlclBsdWdpbi5FWFRFTlNJT05fTkFNRTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFyc2VyLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgICAgICB0aGlzLnJlbmRlck9yZGVyT2Zmc2V0ID0gKF9hID0gb3B0aW9ucy5yZW5kZXJPcmRlck9mZnNldCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMDtcbiAgICAgICAgdGhpcy52MENvbXBhdFNoYWRlID0gKF9iID0gb3B0aW9ucy52MENvbXBhdFNoYWRlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5kZWJ1Z01vZGUgPSAoX2MgPSBvcHRpb25zLmRlYnVnTW9kZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ25vbmUnO1xuICAgICAgICB0aGlzLl9tVG9vbk1hdGVyaWFsU2V0ID0gbmV3IFNldCgpO1xuICAgIH1cbiAgICBiZWZvcmVSb290KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdGhpcy5fcmVtb3ZlVW5saXRFeHRlbnNpb25JZk1Ub29uRXhpc3RzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhZnRlclJvb3QoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgZ2x0Zi51c2VyRGF0YS52cm1NVG9vbk1hdGVyaWFscyA9IEFycmF5LmZyb20odGhpcy5fbVRvb25NYXRlcmlhbFNldCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXRNYXRlcmlhbFR5cGUobWF0ZXJpYWxJbmRleCkge1xuICAgICAgICBjb25zdCB2MUV4dGVuc2lvbiA9IHRoaXMuX2dldE1Ub29uRXh0ZW5zaW9uKG1hdGVyaWFsSW5kZXgpO1xuICAgICAgICBpZiAodjFFeHRlbnNpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBNVG9vbk1hdGVyaWFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBleHRlbmRNYXRlcmlhbFBhcmFtcyhtYXRlcmlhbEluZGV4LCBtYXRlcmlhbFBhcmFtcykge1xuICAgICAgICBjb25zdCBleHRlbnNpb24gPSB0aGlzLl9nZXRNVG9vbkV4dGVuc2lvbihtYXRlcmlhbEluZGV4KTtcbiAgICAgICAgaWYgKGV4dGVuc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2V4dGVuZE1hdGVyaWFsUGFyYW1zKGV4dGVuc2lvbiwgbWF0ZXJpYWxQYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBsb2FkTWVzaChtZXNoSW5kZXgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VyID0gdGhpcy5wYXJzZXI7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gcGFyc2VyLmpzb247XG4gICAgICAgICAgICBjb25zdCBtZXNoRGVmID0gKF9hID0ganNvbi5tZXNoZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVttZXNoSW5kZXhdO1xuICAgICAgICAgICAgaWYgKG1lc2hEZWYgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTVRvb25NYXRlcmlhbExvYWRlclBsdWdpbjogQXR0ZW1wdCB0byB1c2UgbWVzaGVzWyR7bWVzaEluZGV4fV0gb2YgZ2xURiBidXQgdGhlIG1lc2ggZG9lc24ndCBleGlzdGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJpbWl0aXZlc0RlZiA9IG1lc2hEZWYucHJpbWl0aXZlcztcbiAgICAgICAgICAgIGNvbnN0IG1lc2hPckdyb3VwID0geWllbGQgcGFyc2VyLmxvYWRNZXNoKG1lc2hJbmRleCk7XG4gICAgICAgICAgICBpZiAocHJpbWl0aXZlc0RlZi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZXNoID0gbWVzaE9yR3JvdXA7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWxJbmRleCA9IHByaW1pdGl2ZXNEZWZbMF0ubWF0ZXJpYWw7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGVyaWFsSW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXR1cFByaW1pdGl2ZShtZXNoLCBtYXRlcmlhbEluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IG1lc2hPckdyb3VwO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJpbWl0aXZlc0RlZi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNoID0gZ3JvdXAuY2hpbGRyZW5baV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsSW5kZXggPSBwcmltaXRpdmVzRGVmW2ldLm1hdGVyaWFsO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWxJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXR1cFByaW1pdGl2ZShtZXNoLCBtYXRlcmlhbEluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtZXNoT3JHcm91cDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlbGV0ZSB1c2Ugb2YgYEtIUl9tYXRlcmlhbHNfdW5saXRgIGZyb20gaXRzIGBtYXRlcmlhbHNgIGlmIHRoZSBtYXRlcmlhbCBpcyB1c2luZyBNVG9vbi5cbiAgICAgKlxuICAgICAqIFNpbmNlIEdMVEZMb2FkZXIgaGF2ZSBzbyBtYW55IGhhcmRjb2RlZCBwcm9jZWR1cmUgcmVsYXRlZCB0byBgS0hSX21hdGVyaWFsc191bmxpdGBcbiAgICAgKiB3ZSBoYXZlIHRvIGRlbGV0ZSB0aGUgZXh0ZW5zaW9uIGJlZm9yZSB3ZSBzdGFydCB0byBwYXJzZSB0aGUgZ2xURi5cbiAgICAgKi9cbiAgICBfcmVtb3ZlVW5saXRFeHRlbnNpb25JZk1Ub29uRXhpc3RzKCkge1xuICAgICAgICBjb25zdCBwYXJzZXIgPSB0aGlzLnBhcnNlcjtcbiAgICAgICAgY29uc3QganNvbiA9IHBhcnNlci5qc29uO1xuICAgICAgICBjb25zdCBtYXRlcmlhbERlZnMgPSBqc29uLm1hdGVyaWFscztcbiAgICAgICAgbWF0ZXJpYWxEZWZzID09PSBudWxsIHx8IG1hdGVyaWFsRGVmcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWF0ZXJpYWxEZWZzLm1hcCgobWF0ZXJpYWxEZWYsIGlNYXRlcmlhbCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gdGhpcy5fZ2V0TVRvb25FeHRlbnNpb24oaU1hdGVyaWFsKTtcbiAgICAgICAgICAgIGlmIChleHRlbnNpb24gJiYgKChfYSA9IG1hdGVyaWFsRGVmLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsnS0hSX21hdGVyaWFsc191bmxpdCddKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBtYXRlcmlhbERlZi5leHRlbnNpb25zWydLSFJfbWF0ZXJpYWxzX3VubGl0J107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfZ2V0TVRvb25FeHRlbnNpb24obWF0ZXJpYWxJbmRleCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBwYXJzZXIgPSB0aGlzLnBhcnNlcjtcbiAgICAgICAgY29uc3QganNvbiA9IHBhcnNlci5qc29uO1xuICAgICAgICBjb25zdCBtYXRlcmlhbERlZiA9IChfYSA9IGpzb24ubWF0ZXJpYWxzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbbWF0ZXJpYWxJbmRleF07XG4gICAgICAgIGlmIChtYXRlcmlhbERlZiA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYE1Ub29uTWF0ZXJpYWxMb2FkZXJQbHVnaW46IEF0dGVtcHQgdG8gdXNlIG1hdGVyaWFsc1ske21hdGVyaWFsSW5kZXh9XSBvZiBnbFRGIGJ1dCB0aGUgbWF0ZXJpYWwgZG9lc24ndCBleGlzdGApO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleHRlbnNpb24gPSAoX2IgPSBtYXRlcmlhbERlZi5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2JbTVRvb25NYXRlcmlhbExvYWRlclBsdWdpbi5FWFRFTlNJT05fTkFNRV07XG4gICAgICAgIGlmIChleHRlbnNpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGVjVmVyc2lvbiA9IGV4dGVuc2lvbi5zcGVjVmVyc2lvbjtcbiAgICAgICAgaWYgKCFQT1NTSUJMRV9TUEVDX1ZFUlNJT05TLmhhcyhzcGVjVmVyc2lvbikpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgTVRvb25NYXRlcmlhbExvYWRlclBsdWdpbjogVW5rbm93biAke01Ub29uTWF0ZXJpYWxMb2FkZXJQbHVnaW4uRVhURU5TSU9OX05BTUV9IHNwZWNWZXJzaW9uIFwiJHtzcGVjVmVyc2lvbn1cImApO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXh0ZW5zaW9uO1xuICAgIH1cbiAgICBfZXh0ZW5kTWF0ZXJpYWxQYXJhbXMoZXh0ZW5zaW9uLCBtYXRlcmlhbFBhcmFtcykge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAvLyBSZW1vdmluZyBtYXRlcmlhbCBwYXJhbXMgdGhhdCBpcyBub3QgcmVxdWlyZWQgdG8gc3VwcmVzcyB3YXJuaW5ncy5cbiAgICAgICAgICAgIGRlbGV0ZSBtYXRlcmlhbFBhcmFtcy5tZXRhbG5lc3M7XG4gICAgICAgICAgICBkZWxldGUgbWF0ZXJpYWxQYXJhbXMucm91Z2huZXNzO1xuICAgICAgICAgICAgY29uc3QgYXNzaWduSGVscGVyID0gbmV3IEdMVEZNVG9vbk1hdGVyaWFsUGFyYW1zQXNzaWduSGVscGVyKHRoaXMucGFyc2VyLCBtYXRlcmlhbFBhcmFtcyk7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduUHJpbWl0aXZlKCd0cmFuc3BhcmVudFdpdGhaV3JpdGUnLCBleHRlbnNpb24udHJhbnNwYXJlbnRXaXRoWldyaXRlKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25Db2xvcignc2hhZGVDb2xvckZhY3RvcicsIGV4dGVuc2lvbi5zaGFkZUNvbG9yRmFjdG9yKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25UZXh0dXJlKCdzaGFkZU11bHRpcGx5VGV4dHVyZScsIGV4dGVuc2lvbi5zaGFkZU11bHRpcGx5VGV4dHVyZSwgdHJ1ZSk7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduUHJpbWl0aXZlKCdzaGFkaW5nU2hpZnRGYWN0b3InLCBleHRlbnNpb24uc2hhZGluZ1NoaWZ0RmFjdG9yKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25UZXh0dXJlKCdzaGFkaW5nU2hpZnRUZXh0dXJlJywgZXh0ZW5zaW9uLnNoYWRpbmdTaGlmdFRleHR1cmUsIHRydWUpO1xuICAgICAgICAgICAgYXNzaWduSGVscGVyLmFzc2lnblByaW1pdGl2ZSgnc2hhZGluZ1NoaWZ0VGV4dHVyZVNjYWxlJywgKF9hID0gZXh0ZW5zaW9uLnNoYWRpbmdTaGlmdFRleHR1cmUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zY2FsZSk7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduUHJpbWl0aXZlKCdzaGFkaW5nVG9vbnlGYWN0b3InLCBleHRlbnNpb24uc2hhZGluZ1Rvb255RmFjdG9yKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25QcmltaXRpdmUoJ2dpRXF1YWxpemF0aW9uRmFjdG9yJywgZXh0ZW5zaW9uLmdpRXF1YWxpemF0aW9uRmFjdG9yKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25Db2xvcignbWF0Y2FwRmFjdG9yJywgZXh0ZW5zaW9uLm1hdGNhcEZhY3Rvcik7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduVGV4dHVyZSgnbWF0Y2FwVGV4dHVyZScsIGV4dGVuc2lvbi5tYXRjYXBUZXh0dXJlLCB0cnVlKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25Db2xvcigncGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yJywgZXh0ZW5zaW9uLnBhcmFtZXRyaWNSaW1Db2xvckZhY3Rvcik7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduVGV4dHVyZSgncmltTXVsdGlwbHlUZXh0dXJlJywgZXh0ZW5zaW9uLnJpbU11bHRpcGx5VGV4dHVyZSwgdHJ1ZSk7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduUHJpbWl0aXZlKCdyaW1MaWdodGluZ01peEZhY3RvcicsIGV4dGVuc2lvbi5yaW1MaWdodGluZ01peEZhY3Rvcik7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduUHJpbWl0aXZlKCdwYXJhbWV0cmljUmltRnJlc25lbFBvd2VyRmFjdG9yJywgZXh0ZW5zaW9uLnBhcmFtZXRyaWNSaW1GcmVzbmVsUG93ZXJGYWN0b3IpO1xuICAgICAgICAgICAgYXNzaWduSGVscGVyLmFzc2lnblByaW1pdGl2ZSgncGFyYW1ldHJpY1JpbUxpZnRGYWN0b3InLCBleHRlbnNpb24ucGFyYW1ldHJpY1JpbUxpZnRGYWN0b3IpO1xuICAgICAgICAgICAgYXNzaWduSGVscGVyLmFzc2lnblByaW1pdGl2ZSgnb3V0bGluZVdpZHRoTW9kZScsIGV4dGVuc2lvbi5vdXRsaW5lV2lkdGhNb2RlKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25QcmltaXRpdmUoJ291dGxpbmVXaWR0aEZhY3RvcicsIGV4dGVuc2lvbi5vdXRsaW5lV2lkdGhGYWN0b3IpO1xuICAgICAgICAgICAgYXNzaWduSGVscGVyLmFzc2lnblRleHR1cmUoJ291dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZScsIGV4dGVuc2lvbi5vdXRsaW5lV2lkdGhNdWx0aXBseVRleHR1cmUsIGZhbHNlKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25Db2xvcignb3V0bGluZUNvbG9yRmFjdG9yJywgZXh0ZW5zaW9uLm91dGxpbmVDb2xvckZhY3Rvcik7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduUHJpbWl0aXZlKCdvdXRsaW5lTGlnaHRpbmdNaXhGYWN0b3InLCBleHRlbnNpb24ub3V0bGluZUxpZ2h0aW5nTWl4RmFjdG9yKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25UZXh0dXJlKCd1dkFuaW1hdGlvbk1hc2tUZXh0dXJlJywgZXh0ZW5zaW9uLnV2QW5pbWF0aW9uTWFza1RleHR1cmUsIGZhbHNlKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25QcmltaXRpdmUoJ3V2QW5pbWF0aW9uU2Nyb2xsWFNwZWVkRmFjdG9yJywgZXh0ZW5zaW9uLnV2QW5pbWF0aW9uU2Nyb2xsWFNwZWVkRmFjdG9yKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25QcmltaXRpdmUoJ3V2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yJywgZXh0ZW5zaW9uLnV2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yKTtcbiAgICAgICAgICAgIGFzc2lnbkhlbHBlci5hc3NpZ25QcmltaXRpdmUoJ3V2QW5pbWF0aW9uUm90YXRpb25TcGVlZEZhY3RvcicsIGV4dGVuc2lvbi51dkFuaW1hdGlvblJvdGF0aW9uU3BlZWRGYWN0b3IpO1xuICAgICAgICAgICAgYXNzaWduSGVscGVyLmFzc2lnblByaW1pdGl2ZSgndjBDb21wYXRTaGFkZScsIHRoaXMudjBDb21wYXRTaGFkZSk7XG4gICAgICAgICAgICBhc3NpZ25IZWxwZXIuYXNzaWduUHJpbWl0aXZlKCdkZWJ1Z01vZGUnLCB0aGlzLmRlYnVnTW9kZSk7XG4gICAgICAgICAgICB5aWVsZCBhc3NpZ25IZWxwZXIucGVuZGluZztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoaXMgd2lsbCBkbyB0d28gcHJvY2Vzc2VzIHRoYXQgaXMgcmVxdWlyZWQgdG8gcmVuZGVyIE1Ub29uIHByb3Blcmx5LlxuICAgICAqXG4gICAgICogLSBTZXQgcmVuZGVyIG9yZGVyXG4gICAgICogLSBHZW5lcmF0ZSBvdXRsaW5lXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVzaCBBIHRhcmdldCBHTFRGIHByaW1pdGl2ZVxuICAgICAqIEBwYXJhbSBtYXRlcmlhbEluZGV4IFRoZSBtYXRlcmlhbCBpbmRleCBvZiB0aGUgcHJpbWl0aXZlXG4gICAgICovXG4gICAgX3NldHVwUHJpbWl0aXZlKG1lc2gsIG1hdGVyaWFsSW5kZXgpIHtcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gdGhpcy5fZ2V0TVRvb25FeHRlbnNpb24obWF0ZXJpYWxJbmRleCk7XG4gICAgICAgIGlmIChleHRlbnNpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlck9yZGVyID0gdGhpcy5fcGFyc2VSZW5kZXJPcmRlcihleHRlbnNpb24pO1xuICAgICAgICAgICAgbWVzaC5yZW5kZXJPcmRlciA9IHJlbmRlck9yZGVyICsgdGhpcy5yZW5kZXJPcmRlck9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlT3V0bGluZShtZXNoKTtcbiAgICAgICAgICAgIHRoaXMuX2FkZFRvTWF0ZXJpYWxTZXQobWVzaCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGUgb3V0bGluZSBmb3IgdGhlIGdpdmVuIG1lc2gsIGlmIGl0IG5lZWRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG1lc2ggVGhlIHRhcmdldCBtZXNoXG4gICAgICovXG4gICAgX2dlbmVyYXRlT3V0bGluZShtZXNoKSB7XG4gICAgICAgIC8vIE9LLCBpdCdzIHRoZSBoYWNreSBwYXJ0LlxuICAgICAgICAvLyBXZSBhcmUgZ29pbmcgdG8gZHVwbGljYXRlIHRoZSBNVG9vbk1hdGVyaWFsIGZvciBvdXRsaW5lIHVzZS5cbiAgICAgICAgLy8gVGhlbiB3ZSBhcmUgZ29pbmcgdG8gY3JlYXRlIHR3byBnZW9tZXRyeSBncm91cHMgYW5kIHJlZmVyIHNhbWUgYnVmZmVyIGJ1dCBkaWZmZXJlbnQgbWF0ZXJpYWwuXG4gICAgICAgIC8vIEl0J3MgaG93IHdlIGRyYXcgdHdvIG1hdGVyaWFscyBhdCBvbmNlIHVzaW5nIGEgc2luZ2xlIG1lc2guXG4gICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgbWF0ZXJpYWwgaXMgbXRvb25cbiAgICAgICAgY29uc3Qgc3VyZmFjZU1hdGVyaWFsID0gbWVzaC5tYXRlcmlhbDtcbiAgICAgICAgaWYgKCEoc3VyZmFjZU1hdGVyaWFsIGluc3RhbmNlb2YgTVRvb25NYXRlcmlhbCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBjaGVjayB3aGV0aGVyIHdlIHJlYWxseSBoYXZlIHRvIHByZXBhcmUgb3V0bGluZSBvciBub3RcbiAgICAgICAgaWYgKHN1cmZhY2VNYXRlcmlhbC5vdXRsaW5lV2lkdGhNb2RlID09PSAnbm9uZScgfHwgc3VyZmFjZU1hdGVyaWFsLm91dGxpbmVXaWR0aEZhY3RvciA8PSAwLjApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBtYWtlIGl0cyBtYXRlcmlhbCBhbiBhcnJheVxuICAgICAgICBtZXNoLm1hdGVyaWFsID0gW3N1cmZhY2VNYXRlcmlhbF07IC8vIG1lc2gubWF0ZXJpYWwgaXMgZ3VhcmFudGVlZCB0byBiZSBhIE1hdGVyaWFsIGluIEdMVEZMb2FkZXJcbiAgICAgICAgLy8gZHVwbGljYXRlIHRoZSBtYXRlcmlhbCBmb3Igb3V0bGluZSB1c2VcbiAgICAgICAgY29uc3Qgb3V0bGluZU1hdGVyaWFsID0gc3VyZmFjZU1hdGVyaWFsLmNsb25lKCk7XG4gICAgICAgIG91dGxpbmVNYXRlcmlhbC5uYW1lICs9ICcgKE91dGxpbmUpJztcbiAgICAgICAgb3V0bGluZU1hdGVyaWFsLmlzT3V0bGluZSA9IHRydWU7XG4gICAgICAgIG91dGxpbmVNYXRlcmlhbC5zaWRlID0gVEhSRUUuQmFja1NpZGU7XG4gICAgICAgIG1lc2gubWF0ZXJpYWwucHVzaChvdXRsaW5lTWF0ZXJpYWwpO1xuICAgICAgICAvLyBtYWtlIHR3byBnZW9tZXRyeSBncm91cHMgb3V0IG9mIGEgc2FtZSBidWZmZXJcbiAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBtZXNoLmdlb21ldHJ5OyAvLyBtZXNoLmdlb21ldHJ5IGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBCdWZmZXJHZW9tZXRyeSBpbiBHTFRGTG9hZGVyXG4gICAgICAgIGNvbnN0IHByaW1pdGl2ZVZlcnRpY2VzID0gZ2VvbWV0cnkuaW5kZXggPyBnZW9tZXRyeS5pbmRleC5jb3VudCA6IGdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uY291bnQgLyAzO1xuICAgICAgICBnZW9tZXRyeS5hZGRHcm91cCgwLCBwcmltaXRpdmVWZXJ0aWNlcywgMCk7XG4gICAgICAgIGdlb21ldHJ5LmFkZEdyb3VwKDAsIHByaW1pdGl2ZVZlcnRpY2VzLCAxKTtcbiAgICB9XG4gICAgX2FkZFRvTWF0ZXJpYWxTZXQobWVzaCkge1xuICAgICAgICBjb25zdCBtYXRlcmlhbE9yTWF0ZXJpYWxzID0gbWVzaC5tYXRlcmlhbDtcbiAgICAgICAgY29uc3QgbWF0ZXJpYWxTZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG1hdGVyaWFsT3JNYXRlcmlhbHMpKSB7XG4gICAgICAgICAgICBtYXRlcmlhbE9yTWF0ZXJpYWxzLmZvckVhY2goKG1hdGVyaWFsKSA9PiBtYXRlcmlhbFNldC5hZGQobWF0ZXJpYWwpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1hdGVyaWFsU2V0LmFkZChtYXRlcmlhbE9yTWF0ZXJpYWxzKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG1hdGVyaWFsIG9mIG1hdGVyaWFsU2V0KSB7XG4gICAgICAgICAgICBpZiAobWF0ZXJpYWwgaW5zdGFuY2VvZiBNVG9vbk1hdGVyaWFsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbVRvb25NYXRlcmlhbFNldC5hZGQobWF0ZXJpYWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIF9wYXJzZVJlbmRlck9yZGVyKGV4dGVuc2lvbikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIC8vIHRyYW5zcGFyZW50V2l0aFpXcml0ZSByYW5nZXMgZnJvbSAwIHRvICs5XG4gICAgICAgIC8vIG1lcmUgdHJhbnNwYXJlbnQgcmFuZ2VzIGZyb20gLTkgdG8gMFxuICAgICAgICBjb25zdCBlbmFibGVkWldyaXRlID0gZXh0ZW5zaW9uLnRyYW5zcGFyZW50V2l0aFpXcml0ZTtcbiAgICAgICAgcmV0dXJuIChlbmFibGVkWldyaXRlID8gMCA6IDE5KSArICgoX2EgPSBleHRlbnNpb24ucmVuZGVyUXVldWVPZmZzZXROdW1iZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApO1xuICAgIH1cbn1cbk1Ub29uTWF0ZXJpYWxMb2FkZXJQbHVnaW4uRVhURU5TSU9OX05BTUUgPSAnVlJNQ19tYXRlcmlhbHNfbXRvb24nO1xuXG5leHBvcnQgeyBNVG9vbk1hdGVyaWFsLCBNVG9vbk1hdGVyaWFsRGVidWdNb2RlLCBNVG9vbk1hdGVyaWFsTG9hZGVyUGx1Z2luLCBNVG9vbk1hdGVyaWFsT3V0bGluZVdpZHRoTW9kZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkR2h5WldVdGRuSnRMVzFoZEdWeWFXRnNjeTF0ZEc5dmJpNXRiMlIxYkdVdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OTBjMnhwWWk5MGMyeHBZaTVsY3pZdWFuTWlMQ0l1TGk5emNtTXZUVlJ2YjI1TllYUmxjbWxoYkVSbFluVm5UVzlrWlM1MGN5SXNJaTR1TDNOeVl5OU5WRzl2YmsxaGRHVnlhV0ZzVDNWMGJHbHVaVmRwWkhSb1RXOWtaUzUwY3lJc0lpNHVMM055WXk5MWRHbHNjeTluWlhSVVpYaDBkWEpsUTI5c2IzSlRjR0ZqWlM1MGN5SXNJaTR1TDNOeVl5OU5WRzl2YmsxaGRHVnlhV0ZzTG5Seklpd2lMaTR2YzNKakwzVjBhV3h6TDNObGRGUmxlSFIxY21WRGIyeHZjbE53WVdObExuUnpJaXdpTGk0dmMzSmpMMGRNVkVaTlZHOXZiazFoZEdWeWFXRnNVR0Z5WVcxelFYTnphV2R1U0dWc2NHVnlMblJ6SWl3aUxpNHZjM0pqTDAxVWIyOXVUV0YwWlhKcFlXeE1iMkZrWlhKUWJIVm5hVzR1ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtseHlYRzVEYjNCNWNtbG5hSFFnS0dNcElFMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiaTVjY2x4dVhISmNibEJsY20xcGMzTnBiMjRnZEc4Z2RYTmxMQ0JqYjNCNUxDQnRiMlJwWm5rc0lHRnVaQzl2Y2lCa2FYTjBjbWxpZFhSbElIUm9hWE1nYzI5bWRIZGhjbVVnWm05eUlHRnVlVnh5WEc1d2RYSndiM05sSUhkcGRHZ2diM0lnZDJsMGFHOTFkQ0JtWldVZ2FYTWdhR1Z5WldKNUlHZHlZVzUwWldRdVhISmNibHh5WEc1VVNFVWdVMDlHVkZkQlVrVWdTVk1nVUZKUFZrbEVSVVFnWENKQlV5QkpVMXdpSUVGT1JDQlVTRVVnUVZWVVNFOVNJRVJKVTBOTVFVbE5VeUJCVEV3Z1YwRlNVa0ZPVkVsRlV5QlhTVlJJWEhKY2JsSkZSMEZTUkNCVVR5QlVTRWxUSUZOUFJsUlhRVkpGSUVsT1EweFZSRWxPUnlCQlRFd2dTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRJRTlHSUUxRlVrTklRVTVVUVVKSlRFbFVXVnh5WEc1QlRrUWdSa2xVVGtWVFV5NGdTVTRnVGs4Z1JWWkZUbFFnVTBoQlRFd2dWRWhGSUVGVlZFaFBVaUJDUlNCTVNVRkNURVVnUms5U0lFRk9XU0JUVUVWRFNVRk1MQ0JFU1ZKRlExUXNYSEpjYmtsT1JFbFNSVU5VTENCUFVpQkRUMDVUUlZGVlJVNVVTVUZNSUVSQlRVRkhSVk1nVDFJZ1FVNVpJRVJCVFVGSFJWTWdWMGhCVkZOUFJWWkZVaUJTUlZOVlRGUkpUa2NnUmxKUFRWeHlYRzVNVDFOVElFOUdJRlZUUlN3Z1JFRlVRU0JQVWlCUVVrOUdTVlJUTENCWFNFVlVTRVZTSUVsT0lFRk9JRUZEVkVsUFRpQlBSaUJEVDA1VVVrRkRWQ3dnVGtWSFRFbEhSVTVEUlNCUFVseHlYRzVQVkVoRlVpQlVUMUpVU1U5VlV5QkJRMVJKVDA0c0lFRlNTVk5KVGtjZ1QxVlVJRTlHSUU5U0lFbE9JRU5QVGs1RlExUkpUMDRnVjBsVVNDQlVTRVVnVlZORklFOVNYSEpjYmxCRlVrWlBVazFCVGtORklFOUdJRlJJU1ZNZ1UwOUdWRmRCVWtVdVhISmNiaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUlDb3ZYSEpjYmk4cUlHZHNiMkpoYkNCU1pXWnNaV04wTENCUWNtOXRhWE5sTENCVGRYQndjbVZ6YzJWa1JYSnliM0lzSUZONWJXSnZiQ0FxTDF4eVhHNWNjbHh1ZG1GeUlHVjRkR1Z1WkZOMFlYUnBZM01nUFNCbWRXNWpkR2x2Ymloa0xDQmlLU0I3WEhKY2JpQWdJQ0JsZUhSbGJtUlRkR0YwYVdOeklEMGdUMkpxWldOMExuTmxkRkJ5YjNSdmRIbHdaVTltSUh4OFhISmNiaUFnSUNBZ0lDQWdLSHNnWDE5d2NtOTBiMTlmT2lCYlhTQjlJR2x1YzNSaGJtTmxiMllnUVhKeVlYa2dKaVlnWm5WdVkzUnBiMjRnS0dRc0lHSXBJSHNnWkM1ZlgzQnliM1J2WDE4Z1BTQmlPeUI5S1NCOGZGeHlYRzRnSUNBZ0lDQWdJR1oxYm1OMGFXOXVJQ2hrTENCaUtTQjdJR1p2Y2lBb2RtRnlJSEFnYVc0Z1lpa2dhV1lnS0U5aWFtVmpkQzV3Y205MGIzUjVjR1V1YUdGelQzZHVVSEp2Y0dWeWRIa3VZMkZzYkNoaUxDQndLU2tnWkZ0d1hTQTlJR0piY0YwN0lIMDdYSEpjYmlBZ0lDQnlaWFIxY200Z1pYaDBaVzVrVTNSaGRHbGpjeWhrTENCaUtUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJWNGRHVnVaSE1vWkN3Z1lpa2dlMXh5WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJpSUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lnSmlZZ1lpQWhQVDBnYm5Wc2JDbGNjbHh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVEyeGhjM01nWlhoMFpXNWtjeUIyWVd4MVpTQmNJaUFySUZOMGNtbHVaeWhpS1NBcklGd2lJR2x6SUc1dmRDQmhJR052Ym5OMGNuVmpkRzl5SUc5eUlHNTFiR3hjSWlrN1hISmNiaUFnSUNCbGVIUmxibVJUZEdGMGFXTnpLR1FzSUdJcE8xeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z1gxOG9LU0I3SUhSb2FYTXVZMjl1YzNSeWRXTjBiM0lnUFNCa095QjlYSEpjYmlBZ0lDQmtMbkJ5YjNSdmRIbHdaU0E5SUdJZ1BUMDlJRzUxYkd3Z1B5QlBZbXBsWTNRdVkzSmxZWFJsS0dJcElEb2dLRjlmTG5CeWIzUnZkSGx3WlNBOUlHSXVjSEp2ZEc5MGVYQmxMQ0J1WlhjZ1gxOG9LU2s3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCMllYSWdYMTloYzNOcFoyNGdQU0JtZFc1amRHbHZiaWdwSUh0Y2NseHVJQ0FnSUY5ZllYTnphV2R1SUQwZ1QySnFaV04wTG1GemMybG5iaUI4ZkNCbWRXNWpkR2x2YmlCZlgyRnpjMmxuYmloMEtTQjdYSEpjYmlBZ0lDQWdJQ0FnWm05eUlDaDJZWElnY3l3Z2FTQTlJREVzSUc0Z1BTQmhjbWQxYldWdWRITXViR1Z1WjNSb095QnBJRHdnYmpzZ2FTc3JLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSE1nUFNCaGNtZDFiV1Z1ZEhOYmFWMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlIQWdhVzRnY3lrZ2FXWWdLRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2h6TENCd0tTa2dkRnR3WFNBOUlITmJjRjA3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBPMXh5WEc0Z0lDQWdmVnh5WEc0Z0lDQWdjbVYwZFhKdUlGOWZZWE56YVdkdUxtRndjR3g1S0hSb2FYTXNJR0Z5WjNWdFpXNTBjeWs3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgzSmxjM1FvY3l3Z1pTa2dlMXh5WEc0Z0lDQWdkbUZ5SUhRZ1BTQjdmVHRjY2x4dUlDQWdJR1p2Y2lBb2RtRnlJSEFnYVc0Z2N5a2dhV1lnS0U5aWFtVmpkQzV3Y205MGIzUjVjR1V1YUdGelQzZHVVSEp2Y0dWeWRIa3VZMkZzYkNoekxDQndLU0FtSmlCbExtbHVaR1Y0VDJZb2NDa2dQQ0F3S1Z4eVhHNGdJQ0FnSUNBZ0lIUmJjRjBnUFNCelczQmRPMXh5WEc0Z0lDQWdhV1lnS0hNZ0lUMGdiblZzYkNBbUppQjBlWEJsYjJZZ1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVVM2x0WW05c2N5QTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtWeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJR2tnUFNBd0xDQndJRDBnVDJKcVpXTjBMbWRsZEU5M2JsQnliM0JsY25SNVUzbHRZbTlzY3loektUc2dhU0E4SUhBdWJHVnVaM1JvT3lCcEt5c3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dVdWFXNWtaWGhQWmlod1cybGRLU0E4SURBZ0ppWWdUMkpxWldOMExuQnliM1J2ZEhsd1pTNXdjbTl3WlhKMGVVbHpSVzUxYldWeVlXSnNaUzVqWVd4c0tITXNJSEJiYVYwcEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRnR3VzJsZFhTQTlJSE5iY0Z0cFhWMDdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnY21WMGRYSnVJSFE3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyUmxZMjl5WVhSbEtHUmxZMjl5WVhSdmNuTXNJSFJoY21kbGRDd2dhMlY1TENCa1pYTmpLU0I3WEhKY2JpQWdJQ0IyWVhJZ1l5QTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZ3NJSElnUFNCaklEd2dNeUEvSUhSaGNtZGxkQ0E2SUdSbGMyTWdQVDA5SUc1MWJHd2dQeUJrWlhOaklEMGdUMkpxWldOMExtZGxkRTkzYmxCeWIzQmxjblI1UkdWelkzSnBjSFJ2Y2loMFlYSm5aWFFzSUd0bGVTa2dPaUJrWlhOakxDQmtPMXh5WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJTWldac1pXTjBJRDA5UFNCY0ltOWlhbVZqZEZ3aUlDWW1JSFI1Y0dWdlppQlNaV1pzWldOMExtUmxZMjl5WVhSbElEMDlQU0JjSW1aMWJtTjBhVzl1WENJcElISWdQU0JTWldac1pXTjBMbVJsWTI5eVlYUmxLR1JsWTI5eVlYUnZjbk1zSUhSaGNtZGxkQ3dnYTJWNUxDQmtaWE5qS1R0Y2NseHVJQ0FnSUdWc2MyVWdabTl5SUNoMllYSWdhU0E5SUdSbFkyOXlZWFJ2Y25NdWJHVnVaM1JvSUMwZ01Uc2dhU0ErUFNBd095QnBMUzBwSUdsbUlDaGtJRDBnWkdWamIzSmhkRzl5YzF0cFhTa2djaUE5SUNoaklEd2dNeUEvSUdRb2Npa2dPaUJqSUQ0Z015QS9JR1FvZEdGeVoyVjBMQ0JyWlhrc0lISXBJRG9nWkNoMFlYSm5aWFFzSUd0bGVTa3BJSHg4SUhJN1hISmNiaUFnSUNCeVpYUjFjbTRnWXlBK0lETWdKaVlnY2lBbUppQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvZEdGeVoyVjBMQ0JyWlhrc0lISXBMQ0J5TzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXdZWEpoYlNod1lYSmhiVWx1WkdWNExDQmtaV052Y21GMGIzSXBJSHRjY2x4dUlDQWdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpQW9kR0Z5WjJWMExDQnJaWGtwSUhzZ1pHVmpiM0poZEc5eUtIUmhjbWRsZEN3Z2EyVjVMQ0J3WVhKaGJVbHVaR1Y0S1RzZ2ZWeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTlsYzBSbFkyOXlZWFJsS0dOMGIzSXNJR1JsYzJOeWFYQjBiM0pKYml3Z1pHVmpiM0poZEc5eWN5d2dZMjl1ZEdWNGRFbHVMQ0JwYm1sMGFXRnNhWHBsY25Nc0lHVjRkSEpoU1c1cGRHbGhiR2w2WlhKektTQjdYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQmhZMk5sY0hRb1ppa2dleUJwWmlBb1ppQWhQVDBnZG05cFpDQXdJQ1ltSUhSNWNHVnZaaUJtSUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSkdkVzVqZEdsdmJpQmxlSEJsWTNSbFpGd2lLVHNnY21WMGRYSnVJR1k3SUgxY2NseHVJQ0FnSUhaaGNpQnJhVzVrSUQwZ1kyOXVkR1Y0ZEVsdUxtdHBibVFzSUd0bGVTQTlJR3RwYm1RZ1BUMDlJRndpWjJWMGRHVnlYQ0lnUHlCY0ltZGxkRndpSURvZ2EybHVaQ0E5UFQwZ1hDSnpaWFIwWlhKY0lpQS9JRndpYzJWMFhDSWdPaUJjSW5aaGJIVmxYQ0k3WEhKY2JpQWdJQ0IyWVhJZ2RHRnlaMlYwSUQwZ0lXUmxjMk55YVhCMGIzSkpiaUFtSmlCamRHOXlJRDhnWTI5dWRHVjRkRWx1VzF3aWMzUmhkR2xqWENKZElEOGdZM1J2Y2lBNklHTjBiM0l1Y0hKdmRHOTBlWEJsSURvZ2JuVnNiRHRjY2x4dUlDQWdJSFpoY2lCa1pYTmpjbWx3ZEc5eUlEMGdaR1Z6WTNKcGNIUnZja2x1SUh4OElDaDBZWEpuWlhRZ1B5QlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5S0hSaGNtZGxkQ3dnWTI5dWRHVjRkRWx1TG01aGJXVXBJRG9nZTMwcE8xeHlYRzRnSUNBZ2RtRnlJRjhzSUdSdmJtVWdQU0JtWVd4elpUdGNjbHh1SUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0JrWldOdmNtRjBiM0p6TG14bGJtZDBhQ0F0SURFN0lHa2dQajBnTURzZ2FTMHRLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR052Ym5SbGVIUWdQU0I3ZlR0Y2NseHVJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQndJR2x1SUdOdmJuUmxlSFJKYmlrZ1kyOXVkR1Y0ZEZ0d1hTQTlJSEFnUFQwOUlGd2lZV05qWlhOelhDSWdQeUI3ZlNBNklHTnZiblJsZUhSSmJsdHdYVHRjY2x4dUlDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCd0lHbHVJR052Ym5SbGVIUkpiaTVoWTJObGMzTXBJR052Ym5SbGVIUXVZV05qWlhOelczQmRJRDBnWTI5dWRHVjRkRWx1TG1GalkyVnpjMXR3WFR0Y2NseHVJQ0FnSUNBZ0lDQmpiMjUwWlhoMExtRmtaRWx1YVhScFlXeHBlbVZ5SUQwZ1puVnVZM1JwYjI0Z0tHWXBJSHNnYVdZZ0tHUnZibVVwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSkRZVzV1YjNRZ1lXUmtJR2x1YVhScFlXeHBlbVZ5Y3lCaFpuUmxjaUJrWldOdmNtRjBhVzl1SUdoaGN5QmpiMjF3YkdWMFpXUmNJaWs3SUdWNGRISmhTVzVwZEdsaGJHbDZaWEp6TG5CMWMyZ29ZV05qWlhCMEtHWWdmSHdnYm5Wc2JDa3BPeUI5TzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0FvTUN3Z1pHVmpiM0poZEc5eWMxdHBYU2tvYTJsdVpDQTlQVDBnWENKaFkyTmxjM052Y2x3aUlEOGdleUJuWlhRNklHUmxjMk55YVhCMGIzSXVaMlYwTENCelpYUTZJR1JsYzJOeWFYQjBiM0l1YzJWMElIMGdPaUJrWlhOamNtbHdkRzl5VzJ0bGVWMHNJR052Ym5SbGVIUXBPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQmNJbUZqWTJWemMyOXlYQ0lwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISmxjM1ZzZENBOVBUMGdkbTlwWkNBd0tTQmpiMjUwYVc1MVpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEpsYzNWc2RDQTlQVDBnYm5Wc2JDQjhmQ0IwZVhCbGIyWWdjbVZ6ZFd4MElDRTlQU0JjSW05aWFtVmpkRndpS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lUMkpxWldOMElHVjRjR1ZqZEdWa1hDSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFF1WjJWMEtTa2daR1Z6WTNKcGNIUnZjaTVuWlhRZ1BTQmZPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFF1YzJWMEtTa2daR1Z6WTNKcGNIUnZjaTV6WlhRZ1BTQmZPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFF1YVc1cGRDa3BJR2x1YVhScFlXeHBlbVZ5Y3k1MWJuTm9hV1owS0Y4cE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoZklEMGdZV05qWlhCMEtISmxjM1ZzZENrcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RwYm1RZ1BUMDlJRndpWm1sbGJHUmNJaWtnYVc1cGRHbGhiR2w2WlhKekxuVnVjMmhwWm5Rb1h5azdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnWkdWelkzSnBjSFJ2Y2x0clpYbGRJRDBnWHp0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQnBaaUFvZEdGeVoyVjBLU0JQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb2RHRnlaMlYwTENCamIyNTBaWGgwU1c0dWJtRnRaU3dnWkdWelkzSnBjSFJ2Y2lrN1hISmNiaUFnSUNCa2IyNWxJRDBnZEhKMVpUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDNKMWJrbHVhWFJwWVd4cGVtVnljeWgwYUdselFYSm5MQ0JwYm1sMGFXRnNhWHBsY25Nc0lIWmhiSFZsS1NCN1hISmNiaUFnSUNCMllYSWdkWE5sVm1Gc2RXVWdQU0JoY21kMWJXVnVkSE11YkdWdVozUm9JRDRnTWp0Y2NseHVJQ0FnSUdadmNpQW9kbUZ5SUdrZ1BTQXdPeUJwSUR3Z2FXNXBkR2xoYkdsNlpYSnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZzZFdVZ1BTQjFjMlZXWVd4MVpTQS9JR2x1YVhScFlXeHBlbVZ5YzF0cFhTNWpZV3hzS0hSb2FYTkJjbWNzSUhaaGJIVmxLU0E2SUdsdWFYUnBZV3hwZW1WeWMxdHBYUzVqWVd4c0tIUm9hWE5CY21jcE8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ2NtVjBkWEp1SUhWelpWWmhiSFZsSUQ4Z2RtRnNkV1VnT2lCMmIybGtJREE3WEhKY2JuMDdYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXdjbTl3UzJWNUtIZ3BJSHRjY2x4dUlDQWdJSEpsZEhWeWJpQjBlWEJsYjJZZ2VDQTlQVDBnWENKemVXMWliMnhjSWlBL0lIZ2dPaUJjSWx3aUxtTnZibU5oZENoNEtUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDNObGRFWjFibU4wYVc5dVRtRnRaU2htTENCdVlXMWxMQ0J3Y21WbWFYZ3BJSHRjY2x4dUlDQWdJR2xtSUNoMGVYQmxiMllnYm1GdFpTQTlQVDBnWENKemVXMWliMnhjSWlrZ2JtRnRaU0E5SUc1aGJXVXVaR1Z6WTNKcGNIUnBiMjRnUHlCY0lsdGNJaTVqYjI1allYUW9ibUZ0WlM1a1pYTmpjbWx3ZEdsdmJpd2dYQ0pkWENJcElEb2dYQ0pjSWp0Y2NseHVJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1ppd2dYQ0p1WVcxbFhDSXNJSHNnWTI5dVptbG5kWEpoWW14bE9pQjBjblZsTENCMllXeDFaVG9nY0hKbFptbDRJRDhnWENKY0lpNWpiMjVqWVhRb2NISmxabWw0TENCY0lpQmNJaXdnYm1GdFpTa2dPaUJ1WVcxbElIMHBPMXh5WEc1OU8xeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmJXVjBZV1JoZEdFb2JXVjBZV1JoZEdGTFpYa3NJRzFsZEdGa1lYUmhWbUZzZFdVcElIdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdVbVZtYkdWamRDQTlQVDBnWENKdlltcGxZM1JjSWlBbUppQjBlWEJsYjJZZ1VtVm1iR1ZqZEM1dFpYUmhaR0YwWVNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCeVpYUjFjbTRnVW1WbWJHVmpkQzV0WlhSaFpHRjBZU2h0WlhSaFpHRjBZVXRsZVN3Z2JXVjBZV1JoZEdGV1lXeDFaU2s3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyRjNZV2wwWlhJb2RHaHBjMEZ5Wnl3Z1gyRnlaM1Z0Wlc1MGN5d2dVQ3dnWjJWdVpYSmhkRzl5S1NCN1hISmNiaUFnSUNCbWRXNWpkR2x2YmlCaFpHOXdkQ2gyWVd4MVpTa2dleUJ5WlhSMWNtNGdkbUZzZFdVZ2FXNXpkR0Z1WTJWdlppQlFJRDhnZG1Gc2RXVWdPaUJ1WlhjZ1VDaG1kVzVqZEdsdmJpQW9jbVZ6YjJ4MlpTa2dleUJ5WlhOdmJIWmxLSFpoYkhWbEtUc2dmU2s3SUgxY2NseHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ0tGQWdmSHdnS0ZBZ1BTQlFjbTl0YVhObEtTa29ablZ1WTNScGIyNGdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dlMXh5WEc0Z0lDQWdJQ0FnSUdaMWJtTjBhVzl1SUdaMWJHWnBiR3hsWkNoMllXeDFaU2tnZXlCMGNua2dleUJ6ZEdWd0tHZGxibVZ5WVhSdmNpNXVaWGgwS0haaGJIVmxLU2s3SUgwZ1kyRjBZMmdnS0dVcElIc2djbVZxWldOMEtHVXBPeUI5SUgxY2NseHVJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQnlaV3BsWTNSbFpDaDJZV3gxWlNrZ2V5QjBjbmtnZXlCemRHVndLR2RsYm1WeVlYUnZjbHRjSW5Sb2NtOTNYQ0pkS0haaGJIVmxLU2s3SUgwZ1kyRjBZMmdnS0dVcElIc2djbVZxWldOMEtHVXBPeUI5SUgxY2NseHVJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQnpkR1Z3S0hKbGMzVnNkQ2tnZXlCeVpYTjFiSFF1Wkc5dVpTQS9JSEpsYzI5c2RtVW9jbVZ6ZFd4MExuWmhiSFZsS1NBNklHRmtiM0IwS0hKbGMzVnNkQzUyWVd4MVpTa3VkR2hsYmlobWRXeG1hV3hzWldRc0lISmxhbVZqZEdWa0tUc2dmVnh5WEc0Z0lDQWdJQ0FnSUhOMFpYQW9LR2RsYm1WeVlYUnZjaUE5SUdkbGJtVnlZWFJ2Y2k1aGNIQnNlU2gwYUdselFYSm5MQ0JmWVhKbmRXMWxiblJ6SUh4OElGdGRLU2t1Ym1WNGRDZ3BLVHRjY2x4dUlDQWdJSDBwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOW5aVzVsY21GMGIzSW9kR2hwYzBGeVp5d2dZbTlrZVNrZ2UxeHlYRzRnSUNBZ2RtRnlJRjhnUFNCN0lHeGhZbVZzT2lBd0xDQnpaVzUwT2lCbWRXNWpkR2x2YmlncElIc2dhV1lnS0hSYk1GMGdKaUF4S1NCMGFISnZkeUIwV3pGZE95QnlaWFIxY200Z2RGc3hYVHNnZlN3Z2RISjVjem9nVzEwc0lHOXdjem9nVzEwZ2ZTd2daaXdnZVN3Z2RDd2daenRjY2x4dUlDQWdJSEpsZEhWeWJpQm5JRDBnZXlCdVpYaDBPaUIyWlhKaUtEQXBMQ0JjSW5Sb2NtOTNYQ0k2SUhabGNtSW9NU2tzSUZ3aWNtVjBkWEp1WENJNklIWmxjbUlvTWlrZ2ZTd2dkSGx3Wlc5bUlGTjViV0p2YkNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUNZbUlDaG5XMU41YldKdmJDNXBkR1Z5WVhSdmNsMGdQU0JtZFc1amRHbHZiaWdwSUhzZ2NtVjBkWEp1SUhSb2FYTTdJSDBwTENCbk8xeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2RtVnlZaWh1S1NCN0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlBb2Rpa2dleUJ5WlhSMWNtNGdjM1JsY0NoYmJpd2dkbDBwT3lCOU95QjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQnpkR1Z3S0c5d0tTQjdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHWXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKSFpXNWxjbUYwYjNJZ2FYTWdZV3h5WldGa2VTQmxlR1ZqZFhScGJtY3VYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNobklDWW1JQ2huSUQwZ01Dd2diM0JiTUYwZ0ppWWdLRjhnUFNBd0tTa3NJRjhwSUhSeWVTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htSUQwZ01Td2dlU0FtSmlBb2RDQTlJRzl3V3pCZElDWWdNaUEvSUhsYlhDSnlaWFIxY201Y0lsMGdPaUJ2Y0Zzd1hTQS9JSGxiWENKMGFISnZkMXdpWFNCOGZDQW9LSFFnUFNCNVcxd2ljbVYwZFhKdVhDSmRLU0FtSmlCMExtTmhiR3dvZVNrc0lEQXBJRG9nZVM1dVpYaDBLU0FtSmlBaEtIUWdQU0IwTG1OaGJHd29lU3dnYjNCYk1WMHBLUzVrYjI1bEtTQnlaWFIxY200Z2REdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSGtnUFNBd0xDQjBLU0J2Y0NBOUlGdHZjRnN3WFNBbUlESXNJSFF1ZG1Gc2RXVmRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHOXdXekJkS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURBNklHTmhjMlVnTVRvZ2RDQTlJRzl3T3lCaWNtVmhhenRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdORG9nWHk1c1lXSmxiQ3NyT3lCeVpYUjFjbTRnZXlCMllXeDFaVG9nYjNCYk1WMHNJR1J2Ym1VNklHWmhiSE5sSUgwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURVNklGOHViR0ZpWld3ckt6c2dlU0E5SUc5d1d6RmRPeUJ2Y0NBOUlGc3dYVHNnWTI5dWRHbHVkV1U3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRGM2SUc5d0lEMGdYeTV2Y0hNdWNHOXdLQ2s3SUY4dWRISjVjeTV3YjNBb0tUc2dZMjl1ZEdsdWRXVTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doS0hRZ1BTQmZMblJ5ZVhNc0lIUWdQU0IwTG14bGJtZDBhQ0ErSURBZ0ppWWdkRnQwTG14bGJtZDBhQ0F0SURGZEtTQW1KaUFvYjNCYk1GMGdQVDA5SURZZ2ZId2diM0JiTUYwZ1BUMDlJRElwS1NCN0lGOGdQU0F3T3lCamIyNTBhVzUxWlRzZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHZjRnN3WFNBOVBUMGdNeUFtSmlBb0lYUWdmSHdnS0c5d1d6RmRJRDRnZEZzd1hTQW1KaUJ2Y0ZzeFhTQThJSFJiTTEwcEtTa2dleUJmTG14aFltVnNJRDBnYjNCYk1WMDdJR0p5WldGck95QjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzl3V3pCZElEMDlQU0EySUNZbUlGOHViR0ZpWld3Z1BDQjBXekZkS1NCN0lGOHViR0ZpWld3Z1BTQjBXekZkT3lCMElEMGdiM0E3SUdKeVpXRnJPeUI5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hRZ0ppWWdYeTVzWVdKbGJDQThJSFJiTWwwcElIc2dYeTVzWVdKbGJDQTlJSFJiTWwwN0lGOHViM0J6TG5CMWMyZ29iM0FwT3lCaWNtVmhhenNnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMFd6SmRLU0JmTG05d2N5NXdiM0FvS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JmTG5SeWVYTXVjRzl3S0NrN0lHTnZiblJwYm5WbE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUc5d0lEMGdZbTlrZVM1allXeHNLSFJvYVhOQmNtY3NJRjhwTzF4eVhHNGdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHNnYjNBZ1BTQmJOaXdnWlYwN0lIa2dQU0F3T3lCOUlHWnBibUZzYkhrZ2V5Qm1JRDBnZENBOUlEQTdJSDFjY2x4dUlDQWdJQ0FnSUNCcFppQW9iM0JiTUYwZ0ppQTFLU0IwYUhKdmR5QnZjRnN4WFRzZ2NtVjBkWEp1SUhzZ2RtRnNkV1U2SUc5d1d6QmRJRDhnYjNCYk1WMGdPaUIyYjJsa0lEQXNJR1J2Ym1VNklIUnlkV1VnZlR0Y2NseHVJQ0FnSUgxY2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElIWmhjaUJmWDJOeVpXRjBaVUpwYm1ScGJtY2dQU0JQWW1wbFkzUXVZM0psWVhSbElEOGdLR1oxYm1OMGFXOXVLRzhzSUcwc0lHc3NJR3N5S1NCN1hISmNiaUFnSUNCcFppQW9heklnUFQwOUlIVnVaR1ZtYVc1bFpDa2dheklnUFNCck8xeHlYRzRnSUNBZ2RtRnlJR1JsYzJNZ1BTQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5S0cwc0lHc3BPMXh5WEc0Z0lDQWdhV1lnS0NGa1pYTmpJSHg4SUNoY0ltZGxkRndpSUdsdUlHUmxjMk1nUHlBaGJTNWZYMlZ6VFc5a2RXeGxJRG9nWkdWell5NTNjbWwwWVdKc1pTQjhmQ0JrWlhOakxtTnZibVpwWjNWeVlXSnNaU2twSUh0Y2NseHVJQ0FnSUNBZ0lDQmtaWE5qSUQwZ2V5QmxiblZ0WlhKaFlteGxPaUIwY25WbExDQm5aWFE2SUdaMWJtTjBhVzl1S0NrZ2V5QnlaWFIxY200Z2JWdHJYVHNnZlNCOU8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRzhzSUdzeUxDQmtaWE5qS1R0Y2NseHVmU2tnT2lBb1puVnVZM1JwYjI0b2J5d2diU3dnYXl3Z2F6SXBJSHRjY2x4dUlDQWdJR2xtSUNock1pQTlQVDBnZFc1a1pXWnBibVZrS1NCck1pQTlJR3M3WEhKY2JpQWdJQ0J2VzJzeVhTQTlJRzFiYTEwN1hISmNibjBwTzF4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWlhod2IzSjBVM1JoY2lodExDQnZLU0I3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJ3SUdsdUlHMHBJR2xtSUNod0lDRTlQU0JjSW1SbFptRjFiSFJjSWlBbUppQWhUMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLRzhzSUhBcEtTQmZYMk55WldGMFpVSnBibVJwYm1jb2J5d2diU3dnY0NrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM1poYkhWbGN5aHZLU0I3WEhKY2JpQWdJQ0IyWVhJZ2N5QTlJSFI1Y0dWdlppQlRlVzFpYjJ3Z1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBbUppQlRlVzFpYjJ3dWFYUmxjbUYwYjNJc0lHMGdQU0J6SUNZbUlHOWJjMTBzSUdrZ1BTQXdPMXh5WEc0Z0lDQWdhV1lnS0cwcElISmxkSFZ5YmlCdExtTmhiR3dvYnlrN1hISmNiaUFnSUNCcFppQW9ieUFtSmlCMGVYQmxiMllnYnk1c1pXNW5kR2dnUFQwOUlGd2liblZ0WW1WeVhDSXBJSEpsZEhWeWJpQjdYSEpjYmlBZ0lDQWdJQ0FnYm1WNGREb2dablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2J5QW1KaUJwSUQ0OUlHOHViR1Z1WjNSb0tTQnZJRDBnZG05cFpDQXdPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjJZV3gxWlRvZ2J5QW1KaUJ2VzJrcksxMHNJR1J2Ym1VNklDRnZJSDA3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9jeUEvSUZ3aVQySnFaV04wSUdseklHNXZkQ0JwZEdWeVlXSnNaUzVjSWlBNklGd2lVM2x0WW05c0xtbDBaWEpoZEc5eUlHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmY21WaFpDaHZMQ0J1S1NCN1hISmNiaUFnSUNCMllYSWdiU0E5SUhSNWNHVnZaaUJUZVcxaWIyd2dQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQW1KaUJ2VzFONWJXSnZiQzVwZEdWeVlYUnZjbDA3WEhKY2JpQWdJQ0JwWmlBb0lXMHBJSEpsZEhWeWJpQnZPMXh5WEc0Z0lDQWdkbUZ5SUdrZ1BTQnRMbU5oYkd3b2J5a3NJSElzSUdGeUlEMGdXMTBzSUdVN1hISmNiaUFnSUNCMGNua2dlMXh5WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2dvYmlBOVBUMGdkbTlwWkNBd0lIeDhJRzR0TFNBK0lEQXBJQ1ltSUNFb2NpQTlJR2t1Ym1WNGRDZ3BLUzVrYjI1bEtTQmhjaTV3ZFhOb0tISXVkbUZzZFdVcE8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ1kyRjBZMmdnS0dWeWNtOXlLU0I3SUdVZ1BTQjdJR1Z5Y205eU9pQmxjbkp2Y2lCOU95QjlYSEpjYmlBZ0lDQm1hVzVoYkd4NUlIdGNjbHh1SUNBZ0lDQWdJQ0IwY25rZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jaUFtSmlBaGNpNWtiMjVsSUNZbUlDaHRJRDBnYVZ0Y0luSmxkSFZ5Ymx3aVhTa3BJRzB1WTJGc2JDaHBLVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdabWx1WVd4c2VTQjdJR2xtSUNobEtTQjBhSEp2ZHlCbExtVnljbTl5T3lCOVhISmNiaUFnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnWVhJN1hISmNibjFjY2x4dVhISmNiaThxS2lCQVpHVndjbVZqWVhSbFpDQXFMMXh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5emNISmxZV1FvS1NCN1hISmNiaUFnSUNCbWIzSWdLSFpoY2lCaGNpQTlJRnRkTENCcElEMGdNRHNnYVNBOElHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnN0lHa3JLeWxjY2x4dUlDQWdJQ0FnSUNCaGNpQTlJR0Z5TG1OdmJtTmhkQ2hmWDNKbFlXUW9ZWEpuZFcxbGJuUnpXMmxkS1NrN1hISmNiaUFnSUNCeVpYUjFjbTRnWVhJN1hISmNibjFjY2x4dVhISmNiaThxS2lCQVpHVndjbVZqWVhSbFpDQXFMMXh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5emNISmxZV1JCY25KaGVYTW9LU0I3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJ6SUQwZ01Dd2dhU0E5SURBc0lHbHNJRDBnWVhKbmRXMWxiblJ6TG14bGJtZDBhRHNnYVNBOElHbHNPeUJwS3lzcElITWdLejBnWVhKbmRXMWxiblJ6VzJsZExteGxibWQwYUR0Y2NseHVJQ0FnSUdadmNpQW9kbUZ5SUhJZ1BTQkJjbkpoZVNoektTd2dheUE5SURBc0lHa2dQU0F3T3lCcElEd2dhV3c3SUdrckt5bGNjbHh1SUNBZ0lDQWdJQ0JtYjNJZ0tIWmhjaUJoSUQwZ1lYSm5kVzFsYm5SelcybGRMQ0JxSUQwZ01Dd2dhbXdnUFNCaExteGxibWQwYURzZ2FpQThJR3BzT3lCcUt5c3NJR3NyS3lsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY2x0clhTQTlJR0ZiYWwwN1hISmNiaUFnSUNCeVpYUjFjbTRnY2p0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZjM0J5WldGa1FYSnlZWGtvZEc4c0lHWnliMjBzSUhCaFkyc3BJSHRjY2x4dUlDQWdJR2xtSUNod1lXTnJJSHg4SUdGeVozVnRaVzUwY3k1c1pXNW5kR2dnUFQwOUlESXBJR1p2Y2lBb2RtRnlJR2tnUFNBd0xDQnNJRDBnWm5KdmJTNXNaVzVuZEdnc0lHRnlPeUJwSUR3Z2JEc2dhU3NyS1NCN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0dGeUlIeDhJQ0VvYVNCcGJpQm1jbTl0S1NrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV0Z5S1NCaGNpQTlJRUZ5Y21GNUxuQnliM1J2ZEhsd1pTNXpiR2xqWlM1allXeHNLR1p5YjIwc0lEQXNJR2twTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JoY2x0cFhTQTlJR1p5YjIxYmFWMDdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnY21WMGRYSnVJSFJ2TG1OdmJtTmhkQ2hoY2lCOGZDQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWMyeHBZMlV1WTJGc2JDaG1jbTl0S1NrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMkYzWVdsMEtIWXBJSHRjY2x4dUlDQWdJSEpsZEhWeWJpQjBhR2x6SUdsdWMzUmhibU5sYjJZZ1gxOWhkMkZwZENBL0lDaDBhR2x6TG5ZZ1BTQjJMQ0IwYUdsektTQTZJRzVsZHlCZlgyRjNZV2wwS0hZcE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTloYzNsdVkwZGxibVZ5WVhSdmNpaDBhR2x6UVhKbkxDQmZZWEpuZFcxbGJuUnpMQ0JuWlc1bGNtRjBiM0lwSUh0Y2NseHVJQ0FnSUdsbUlDZ2hVM2x0WW05c0xtRnplVzVqU1hSbGNtRjBiM0lwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSlRlVzFpYjJ3dVlYTjVibU5KZEdWeVlYUnZjaUJwY3lCdWIzUWdaR1ZtYVc1bFpDNWNJaWs3WEhKY2JpQWdJQ0IyWVhJZ1p5QTlJR2RsYm1WeVlYUnZjaTVoY0hCc2VTaDBhR2x6UVhKbkxDQmZZWEpuZFcxbGJuUnpJSHg4SUZ0ZEtTd2dhU3dnY1NBOUlGdGRPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHa2dQU0I3ZlN3Z2RtVnlZaWhjSW01bGVIUmNJaWtzSUhabGNtSW9YQ0owYUhKdmQxd2lLU3dnZG1WeVlpaGNJbkpsZEhWeWJsd2lLU3dnYVZ0VGVXMWliMnd1WVhONWJtTkpkR1Z5WVhSdmNsMGdQU0JtZFc1amRHbHZiaUFvS1NCN0lISmxkSFZ5YmlCMGFHbHpPeUI5TENCcE8xeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2RtVnlZaWh1S1NCN0lHbG1JQ2huVzI1ZEtTQnBXMjVkSUQwZ1puVnVZM1JwYjI0Z0tIWXBJSHNnY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0daMWJtTjBhVzl1SUNoaExDQmlLU0I3SUhFdWNIVnphQ2hiYml3Z2Rpd2dZU3dnWWwwcElENGdNU0I4ZkNCeVpYTjFiV1VvYml3Z2RpazdJSDBwT3lCOU95QjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQnlaWE4xYldVb2Jpd2dkaWtnZXlCMGNua2dleUJ6ZEdWd0tHZGJibDBvZGlrcE95QjlJR05oZEdOb0lDaGxLU0I3SUhObGRIUnNaU2h4V3pCZFd6TmRMQ0JsS1RzZ2ZTQjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQnpkR1Z3S0hJcElIc2djaTUyWVd4MVpTQnBibk4wWVc1alpXOW1JRjlmWVhkaGFYUWdQeUJRY205dGFYTmxMbkpsYzI5c2RtVW9jaTUyWVd4MVpTNTJLUzUwYUdWdUtHWjFiR1pwYkd3c0lISmxhbVZqZENrZ09pQnpaWFIwYkdVb2NWc3dYVnN5WFN3Z2NpazdJSDFjY2x4dUlDQWdJR1oxYm1OMGFXOXVJR1oxYkdacGJHd29kbUZzZFdVcElIc2djbVZ6ZFcxbEtGd2libVY0ZEZ3aUxDQjJZV3gxWlNrN0lIMWNjbHh1SUNBZ0lHWjFibU4wYVc5dUlISmxhbVZqZENoMllXeDFaU2tnZXlCeVpYTjFiV1VvWENKMGFISnZkMXdpTENCMllXeDFaU2s3SUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhObGRIUnNaU2htTENCMktTQjdJR2xtSUNobUtIWXBMQ0J4TG5Ob2FXWjBLQ2tzSUhFdWJHVnVaM1JvS1NCeVpYTjFiV1VvY1Zzd1hWc3dYU3dnY1Zzd1hWc3hYU2s3SUgxY2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZZWE41Ym1ORVpXeGxaMkYwYjNJb2J5a2dlMXh5WEc0Z0lDQWdkbUZ5SUdrc0lIQTdYSEpjYmlBZ0lDQnlaWFIxY200Z2FTQTlJSHQ5TENCMlpYSmlLRndpYm1WNGRGd2lLU3dnZG1WeVlpaGNJblJvY205M1hDSXNJR1oxYm1OMGFXOXVJQ2hsS1NCN0lIUm9jbTkzSUdVN0lIMHBMQ0IyWlhKaUtGd2ljbVYwZFhKdVhDSXBMQ0JwVzFONWJXSnZiQzVwZEdWeVlYUnZjbDBnUFNCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQjBhR2x6T3lCOUxDQnBPMXh5WEc0Z0lDQWdablZ1WTNScGIyNGdkbVZ5WWlodUxDQm1LU0I3SUdsYmJsMGdQU0J2VzI1ZElEOGdablZ1WTNScGIyNGdLSFlwSUhzZ2NtVjBkWEp1SUNod0lEMGdJWEFwSUQ4Z2V5QjJZV3gxWlRvZ1gxOWhkMkZwZENodlcyNWRLSFlwS1N3Z1pHOXVaVG9nWm1Gc2MyVWdmU0E2SUdZZ1B5Qm1LSFlwSURvZ2Rqc2dmU0E2SUdZN0lIMWNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWVhONWJtTldZV3gxWlhNb2J5a2dlMXh5WEc0Z0lDQWdhV1lnS0NGVGVXMWliMnd1WVhONWJtTkpkR1Z5WVhSdmNpa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxONWJXSnZiQzVoYzNsdVkwbDBaWEpoZEc5eUlHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1SUNBZ0lIWmhjaUJ0SUQwZ2IxdFRlVzFpYjJ3dVlYTjVibU5KZEdWeVlYUnZjbDBzSUdrN1hISmNiaUFnSUNCeVpYUjFjbTRnYlNBL0lHMHVZMkZzYkNodktTQTZJQ2h2SUQwZ2RIbHdaVzltSUY5ZmRtRnNkV1Z6SUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnUHlCZlgzWmhiSFZsY3lodktTQTZJRzliVTNsdFltOXNMbWwwWlhKaGRHOXlYU2dwTENCcElEMGdlMzBzSUhabGNtSW9YQ0p1WlhoMFhDSXBMQ0IyWlhKaUtGd2lkR2h5YjNkY0lpa3NJSFpsY21Jb1hDSnlaWFIxY201Y0lpa3NJR2xiVTNsdFltOXNMbUZ6ZVc1alNYUmxjbUYwYjNKZElEMGdablZ1WTNScGIyNGdLQ2tnZXlCeVpYUjFjbTRnZEdocGN6c2dmU3dnYVNrN1hISmNiaUFnSUNCbWRXNWpkR2x2YmlCMlpYSmlLRzRwSUhzZ2FWdHVYU0E5SUc5YmJsMGdKaVlnWm5WdVkzUnBiMjRnS0hZcElIc2djbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLR1oxYm1OMGFXOXVJQ2h5WlhOdmJIWmxMQ0J5WldwbFkzUXBJSHNnZGlBOUlHOWJibDBvZGlrc0lITmxkSFJzWlNoeVpYTnZiSFpsTENCeVpXcGxZM1FzSUhZdVpHOXVaU3dnZGk1MllXeDFaU2s3SUgwcE95QjlPeUI5WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJ6WlhSMGJHVW9jbVZ6YjJ4MlpTd2djbVZxWldOMExDQmtMQ0IyS1NCN0lGQnliMjFwYzJVdWNtVnpiMngyWlNoMktTNTBhR1Z1S0daMWJtTjBhVzl1S0hZcElIc2djbVZ6YjJ4MlpTaDdJSFpoYkhWbE9pQjJMQ0JrYjI1bE9pQmtJSDBwT3lCOUxDQnlaV3BsWTNRcE95QjlYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDIxaGEyVlVaVzF3YkdGMFpVOWlhbVZqZENoamIyOXJaV1FzSUhKaGR5a2dlMXh5WEc0Z0lDQWdhV1lnS0U5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTa2dleUJQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1kyOXZhMlZrTENCY0luSmhkMXdpTENCN0lIWmhiSFZsT2lCeVlYY2dmU2s3SUgwZ1pXeHpaU0I3SUdOdmIydGxaQzV5WVhjZ1BTQnlZWGM3SUgxY2NseHVJQ0FnSUhKbGRIVnliaUJqYjI5clpXUTdYSEpjYm4wN1hISmNibHh5WEc1MllYSWdYMTl6WlhSTmIyUjFiR1ZFWldaaGRXeDBJRDBnVDJKcVpXTjBMbU55WldGMFpTQS9JQ2htZFc1amRHbHZiaWh2TENCMktTQjdYSEpjYmlBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvYnl3Z1hDSmtaV1poZFd4MFhDSXNJSHNnWlc1MWJXVnlZV0pzWlRvZ2RISjFaU3dnZG1Gc2RXVTZJSFlnZlNrN1hISmNibjBwSURvZ1puVnVZM1JwYjI0b2J5d2dkaWtnZTF4eVhHNGdJQ0FnYjF0Y0ltUmxabUYxYkhSY0lsMGdQU0IyTzF4eVhHNTlPMXh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZhVzF3YjNKMFUzUmhjaWh0YjJRcElIdGNjbHh1SUNBZ0lHbG1JQ2h0YjJRZ0ppWWdiVzlrTGw5ZlpYTk5iMlIxYkdVcElISmxkSFZ5YmlCdGIyUTdYSEpjYmlBZ0lDQjJZWElnY21WemRXeDBJRDBnZTMwN1hISmNiaUFnSUNCcFppQW9iVzlrSUNFOUlHNTFiR3dwSUdadmNpQW9kbUZ5SUdzZ2FXNGdiVzlrS1NCcFppQW9heUFoUFQwZ1hDSmtaV1poZFd4MFhDSWdKaVlnVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzVvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0cxdlpDd2dheWtwSUY5ZlkzSmxZWFJsUW1sdVpHbHVaeWh5WlhOMWJIUXNJRzF2WkN3Z2F5azdYSEpjYmlBZ0lDQmZYM05sZEUxdlpIVnNaVVJsWm1GMWJIUW9jbVZ6ZFd4MExDQnRiMlFwTzF4eVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmYVcxd2IzSjBSR1ZtWVhWc2RDaHRiMlFwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUFvYlc5a0lDWW1JRzF2WkM1ZlgyVnpUVzlrZFd4bEtTQS9JRzF2WkNBNklIc2daR1ZtWVhWc2REb2diVzlrSUgwN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtSMlYwS0hKbFkyVnBkbVZ5TENCemRHRjBaU3dnYTJsdVpDd2daaWtnZTF4eVhHNGdJQ0FnYVdZZ0tHdHBibVFnUFQwOUlGd2lZVndpSUNZbUlDRm1LU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVVISnBkbUYwWlNCaFkyTmxjM052Y2lCM1lYTWdaR1ZtYVc1bFpDQjNhWFJvYjNWMElHRWdaMlYwZEdWeVhDSXBPMXh5WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ6ZEdGMFpTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUlEOGdjbVZqWldsMlpYSWdJVDA5SUhOMFlYUmxJSHg4SUNGbUlEb2dJWE4wWVhSbExtaGhjeWh5WldObGFYWmxjaWtwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSkRZVzV1YjNRZ2NtVmhaQ0J3Y21sMllYUmxJRzFsYldKbGNpQm1jbTl0SUdGdUlHOWlhbVZqZENCM2FHOXpaU0JqYkdGemN5QmthV1FnYm05MElHUmxZMnhoY21VZ2FYUmNJaWs3WEhKY2JpQWdJQ0J5WlhSMWNtNGdhMmx1WkNBOVBUMGdYQ0p0WENJZ1B5Qm1JRG9nYTJsdVpDQTlQVDBnWENKaFhDSWdQeUJtTG1OaGJHd29jbVZqWldsMlpYSXBJRG9nWmlBL0lHWXVkbUZzZFdVZ09pQnpkR0YwWlM1blpYUW9jbVZqWldsMlpYSXBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5amJHRnpjMUJ5YVhaaGRHVkdhV1ZzWkZObGRDaHlaV05sYVhabGNpd2djM1JoZEdVc0lIWmhiSFZsTENCcmFXNWtMQ0JtS1NCN1hISmNiaUFnSUNCcFppQW9hMmx1WkNBOVBUMGdYQ0p0WENJcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pRY21sMllYUmxJRzFsZEdodlpDQnBjeUJ1YjNRZ2QzSnBkR0ZpYkdWY0lpazdYSEpjYmlBZ0lDQnBaaUFvYTJsdVpDQTlQVDBnWENKaFhDSWdKaVlnSVdZcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pRY21sMllYUmxJR0ZqWTJWemMyOXlJSGRoY3lCa1pXWnBibVZrSUhkcGRHaHZkWFFnWVNCelpYUjBaWEpjSWlrN1hISmNiaUFnSUNCcFppQW9kSGx3Wlc5bUlITjBZWFJsSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnUHlCeVpXTmxhWFpsY2lBaFBUMGdjM1JoZEdVZ2ZId2dJV1lnT2lBaGMzUmhkR1V1YUdGektISmxZMlZwZG1WeUtTa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtOaGJtNXZkQ0IzY21sMFpTQndjbWwyWVhSbElHMWxiV0psY2lCMGJ5QmhiaUJ2WW1wbFkzUWdkMmh2YzJVZ1kyeGhjM01nWkdsa0lHNXZkQ0JrWldOc1lYSmxJR2wwWENJcE8xeHlYRzRnSUNBZ2NtVjBkWEp1SUNocmFXNWtJRDA5UFNCY0ltRmNJaUEvSUdZdVkyRnNiQ2h5WldObGFYWmxjaXdnZG1Gc2RXVXBJRG9nWmlBL0lHWXVkbUZzZFdVZ1BTQjJZV3gxWlNBNklITjBZWFJsTG5ObGRDaHlaV05sYVhabGNpd2dkbUZzZFdVcEtTd2dkbUZzZFdVN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtTVzRvYzNSaGRHVXNJSEpsWTJWcGRtVnlLU0I3WEhKY2JpQWdJQ0JwWmlBb2NtVmpaV2wyWlhJZ1BUMDlJRzUxYkd3Z2ZId2dLSFI1Y0dWdlppQnlaV05sYVhabGNpQWhQVDBnWENKdlltcGxZM1JjSWlBbUppQjBlWEJsYjJZZ2NtVmpaV2wyWlhJZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlrcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pEWVc1dWIzUWdkWE5sSUNkcGJpY2diM0JsY21GMGIzSWdiMjRnYm05dUxXOWlhbVZqZEZ3aUtUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnYzNSaGRHVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JSEpsWTJWcGRtVnlJRDA5UFNCemRHRjBaU0E2SUhOMFlYUmxMbWhoY3loeVpXTmxhWFpsY2lrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMkZrWkVScGMzQnZjMkZpYkdWU1pYTnZkWEpqWlNobGJuWXNJSFpoYkhWbExDQmhjM2x1WXlrZ2UxeHlYRzRnSUNBZ2FXWWdLSFpoYkhWbElDRTlQU0J1ZFd4c0lDWW1JSFpoYkhWbElDRTlQU0IyYjJsa0lEQXBJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUNFOVBTQmNJbTlpYW1WamRGd2lJQ1ltSUhSNWNHVnZaaUIyWVd4MVpTQWhQVDBnWENKbWRXNWpkR2x2Ymx3aUtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpVDJKcVpXTjBJR1Y0Y0dWamRHVmtMbHdpS1R0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnWkdsemNHOXpaVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9ZWE41Ym1NcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZUZVcxaWIyd3VZWE41Ym1ORWFYTndiM05sS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVM2x0WW05c0xtRnplVzVqUkdsemNHOXpaU0JwY3lCdWIzUWdaR1ZtYVc1bFpDNWNJaWs3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1JwYzNCdmMyVWdQU0IyWVd4MVpWdFRlVzFpYjJ3dVlYTjVibU5FYVhOd2IzTmxYVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhV1lnS0dScGMzQnZjMlVnUFQwOUlIWnZhV1FnTUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JVk41YldKdmJDNWthWE53YjNObEtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpVTNsdFltOXNMbVJwYzNCdmMyVWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmthWE53YjNObElEMGdkbUZzZFdWYlUzbHRZbTlzTG1ScGMzQnZjMlZkTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdScGMzQnZjMlVnSVQwOUlGd2lablZ1WTNScGIyNWNJaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrOWlhbVZqZENCdWIzUWdaR2x6Y0c5ellXSnNaUzVjSWlrN1hISmNiaUFnSUNBZ0lDQWdaVzUyTG5OMFlXTnJMbkIxYzJnb2V5QjJZV3gxWlRvZ2RtRnNkV1VzSUdScGMzQnZjMlU2SUdScGMzQnZjMlVzSUdGemVXNWpPaUJoYzNsdVl5QjlLVHRjY2x4dUlDQWdJSDFjY2x4dUlDQWdJR1ZzYzJVZ2FXWWdLR0Z6ZVc1aktTQjdYSEpjYmlBZ0lDQWdJQ0FnWlc1MkxuTjBZV05yTG5CMWMyZ29leUJoYzNsdVl6b2dkSEoxWlNCOUtUdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjY2x4dWZWeHlYRzVjY2x4dWRtRnlJRjlUZFhCd2NtVnpjMlZrUlhKeWIzSWdQU0IwZVhCbGIyWWdVM1Z3Y0hKbGMzTmxaRVZ5Y205eUlEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ1B5QlRkWEJ3Y21WemMyVmtSWEp5YjNJZ09pQm1kVzVqZEdsdmJpQW9aWEp5YjNJc0lITjFjSEJ5WlhOelpXUXNJRzFsYzNOaFoyVXBJSHRjY2x4dUlDQWdJSFpoY2lCbElEMGdibVYzSUVWeWNtOXlLRzFsYzNOaFoyVXBPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHVXVibUZ0WlNBOUlGd2lVM1Z3Y0hKbGMzTmxaRVZ5Y205eVhDSXNJR1V1WlhKeWIzSWdQU0JsY25KdmNpd2daUzV6ZFhCd2NtVnpjMlZrSUQwZ2MzVndjSEpsYzNObFpDd2daVHRjY2x4dWZUdGNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyUnBjM0J2YzJWU1pYTnZkWEpqWlhNb1pXNTJLU0I3WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJtWVdsc0tHVXBJSHRjY2x4dUlDQWdJQ0FnSUNCbGJuWXVaWEp5YjNJZ1BTQmxibll1YUdGelJYSnliM0lnUHlCdVpYY2dYMU4xY0hCeVpYTnpaV1JGY25KdmNpaGxMQ0JsYm5ZdVpYSnliM0lzSUZ3aVFXNGdaWEp5YjNJZ2QyRnpJSE4xY0hCeVpYTnpaV1FnWkhWeWFXNW5JR1JwYzNCdmMyRnNMbHdpS1NBNklHVTdYSEpjYmlBZ0lDQWdJQ0FnWlc1MkxtaGhjMFZ5Y205eUlEMGdkSEoxWlR0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUc1bGVIUW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2QyaHBiR1VnS0dWdWRpNXpkR0ZqYXk1c1pXNW5kR2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlISmxZeUE5SUdWdWRpNXpkR0ZqYXk1d2IzQW9LVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0J5WldNdVpHbHpjRzl6WlNBbUppQnlaV011WkdsemNHOXpaUzVqWVd4c0tISmxZeTUyWVd4MVpTazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtVmpMbUZ6ZVc1aktTQnlaWFIxY200Z1VISnZiV2x6WlM1eVpYTnZiSFpsS0hKbGMzVnNkQ2t1ZEdobGJpaHVaWGgwTENCbWRXNWpkR2x2YmlobEtTQjdJR1poYVd3b1pTazdJSEpsZEhWeWJpQnVaWGgwS0NrN0lIMHBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhkR05vSUNobEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtWVdsc0tHVXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hsYm5ZdWFHRnpSWEp5YjNJcElIUm9jbTkzSUdWdWRpNWxjbkp2Y2p0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUhKbGRIVnliaUJ1WlhoMEtDazdYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JrWldaaGRXeDBJSHRjY2x4dUlDQWdJRjlmWlhoMFpXNWtjem9nWDE5bGVIUmxibVJ6TEZ4eVhHNGdJQ0FnWDE5aGMzTnBaMjQ2SUY5ZllYTnphV2R1TEZ4eVhHNGdJQ0FnWDE5eVpYTjBPaUJmWDNKbGMzUXNYSEpjYmlBZ0lDQmZYMlJsWTI5eVlYUmxPaUJmWDJSbFkyOXlZWFJsTEZ4eVhHNGdJQ0FnWDE5d1lYSmhiVG9nWDE5d1lYSmhiU3hjY2x4dUlDQWdJRjlmYldWMFlXUmhkR0U2SUY5ZmJXVjBZV1JoZEdFc1hISmNiaUFnSUNCZlgyRjNZV2wwWlhJNklGOWZZWGRoYVhSbGNpeGNjbHh1SUNBZ0lGOWZaMlZ1WlhKaGRHOXlPaUJmWDJkbGJtVnlZWFJ2Y2l4Y2NseHVJQ0FnSUY5ZlkzSmxZWFJsUW1sdVpHbHVaem9nWDE5amNtVmhkR1ZDYVc1a2FXNW5MRnh5WEc0Z0lDQWdYMTlsZUhCdmNuUlRkR0Z5T2lCZlgyVjRjRzl5ZEZOMFlYSXNYSEpjYmlBZ0lDQmZYM1poYkhWbGN6b2dYMTkyWVd4MVpYTXNYSEpjYmlBZ0lDQmZYM0psWVdRNklGOWZjbVZoWkN4Y2NseHVJQ0FnSUY5ZmMzQnlaV0ZrT2lCZlgzTndjbVZoWkN4Y2NseHVJQ0FnSUY5ZmMzQnlaV0ZrUVhKeVlYbHpPaUJmWDNOd2NtVmhaRUZ5Y21GNWN5eGNjbHh1SUNBZ0lGOWZjM0J5WldGa1FYSnlZWGs2SUY5ZmMzQnlaV0ZrUVhKeVlYa3NYSEpjYmlBZ0lDQmZYMkYzWVdsME9pQmZYMkYzWVdsMExGeHlYRzRnSUNBZ1gxOWhjM2x1WTBkbGJtVnlZWFJ2Y2pvZ1gxOWhjM2x1WTBkbGJtVnlZWFJ2Y2l4Y2NseHVJQ0FnSUY5ZllYTjVibU5FWld4bFoyRjBiM0k2SUY5ZllYTjVibU5FWld4bFoyRjBiM0lzWEhKY2JpQWdJQ0JmWDJGemVXNWpWbUZzZFdWek9pQmZYMkZ6ZVc1alZtRnNkV1Z6TEZ4eVhHNGdJQ0FnWDE5dFlXdGxWR1Z0Y0d4aGRHVlBZbXBsWTNRNklGOWZiV0ZyWlZSbGJYQnNZWFJsVDJKcVpXTjBMRnh5WEc0Z0lDQWdYMTlwYlhCdmNuUlRkR0Z5T2lCZlgybHRjRzl5ZEZOMFlYSXNYSEpjYmlBZ0lDQmZYMmx0Y0c5eWRFUmxabUYxYkhRNklGOWZhVzF3YjNKMFJHVm1ZWFZzZEN4Y2NseHVJQ0FnSUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSSFpYUTZJRjlmWTJ4aGMzTlFjbWwyWVhSbFJtbGxiR1JIWlhRc1hISmNiaUFnSUNCZlgyTnNZWE56VUhKcGRtRjBaVVpwWld4a1UyVjBPaUJmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrVTJWMExGeHlYRzRnSUNBZ1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFbHVPaUJmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrU1c0c1hISmNiaUFnSUNCZlgyRmtaRVJwYzNCdmMyRmliR1ZTWlhOdmRYSmpaVG9nWDE5aFpHUkVhWE53YjNOaFlteGxVbVZ6YjNWeVkyVXNYSEpjYmlBZ0lDQmZYMlJwYzNCdmMyVlNaWE52ZFhKalpYTTZJRjlmWkdsemNHOXpaVkpsYzI5MWNtTmxjeXhjY2x4dWZUdGNjbHh1SWl3aUx5b2daWE5zYVc1MExXUnBjMkZpYkdVZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNWhiV2x1WnkxamIyNTJaVzUwYVc5dUlDb3ZYRzVjYmk4cUtseHVJQ29nVTNCbFkybG1hV1Z5Y3lCdlppQmtaV0oxWnlCdGIyUmxJRzltSUh0QWJHbHVheUJOVkc5dmJrMWhkR1Z5YVdGc2ZTNWNiaUFxWEc0Z0tpQlRaV1U2SUh0QWJHbHVheUJOVkc5dmJrMWhkR1Z5YVdGc0xtUmxZblZuVFc5a1pYMWNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRTFVYjI5dVRXRjBaWEpwWVd4RVpXSjFaMDF2WkdVZ1BTQjdYRzRnSUM4cUtseHVJQ0FnS2lCU1pXNWtaWElnYm05eWJXRnNiSGt1WEc0Z0lDQXFMMXh1SUNCT2IyNWxPaUFuYm05dVpTY3NYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGWnBjM1ZoYkdsNlpTQnViM0p0WVd4eklHOW1JSFJvWlNCemRYSm1ZV05sTGx4dUlDQWdLaTljYmlBZ1RtOXliV0ZzT2lBbmJtOXliV0ZzSnl4Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVm1semRXRnNhWHBsSUd4cGRDOXphR0ZrWlNCdlppQjBhR1VnYzNWeVptRmpaUzVjYmlBZ0lDb3ZYRzRnSUV4cGRGTm9ZV1JsVW1GMFpUb2dKMnhwZEZOb1lXUmxVbUYwWlNjc1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZacGMzVmhiR2w2WlNCVlZpQnZaaUIwYUdVZ2MzVnlabUZqWlM1Y2JpQWdJQ292WEc0Z0lGVldPaUFuZFhZbkxGeHVmU0JoY3lCamIyNXpkRHRjYmx4dVpYaHdiM0owSUhSNWNHVWdUVlJ2YjI1TllYUmxjbWxoYkVSbFluVm5UVzlrWlNBOUlIUjVjR1Z2WmlCTlZHOXZiazFoZEdWeWFXRnNSR1ZpZFdkTmIyUmxXMnRsZVc5bUlIUjVjR1Z2WmlCTlZHOXZiazFoZEdWeWFXRnNSR1ZpZFdkTmIyUmxYVHRjYmlJc0lpOHFJR1Z6YkdsdWRDMWthWE5oWW14bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVZVzFwYm1jdFkyOXVkbVZ1ZEdsdmJpQXFMMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdUVlJ2YjI1TllYUmxjbWxoYkU5MWRHeHBibVZYYVdSMGFFMXZaR1VnUFNCN1hHNGdJRTV2Ym1VNklDZHViMjVsSnl4Y2JpQWdWMjl5YkdSRGIyOXlaR2x1WVhSbGN6b2dKM2R2Y214a1EyOXZjbVJwYm1GMFpYTW5MRnh1SUNCVFkzSmxaVzVEYjI5eVpHbHVZWFJsY3pvZ0ozTmpjbVZsYmtOdmIzSmthVzVoZEdWekp5eGNibjBnWVhNZ1kyOXVjM1E3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRTFVYjI5dVRXRjBaWEpwWVd4UGRYUnNhVzVsVjJsa2RHaE5iMlJsSUQxY2JpQWdkSGx3Wlc5bUlFMVViMjl1VFdGMFpYSnBZV3hQZFhSc2FXNWxWMmxrZEdoTmIyUmxXMnRsZVc5bUlIUjVjR1Z2WmlCTlZHOXZiazFoZEdWeWFXRnNUM1YwYkdsdVpWZHBaSFJvVFc5a1pWMDdYRzRpTENKcGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVjYm1OdmJuTjBJR1Z1WTI5a2FXNW5RMjlzYjNKVGNHRmpaVTFoY0RvZ1VtVmpiM0prUEdGdWVTd2dKeWNnZkNBbmMzSm5ZaWMrSUQwZ2UxeHVJQ0F6TURBd09pQW5KeXhjYmlBZ016QXdNVG9nSjNOeVoySW5MRnh1ZlR0Y2JseHVMeW9xWEc0Z0tpQkJJR052YlhCaGRDQm1kVzVqZEdsdmJpQjBieUJuWlhRZ2RHVjRkSFZ5WlNCamIyeHZjaUJ6Y0dGalpTNWNiaUFxWEc0Z0tpQkRUMDFRUVZRNklIQnlaUzF5TVRVeVhHNGdLaUJUZEdGeWRHbHVaeUJtY205dElGUm9jbVZsTG1weklISXhOVElzSUdCMFpYaDBkWEpsTG1WdVkyOWthVzVuWUNCcGN5QnlaVzVoYldWa0lIUnZJR0IwWlhoMGRYSmxMbU52Ykc5eVUzQmhZMlZnTGx4dUlDb2dWR2hwY3lCbWRXNWpkR2x2YmlCM2FXeHNJR2hoYm1Sc1pTQjBhR1VnWTI5dFlYQjBMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQjBaWGgwZFhKbElGUm9aU0IwWlhoMGRYSmxJSGx2ZFNCM1lXNTBJSFJ2SUdkbGRDQjBhR1VnWTI5c2IzSWdjM0JoWTJVZ1puSnZiVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBWR1Y0ZEhWeVpVTnZiRzl5VTNCaFkyVW9kR1Y0ZEhWeVpUb2dWRWhTUlVVdVZHVjRkSFZ5WlNrNklDY25JSHdnSjNOeVoySW5JSHRjYmlBZ2FXWWdLSEJoY25ObFNXNTBLRlJJVWtWRkxsSkZWa2xUU1U5T0xDQXhNQ2tnUGowZ01UVXlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUmxlSFIxY21VdVkyOXNiM0pUY0dGalpTQmhjeUFuSnlCOElDZHpjbWRpSnp0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCeVpYUjFjbTRnWlc1amIyUnBibWREYjJ4dmNsTndZV05sVFdGd1d5aDBaWGgwZFhKbElHRnpJR0Z1ZVNrdVpXNWpiMlJwYm1kZE8xeHVJQ0I5WEc1OVhHNGlMQ0l2S2lCMGMyeHBiblE2WkdsellXSnNaVHB0WlcxaVpYSXRiM0prWlhKcGJtY2dLaTljYmx4dWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSFpsY25SbGVGTm9ZV1JsY2lCbWNtOXRJQ2N1TDNOb1lXUmxjbk12YlhSdmIyNHVkbVZ5ZENjN1hHNXBiWEJ2Y25RZ1puSmhaMjFsYm5SVGFHRmtaWElnWm5KdmJTQW5MaTl6YUdGa1pYSnpMMjEwYjI5dUxtWnlZV2NuTzF4dWFXMXdiM0owSUhzZ1RWUnZiMjVOWVhSbGNtbGhiRVJsWW5WblRXOWtaU0I5SUdaeWIyMGdKeTR2VFZSdmIyNU5ZWFJsY21saGJFUmxZblZuVFc5a1pTYzdYRzVwYlhCdmNuUWdleUJOVkc5dmJrMWhkR1Z5YVdGc1QzVjBiR2x1WlZkcFpIUm9UVzlrWlNCOUlHWnliMjBnSnk0dlRWUnZiMjVOWVhSbGNtbGhiRTkxZEd4cGJtVlhhV1IwYUUxdlpHVW5PMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5Qk5WRzl2YmsxaGRHVnlhV0ZzVUdGeVlXMWxkR1Z5Y3lCOUlHWnliMjBnSnk0dlRWUnZiMjVOWVhSbGNtbGhiRkJoY21GdFpYUmxjbk1uTzF4dWFXMXdiM0owSUhzZ1oyVjBWR1Y0ZEhWeVpVTnZiRzl5VTNCaFkyVWdmU0JtY205dElDY3VMM1YwYVd4ekwyZGxkRlJsZUhSMWNtVkRiMnh2Y2xOd1lXTmxKenRjYmx4dUx5b3FYRzRnS2lCTlZHOXZiaUJwY3lCaElHMWhkR1Z5YVdGc0lITndaV05wWm1sallYUnBiMjRnZEdoaGRDQm9ZWE1nZG1GeWFXOTFjeUJtWldGMGRYSmxjeTVjYmlBcUlGUm9aU0J6Y0dWaklHRnVaQ0JwYlhCc1pXMWxiblJoZEdsdmJpQmhjbVVnYjNKcFoybHVZV3hzZVNCbWIzVnVaR1ZrSUdadmNpQlZibWwwZVNCbGJtZHBibVVnWVc1a0lIUm9hWE1nYVhNZ1lTQndiM0owSUc5bUlIUm9aU0J0WVhSbGNtbGhiQzVjYmlBcVhHNGdLaUJUWldVNklHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOVRZVzUwWVhKb0wwMVViMjl1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTlZHOXZiazFoZEdWeWFXRnNJR1Y0ZEdWdVpITWdWRWhTUlVVdVUyaGhaR1Z5VFdGMFpYSnBZV3dnZTF4dUlDQndkV0pzYVdNZ2RXNXBabTl5YlhNNklIdGNiaUFnSUNCc2FYUkdZV04wYjNJNklGUklVa1ZGTGtsVmJtbG1iM0p0UEZSSVVrVkZMa052Ykc5eVBqdGNiaUFnSUNCaGJIQm9ZVlJsYzNRNklGUklVa1ZGTGtsVmJtbG1iM0p0UEc1MWJXSmxjajQ3WEc0Z0lDQWdiM0JoWTJsMGVUb2dWRWhTUlVVdVNWVnVhV1p2Y20wOGJuVnRZbVZ5UGp0Y2JpQWdJQ0J0WVhBNklGUklVa1ZGTGtsVmJtbG1iM0p0UEZSSVVrVkZMbFJsZUhSMWNtVWdmQ0J1ZFd4c1BqdGNiaUFnSUNCdFlYQlZkbFJ5WVc1elptOXliVG9nVkVoU1JVVXVTVlZ1YVdadmNtMDhWRWhTUlVVdVRXRjBjbWw0TXo0N1hHNGdJQ0FnYm05eWJXRnNUV0Z3T2lCVVNGSkZSUzVKVlc1cFptOXliVHhVU0ZKRlJTNVVaWGgwZFhKbElId2diblZzYkQ0N1hHNGdJQ0FnYm05eWJXRnNUV0Z3VlhaVWNtRnVjMlp2Y20wNklGUklVa1ZGTGtsVmJtbG1iM0p0UEZSSVVrVkZMazFoZEhKcGVETStPMXh1SUNBZ0lHNXZjbTFoYkZOallXeGxPaUJVU0ZKRlJTNUpWVzVwWm05eWJUeFVTRkpGUlM1V1pXTjBiM0l5UGp0Y2JpQWdJQ0JsYldsemMybDJaVG9nVkVoU1JVVXVTVlZ1YVdadmNtMDhWRWhTUlVVdVEyOXNiM0krTzF4dUlDQWdJR1Z0YVhOemFYWmxTVzUwWlc1emFYUjVPaUJVU0ZKRlJTNUpWVzVwWm05eWJUeHVkVzFpWlhJK08xeHVJQ0FnSUdWdGFYTnphWFpsVFdGd09pQlVTRkpGUlM1SlZXNXBabTl5YlR4VVNGSkZSUzVVWlhoMGRYSmxJSHdnYm5Wc2JENDdYRzRnSUNBZ1pXMXBjM05wZG1WTllYQlZkbFJ5WVc1elptOXliVG9nVkVoU1JVVXVTVlZ1YVdadmNtMDhWRWhTUlVVdVRXRjBjbWw0TXo0N1hHNGdJQ0FnYzJoaFpHVkRiMnh2Y2taaFkzUnZjam9nVkVoU1JVVXVTVlZ1YVdadmNtMDhWRWhTUlVVdVEyOXNiM0krTzF4dUlDQWdJSE5vWVdSbFRYVnNkR2x3YkhsVVpYaDBkWEpsT2lCVVNGSkZSUzVKVlc1cFptOXliVHhVU0ZKRlJTNVVaWGgwZFhKbElId2diblZzYkQ0N1hHNGdJQ0FnYzJoaFpHVk5kV3gwYVhCc2VWUmxlSFIxY21WVmRsUnlZVzV6Wm05eWJUb2dWRWhTUlVVdVNWVnVhV1p2Y20wOFZFaFNSVVV1VFdGMGNtbDRNejQ3WEc0Z0lDQWdjMmhoWkdsdVoxTm9hV1owUm1GamRHOXlPaUJVU0ZKRlJTNUpWVzVwWm05eWJUeHVkVzFpWlhJK08xeHVJQ0FnSUhOb1lXUnBibWRUYUdsbWRGUmxlSFIxY21VNklGUklVa1ZGTGtsVmJtbG1iM0p0UEZSSVVrVkZMbFJsZUhSMWNtVWdmQ0J1ZFd4c1BqdGNiaUFnSUNCemFHRmthVzVuVTJocFpuUlVaWGgwZFhKbFZYWlVjbUZ1YzJadmNtMDZJRlJJVWtWRkxrbFZibWxtYjNKdFBGUklVa1ZGTGsxaGRISnBlRE0rTzF4dUlDQWdJSE5vWVdScGJtZFRhR2xtZEZSbGVIUjFjbVZUWTJGc1pUb2dWRWhTUlVVdVNWVnVhV1p2Y20wOGJuVnRZbVZ5UGp0Y2JpQWdJQ0J6YUdGa2FXNW5WRzl2Ym5sR1lXTjBiM0k2SUZSSVVrVkZMa2xWYm1sbWIzSnRQRzUxYldKbGNqNDdYRzRnSUNBZ1oybEZjWFZoYkdsNllYUnBiMjVHWVdOMGIzSTZJRlJJVWtWRkxrbFZibWxtYjNKdFBHNTFiV0psY2o0N1hHNGdJQ0FnYldGMFkyRndSbUZqZEc5eU9pQlVTRkpGUlM1SlZXNXBabTl5YlR4VVNGSkZSUzVEYjJ4dmNqNDdYRzRnSUNBZ2JXRjBZMkZ3VkdWNGRIVnlaVG9nVkVoU1JVVXVTVlZ1YVdadmNtMDhWRWhTUlVVdVZHVjRkSFZ5WlNCOElHNTFiR3crTzF4dUlDQWdJRzFoZEdOaGNGUmxlSFIxY21WVmRsUnlZVzV6Wm05eWJUb2dWRWhTUlVVdVNWVnVhV1p2Y20wOFZFaFNSVVV1VFdGMGNtbDRNejQ3WEc0Z0lDQWdjR0Z5WVcxbGRISnBZMUpwYlVOdmJHOXlSbUZqZEc5eU9pQlVTRkpGUlM1SlZXNXBabTl5YlR4VVNGSkZSUzVEYjJ4dmNqNDdYRzRnSUNBZ2NtbHRUWFZzZEdsd2JIbFVaWGgwZFhKbE9pQlVTRkpGUlM1SlZXNXBabTl5YlR4VVNGSkZSUzVVWlhoMGRYSmxJSHdnYm5Wc2JENDdYRzRnSUNBZ2NtbHRUWFZzZEdsd2JIbFVaWGgwZFhKbFZYWlVjbUZ1YzJadmNtMDZJRlJJVWtWRkxrbFZibWxtYjNKdFBGUklVa1ZGTGsxaGRISnBlRE0rTzF4dUlDQWdJSEpwYlV4cFoyaDBhVzVuVFdsNFJtRmpkRzl5T2lCVVNGSkZSUzVKVlc1cFptOXliVHh1ZFcxaVpYSStPMXh1SUNBZ0lIQmhjbUZ0WlhSeWFXTlNhVzFHY21WemJtVnNVRzkzWlhKR1lXTjBiM0k2SUZSSVVrVkZMa2xWYm1sbWIzSnRQRzUxYldKbGNqNDdYRzRnSUNBZ2NHRnlZVzFsZEhKcFkxSnBiVXhwWm5SR1lXTjBiM0k2SUZSSVVrVkZMa2xWYm1sbWIzSnRQRzUxYldKbGNqNDdYRzRnSUNBZ2IzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbE9pQlVTRkpGUlM1SlZXNXBabTl5YlR4VVNGSkZSUzVVWlhoMGRYSmxJSHdnYm5Wc2JENDdYRzRnSUNBZ2IzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbFZYWlVjbUZ1YzJadmNtMDZJRlJJVWtWRkxrbFZibWxtYjNKdFBGUklVa1ZGTGsxaGRISnBlRE0rTzF4dUlDQWdJRzkxZEd4cGJtVlhhV1IwYUVaaFkzUnZjam9nVkVoU1JVVXVTVlZ1YVdadmNtMDhiblZ0WW1WeVBqdGNiaUFnSUNCdmRYUnNhVzVsUTI5c2IzSkdZV04wYjNJNklGUklVa1ZGTGtsVmJtbG1iM0p0UEZSSVVrVkZMa052Ykc5eVBqdGNiaUFnSUNCdmRYUnNhVzVsVEdsbmFIUnBibWROYVhoR1lXTjBiM0k2SUZSSVVrVkZMa2xWYm1sbWIzSnRQRzUxYldKbGNqNDdYRzRnSUNBZ2RYWkJibWx0WVhScGIyNU5ZWE5yVkdWNGRIVnlaVG9nVkVoU1JVVXVTVlZ1YVdadmNtMDhWRWhTUlVVdVZHVjRkSFZ5WlNCOElHNTFiR3crTzF4dUlDQWdJSFYyUVc1cGJXRjBhVzl1VFdGemExUmxlSFIxY21WVmRsUnlZVzV6Wm05eWJUb2dWRWhTUlVVdVNWVnVhV1p2Y20wOFZFaFNSVVV1VFdGMGNtbDRNejQ3WEc0Z0lDQWdkWFpCYm1sdFlYUnBiMjVUWTNKdmJHeFlUMlptYzJWME9pQlVTRkpGUlM1SlZXNXBabTl5YlR4dWRXMWlaWEkrTzF4dUlDQWdJSFYyUVc1cGJXRjBhVzl1VTJOeWIyeHNXVTltWm5ObGREb2dWRWhTUlVVdVNWVnVhV1p2Y20wOGJuVnRZbVZ5UGp0Y2JpQWdJQ0IxZGtGdWFXMWhkR2x2YmxKdmRHRjBhVzl1VUdoaGMyVTZJRlJJVWtWRkxrbFZibWxtYjNKdFBHNTFiV0psY2o0N1hHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0JqYjJ4dmNpZ3BPaUJVU0ZKRlJTNURiMnh2Y2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRXNXBabTl5YlhNdWJHbDBSbUZqZEc5eUxuWmhiSFZsTzF4dUlDQjlYRzRnSUhCMVlteHBZeUJ6WlhRZ1kyOXNiM0lvZG1Gc2RXVTZJRlJJVWtWRkxrTnZiRzl5S1NCN1hHNGdJQ0FnZEdocGN5NTFibWxtYjNKdGN5NXNhWFJHWVdOMGIzSXVkbUZzZFdVZ1BTQjJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdiV0Z3S0NrNklGUklVa1ZGTGxSbGVIUjFjbVVnZkNCdWRXeHNJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTUxYm1sbWIzSnRjeTV0WVhBdWRtRnNkV1U3WEc0Z0lIMWNiaUFnY0hWaWJHbGpJSE5sZENCdFlYQW9kbUZzZFdVNklGUklVa1ZGTGxSbGVIUjFjbVVnZkNCdWRXeHNLU0I3WEc0Z0lDQWdkR2hwY3k1MWJtbG1iM0p0Y3k1dFlYQXVkbUZzZFdVZ1BTQjJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdibTl5YldGc1RXRndLQ2s2SUZSSVVrVkZMbFJsZUhSMWNtVWdmQ0J1ZFd4c0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NTFibWxtYjNKdGN5NXViM0p0WVd4TllYQXVkbUZzZFdVN1hHNGdJSDFjYmlBZ2NIVmliR2xqSUhObGRDQnViM0p0WVd4TllYQW9kbUZzZFdVNklGUklVa1ZGTGxSbGVIUjFjbVVnZkNCdWRXeHNLU0I3WEc0Z0lDQWdkR2hwY3k1MWJtbG1iM0p0Y3k1dWIzSnRZV3hOWVhBdWRtRnNkV1VnUFNCMllXeDFaVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhRZ2JtOXliV0ZzVTJOaGJHVW9LVG9nVkVoU1JVVXVWbVZqZEc5eU1pQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkVzVwWm05eWJYTXVibTl5YldGc1UyTmhiR1V1ZG1Gc2RXVTdYRzRnSUgxY2JpQWdjSFZpYkdsaklITmxkQ0J1YjNKdFlXeFRZMkZzWlNoMllXeDFaVG9nVkVoU1JVVXVWbVZqZEc5eU1pa2dlMXh1SUNBZ0lIUm9hWE11ZFc1cFptOXliWE11Ym05eWJXRnNVMk5oYkdVdWRtRnNkV1VnUFNCMllXeDFaVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhRZ1pXMXBjM05wZG1Vb0tUb2dWRWhTUlVVdVEyOXNiM0lnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFXWnZjbTF6TG1WdGFYTnphWFpsTG5aaGJIVmxPMXh1SUNCOVhHNGdJSEIxWW14cFl5QnpaWFFnWlcxcGMzTnBkbVVvZG1Gc2RXVTZJRlJJVWtWRkxrTnZiRzl5S1NCN1hHNGdJQ0FnZEdocGN5NTFibWxtYjNKdGN5NWxiV2x6YzJsMlpTNTJZV3gxWlNBOUlIWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQmxiV2x6YzJsMlpVbHVkR1Z1YzJsMGVTZ3BPaUJ1ZFcxaVpYSWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ1YVdadmNtMXpMbVZ0YVhOemFYWmxTVzUwWlc1emFYUjVMblpoYkhWbE8xeHVJQ0I5WEc0Z0lIQjFZbXhwWXlCelpYUWdaVzFwYzNOcGRtVkpiblJsYm5OcGRIa29kbUZzZFdVNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUhSb2FYTXVkVzVwWm05eWJYTXVaVzFwYzNOcGRtVkpiblJsYm5OcGRIa3VkbUZzZFdVZ1BTQjJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdaVzFwYzNOcGRtVk5ZWEFvS1RvZ1ZFaFNSVVV1VkdWNGRIVnlaU0I4SUc1MWJHd2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ1YVdadmNtMXpMbVZ0YVhOemFYWmxUV0Z3TG5aaGJIVmxPMXh1SUNCOVhHNGdJSEIxWW14cFl5QnpaWFFnWlcxcGMzTnBkbVZOWVhBb2RtRnNkV1U2SUZSSVVrVkZMbFJsZUhSMWNtVWdmQ0J1ZFd4c0tTQjdYRzRnSUNBZ2RHaHBjeTUxYm1sbWIzSnRjeTVsYldsemMybDJaVTFoY0M1MllXeDFaU0E5SUhaaGJIVmxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCemFHRmtaVU52Ykc5eVJtRmpkRzl5S0NrNklGUklVa1ZGTGtOdmJHOXlJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTUxYm1sbWIzSnRjeTV6YUdGa1pVTnZiRzl5Um1GamRHOXlMblpoYkhWbE8xeHVJQ0I5WEc0Z0lIQjFZbXhwWXlCelpYUWdjMmhoWkdWRGIyeHZja1poWTNSdmNpaDJZV3gxWlRvZ1ZFaFNSVVV1UTI5c2IzSXBJSHRjYmlBZ0lDQjBhR2x6TG5WdWFXWnZjbTF6TG5Ob1lXUmxRMjlzYjNKR1lXTjBiM0l1ZG1Gc2RXVWdQU0IyWVd4MVpUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFFnYzJoaFpHVk5kV3gwYVhCc2VWUmxlSFIxY21Vb0tUb2dWRWhTUlVVdVZHVjRkSFZ5WlNCOElHNTFiR3dnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFXWnZjbTF6TG5Ob1lXUmxUWFZzZEdsd2JIbFVaWGgwZFhKbExuWmhiSFZsTzF4dUlDQjlYRzRnSUhCMVlteHBZeUJ6WlhRZ2MyaGhaR1ZOZFd4MGFYQnNlVlJsZUhSMWNtVW9kbUZzZFdVNklGUklVa1ZGTGxSbGVIUjFjbVVnZkNCdWRXeHNLU0I3WEc0Z0lDQWdkR2hwY3k1MWJtbG1iM0p0Y3k1emFHRmtaVTExYkhScGNHeDVWR1Y0ZEhWeVpTNTJZV3gxWlNBOUlIWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQnphR0ZrYVc1blUyaHBablJHWVdOMGIzSW9LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTUxYm1sbWIzSnRjeTV6YUdGa2FXNW5VMmhwWm5SR1lXTjBiM0l1ZG1Gc2RXVTdYRzRnSUgxY2JpQWdjSFZpYkdsaklITmxkQ0J6YUdGa2FXNW5VMmhwWm5SR1lXTjBiM0lvZG1Gc2RXVTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lIUm9hWE11ZFc1cFptOXliWE11YzJoaFpHbHVaMU5vYVdaMFJtRmpkRzl5TG5aaGJIVmxJRDBnZG1Gc2RXVTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwSUhOb1lXUnBibWRUYUdsbWRGUmxlSFIxY21Vb0tUb2dWRWhTUlVVdVZHVjRkSFZ5WlNCOElHNTFiR3dnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFXWnZjbTF6TG5Ob1lXUnBibWRUYUdsbWRGUmxlSFIxY21VdWRtRnNkV1U3WEc0Z0lIMWNiaUFnY0hWaWJHbGpJSE5sZENCemFHRmthVzVuVTJocFpuUlVaWGgwZFhKbEtIWmhiSFZsT2lCVVNGSkZSUzVVWlhoMGRYSmxJSHdnYm5Wc2JDa2dlMXh1SUNBZ0lIUm9hWE11ZFc1cFptOXliWE11YzJoaFpHbHVaMU5vYVdaMFZHVjRkSFZ5WlM1MllXeDFaU0E5SUhaaGJIVmxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCemFHRmthVzVuVTJocFpuUlVaWGgwZFhKbFUyTmhiR1VvS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1MWJtbG1iM0p0Y3k1emFHRmthVzVuVTJocFpuUlVaWGgwZFhKbFUyTmhiR1V1ZG1Gc2RXVTdYRzRnSUgxY2JpQWdjSFZpYkdsaklITmxkQ0J6YUdGa2FXNW5VMmhwWm5SVVpYaDBkWEpsVTJOaGJHVW9kbUZzZFdVNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUhSb2FYTXVkVzVwWm05eWJYTXVjMmhoWkdsdVoxTm9hV1owVkdWNGRIVnlaVk5qWVd4bExuWmhiSFZsSUQwZ2RtRnNkV1U3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElITm9ZV1JwYm1kVWIyOXVlVVpoWTNSdmNpZ3BPaUJ1ZFcxaVpYSWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ1YVdadmNtMXpMbk5vWVdScGJtZFViMjl1ZVVaaFkzUnZjaTUyWVd4MVpUdGNiaUFnZlZ4dUlDQndkV0pzYVdNZ2MyVjBJSE5vWVdScGJtZFViMjl1ZVVaaFkzUnZjaWgyWVd4MVpUb2diblZ0WW1WeUtTQjdYRzRnSUNBZ2RHaHBjeTUxYm1sbWIzSnRjeTV6YUdGa2FXNW5WRzl2Ym5sR1lXTjBiM0l1ZG1Gc2RXVWdQU0IyWVd4MVpUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFFnWjJsRmNYVmhiR2w2WVhScGIyNUdZV04wYjNJb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NTFibWxtYjNKdGN5NW5hVVZ4ZFdGc2FYcGhkR2x2YmtaaFkzUnZjaTUyWVd4MVpUdGNiaUFnZlZ4dUlDQndkV0pzYVdNZ2MyVjBJR2RwUlhGMVlXeHBlbUYwYVc5dVJtRmpkRzl5S0haaGJIVmxPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQjBhR2x6TG5WdWFXWnZjbTF6TG1kcFJYRjFZV3hwZW1GMGFXOXVSbUZqZEc5eUxuWmhiSFZsSUQwZ2RtRnNkV1U3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElHMWhkR05oY0VaaFkzUnZjaWdwT2lCVVNGSkZSUzVEYjJ4dmNpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkVzVwWm05eWJYTXViV0YwWTJGd1JtRmpkRzl5TG5aaGJIVmxPMXh1SUNCOVhHNGdJSEIxWW14cFl5QnpaWFFnYldGMFkyRndSbUZqZEc5eUtIWmhiSFZsT2lCVVNGSkZSUzVEYjJ4dmNpa2dlMXh1SUNBZ0lIUm9hWE11ZFc1cFptOXliWE11YldGMFkyRndSbUZqZEc5eUxuWmhiSFZsSUQwZ2RtRnNkV1U3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElHMWhkR05oY0ZSbGVIUjFjbVVvS1RvZ1ZFaFNSVVV1VkdWNGRIVnlaU0I4SUc1MWJHd2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ1YVdadmNtMXpMbTFoZEdOaGNGUmxlSFIxY21VdWRtRnNkV1U3WEc0Z0lIMWNiaUFnY0hWaWJHbGpJSE5sZENCdFlYUmpZWEJVWlhoMGRYSmxLSFpoYkhWbE9pQlVTRkpGUlM1VVpYaDBkWEpsSUh3Z2JuVnNiQ2tnZTF4dUlDQWdJSFJvYVhNdWRXNXBabTl5YlhNdWJXRjBZMkZ3VkdWNGRIVnlaUzUyWVd4MVpTQTlJSFpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J3WVhKaGJXVjBjbWxqVW1sdFEyOXNiM0pHWVdOMGIzSW9LVG9nVkVoU1JVVXVRMjlzYjNJZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuVnVhV1p2Y20xekxuQmhjbUZ0WlhSeWFXTlNhVzFEYjJ4dmNrWmhZM1J2Y2k1MllXeDFaVHRjYmlBZ2ZWeHVJQ0J3ZFdKc2FXTWdjMlYwSUhCaGNtRnRaWFJ5YVdOU2FXMURiMnh2Y2taaFkzUnZjaWgyWVd4MVpUb2dWRWhTUlVVdVEyOXNiM0lwSUh0Y2JpQWdJQ0IwYUdsekxuVnVhV1p2Y20xekxuQmhjbUZ0WlhSeWFXTlNhVzFEYjJ4dmNrWmhZM1J2Y2k1MllXeDFaU0E5SUhaaGJIVmxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCeWFXMU5kV3gwYVhCc2VWUmxlSFIxY21Vb0tUb2dWRWhTUlVVdVZHVjRkSFZ5WlNCOElHNTFiR3dnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFXWnZjbTF6TG5KcGJVMTFiSFJwY0d4NVZHVjRkSFZ5WlM1MllXeDFaVHRjYmlBZ2ZWeHVJQ0J3ZFdKc2FXTWdjMlYwSUhKcGJVMTFiSFJwY0d4NVZHVjRkSFZ5WlNoMllXeDFaVG9nVkVoU1JVVXVWR1Y0ZEhWeVpTQjhJRzUxYkd3cElIdGNiaUFnSUNCMGFHbHpMblZ1YVdadmNtMXpMbkpwYlUxMWJIUnBjR3g1VkdWNGRIVnlaUzUyWVd4MVpTQTlJSFpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J5YVcxTWFXZG9kR2x1WjAxcGVFWmhZM1J2Y2lncE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuVnVhV1p2Y20xekxuSnBiVXhwWjJoMGFXNW5UV2w0Um1GamRHOXlMblpoYkhWbE8xeHVJQ0I5WEc0Z0lIQjFZbXhwWXlCelpYUWdjbWx0VEdsbmFIUnBibWROYVhoR1lXTjBiM0lvZG1Gc2RXVTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lIUm9hWE11ZFc1cFptOXliWE11Y21sdFRHbG5hSFJwYm1kTmFYaEdZV04wYjNJdWRtRnNkV1VnUFNCMllXeDFaVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhRZ2NHRnlZVzFsZEhKcFkxSnBiVVp5WlhOdVpXeFFiM2RsY2taaFkzUnZjaWdwT2lCdWRXMWlaWElnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFXWnZjbTF6TG5CaGNtRnRaWFJ5YVdOU2FXMUdjbVZ6Ym1Wc1VHOTNaWEpHWVdOMGIzSXVkbUZzZFdVN1hHNGdJSDFjYmlBZ2NIVmliR2xqSUhObGRDQndZWEpoYldWMGNtbGpVbWx0Um5KbGMyNWxiRkJ2ZDJWeVJtRmpkRzl5S0haaGJIVmxPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQjBhR2x6TG5WdWFXWnZjbTF6TG5CaGNtRnRaWFJ5YVdOU2FXMUdjbVZ6Ym1Wc1VHOTNaWEpHWVdOMGIzSXVkbUZzZFdVZ1BTQjJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdjR0Z5WVcxbGRISnBZMUpwYlV4cFpuUkdZV04wYjNJb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NTFibWxtYjNKdGN5NXdZWEpoYldWMGNtbGpVbWx0VEdsbWRFWmhZM1J2Y2k1MllXeDFaVHRjYmlBZ2ZWeHVJQ0J3ZFdKc2FXTWdjMlYwSUhCaGNtRnRaWFJ5YVdOU2FXMU1hV1owUm1GamRHOXlLSFpoYkhWbE9pQnVkVzFpWlhJcElIdGNiaUFnSUNCMGFHbHpMblZ1YVdadmNtMXpMbkJoY21GdFpYUnlhV05TYVcxTWFXWjBSbUZqZEc5eUxuWmhiSFZsSUQwZ2RtRnNkV1U3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElHOTFkR3hwYm1WWGFXUjBhRTExYkhScGNHeDVWR1Y0ZEhWeVpTZ3BPaUJVU0ZKRlJTNVVaWGgwZFhKbElId2diblZzYkNCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRXNXBabTl5YlhNdWIzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbExuWmhiSFZsTzF4dUlDQjlYRzRnSUhCMVlteHBZeUJ6WlhRZ2IzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbEtIWmhiSFZsT2lCVVNGSkZSUzVVWlhoMGRYSmxJSHdnYm5Wc2JDa2dlMXh1SUNBZ0lIUm9hWE11ZFc1cFptOXliWE11YjNWMGJHbHVaVmRwWkhSb1RYVnNkR2x3YkhsVVpYaDBkWEpsTG5aaGJIVmxJRDBnZG1Gc2RXVTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwSUc5MWRHeHBibVZYYVdSMGFFWmhZM1J2Y2lncE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuVnVhV1p2Y20xekxtOTFkR3hwYm1WWGFXUjBhRVpoWTNSdmNpNTJZV3gxWlR0Y2JpQWdmVnh1SUNCd2RXSnNhV01nYzJWMElHOTFkR3hwYm1WWGFXUjBhRVpoWTNSdmNpaDJZV3gxWlRvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnZEdocGN5NTFibWxtYjNKdGN5NXZkWFJzYVc1bFYybGtkR2hHWVdOMGIzSXVkbUZzZFdVZ1BTQjJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdiM1YwYkdsdVpVTnZiRzl5Um1GamRHOXlLQ2s2SUZSSVVrVkZMa052Ykc5eUlIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NTFibWxtYjNKdGN5NXZkWFJzYVc1bFEyOXNiM0pHWVdOMGIzSXVkbUZzZFdVN1hHNGdJSDFjYmlBZ2NIVmliR2xqSUhObGRDQnZkWFJzYVc1bFEyOXNiM0pHWVdOMGIzSW9kbUZzZFdVNklGUklVa1ZGTGtOdmJHOXlLU0I3WEc0Z0lDQWdkR2hwY3k1MWJtbG1iM0p0Y3k1dmRYUnNhVzVsUTI5c2IzSkdZV04wYjNJdWRtRnNkV1VnUFNCMllXeDFaVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhRZ2IzVjBiR2x1WlV4cFoyaDBhVzVuVFdsNFJtRmpkRzl5S0NrNklHNTFiV0psY2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRXNXBabTl5YlhNdWIzVjBiR2x1WlV4cFoyaDBhVzVuVFdsNFJtRmpkRzl5TG5aaGJIVmxPMXh1SUNCOVhHNGdJSEIxWW14cFl5QnpaWFFnYjNWMGJHbHVaVXhwWjJoMGFXNW5UV2w0Um1GamRHOXlLSFpoYkhWbE9pQnVkVzFpWlhJcElIdGNiaUFnSUNCMGFHbHpMblZ1YVdadmNtMXpMbTkxZEd4cGJtVk1hV2RvZEdsdVowMXBlRVpoWTNSdmNpNTJZV3gxWlNBOUlIWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQjFka0Z1YVcxaGRHbHZiazFoYzJ0VVpYaDBkWEpsS0NrNklGUklVa1ZGTGxSbGVIUjFjbVVnZkNCdWRXeHNJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTUxYm1sbWIzSnRjeTUxZGtGdWFXMWhkR2x2YmsxaGMydFVaWGgwZFhKbExuWmhiSFZsTzF4dUlDQjlYRzRnSUhCMVlteHBZeUJ6WlhRZ2RYWkJibWx0WVhScGIyNU5ZWE5yVkdWNGRIVnlaU2gyWVd4MVpUb2dWRWhTUlVVdVZHVjRkSFZ5WlNCOElHNTFiR3dwSUh0Y2JpQWdJQ0IwYUdsekxuVnVhV1p2Y20xekxuVjJRVzVwYldGMGFXOXVUV0Z6YTFSbGVIUjFjbVV1ZG1Gc2RXVWdQU0IyWVd4MVpUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFFnZFhaQmJtbHRZWFJwYjI1VFkzSnZiR3hZVDJabWMyVjBLQ2s2SUc1MWJXSmxjaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11ZFc1cFptOXliWE11ZFhaQmJtbHRZWFJwYjI1VFkzSnZiR3hZVDJabWMyVjBMblpoYkhWbE8xeHVJQ0I5WEc0Z0lIQjFZbXhwWXlCelpYUWdkWFpCYm1sdFlYUnBiMjVUWTNKdmJHeFlUMlptYzJWMEtIWmhiSFZsT2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0IwYUdsekxuVnVhV1p2Y20xekxuVjJRVzVwYldGMGFXOXVVMk55YjJ4c1dFOW1abk5sZEM1MllXeDFaU0E5SUhaaGJIVmxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCMWRrRnVhVzFoZEdsdmJsTmpjbTlzYkZsUFptWnpaWFFvS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1MWJtbG1iM0p0Y3k1MWRrRnVhVzFoZEdsdmJsTmpjbTlzYkZsUFptWnpaWFF1ZG1Gc2RXVTdYRzRnSUgxY2JpQWdjSFZpYkdsaklITmxkQ0IxZGtGdWFXMWhkR2x2YmxOamNtOXNiRmxQWm1aelpYUW9kbUZzZFdVNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUhSb2FYTXVkVzVwWm05eWJYTXVkWFpCYm1sdFlYUnBiMjVUWTNKdmJHeFpUMlptYzJWMExuWmhiSFZsSUQwZ2RtRnNkV1U3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElIVjJRVzVwYldGMGFXOXVVbTkwWVhScGIyNVFhR0Z6WlNncE9pQnVkVzFpWlhJZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuVnVhV1p2Y20xekxuVjJRVzVwYldGMGFXOXVVbTkwWVhScGIyNVFhR0Z6WlM1MllXeDFaVHRjYmlBZ2ZWeHVJQ0J3ZFdKc2FXTWdjMlYwSUhWMlFXNXBiV0YwYVc5dVVtOTBZWFJwYjI1UWFHRnpaU2gyWVd4MVpUb2diblZ0WW1WeUtTQjdYRzRnSUNBZ2RHaHBjeTUxYm1sbWIzSnRjeTUxZGtGdWFXMWhkR2x2YmxKdmRHRjBhVzl1VUdoaGMyVXVkbUZzZFdVZ1BTQjJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCMWRrRnVhVzFoZEdsdmJsTmpjbTlzYkZoVGNHVmxaRVpoWTNSdmNpQTlJREF1TUR0Y2JpQWdjSFZpYkdsaklIVjJRVzVwYldGMGFXOXVVMk55YjJ4c1dWTndaV1ZrUm1GamRHOXlJRDBnTUM0d08xeHVJQ0J3ZFdKc2FXTWdkWFpCYm1sdFlYUnBiMjVTYjNSaGRHbHZibE53WldWa1JtRmpkRzl5SUQwZ01DNHdPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlhhR1YwYUdWeUlIUm9aU0J0WVhSbGNtbGhiQ0JwY3lCaFptWmxZM1JsWkNCaWVTQm1iMmN1WEc0Z0lDQXFJR0IwY25WbFlDQmllU0JrWldaaGRXeDBMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR1p2WnlBOUlIUnlkV1U3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRmRwYkd3Z1ltVWdjbVZoWkNCcGJpQlhaV0pIVEZCeWIyZHlZVzF6WEc0Z0lDQXFYRzRnSUNBcUlGTmxaVG9nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDIxeVpHOXZZaTkwYUhKbFpTNXFjeTlpYkc5aUx6Um1OVEl6Tm1Gak0yUTJaalF4WkRrd05HRmhOVGcwTURGaU5EQTFOVFJsT0daaVpHTmlNVFV2YzNKakwzSmxibVJsY21WeWN5OTNaV0puYkM5WFpXSkhURkJ5YjJkeVlXMXpMbXB6STB3eE9UQXRUREU1TVZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUc1dmNtMWhiRTFoY0ZSNWNHVWdQU0JVU0ZKRlJTNVVZVzVuWlc1MFUzQmhZMlZPYjNKdFlXeE5ZWEE3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRmRvWlc0Z2RHaHBjeUJwY3lCZ2RISjFaV0FzSUhabGNuUmxlQ0JqYjJ4dmNuTWdkMmxzYkNCaVpTQnBaMjV2Y21Wa0xseHVJQ0FnS2lCZ2RISjFaV0FnWW5rZ1pHVm1ZWFZzZEM1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1gybG5ibTl5WlZabGNuUmxlRU52Ykc5eUlEMGdkSEoxWlR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVjJobGJpQjBhR2x6SUdseklHQjBjblZsWUN3Z2RtVnlkR1Y0SUdOdmJHOXljeUIzYVd4c0lHSmxJR2xuYm05eVpXUXVYRzRnSUNBcUlHQjBjblZsWUNCaWVTQmtaV1poZFd4MExseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkQ0JwWjI1dmNtVldaWEowWlhoRGIyeHZjaWdwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmFXZHViM0psVm1WeWRHVjRRMjlzYjNJN1hHNGdJSDFjYmlBZ2NIVmliR2xqSUhObGRDQnBaMjV2Y21WV1pYSjBaWGhEYjJ4dmNpaDJZV3gxWlRvZ1ltOXZiR1ZoYmlrZ2UxeHVJQ0FnSUhSb2FYTXVYMmxuYm05eVpWWmxjblJsZUVOdmJHOXlJRDBnZG1Gc2RXVTdYRzVjYmlBZ0lDQjBhR2x6TG01bFpXUnpWWEJrWVhSbElEMGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gzWXdRMjl0Y0dGMFUyaGhaR1VnUFNCbVlXeHpaVHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsY21VZ2FYTWdZU0JzYVc1bElHOW1JSFJvWlNCemFHRmtaWElnWTJGc2JHVmtJRndpWTI5dGJXVnVkQ0J2ZFhRZ2FXWWdlVzkxSUhkaGJuUWdkRzhnVUVKU0lHRmljMjlzZFhSbGJIbGNJaUJwYmlCV1VrMHdMakFnVFZSdmIyNHVYRzRnSUNBcUlGZG9aVzRnZEdocGN5QnBjeUIwY25WbExDQjBhR1VnYldGMFpYSnBZV3dnWlc1aFlteGxjeUIwYUdVZ2JHbHVaU0IwYnlCdFlXdGxJR2wwSUdOdmJYQmhkR2xpYkdVZ2QybDBhQ0IwYUdVZ2JHVm5ZV041SUhKbGJtUmxjbWx1WnlCdlppQldVazB1WEc0Z0lDQXFJRlZ6ZFdGc2JIa2dibTkwSUhKbFkyOXRiV1Z1WkdWa0lIUnZJSFIxY200Z2RHaHBjeUJ2Ymk1Y2JpQWdJQ29nWUdaaGJITmxZQ0JpZVNCa1pXWmhkV3gwTGx4dUlDQWdLaTljYmlBZ1oyVjBJSFl3UTI5dGNHRjBVMmhoWkdVb0tUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM1l3UTI5dGNHRjBVMmhoWkdVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsY21VZ2FYTWdZU0JzYVc1bElHOW1JSFJvWlNCemFHRmtaWElnWTJGc2JHVmtJRndpWTI5dGJXVnVkQ0J2ZFhRZ2FXWWdlVzkxSUhkaGJuUWdkRzhnVUVKU0lHRmljMjlzZFhSbGJIbGNJaUJwYmlCV1VrMHdMakFnVFZSdmIyNHVYRzRnSUNBcUlGZG9aVzRnZEdocGN5QnBjeUIwY25WbExDQjBhR1VnYldGMFpYSnBZV3dnWlc1aFlteGxjeUIwYUdVZ2JHbHVaU0IwYnlCdFlXdGxJR2wwSUdOdmJYQmhkR2xpYkdVZ2QybDBhQ0IwYUdVZ2JHVm5ZV041SUhKbGJtUmxjbWx1WnlCdlppQldVazB1WEc0Z0lDQXFJRlZ6ZFdGc2JIa2dibTkwSUhKbFkyOXRiV1Z1WkdWa0lIUnZJSFIxY200Z2RHaHBjeUJ2Ymk1Y2JpQWdJQ29nWUdaaGJITmxZQ0JpZVNCa1pXWmhkV3gwTGx4dUlDQWdLaTljYmlBZ2MyVjBJSFl3UTI5dGNHRjBVMmhoWkdVb2Rqb2dZbTl2YkdWaGJpa2dlMXh1SUNBZ0lIUm9hWE11WDNZd1EyOXRjR0YwVTJoaFpHVWdQU0IyTzF4dVhHNGdJQ0FnZEdocGN5NXVaV1ZrYzFWd1pHRjBaU0E5SUhSeWRXVTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRjlrWldKMVowMXZaR1U2SUUxVWIyOXVUV0YwWlhKcFlXeEVaV0oxWjAxdlpHVWdQU0JOVkc5dmJrMWhkR1Z5YVdGc1JHVmlkV2ROYjJSbExrNXZibVU3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRVJsWW5WbklHMXZaR1VnWm05eUlIUm9aU0J0WVhSbGNtbGhiQzVjYmlBZ0lDb2dXVzkxSUdOaGJpQjJhWE4xWVd4cGVtVWdjMlYyWlhKaGJDQmpiMjF3YjI1bGJuUnpJR1p2Y2lCa2FXRm5ibTl6YVhNZ2RYTnBibWNnWkdWaWRXY2diVzlrWlM1Y2JpQWdJQ3BjYmlBZ0lDb2dVMlZsT2lCN1FHeHBibXNnVFZSdmIyNU5ZWFJsY21saGJFUmxZblZuVFc5a1pYMWNiaUFnSUNvdlhHNGdJR2RsZENCa1pXSjFaMDF2WkdVb0tUb2dUVlJ2YjI1TllYUmxjbWxoYkVSbFluVm5UVzlrWlNCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyUmxZblZuVFc5a1pUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJFWldKMVp5QnRiMlJsSUdadmNpQjBhR1VnYldGMFpYSnBZV3d1WEc0Z0lDQXFJRmx2ZFNCallXNGdkbWx6ZFdGc2FYcGxJSE5sZG1WeVlXd2dZMjl0Y0c5dVpXNTBjeUJtYjNJZ1pHbGhaMjV2YzJseklIVnphVzVuSUdSbFluVm5JRzF2WkdVdVhHNGdJQ0FxWEc0Z0lDQXFJRk5sWlRvZ2UwQnNhVzVySUUxVWIyOXVUV0YwWlhKcFlXeEVaV0oxWjAxdlpHVjlYRzRnSUNBcUwxeHVJQ0J6WlhRZ1pHVmlkV2ROYjJSbEtHMDZJRTFVYjI5dVRXRjBaWEpwWVd4RVpXSjFaMDF2WkdVcElIdGNiaUFnSUNCMGFHbHpMbDlrWldKMVowMXZaR1VnUFNCdE8xeHVYRzRnSUNBZ2RHaHBjeTV1WldWa2MxVndaR0YwWlNBOUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUY5dmRYUnNhVzVsVjJsa2RHaE5iMlJsT2lCTlZHOXZiazFoZEdWeWFXRnNUM1YwYkdsdVpWZHBaSFJvVFc5a1pTQTlJRTFVYjI5dVRXRjBaWEpwWVd4UGRYUnNhVzVsVjJsa2RHaE5iMlJsTGs1dmJtVTdYRzVjYmlBZ1oyVjBJRzkxZEd4cGJtVlhhV1IwYUUxdlpHVW9LVG9nVFZSdmIyNU5ZWFJsY21saGJFOTFkR3hwYm1WWGFXUjBhRTF2WkdVZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXZkWFJzYVc1bFYybGtkR2hOYjJSbE8xeHVJQ0I5WEc0Z0lITmxkQ0J2ZFhSc2FXNWxWMmxrZEdoTmIyUmxLRzA2SUUxVWIyOXVUV0YwWlhKcFlXeFBkWFJzYVc1bFYybGtkR2hOYjJSbEtTQjdYRzRnSUNBZ2RHaHBjeTVmYjNWMGJHbHVaVmRwWkhSb1RXOWtaU0E5SUcwN1hHNWNiaUFnSUNCMGFHbHpMbTVsWldSelZYQmtZWFJsSUQwZ2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJselQzVjBiR2x1WlNBOUlHWmhiSE5sTzF4dVhHNGdJR2RsZENCcGMwOTFkR3hwYm1Vb0tUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMmx6VDNWMGJHbHVaVHRjYmlBZ2ZWeHVJQ0J6WlhRZ2FYTlBkWFJzYVc1bEtHSTZJR0p2YjJ4bFlXNHBJSHRjYmlBZ0lDQjBhR2x6TGw5cGMwOTFkR3hwYm1VZ1BTQmlPMXh1WEc0Z0lDQWdkR2hwY3k1dVpXVmtjMVZ3WkdGMFpTQTlJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVZoWkc5dWJIa2dZbTl2YkdWaGJpQjBhR0YwSUdsdVpHbGpZWFJsY3lCMGFHbHpJR2x6SUdFZ1cxdE5WRzl2YmsxaGRHVnlhV0ZzWFYwdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1oyVjBJR2x6VFZSdmIyNU5ZWFJsY21saGJDZ3BPaUIwY25WbElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0hCaGNtRnRaWFJsY25NNklFMVViMjl1VFdGMFpYSnBZV3hRWVhKaGJXVjBaWEp6SUQwZ2UzMHBJSHRjYmlBZ0lDQnpkWEJsY2loN0lIWmxjblJsZUZOb1lXUmxjaXdnWm5KaFoyMWxiblJUYUdGa1pYSWdmU2s3WEc1Y2JpQWdJQ0F2THlCdmRtVnljbWxrWlNCa1pYQjBhRmR5YVhSbElIZHBkR2dnZEhKaGJuTndZWEpsYm5SWGFYUm9XbGR5YVhSbFhHNGdJQ0FnYVdZZ0tIQmhjbUZ0WlhSbGNuTXVkSEpoYm5Od1lYSmxiblJYYVhSb1dsZHlhWFJsS1NCN1hHNGdJQ0FnSUNCd1lYSmhiV1YwWlhKekxtUmxjSFJvVjNKcGRHVWdQU0IwY25WbE8xeHVJQ0FnSUgxY2JpQWdJQ0JrWld4bGRHVWdjR0Z5WVcxbGRHVnljeTUwY21GdWMzQmhjbVZ1ZEZkcGRHaGFWM0pwZEdVN1hHNWNiaUFnSUNBdkx5QTlQU0JsYm1GaWJHbHVaeUJpZFc1amFDQnZaaUJ6ZEhWbVppQTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmlBZ0lDQndZWEpoYldWMFpYSnpMbVp2WnlBOUlIUnlkV1U3WEc0Z0lDQWdjR0Z5WVcxbGRHVnljeTVzYVdkb2RITWdQU0IwY25WbE8xeHVJQ0FnSUhCaGNtRnRaWFJsY25NdVkyeHBjSEJwYm1jZ1BTQjBjblZsTzF4dVhHNGdJQ0FnTHk4Z1EwOU5VRUZVT2lCd2NtVXRjakV5T1Z4dUlDQWdJQzh2SUZObFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMjF5Wkc5dllpOTBhSEpsWlM1cWN5OXdkV3hzTHpJeE56ZzRYRzRnSUNBZ2FXWWdLSEJoY25ObFNXNTBLRlJJVWtWRkxsSkZWa2xUU1U5T0xDQXhNQ2tnUENBeE1qa3BJSHRjYmlBZ0lDQWdJQ2h3WVhKaGJXVjBaWEp6SUdGeklHRnVlU2t1YzJ0cGJtNXBibWNnUFNBb2NHRnlZVzFsZEdWeWN5QmhjeUJoYm5rcExuTnJhVzV1YVc1bklIeDhJR1poYkhObE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFTlBUVkJCVkRvZ2NISmxMWEl4TXpGY2JpQWdJQ0F2THlCVFpXVTZJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzl0Y21SdmIySXZkR2h5WldVdWFuTXZjSFZzYkM4eU1qRTJPVnh1SUNBZ0lHbG1JQ2h3WVhKelpVbHVkQ2hVU0ZKRlJTNVNSVlpKVTBsUFRpd2dNVEFwSUR3Z01UTXhLU0I3WEc0Z0lDQWdJQ0FvY0dGeVlXMWxkR1Z5Y3lCaGN5QmhibmtwTG0xdmNuQm9WR0Z5WjJWMGN5QTlJQ2h3WVhKaGJXVjBaWEp6SUdGeklHRnVlU2t1Ylc5eWNHaFVZWEpuWlhSeklIeDhJR1poYkhObE8xeHVJQ0FnSUNBZ0tIQmhjbUZ0WlhSbGNuTWdZWE1nWVc1NUtTNXRiM0p3YUU1dmNtMWhiSE1nUFNBb2NHRnlZVzFsZEdWeWN5QmhjeUJoYm5rcExtMXZjbkJvVG05eWJXRnNjeUI4ZkNCbVlXeHpaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUE5UFNCMWJtbG1iM0p0Y3lBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpQWdJQ0IwYUdsekxuVnVhV1p2Y20xeklEMGdWRWhTUlVVdVZXNXBabTl5YlhOVmRHbHNjeTV0WlhKblpTaGJYRzRnSUNBZ0lDQlVTRkpGUlM1VmJtbG1iM0p0YzB4cFlpNWpiMjF0YjI0c0lDOHZJRzFoY0Z4dUlDQWdJQ0FnVkVoU1JVVXVWVzVwWm05eWJYTk1hV0l1Ym05eWJXRnNiV0Z3TENBdkx5QnViM0p0WVd4TllYQmNiaUFnSUNBZ0lGUklVa1ZGTGxWdWFXWnZjbTF6VEdsaUxtVnRhWE56YVhabGJXRndMQ0F2THlCbGJXbHpjMmwyWlUxaGNGeHVJQ0FnSUNBZ1ZFaFNSVVV1Vlc1cFptOXliWE5NYVdJdVptOW5MRnh1SUNBZ0lDQWdWRWhTUlVVdVZXNXBabTl5YlhOTWFXSXViR2xuYUhSekxGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnNhWFJHWVdOMGIzSTZJSHNnZG1Gc2RXVTZJRzVsZHlCVVNGSkZSUzVEYjJ4dmNpZ3hMakFzSURFdU1Dd2dNUzR3S1NCOUxGeHVJQ0FnSUNBZ0lDQnRZWEJWZGxSeVlXNXpabTl5YlRvZ2V5QjJZV3gxWlRvZ2JtVjNJRlJJVWtWRkxrMWhkSEpwZURNb0tTQjlMRnh1SUNBZ0lDQWdJQ0JqYjJ4dmNrRnNjR2hoT2lCN0lIWmhiSFZsT2lBeExqQWdmU3hjYmlBZ0lDQWdJQ0FnYm05eWJXRnNUV0Z3VlhaVWNtRnVjMlp2Y20wNklIc2dkbUZzZFdVNklHNWxkeUJVU0ZKRlJTNU5ZWFJ5YVhnektDa2dmU3hjYmlBZ0lDQWdJQ0FnYzJoaFpHVkRiMnh2Y2taaFkzUnZjam9nZXlCMllXeDFaVG9nYm1WM0lGUklVa1ZGTGtOdmJHOXlLREF1T1Rjc0lEQXVPREVzSURBdU9EWXBJSDBzWEc0Z0lDQWdJQ0FnSUhOb1lXUmxUWFZzZEdsd2JIbFVaWGgwZFhKbE9pQjdJSFpoYkhWbE9pQnVkV3hzSUgwc1hHNGdJQ0FnSUNBZ0lITm9ZV1JsVFhWc2RHbHdiSGxVWlhoMGRYSmxWWFpVY21GdWMyWnZjbTA2SUhzZ2RtRnNkV1U2SUc1bGR5QlVTRkpGUlM1TllYUnlhWGd6S0NrZ2ZTeGNiaUFnSUNBZ0lDQWdjMmhoWkdsdVoxTm9hV1owUm1GamRHOXlPaUI3SUhaaGJIVmxPaUF3TGpBZ2ZTeGNiaUFnSUNBZ0lDQWdjMmhoWkdsdVoxTm9hV1owVkdWNGRIVnlaVG9nZXlCMllXeDFaVG9nYm5Wc2JDQjlMRnh1SUNBZ0lDQWdJQ0J6YUdGa2FXNW5VMmhwWm5SVVpYaDBkWEpsVlhaVWNtRnVjMlp2Y20wNklIc2dkbUZzZFdVNklHNWxkeUJVU0ZKRlJTNU5ZWFJ5YVhnektDa2dmU3hjYmlBZ0lDQWdJQ0FnYzJoaFpHbHVaMU5vYVdaMFZHVjRkSFZ5WlZOallXeGxPaUI3SUhaaGJIVmxPaUF4TGpBZ2ZTeGNiaUFnSUNBZ0lDQWdjMmhoWkdsdVoxUnZiMjU1Um1GamRHOXlPaUI3SUhaaGJIVmxPaUF3TGprZ2ZTeGNiaUFnSUNBZ0lDQWdaMmxGY1hWaGJHbDZZWFJwYjI1R1lXTjBiM0k2SUhzZ2RtRnNkV1U2SURBdU9TQjlMRnh1SUNBZ0lDQWdJQ0J0WVhSallYQkdZV04wYjNJNklIc2dkbUZzZFdVNklHNWxkeUJVU0ZKRlJTNURiMnh2Y2lnd0xqQXNJREF1TUN3Z01DNHdLU0I5TEZ4dUlDQWdJQ0FnSUNCdFlYUmpZWEJVWlhoMGRYSmxPaUI3SUhaaGJIVmxPaUJ1ZFd4c0lIMHNYRzRnSUNBZ0lDQWdJRzFoZEdOaGNGUmxlSFIxY21WVmRsUnlZVzV6Wm05eWJUb2dleUIyWVd4MVpUb2dibVYzSUZSSVVrVkZMazFoZEhKcGVETW9LU0I5TEZ4dUlDQWdJQ0FnSUNCd1lYSmhiV1YwY21salVtbHRRMjlzYjNKR1lXTjBiM0k2SUhzZ2RtRnNkV1U2SUc1bGR5QlVTRkpGUlM1RGIyeHZjaWd3TGpBc0lEQXVNQ3dnTUM0d0tTQjlMRnh1SUNBZ0lDQWdJQ0J5YVcxTmRXeDBhWEJzZVZSbGVIUjFjbVU2SUhzZ2RtRnNkV1U2SUc1MWJHd2dmU3hjYmlBZ0lDQWdJQ0FnY21sdFRYVnNkR2x3YkhsVVpYaDBkWEpsVlhaVWNtRnVjMlp2Y20wNklIc2dkbUZzZFdVNklHNWxkeUJVU0ZKRlJTNU5ZWFJ5YVhnektDa2dmU3hjYmlBZ0lDQWdJQ0FnY21sdFRHbG5hSFJwYm1kTmFYaEdZV04wYjNJNklIc2dkbUZzZFdVNklEQXVNQ0I5TEZ4dUlDQWdJQ0FnSUNCd1lYSmhiV1YwY21salVtbHRSbkpsYzI1bGJGQnZkMlZ5Um1GamRHOXlPaUI3SUhaaGJIVmxPaUF4TGpBZ2ZTeGNiaUFnSUNBZ0lDQWdjR0Z5WVcxbGRISnBZMUpwYlV4cFpuUkdZV04wYjNJNklIc2dkbUZzZFdVNklEQXVNQ0I5TEZ4dUlDQWdJQ0FnSUNCbGJXbHpjMmwyWlRvZ2V5QjJZV3gxWlRvZ2JtVjNJRlJJVWtWRkxrTnZiRzl5S0RBdU1Dd2dNQzR3TENBd0xqQXBJSDBzWEc0Z0lDQWdJQ0FnSUdWdGFYTnphWFpsU1c1MFpXNXphWFI1T2lCN0lIWmhiSFZsT2lBeExqQWdmU3hjYmlBZ0lDQWdJQ0FnWlcxcGMzTnBkbVZOWVhCVmRsUnlZVzV6Wm05eWJUb2dleUIyWVd4MVpUb2dibVYzSUZSSVVrVkZMazFoZEhKcGVETW9LU0I5TEZ4dUlDQWdJQ0FnSUNCdmRYUnNhVzVsVjJsa2RHaE5kV3gwYVhCc2VWUmxlSFIxY21VNklIc2dkbUZzZFdVNklHNTFiR3dnZlN4Y2JpQWdJQ0FnSUNBZ2IzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbFZYWlVjbUZ1YzJadmNtMDZJSHNnZG1Gc2RXVTZJRzVsZHlCVVNGSkZSUzVOWVhSeWFYZ3pLQ2tnZlN4Y2JpQWdJQ0FnSUNBZ2IzVjBiR2x1WlZkcFpIUm9SbUZqZEc5eU9pQjdJSFpoYkhWbE9pQXdMalVnZlN4Y2JpQWdJQ0FnSUNBZ2IzVjBiR2x1WlVOdmJHOXlSbUZqZEc5eU9pQjdJSFpoYkhWbE9pQnVaWGNnVkVoU1JVVXVRMjlzYjNJb01DNHdMQ0F3TGpBc0lEQXVNQ2tnZlN4Y2JpQWdJQ0FnSUNBZ2IzVjBiR2x1WlV4cFoyaDBhVzVuVFdsNFJtRmpkRzl5T2lCN0lIWmhiSFZsT2lBeExqQWdmU3hjYmlBZ0lDQWdJQ0FnZFhaQmJtbHRZWFJwYjI1TllYTnJWR1Y0ZEhWeVpUb2dleUIyWVd4MVpUb2diblZzYkNCOUxGeHVJQ0FnSUNBZ0lDQjFka0Z1YVcxaGRHbHZiazFoYzJ0VVpYaDBkWEpsVlhaVWNtRnVjMlp2Y20wNklIc2dkbUZzZFdVNklHNWxkeUJVU0ZKRlJTNU5ZWFJ5YVhnektDa2dmU3hjYmlBZ0lDQWdJQ0FnZFhaQmJtbHRZWFJwYjI1VFkzSnZiR3hZVDJabWMyVjBPaUI3SUhaaGJIVmxPaUF3TGpBZ2ZTeGNiaUFnSUNBZ0lDQWdkWFpCYm1sdFlYUnBiMjVUWTNKdmJHeFpUMlptYzJWME9pQjdJSFpoYkhWbE9pQXdMakFnZlN4Y2JpQWdJQ0FnSUNBZ2RYWkJibWx0WVhScGIyNVNiM1JoZEdsdmJsQm9ZWE5sT2lCN0lIWmhiSFZsT2lBd0xqQWdmU3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J3WVhKaGJXVjBaWEp6TG5WdWFXWnZjbTF6SUQ4L0lIdDlMRnh1SUNBZ0lGMHBJR0Z6SUhSNWNHVnZaaUJOVkc5dmJrMWhkR1Z5YVdGc0xuQnliM1J2ZEhsd1pTNTFibWxtYjNKdGN6dGNibHh1SUNBZ0lDOHZJRDA5SUdacGJtRnNiSGtnWTI5dGNHbHNaU0IwYUdVZ2MyaGhaR1Z5SUhCeWIyZHlZVzBnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4dUlDQWdJSFJvYVhNdWMyVjBWbUZzZFdWektIQmhjbUZ0WlhSbGNuTXBPMXh1WEc0Z0lDQWdMeThnUFQwZ2RYQnNiMkZrSUhWdWFXWnZjbTF6SUhSb1lYUWdibVZsWkNCMGJ5QjFjR3h2WVdRZ1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNGdJQ0FnZEdocGN5NWZkWEJzYjJGa1ZXNXBabTl5YlhOWGIzSnJZWEp2ZFc1a0tDazdYRzVjYmlBZ0lDQXZMeUE5UFNCMWNHUmhkR1VnYzJoaFpHVnlJSE4wZFdabUlEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpQWdJQ0IwYUdsekxtTjFjM1J2YlZCeWIyZHlZVzFEWVdOb1pVdGxlU0E5SUNncElEMCtYRzRnSUNBZ0lDQmJYRzRnSUNBZ0lDQWdJQzR1TGs5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdVgyZGxibVZ5WVhSbFJHVm1hVzVsY3lncEtTNXRZWEFvS0Z0MGIydGxiaXdnYldGamNtOWRLU0E5UGlCZ0pIdDBiMnRsYm4wNkpIdHRZV055YjMxZ0tTeGNiaUFnSUNBZ0lDQWdkR2hwY3k1dFlYUmpZWEJVWlhoMGRYSmxJRDhnWUcxaGRHTmhjRlJsZUhSMWNtVkRiMnh2Y2xOd1lXTmxPaVI3WjJWMFZHVjRkSFZ5WlVOdmJHOXlVM0JoWTJVb2RHaHBjeTV0WVhSallYQlVaWGgwZFhKbEtYMWdJRG9nSnljc1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJoaFpHVk5kV3gwYVhCc2VWUmxlSFIxY21WY2JpQWdJQ0FnSUNBZ0lDQS9JR0J6YUdGa1pVMTFiSFJwY0d4NVZHVjRkSFZ5WlVOdmJHOXlVM0JoWTJVNkpIdG5aWFJVWlhoMGRYSmxRMjlzYjNKVGNHRmpaU2gwYUdsekxuTm9ZV1JsVFhWc2RHbHdiSGxVWlhoMGRYSmxLWDFnWEc0Z0lDQWdJQ0FnSUNBZ09pQW5KeXhjYmlBZ0lDQWdJQ0FnZEdocGN5NXlhVzFOZFd4MGFYQnNlVlJsZUhSMWNtVWdQeUJnY21sdFRYVnNkR2x3YkhsVVpYaDBkWEpsUTI5c2IzSlRjR0ZqWlRva2UyZGxkRlJsZUhSMWNtVkRiMnh2Y2xOd1lXTmxLSFJvYVhNdWNtbHRUWFZzZEdsd2JIbFVaWGgwZFhKbEtYMWdJRG9nSnljc1hHNGdJQ0FnSUNCZExtcHZhVzRvSnl3bktUdGNibHh1SUNBZ0lIUm9hWE11YjI1Q1pXWnZjbVZEYjIxd2FXeGxJRDBnS0hOb1lXUmxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZEdoeVpXVlNaWFpwYzJsdmJpQTlJSEJoY25ObFNXNTBLRlJJVWtWRkxsSkZWa2xUU1U5T0xDQXhNQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR1JsWm1sdVpYTWdQVnh1SUNBZ0lDQWdJQ0JQWW1wbFkzUXVaVzUwY21sbGN5aDdJQzR1TG5Sb2FYTXVYMmRsYm1WeVlYUmxSR1ZtYVc1bGN5Z3BMQ0F1TGk1MGFHbHpMbVJsWm1sdVpYTWdmU2xjYmlBZ0lDQWdJQ0FnSUNBdVptbHNkR1Z5S0NoYmRHOXJaVzRzSUcxaFkzSnZYU2tnUFQ0Z0lTRnRZV055YnlsY2JpQWdJQ0FnSUNBZ0lDQXViV0Z3S0NoYmRHOXJaVzRzSUcxaFkzSnZYU2tnUFQ0Z1lDTmtaV1pwYm1VZ0pIdDBiMnRsYm4wZ0pIdHRZV055YjMxZ0tWeHVJQ0FnSUNBZ0lDQWdJQzVxYjJsdUtDZGNYRzRuS1NBcklDZGNYRzRuTzF4dVhHNGdJQ0FnSUNBdkx5QXRMU0JuWlc1bGNtRjBaU0J6YUdGa1pYSWdZMjlrWlNBdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRYRzRnSUNBZ0lDQnphR0ZrWlhJdWRtVnlkR1Y0VTJoaFpHVnlJRDBnWkdWbWFXNWxjeUFySUhOb1lXUmxjaTUyWlhKMFpYaFRhR0ZrWlhJN1hHNGdJQ0FnSUNCemFHRmtaWEl1Wm5KaFoyMWxiblJUYUdGa1pYSWdQU0JrWldacGJtVnpJQ3NnYzJoaFpHVnlMbVp5WVdkdFpXNTBVMmhoWkdWeU8xeHVYRzRnSUNBZ0lDQXZMeUF0TFNCamIyMXdZWFFnTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0WEc1Y2JpQWdJQ0FnSUM4dklFTlBUVkJCVkRvZ2NISmxMWEl4TlRSY2JpQWdJQ0FnSUM4dklGUm9jbVZsTG1weklISXhOVFFnY21WdVlXMWxjeUIwYUdVZ2MyaGhaR1Z5SUdOb2RXNXJJRHhqYjJ4dmNuTndZV05sWDJaeVlXZHRaVzUwUGlCMGJ5QThaVzVqYjJScGJtZHpYMlp5WVdkdFpXNTBQbHh1SUNBZ0lDQWdhV1lnS0hSb2NtVmxVbVYyYVhOcGIyNGdQQ0F4TlRRcElIdGNiaUFnSUNBZ0lDQWdjMmhoWkdWeUxtWnlZV2R0Wlc1MFUyaGhaR1Z5SUQwZ2MyaGhaR1Z5TG1aeVlXZHRaVzUwVTJoaFpHVnlMbkpsY0d4aFkyVW9YRzRnSUNBZ0lDQWdJQ0FnSnlOcGJtTnNkV1JsSUR4amIyeHZjbk53WVdObFgyWnlZV2R0Wlc1MFBpY3NYRzRnSUNBZ0lDQWdJQ0FnSnlOcGJtTnNkV1JsSUR4bGJtTnZaR2x1WjNOZlpuSmhaMjFsYm5RK0p5eGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1EwOU5VRUZVT2lCd2NtVXRjakV6TWx4dUlDQWdJQ0FnTHk4Z1ZHaHlaV1V1YW5NZ2NqRXpNaUJwYm5SeWIyUjFZMlZ6SUc1bGR5QnphR0ZrWlhJZ1kyaDFibXR6SUR4dWIzSnRZV3hmY0dGeWMxOW1jbUZuYldWdWRENGdZVzVrSUR4aGJIQm9ZWFJsYzNSZmNHRnljMTltY21GbmJXVnVkRDVjYmlBZ0lDQWdJR2xtSUNoMGFISmxaVkpsZG1semFXOXVJRHdnTVRNeUtTQjdYRzRnSUNBZ0lDQWdJSE5vWVdSbGNpNW1jbUZuYldWdWRGTm9ZV1JsY2lBOUlITm9ZV1JsY2k1bWNtRm5iV1Z1ZEZOb1lXUmxjaTV5WlhCc1lXTmxLQ2NqYVc1amJIVmtaU0E4Ym05eWJXRnNYM0JoY25OZlpuSmhaMjFsYm5RK0p5d2dKeWNwTzF4dUlDQWdJQ0FnSUNCemFHRmtaWEl1Wm5KaFoyMWxiblJUYUdGa1pYSWdQU0J6YUdGa1pYSXVabkpoWjIxbGJuUlRhR0ZrWlhJdWNtVndiR0ZqWlNnbkkybHVZMngxWkdVZ1BHRnNjR2hoZEdWemRGOXdZWEp6WDJaeVlXZHRaVzUwUGljc0lDY25LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZWd1pHRjBaU0IwYUdseklHMWhkR1Z5YVdGc0xseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdaR1ZzZEdFZ1pHVnNkR0ZVYVcxbElITnBibU5sSUd4aGMzUWdkWEJrWVhSbFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2RYQmtZWFJsS0dSbGJIUmhPaUJ1ZFcxaVpYSXBPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbDkxY0d4dllXUlZibWxtYjNKdGMxZHZjbXRoY205MWJtUW9LVHRjYmlBZ0lDQjBhR2x6TGw5MWNHUmhkR1ZWVmtGdWFXMWhkR2x2Ymloa1pXeDBZU2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWTI5d2VTaHpiM1Z5WTJVNklIUm9hWE1wT2lCMGFHbHpJSHRjYmlBZ0lDQnpkWEJsY2k1amIzQjVLSE52ZFhKalpTazdYRzRnSUNBZ0x5OGdkVzVwWm05eWJYTWdZWEpsSUdGc2NtVmhaSGtnWTI5d2FXVmtJR0YwSUhSb2FYTWdiVzl0Wlc1MFhHNWNiaUFnSUNBdkx5QkNaV2RwYm01cGJtY2dabkp2YlNCeU1UTXpMQ0IxYm1sbWIzSnRJSFJsZUhSMWNtVnpJSGRwYkd3Z1ltVWdZMnh2Ym1Wa0lHbHVjM1JsWVdRZ2IyWWdjbVZtWlhKbGJtTmxYRzRnSUNBZ0x5OGdVMlZsT2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmJYSmtiMjlpTDNSb2NtVmxMbXB6TDJKc2IySXZZVGc0TVROaVpUQTBZVGcwT1dKa01UVTFaamRqWmpabU1XSXlNMlE0WldVeVpUQm1ZalE0WWk5bGVHRnRjR3hsY3k5cWMyMHZiRzloWkdWeWN5OUhURlJHVEc5aFpHVnlMbXB6STB3ek1EUTNYRzRnSUNBZ0x5OGdVMlZsT2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmJYSmtiMjlpTDNSb2NtVmxMbXB6TDJKc2IySXZZVGc0TVROaVpUQTBZVGcwT1dKa01UVTFaamRqWmpabU1XSXlNMlE0WldVeVpUQm1ZalE0WWk5emNtTXZjbVZ1WkdWeVpYSnpMM05vWVdSbGNuTXZWVzVwWm05eWJYTlZkR2xzY3k1cWN5Tk1NakpjYmlBZ0lDQXZMeUJVYUdseklIZHBiR3dnYkdWaGRtVWdkR2hsYVhJZ1lDNTJaWEp6YVc5dVlDQjBieUJpWlNCZ01HQmNiaUFnSUNBdkx5QmhibVFnZEdobGMyVWdkR1Y0ZEhWeVpYTWdkMjl1SjNRZ1ltVWdkWEJzYjJGa1pXUWdkRzhnUjFCVlhHNGdJQ0FnTHk4Z1YyVWdZWEpsSUdkdmFXNW5JSFJ2SUhkdmNtdGhjbTkxYm1RZ2RHaHBjeUJwYmlCb1pYSmxYRzRnSUNBZ0x5OGdTU2QyWlNCdmNHVnVaV1FnWVc0Z2FYTnpkV1VnWm05eUlIUm9hWE02SUdoMGRIQnpPaTh2WjJsMGFIVmlMbU52YlM5dGNtUnZiMkl2ZEdoeVpXVXVhbk12YVhOemRXVnpMekl5TnpFNFhHNGdJQ0FnZEdocGN5NXRZWEFnUFNCemIzVnlZMlV1YldGd08xeHVJQ0FnSUhSb2FYTXVibTl5YldGc1RXRndJRDBnYzI5MWNtTmxMbTV2Y20xaGJFMWhjRHRjYmlBZ0lDQjBhR2x6TG1WdGFYTnphWFpsVFdGd0lEMGdjMjkxY21ObExtVnRhWE56YVhabFRXRndPMXh1SUNBZ0lIUm9hWE11YzJoaFpHVk5kV3gwYVhCc2VWUmxlSFIxY21VZ1BTQnpiM1Z5WTJVdWMyaGhaR1ZOZFd4MGFYQnNlVlJsZUhSMWNtVTdYRzRnSUNBZ2RHaHBjeTV6YUdGa2FXNW5VMmhwWm5SVVpYaDBkWEpsSUQwZ2MyOTFjbU5sTG5Ob1lXUnBibWRUYUdsbWRGUmxlSFIxY21VN1hHNGdJQ0FnZEdocGN5NXRZWFJqWVhCVVpYaDBkWEpsSUQwZ2MyOTFjbU5sTG0xaGRHTmhjRlJsZUhSMWNtVTdYRzRnSUNBZ2RHaHBjeTV5YVcxTmRXeDBhWEJzZVZSbGVIUjFjbVVnUFNCemIzVnlZMlV1Y21sdFRYVnNkR2x3YkhsVVpYaDBkWEpsTzF4dUlDQWdJSFJvYVhNdWIzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbElEMGdjMjkxY21ObExtOTFkR3hwYm1WWGFXUjBhRTExYkhScGNHeDVWR1Y0ZEhWeVpUdGNiaUFnSUNCMGFHbHpMblYyUVc1cGJXRjBhVzl1VFdGemExUmxlSFIxY21VZ1BTQnpiM1Z5WTJVdWRYWkJibWx0WVhScGIyNU5ZWE5yVkdWNGRIVnlaVHRjYmx4dUlDQWdJQzh2SUQwOUlHTnZjSGtnYldWdFltVnljeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVJQ0FnSUhSb2FYTXVibTl5YldGc1RXRndWSGx3WlNBOUlITnZkWEpqWlM1dWIzSnRZV3hOWVhCVWVYQmxPMXh1WEc0Z0lDQWdkR2hwY3k1MWRrRnVhVzFoZEdsdmJsTmpjbTlzYkZoVGNHVmxaRVpoWTNSdmNpQTlJSE52ZFhKalpTNTFka0Z1YVcxaGRHbHZibE5qY205c2JGaFRjR1ZsWkVaaFkzUnZjanRjYmlBZ0lDQjBhR2x6TG5WMlFXNXBiV0YwYVc5dVUyTnliMnhzV1ZOd1pXVmtSbUZqZEc5eUlEMGdjMjkxY21ObExuVjJRVzVwYldGMGFXOXVVMk55YjJ4c1dWTndaV1ZrUm1GamRHOXlPMXh1SUNBZ0lIUm9hWE11ZFhaQmJtbHRZWFJwYjI1U2IzUmhkR2x2YmxOd1pXVmtSbUZqZEc5eUlEMGdjMjkxY21ObExuVjJRVzVwYldGMGFXOXVVbTkwWVhScGIyNVRjR1ZsWkVaaFkzUnZjanRjYmx4dUlDQWdJSFJvYVhNdWFXZHViM0psVm1WeWRHVjRRMjlzYjNJZ1BTQnpiM1Z5WTJVdWFXZHViM0psVm1WeWRHVjRRMjlzYjNJN1hHNWNiaUFnSUNCMGFHbHpMbll3UTI5dGNHRjBVMmhoWkdVZ1BTQnpiM1Z5WTJVdWRqQkRiMjF3WVhSVGFHRmtaVHRjYmlBZ0lDQjBhR2x6TG1SbFluVm5UVzlrWlNBOUlITnZkWEpqWlM1a1pXSjFaMDF2WkdVN1hHNGdJQ0FnZEdocGN5NXZkWFJzYVc1bFYybGtkR2hOYjJSbElEMGdjMjkxY21ObExtOTFkR3hwYm1WWGFXUjBhRTF2WkdVN1hHNWNiaUFnSUNCMGFHbHpMbWx6VDNWMGJHbHVaU0E5SUhOdmRYSmpaUzVwYzA5MWRHeHBibVU3WEc1Y2JpQWdJQ0F2THlBOVBTQjFjR1JoZEdVZ2MyaGhaR1Z5SUhOMGRXWm1JRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNiaUFnSUNCMGFHbHpMbTVsWldSelZYQmtZWFJsSUQwZ2RISjFaVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGVndaR0YwWlNCVlZpQmhibWx0WVhScGIyNGdjM1JoZEdVdVhHNGdJQ0FxSUVsdWRHVnVaR1ZrSUhSdklHSmxJR05oYkd4bFpDQjJhV0VnZTBCc2FXNXJJSFZ3WkdGMFpYMHVYRzRnSUNBcUlFQndZWEpoYlNCa1pXeDBZU0JrWld4MFlWUnBiV1ZjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDNWd1pHRjBaVlZXUVc1cGJXRjBhVzl1S0dSbGJIUmhPaUJ1ZFcxaVpYSXBPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMblZ1YVdadmNtMXpMblYyUVc1cGJXRjBhVzl1VTJOeWIyeHNXRTltWm5ObGRDNTJZV3gxWlNBclBTQmtaV3gwWVNBcUlIUm9hWE11ZFhaQmJtbHRZWFJwYjI1VFkzSnZiR3hZVTNCbFpXUkdZV04wYjNJN1hHNGdJQ0FnZEdocGN5NTFibWxtYjNKdGN5NTFka0Z1YVcxaGRHbHZibE5qY205c2JGbFBabVp6WlhRdWRtRnNkV1VnS3owZ1pHVnNkR0VnS2lCMGFHbHpMblYyUVc1cGJXRjBhVzl1VTJOeWIyeHNXVk53WldWa1JtRmpkRzl5TzF4dUlDQWdJSFJvYVhNdWRXNXBabTl5YlhNdWRYWkJibWx0WVhScGIyNVNiM1JoZEdsdmJsQm9ZWE5sTG5aaGJIVmxJQ3M5SUdSbGJIUmhJQ29nZEdocGN5NTFka0Z1YVcxaGRHbHZibEp2ZEdGMGFXOXVVM0JsWldSR1lXTjBiM0k3WEc1Y2JpQWdJQ0IwYUdsekxuVnVhV1p2Y20xelRtVmxaRlZ3WkdGMFpTQTlJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWWEJzYjJGa0lIVnVhV1p2Y20xeklIUm9ZWFFnYm1WbFpDQjBieUIxY0d4dllXUWdZblYwSUdSdlpYTnVKM1FnWVhWMGIyMWhkR2xqWVd4c2VTQmlaV05oZFhObElHOW1JSEpsWVhOdmJuTXVYRzRnSUNBcUlFbHVkR1Z1WkdWa0lIUnZJR0psSUdOaGJHeGxaQ0IyYVdFZ2UwQnNhVzVySUdOdmJuTjBjblZqZEc5eWZTQmhibVFnZTBCc2FXNXJJSFZ3WkdGMFpYMHVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjkxY0d4dllXUlZibWxtYjNKdGMxZHZjbXRoY205MWJtUW9LVG9nZG05cFpDQjdYRzRnSUNBZ0x5OGdkMjl5YTJGeWIzVnVaRG9nYzJsdVkyVWdiM0JoWTJsMGVTQnBjeUJrWldacGJtVmtJR0Z6SUdFZ2NISnZjR1Z5ZEhrZ2FXNGdWRWhTUlVVdVRXRjBaWEpwWVd4Y2JpQWdJQ0F2THlCaGJtUWdZMkZ1Ym05MElHSmxJRzkyWlhKeWFXUmtaVzRnWVhNZ1lXNGdZV05qWlhOemIzSXNYRzRnSUNBZ0x5OGdWMlVnWVhKbElHZHZhVzVuSUhSdklIVndaR0YwWlNCdmNHRmphWFI1SUdobGNtVmNiaUFnSUNCMGFHbHpMblZ1YVdadmNtMXpMbTl3WVdOcGRIa3VkbUZzZFdVZ1BTQjBhR2x6TG05d1lXTnBkSGs3WEc1Y2JpQWdJQ0F2THlCM2IzSnJZWEp2ZFc1a09pQjBaWGgwZFhKbElIUnlZVzV6Wm05eWJYTWdZWEpsSUc1dmRDQjFjR1JoZEdWa0lHRjFkRzl0WVhScFkyRnNiSGxjYmlBZ0lDQjBhR2x6TGw5MWNHUmhkR1ZVWlhoMGRYSmxUV0YwY21sNEtIUm9hWE11ZFc1cFptOXliWE11YldGd0xDQjBhR2x6TG5WdWFXWnZjbTF6TG0xaGNGVjJWSEpoYm5ObWIzSnRLVHRjYmlBZ0lDQjBhR2x6TGw5MWNHUmhkR1ZVWlhoMGRYSmxUV0YwY21sNEtIUm9hWE11ZFc1cFptOXliWE11Ym05eWJXRnNUV0Z3TENCMGFHbHpMblZ1YVdadmNtMXpMbTV2Y20xaGJFMWhjRlYyVkhKaGJuTm1iM0p0S1R0Y2JpQWdJQ0IwYUdsekxsOTFjR1JoZEdWVVpYaDBkWEpsVFdGMGNtbDRLSFJvYVhNdWRXNXBabTl5YlhNdVpXMXBjM05wZG1WTllYQXNJSFJvYVhNdWRXNXBabTl5YlhNdVpXMXBjM05wZG1WTllYQlZkbFJ5WVc1elptOXliU2s3WEc0Z0lDQWdkR2hwY3k1ZmRYQmtZWFJsVkdWNGRIVnlaVTFoZEhKcGVDaDBhR2x6TG5WdWFXWnZjbTF6TG5Ob1lXUmxUWFZzZEdsd2JIbFVaWGgwZFhKbExDQjBhR2x6TG5WdWFXWnZjbTF6TG5Ob1lXUmxUWFZzZEdsd2JIbFVaWGgwZFhKbFZYWlVjbUZ1YzJadmNtMHBPMXh1SUNBZ0lIUm9hWE11WDNWd1pHRjBaVlJsZUhSMWNtVk5ZWFJ5YVhnb2RHaHBjeTUxYm1sbWIzSnRjeTV6YUdGa2FXNW5VMmhwWm5SVVpYaDBkWEpsTENCMGFHbHpMblZ1YVdadmNtMXpMbk5vWVdScGJtZFRhR2xtZEZSbGVIUjFjbVZWZGxSeVlXNXpabTl5YlNrN1hHNGdJQ0FnZEdocGN5NWZkWEJrWVhSbFZHVjRkSFZ5WlUxaGRISnBlQ2gwYUdsekxuVnVhV1p2Y20xekxtMWhkR05oY0ZSbGVIUjFjbVVzSUhSb2FYTXVkVzVwWm05eWJYTXViV0YwWTJGd1ZHVjRkSFZ5WlZWMlZISmhibk5tYjNKdEtUdGNiaUFnSUNCMGFHbHpMbDkxY0dSaGRHVlVaWGgwZFhKbFRXRjBjbWw0S0hSb2FYTXVkVzVwWm05eWJYTXVjbWx0VFhWc2RHbHdiSGxVWlhoMGRYSmxMQ0IwYUdsekxuVnVhV1p2Y20xekxuSnBiVTExYkhScGNHeDVWR1Y0ZEhWeVpWVjJWSEpoYm5ObWIzSnRLVHRjYmlBZ0lDQjBhR2x6TGw5MWNHUmhkR1ZVWlhoMGRYSmxUV0YwY21sNEtGeHVJQ0FnSUNBZ2RHaHBjeTUxYm1sbWIzSnRjeTV2ZFhSc2FXNWxWMmxrZEdoTmRXeDBhWEJzZVZSbGVIUjFjbVVzWEc0Z0lDQWdJQ0IwYUdsekxuVnVhV1p2Y20xekxtOTFkR3hwYm1WWGFXUjBhRTExYkhScGNHeDVWR1Y0ZEhWeVpWVjJWSEpoYm5ObWIzSnRMRnh1SUNBZ0lDazdYRzRnSUNBZ2RHaHBjeTVmZFhCa1lYUmxWR1Y0ZEhWeVpVMWhkSEpwZUNoMGFHbHpMblZ1YVdadmNtMXpMblYyUVc1cGJXRjBhVzl1VFdGemExUmxlSFIxY21Vc0lIUm9hWE11ZFc1cFptOXliWE11ZFhaQmJtbHRZWFJwYjI1TllYTnJWR1Y0ZEhWeVpWVjJWSEpoYm5ObWIzSnRLVHRjYmx4dUlDQWdJQzh2SUVOUFRWQkJWQ0IzYjNKcllYSnZkVzVrT2lCemRHRnlkR2x1WnlCbWNtOXRJSEl4TXpJc0lHRnNjR2hoVkdWemRDQmlaV052YldWeklHRWdkVzVwWm05eWJTQnBibk4wWldGa0lHOW1JSEJ5WlhCeWIyTmxjM052Y2lCMllXeDFaVnh1SUNBZ0lHTnZibk4wSUhSb2NtVmxVbVYyYVhOcGIyNGdQU0J3WVhKelpVbHVkQ2hVU0ZKRlJTNVNSVlpKVTBsUFRpd2dNVEFwTzF4dVhHNGdJQ0FnYVdZZ0tIUm9jbVZsVW1WMmFYTnBiMjRnUGowZ01UTXlLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuVnVhV1p2Y20xekxtRnNjR2hoVkdWemRDNTJZV3gxWlNBOUlIUm9hWE11WVd4d2FHRlVaWE4wTzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJvYVhNdWRXNXBabTl5YlhOT1pXVmtWWEJrWVhSbElEMGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY201eklHRWdiV0Z3SUc5aWFtVmpkQ0J2WmlCd2NtVndjbTlqWlhOemIzSWdkRzlyWlc0Z1lXNWtJRzFoWTNKdklHOW1JSFJvWlNCemFHRmtaWElnY0hKdlozSmhiUzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJkbGJtVnlZWFJsUkdWbWFXNWxjeWdwT2lCN0lGdDBiMnRsYmpvZ2MzUnlhVzVuWFRvZ1ltOXZiR1ZoYmlCOElHNTFiV0psY2lCOElITjBjbWx1WnlCOUlIdGNiaUFnSUNCamIyNXpkQ0IwYUhKbFpWSmxkbWx6YVc5dUlEMGdjR0Z5YzJWSmJuUW9WRWhTUlVVdVVrVldTVk5KVDA0c0lERXdLVHRjYmx4dUlDQWdJR052Ym5OMElIVnpaVlYyU1c1V1pYSjBJRDBnZEdocGN5NXZkWFJzYVc1bFYybGtkR2hOZFd4MGFYQnNlVlJsZUhSMWNtVWdJVDA5SUc1MWJHdzdYRzRnSUNBZ1kyOXVjM1FnZFhObFZYWkpia1p5WVdjZ1BWeHVJQ0FnSUNBZ2RHaHBjeTV0WVhBZ0lUMDlJRzUxYkd3Z2ZIeGNiaUFnSUNBZ0lIUm9hWE11WlcxcGMzTnBkbVZOWVhBZ0lUMDlJRzUxYkd3Z2ZIeGNiaUFnSUNBZ0lIUm9hWE11YzJoaFpHVk5kV3gwYVhCc2VWUmxlSFIxY21VZ0lUMDlJRzUxYkd3Z2ZIeGNiaUFnSUNBZ0lIUm9hWE11YzJoaFpHbHVaMU5vYVdaMFZHVjRkSFZ5WlNBaFBUMGdiblZzYkNCOGZGeHVJQ0FnSUNBZ2RHaHBjeTV5YVcxTmRXeDBhWEJzZVZSbGVIUjFjbVVnSVQwOUlHNTFiR3dnZkh4Y2JpQWdJQ0FnSUhSb2FYTXVkWFpCYm1sdFlYUnBiMjVOWVhOclZHVjRkSFZ5WlNBaFBUMGdiblZzYkR0Y2JseHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0F2THlCVVpXMXdiM0poY25rZ1kyOXRjR0YwSUdGbllXbHVjM1FnYzJoaFpHVnlJR05vWVc1blpTQkFJRlJvY21WbExtcHpJSEl4TWpaY2JpQWdJQ0FnSUM4dklGTmxaVG9nSXpJeE1qQTFMQ0FqTWpFek1EY3NJQ015TVRJNU9WeHVJQ0FnSUNBZ1ZFaFNSVVZmVmxKTlgxUklVa1ZGWDFKRlZrbFRTVTlPT2lCMGFISmxaVkpsZG1semFXOXVMRnh1WEc0Z0lDQWdJQ0JQVlZSTVNVNUZPaUIwYUdsekxsOXBjMDkxZEd4cGJtVXNYRzRnSUNBZ0lDQk5WRTlQVGw5VlUwVmZWVlk2SUhWelpWVjJTVzVXWlhKMElIeDhJSFZ6WlZWMlNXNUdjbUZuTENBdkx5QjNaU0JqWVc0bmRDQjFjMlVnWUZWVFJWOVZWbUFnTENCcGRDQjNhV3hzSUdKbElISmxaR1ZtYVc1bFpDQnBiaUJYWldKSFRGQnliMmR5WVcwdWFuTmNiaUFnSUNBZ0lFMVVUMDlPWDFWV1UxOVdSVkpVUlZoZlQwNU1XVG9nZFhObFZYWkpibFpsY25RZ0ppWWdJWFZ6WlZWMlNXNUdjbUZuTEZ4dUlDQWdJQ0FnVmpCZlEwOU5VRUZVWDFOSVFVUkZPaUIwYUdsekxsOTJNRU52YlhCaGRGTm9ZV1JsTEZ4dUlDQWdJQ0FnVlZORlgxTklRVVJGVFZWTVZFbFFURmxVUlZoVVZWSkZPaUIwYUdsekxuTm9ZV1JsVFhWc2RHbHdiSGxVWlhoMGRYSmxJQ0U5UFNCdWRXeHNMRnh1SUNBZ0lDQWdWVk5GWDFOSVFVUkpUa2RUU0VsR1ZGUkZXRlJWVWtVNklIUm9hWE11YzJoaFpHbHVaMU5vYVdaMFZHVjRkSFZ5WlNBaFBUMGdiblZzYkN4Y2JpQWdJQ0FnSUZWVFJWOU5RVlJEUVZCVVJWaFVWVkpGT2lCMGFHbHpMbTFoZEdOaGNGUmxlSFIxY21VZ0lUMDlJRzUxYkd3c1hHNGdJQ0FnSUNCVlUwVmZVa2xOVFZWTVZFbFFURmxVUlZoVVZWSkZPaUIwYUdsekxuSnBiVTExYkhScGNHeDVWR1Y0ZEhWeVpTQWhQVDBnYm5Wc2JDeGNiaUFnSUNBZ0lGVlRSVjlQVlZSTVNVNUZWMGxFVkVoTlZVeFVTVkJNV1ZSRldGUlZVa1U2SUhSb2FYTXVYMmx6VDNWMGJHbHVaU0FtSmlCMGFHbHpMbTkxZEd4cGJtVlhhV1IwYUUxMWJIUnBjR3g1VkdWNGRIVnlaU0FoUFQwZ2JuVnNiQ3hjYmlBZ0lDQWdJRlZUUlY5VlZrRk9TVTFCVkVsUFRrMUJVMHRVUlZoVVZWSkZPaUIwYUdsekxuVjJRVzVwYldGMGFXOXVUV0Z6YTFSbGVIUjFjbVVnSVQwOUlHNTFiR3dzWEc0Z0lDQWdJQ0JKUjA1UFVrVmZWa1ZTVkVWWVgwTlBURTlTT2lCMGFHbHpMbDlwWjI1dmNtVldaWEowWlhoRGIyeHZjaUE5UFQwZ2RISjFaU3hjYmlBZ0lDQWdJRVJGUWxWSFgwNVBVazFCVERvZ2RHaHBjeTVmWkdWaWRXZE5iMlJsSUQwOVBTQW5ibTl5YldGc0p5eGNiaUFnSUNBZ0lFUkZRbFZIWDB4SlZGTklRVVJGVWtGVVJUb2dkR2hwY3k1ZlpHVmlkV2ROYjJSbElEMDlQU0FuYkdsMFUyaGhaR1ZTWVhSbEp5eGNiaUFnSUNBZ0lFUkZRbFZIWDFWV09pQjBhR2x6TGw5a1pXSjFaMDF2WkdVZ1BUMDlJQ2QxZGljc1hHNGdJQ0FnSUNCUFZWUk1TVTVGWDFkSlJGUklYMWRQVWt4RU9pQjBhR2x6TGw5cGMwOTFkR3hwYm1VZ0ppWWdkR2hwY3k1ZmIzVjBiR2x1WlZkcFpIUm9UVzlrWlNBOVBUMGdUVlJ2YjI1TllYUmxjbWxoYkU5MWRHeHBibVZYYVdSMGFFMXZaR1V1VjI5eWJHUkRiMjl5WkdsdVlYUmxjeXhjYmlBZ0lDQWdJRTlWVkV4SlRrVmZWMGxFVkVoZlUwTlNSVVZPT2x4dUlDQWdJQ0FnSUNCMGFHbHpMbDlwYzA5MWRHeHBibVVnSmlZZ2RHaHBjeTVmYjNWMGJHbHVaVmRwWkhSb1RXOWtaU0E5UFQwZ1RWUnZiMjVOWVhSbGNtbGhiRTkxZEd4cGJtVlhhV1IwYUUxdlpHVXVVMk55WldWdVEyOXZjbVJwYm1GMFpYTXNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYM1Z3WkdGMFpWUmxlSFIxY21WTllYUnlhWGdvYzNKak9pQlVTRkpGUlM1SlZXNXBabTl5YlR4VVNGSkZSUzVVWlhoMGRYSmxJSHdnYm5Wc2JENHNJR1J6ZERvZ1ZFaFNSVVV1U1ZWdWFXWnZjbTA4VkVoU1JVVXVUV0YwY21sNE16NHBPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9jM0pqTG5aaGJIVmxLU0I3WEc0Z0lDQWdJQ0JwWmlBb2MzSmpMblpoYkhWbExtMWhkSEpwZUVGMWRHOVZjR1JoZEdVcElIdGNiaUFnSUNBZ0lDQWdjM0pqTG5aaGJIVmxMblZ3WkdGMFpVMWhkSEpwZUNncE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmtjM1F1ZG1Gc2RXVXVZMjl3ZVNoemNtTXVkbUZzZFdVdWJXRjBjbWw0S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibjFjYmlJc0ltbHRjRzl5ZENBcUlHRnpJRlJJVWtWRklHWnliMjBnSjNSb2NtVmxKenRjYmx4dVkyOXVjM1FnWTI5c2IzSlRjR0ZqWlVWdVkyOWthVzVuVFdGd09pQlNaV052Y21ROEp5Y2dmQ0FuYzNKbllpY3NJR0Z1ZVQ0Z1BTQjdYRzRnSUNjbk9pQXpNREF3TEZ4dUlDQnpjbWRpT2lBek1EQXhMRnh1ZlR0Y2JseHVMeW9xWEc0Z0tpQkJJR052YlhCaGRDQm1kVzVqZEdsdmJpQjBieUJ6WlhRZ2RHVjRkSFZ5WlNCamIyeHZjaUJ6Y0dGalpTNWNiaUFxWEc0Z0tpQkRUMDFRUVZRNklIQnlaUzF5TVRVeVhHNGdLaUJUZEdGeWRHbHVaeUJtY205dElGUm9jbVZsTG1weklISXhOVElzSUdCMFpYaDBkWEpsTG1WdVkyOWthVzVuWUNCcGN5QnlaVzVoYldWa0lIUnZJR0IwWlhoMGRYSmxMbU52Ykc5eVUzQmhZMlZnTGx4dUlDb2dWR2hwY3lCbWRXNWpkR2x2YmlCM2FXeHNJR2hoYm1Sc1pTQjBhR1VnWTI5dFlYQjBMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQjBaWGgwZFhKbElGUm9aU0IwWlhoMGRYSmxJSGx2ZFNCM1lXNTBJSFJ2SUhObGRDQjBhR1VnWTI5c2IzSWdjM0JoWTJVZ2RHOWNiaUFxSUVCd1lYSmhiU0JqYjJ4dmNsTndZV05sSUZSb1pTQmpiMnh2Y2lCemNHRmpaU0I1YjNVZ2QyRnVkQ0IwYnlCelpYUWdkRzhnZEdobElIUmxlSFIxY21WY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5sZEZSbGVIUjFjbVZEYjJ4dmNsTndZV05sS0hSbGVIUjFjbVU2SUZSSVVrVkZMbFJsZUhSMWNtVXNJR052Ykc5eVUzQmhZMlU2SUNjbklId2dKM055WjJJbktUb2dkbTlwWkNCN1hHNGdJR2xtSUNod1lYSnpaVWx1ZENoVVNGSkZSUzVTUlZaSlUwbFBUaXdnTVRBcElENDlJREUxTWlrZ2UxeHVJQ0FnSUhSbGVIUjFjbVV1WTI5c2IzSlRjR0ZqWlNBOUlHTnZiRzl5VTNCaFkyVTdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdLSFJsZUhSMWNtVWdZWE1nWVc1NUtTNWxibU52WkdsdVp5QTlJR052Ykc5eVUzQmhZMlZGYm1OdlpHbHVaMDFoY0Z0amIyeHZjbE53WVdObFhUdGNiaUFnZlZ4dWZWeHVJaXdpYVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIc2dSMHhVUmxCaGNuTmxjaUI5SUdaeWIyMGdKM1JvY21WbEwyVjRZVzF3YkdWekwycHpiUzlzYjJGa1pYSnpMMGRNVkVaTWIyRmtaWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2dUVlJ2YjI1TllYUmxjbWxoYkZCaGNtRnRaWFJsY25NZ2ZTQm1jbTl0SUNjdUwwMVViMjl1VFdGMFpYSnBZV3hRWVhKaGJXVjBaWEp6Snp0Y2JtbHRjRzl5ZENCN0lITmxkRlJsZUhSMWNtVkRiMnh2Y2xOd1lXTmxJSDBnWm5KdmJTQW5MaTkxZEdsc2N5OXpaWFJVWlhoMGRYSmxRMjlzYjNKVGNHRmpaU2M3WEc1Y2JpOHFLbHh1SUNvZ1RXRjBaWEpwWVd4UVlYSmhiV1YwWlhKeklHaGhkR1Z6SUdCMWJtUmxabWx1WldSZ0xpQlVhR2x6SUdobGJIQmxjaUJoZFhSdmJXRjBhV05oYkd4NUlISmxhbVZqZEhNZ1lYTnphV2R1SUc5bUlIUm9aWE5sSUdCMWJtUmxabWx1WldSZ0xseHVJQ29nU1hRZ1lXeHpieUJvWVc1a2JHVnpJR0Z6ZVc1amFISnZibTkxY3lCd2NtOWpaWE56SUc5bUlIUmxlSFIxY21WekxseHVJQ29nVFdGclpTQnpkWEpsSUdGM1lXbDBJR1p2Y2lCN1FHeHBibXNnUjB4VVJrMVViMjl1VFdGMFpYSnBZV3hRWVhKaGJYTkJjM05wWjI1SVpXeHdaWEl1Y0dWdVpHbHVaMzB1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCSFRGUkdUVlJ2YjI1TllYUmxjbWxoYkZCaGNtRnRjMEZ6YzJsbmJraGxiSEJsY2lCN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYM0JoY25ObGNqb2dSMHhVUmxCaGNuTmxjanRjYmlBZ2NISnBkbUYwWlNCZmJXRjBaWEpwWVd4UVlYSmhiWE02SUUxVWIyOXVUV0YwWlhKcFlXeFFZWEpoYldWMFpYSnpPMXh1SUNCd2NtbDJZWFJsSUY5d1pXNWthVzVuY3pvZ1VISnZiV2x6WlR4aGJuaytXMTA3WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J3Wlc1a2FXNW5LQ2s2SUZCeWIyMXBjMlU4ZFc1cmJtOTNiajRnZTF4dUlDQWdJSEpsZEhWeWJpQlFjbTl0YVhObExtRnNiQ2gwYUdsekxsOXdaVzVrYVc1bmN5azdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvY0dGeWMyVnlPaUJIVEZSR1VHRnljMlZ5TENCdFlYUmxjbWxoYkZCaGNtRnRjem9nVFZSdmIyNU5ZWFJsY21saGJGQmhjbUZ0WlhSbGNuTXBJSHRjYmlBZ0lDQjBhR2x6TGw5d1lYSnpaWElnUFNCd1lYSnpaWEk3WEc0Z0lDQWdkR2hwY3k1ZmJXRjBaWEpwWVd4UVlYSmhiWE1nUFNCdFlYUmxjbWxoYkZCaGNtRnRjenRjYmlBZ0lDQjBhR2x6TGw5d1pXNWthVzVuY3lBOUlGdGRPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6YzJsbmJsQnlhVzFwZEdsMlpUeFVJR1Y0ZEdWdVpITWdhMlY1YjJZZ1RWUnZiMjVOWVhSbGNtbGhiRkJoY21GdFpYUmxjbk0rS0d0bGVUb2dWQ3dnZG1Gc2RXVTZJRTFVYjI5dVRXRjBaWEpwWVd4UVlYSmhiV1YwWlhKelcxUmRLVG9nZG05cFpDQjdYRzRnSUNBZ2FXWWdLSFpoYkhWbElDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lIUm9hWE11WDIxaGRHVnlhV0ZzVUdGeVlXMXpXMnRsZVYwZ1BTQjJZV3gxWlR0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWVhOemFXZHVRMjlzYjNJOFZDQmxlSFJsYm1SeklHdGxlVzltSUUxVWIyOXVUV0YwWlhKcFlXeFFZWEpoYldWMFpYSnpQaWhjYmlBZ0lDQnJaWGs2SUZRc1hHNGdJQ0FnZG1Gc2RXVTZJRzUxYldKbGNsdGRJSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJR052Ym5abGNuUlRVa2RDVkc5TWFXNWxZWEkvT2lCaWIyOXNaV0Z1TEZ4dUlDQXBPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9kbUZzZFdVZ0lUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmYldGMFpYSnBZV3hRWVhKaGJYTmJhMlY1WFNBOUlHNWxkeUJVU0ZKRlJTNURiMnh2Y2lncExtWnliMjFCY25KaGVTaDJZV3gxWlNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2hqYjI1MlpYSjBVMUpIUWxSdlRHbHVaV0Z5S1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDIxaGRHVnlhV0ZzVUdGeVlXMXpXMnRsZVYwdVkyOXVkbVZ5ZEZOU1IwSlViMHhwYm1WaGNpZ3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmhjM2x1WXlCaGMzTnBaMjVVWlhoMGRYSmxQRlFnWlhoMFpXNWtjeUJyWlhsdlppQk5WRzl2YmsxaGRHVnlhV0ZzVUdGeVlXMWxkR1Z5Y3o0b1hHNGdJQ0FnYTJWNU9pQlVMRnh1SUNBZ0lIUmxlSFIxY21VNklIc2dhVzVrWlhnNklHNTFiV0psY2lCOUlId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lHbHpRMjlzYjNKVVpYaDBkWEpsT2lCaWIyOXNaV0Z1TEZ4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0J3Y205dGFYTmxJRDBnS0dGemVXNWpJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2gwWlhoMGRYSmxJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1ZmNHRnljMlZ5TG1GemMybG5ibFJsZUhSMWNtVW9kR2hwY3k1ZmJXRjBaWEpwWVd4UVlYSmhiWE1zSUd0bGVTd2dkR1Y0ZEhWeVpTazdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tHbHpRMjlzYjNKVVpYaDBkWEpsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwVkdWNGRIVnlaVU52Ykc5eVUzQmhZMlVvZEdocGN5NWZiV0YwWlhKcFlXeFFZWEpoYlhOYmEyVjVYU3dnSjNOeVoySW5LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwS0NrN1hHNWNiaUFnSUNCMGFHbHpMbDl3Wlc1a2FXNW5jeTV3ZFhOb0tIQnliMjFwYzJVcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhCeWIyMXBjMlU3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWVhONWJtTWdZWE56YVdkdVZHVjRkSFZ5WlVKNVNXNWtaWGc4VkNCbGVIUmxibVJ6SUd0bGVXOW1JRTFVYjI5dVRXRjBaWEpwWVd4UVlYSmhiV1YwWlhKelBpaGNiaUFnSUNCclpYazZJRlFzWEc0Z0lDQWdkR1Y0ZEhWeVpVbHVaR1Y0T2lCdWRXMWlaWElnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnYVhORGIyeHZjbFJsZUhSMWNtVTZJR0p2YjJ4bFlXNHNYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1GemMybG5ibFJsZUhSMWNtVW9hMlY1TENCMFpYaDBkWEpsU1c1a1pYZ2dJVDBnYm5Wc2JDQS9JSHNnYVc1a1pYZzZJSFJsZUhSMWNtVkpibVJsZUNCOUlEb2dkVzVrWldacGJtVmtMQ0JwYzBOdmJHOXlWR1Y0ZEhWeVpTazdYRzRnSUgxY2JuMWNiaUlzSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUZZeFRWUnZiMjVUWTJobGJXRWdabkp2YlNBblFIQnBlR2wyTDNSNWNHVnpMWFp5YldNdGJXRjBaWEpwWVd4ekxXMTBiMjl1TFRFdU1DYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lFZE1WRVlzSUVkTVZFWk1iMkZrWlhKUWJIVm5hVzRzSUVkTVZFWlFZWEp6WlhJZ2ZTQm1jbTl0SUNkMGFISmxaUzlsZUdGdGNHeGxjeTlxYzIwdmJHOWhaR1Z5Y3k5SFRGUkdURzloWkdWeUxtcHpKenRjYm1sdGNHOXlkQ0I3SUUxVWIyOXVUV0YwWlhKcFlXd2dmU0JtY205dElDY3VMMDFVYjI5dVRXRjBaWEpwWVd3bk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCTlZHOXZiazFoZEdWeWFXRnNVR0Z5WVcxbGRHVnljeUI5SUdaeWIyMGdKeTR2VFZSdmIyNU5ZWFJsY21saGJGQmhjbUZ0WlhSbGNuTW5PMXh1YVcxd2IzSjBJSHNnVFZSdmIyNU5ZWFJsY21saGJFOTFkR3hwYm1WWGFXUjBhRTF2WkdVZ2ZTQm1jbTl0SUNjdUwwMVViMjl1VFdGMFpYSnBZV3hQZFhSc2FXNWxWMmxrZEdoTmIyUmxKenRjYm1sdGNHOXlkQ0I3SUVkTVZFWk5WRzl2YmsxaGRHVnlhV0ZzVUdGeVlXMXpRWE56YVdkdVNHVnNjR1Z5SUgwZ1puSnZiU0FuTGk5SFRGUkdUVlJ2YjI1TllYUmxjbWxoYkZCaGNtRnRjMEZ6YzJsbmJraGxiSEJsY2ljN1hHNXBiWEJ2Y25RZ2V5Qk5WRzl2YmsxaGRHVnlhV0ZzVEc5aFpHVnlVR3gxWjJsdVQzQjBhVzl1Y3lCOUlHWnliMjBnSnk0dlRWUnZiMjVOWVhSbGNtbGhiRXh2WVdSbGNsQnNkV2RwYms5d2RHbHZibk1uTzF4dWFXMXdiM0owSUhSNWNHVWdleUJOVkc5dmJrMWhkR1Z5YVdGc1JHVmlkV2ROYjJSbElIMGdabkp2YlNBbkxpOU5WRzl2YmsxaGRHVnlhV0ZzUkdWaWRXZE5iMlJsSnp0Y2JtbHRjRzl5ZENCN0lFZE1WRVlnWVhNZ1IweFVSbE5qYUdWdFlTQjlJR1p5YjIwZ0owQm5iSFJtTFhSeVlXNXpabTl5YlM5amIzSmxKenRjYmx4dUx5b3FYRzRnS2lCUWIzTnphV0pzWlNCemNHVmpJSFpsY25OcGIyNXpJR2wwSUhKbFkyOW5ibWw2WlhNdVhHNGdLaTljYm1OdmJuTjBJRkJQVTFOSlFreEZYMU5RUlVOZlZrVlNVMGxQVGxNZ1BTQnVaWGNnVTJWMEtGc25NUzR3Snl3Z0p6RXVNQzFpWlhSaEoxMHBPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdUVlJ2YjI1TllYUmxjbWxoYkV4dllXUmxjbEJzZFdkcGJpQnBiWEJzWlcxbGJuUnpJRWRNVkVaTWIyRmtaWEpRYkhWbmFXNGdlMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRVZZVkVWT1UwbFBUbDlPUVUxRklEMGdKMVpTVFVOZmJXRjBaWEpwWVd4elgyMTBiMjl1Snp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdocGN5QjJZV3gxWlNCM2FXeHNJR0psSUdGa1pHVmtJSFJ2SUdCeVpXNWtaWEpQY21SbGNtQWdiMllnWlhabGNua2diV1Z6YUdWeklIZG9ieUJvWVhabElFMWhkR1Z5YVdGc2MwMVViMjl1TGx4dUlDQWdLaUJVYUdVZ1ptbHVZV3dnY21WdVpHVnlUM0prWlhJZ2QybHNiQ0JpWlNCemRXMGdiMllnZEdocGN5QmdjbVZ1WkdWeVQzSmtaWEpQWm1aelpYUmdJR0Z1WkNCZ2NtVnVaR1Z5VVhWbGRXVlBabVp6WlhST2RXMWlaWEpnSUdadmNpQmxZV05vSUcxaGRHVnlhV0ZzY3k1Y2JpQWdJQ29nWURCZ0lHSjVJR1JsWm1GMWJIUXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjbVZ1WkdWeVQzSmtaWEpQWm1aelpYUTZJRzUxYldKbGNqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxjbVVnYVhNZ1lTQnNhVzVsSUc5bUlIUm9aU0J6YUdGa1pYSWdZMkZzYkdWa0lGd2lZMjl0YldWdWRDQnZkWFFnYVdZZ2VXOTFJSGRoYm5RZ2RHOGdVRUpTSUdGaWMyOXNkWFJsYkhsY0lpQnBiaUJXVWswd0xqQWdUVlJ2YjI0dVhHNGdJQ0FxSUZkb1pXNGdkR2hwY3lCcGN5QjBjblZsTENCMGFHVWdiV0YwWlhKcFlXd2daVzVoWW14bGN5QjBhR1VnYkdsdVpTQjBieUJ0WVd0bElHbDBJR052YlhCaGRHbGliR1VnZDJsMGFDQjBhR1VnYkdWbllXTjVJSEpsYm1SbGNtbHVaeUJ2WmlCV1VrMHVYRzRnSUNBcUlGVnpkV0ZzYkhrZ2JtOTBJSEpsWTI5dGJXVnVaR1ZrSUhSdklIUjFjbTRnZEdocGN5QnZiaTVjYmlBZ0lDb2dZR1poYkhObFlDQmllU0JrWldaaGRXeDBMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSFl3UTI5dGNHRjBVMmhoWkdVNklHSnZiMnhsWVc0N1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVSbFluVm5JRzF2WkdVZ1ptOXlJSFJvWlNCdFlYUmxjbWxoYkM1Y2JpQWdJQ29nV1c5MUlHTmhiaUIyYVhOMVlXeHBlbVVnYzJWMlpYSmhiQ0JqYjIxd2IyNWxiblJ6SUdadmNpQmthV0ZuYm05emFYTWdkWE5wYm1jZ1pHVmlkV2NnYlc5a1pTNWNiaUFnSUNwY2JpQWdJQ29nVTJWbE9pQjdRR3hwYm1zZ1RWUnZiMjVOWVhSbGNtbGhiRVJsWW5WblRXOWtaWDFjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJrWldKMVowMXZaR1U2SUUxVWIyOXVUV0YwWlhKcFlXeEVaV0oxWjAxdlpHVTdYRzVjYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUhCaGNuTmxjam9nUjB4VVJsQmhjbk5sY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVEc5aFpHVmtJRzFoZEdWeWFXRnNjeUIzYVd4c0lHSmxJSE4wYjNKbFpDQnBiaUIwYUdseklITmxkQzVjYmlBZ0lDb2dWMmxzYkNCaVpTQjBjbUZ1YzJabGNuSmxaQ0JwYm5SdklHQm5iSFJtTG5WelpYSkVZWFJoTG5aeWJVMVViMjl1VFdGMFpYSnBZV3h6WUNCcGJpQjdRR3hwYm1zZ1lXWjBaWEpTYjI5MGZTNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYMjFVYjI5dVRXRjBaWEpwWVd4VFpYUTZJRk5sZER4TlZHOXZiazFoZEdWeWFXRnNQanRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJRzVoYldVb0tUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnVFZSdmIyNU5ZWFJsY21saGJFeHZZV1JsY2xCc2RXZHBiaTVGV0ZSRlRsTkpUMDVmVGtGTlJUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWh3WVhKelpYSTZJRWRNVkVaUVlYSnpaWElzSUc5d2RHbHZibk02SUUxVWIyOXVUV0YwWlhKcFlXeE1iMkZrWlhKUWJIVm5hVzVQY0hScGIyNXpJRDBnZTMwcElIdGNiaUFnSUNCMGFHbHpMbkJoY25ObGNpQTlJSEJoY25ObGNqdGNibHh1SUNBZ0lIUm9hWE11Y21WdVpHVnlUM0prWlhKUFptWnpaWFFnUFNCdmNIUnBiMjV6TG5KbGJtUmxjazl5WkdWeVQyWm1jMlYwSUQ4L0lEQTdYRzRnSUNBZ2RHaHBjeTUyTUVOdmJYQmhkRk5vWVdSbElEMGdiM0IwYVc5dWN5NTJNRU52YlhCaGRGTm9ZV1JsSUQ4L0lHWmhiSE5sTzF4dUlDQWdJSFJvYVhNdVpHVmlkV2ROYjJSbElEMGdiM0IwYVc5dWN5NWtaV0oxWjAxdlpHVWdQejhnSjI1dmJtVW5PMXh1WEc0Z0lDQWdkR2hwY3k1ZmJWUnZiMjVOWVhSbGNtbGhiRk5sZENBOUlHNWxkeUJUWlhRb0tUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmhjM2x1WXlCaVpXWnZjbVZTYjI5MEtDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUhSb2FYTXVYM0psYlc5MlpWVnViR2wwUlhoMFpXNXphVzl1U1daTlZHOXZia1Y0YVhOMGN5Z3BPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklHRm1kR1Z5VW05dmRDaG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1oyeDBaaTUxYzJWeVJHRjBZUzUyY20xTlZHOXZiazFoZEdWeWFXRnNjeUE5SUVGeWNtRjVMbVp5YjIwb2RHaHBjeTVmYlZSdmIyNU5ZWFJsY21saGJGTmxkQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFRXRjBaWEpwWVd4VWVYQmxLRzFoZEdWeWFXRnNTVzVrWlhnNklHNTFiV0psY2lrNklIUjVjR1Z2WmlCVVNGSkZSUzVOWVhSbGNtbGhiQ0I4SUc1MWJHd2dlMXh1SUNBZ0lHTnZibk4wSUhZeFJYaDBaVzV6YVc5dUlEMGdkR2hwY3k1ZloyVjBUVlJ2YjI1RmVIUmxibk5wYjI0b2JXRjBaWEpwWVd4SmJtUmxlQ2s3WEc0Z0lDQWdhV1lnS0hZeFJYaDBaVzV6YVc5dUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1RWUnZiMjVOWVhSbGNtbGhiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJsZUhSbGJtUk5ZWFJsY21saGJGQmhjbUZ0Y3lodFlYUmxjbWxoYkVsdVpHVjRPaUJ1ZFcxaVpYSXNJRzFoZEdWeWFXRnNVR0Z5WVcxek9pQk5WRzl2YmsxaGRHVnlhV0ZzVUdGeVlXMWxkR1Z5Y3lrNklGQnliMjFwYzJVOFlXNTVQaUI4SUc1MWJHd2dlMXh1SUNBZ0lHTnZibk4wSUdWNGRHVnVjMmx2YmlBOUlIUm9hWE11WDJkbGRFMVViMjl1UlhoMFpXNXphVzl1S0cxaGRHVnlhV0ZzU1c1a1pYZ3BPMXh1SUNBZ0lHbG1JQ2hsZUhSbGJuTnBiMjRwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxsOWxlSFJsYm1STllYUmxjbWxoYkZCaGNtRnRjeWhsZUhSbGJuTnBiMjRzSUcxaGRHVnlhV0ZzVUdGeVlXMXpLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJoYzNsdVl5QnNiMkZrVFdWemFDaHRaWE5vU1c1a1pYZzZJRzUxYldKbGNpazZJRkJ5YjIxcGMyVThWRWhTUlVVdVIzSnZkWEFnZkNCVVNGSkZSUzVOWlhOb0lId2dWRWhTUlVVdVUydHBibTVsWkUxbGMyZytJSHRjYmlBZ0lDQmpiMjV6ZENCd1lYSnpaWElnUFNCMGFHbHpMbkJoY25ObGNqdGNiaUFnSUNCamIyNXpkQ0JxYzI5dUlEMGdjR0Z5YzJWeUxtcHpiMjRnWVhNZ1IweFVSbE5qYUdWdFlTNUpSMHhVUmp0Y2JseHVJQ0FnSUdOdmJuTjBJRzFsYzJoRVpXWWdQU0JxYzI5dUxtMWxjMmhsY3o4dVcyMWxjMmhKYm1SbGVGMDdYRzVjYmlBZ0lDQnBaaUFvYldWemFFUmxaaUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YRzRnSUNBZ0lDQWdJR0JOVkc5dmJrMWhkR1Z5YVdGc1RHOWhaR1Z5VUd4MVoybHVPaUJCZEhSbGJYQjBJSFJ2SUhWelpTQnRaWE5vWlhOYkpIdHRaWE5vU1c1a1pYaDlYU0J2WmlCbmJGUkdJR0oxZENCMGFHVWdiV1Z6YUNCa2IyVnpiaWQwSUdWNGFYTjBZQ3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2NISnBiV2wwYVhabGMwUmxaaUE5SUcxbGMyaEVaV1l1Y0hKcGJXbDBhWFpsY3p0Y2JseHVJQ0FnSUdOdmJuTjBJRzFsYzJoUGNrZHliM1Z3SUQwZ1lYZGhhWFFnY0dGeWMyVnlMbXh2WVdSTlpYTm9LRzFsYzJoSmJtUmxlQ2s3WEc1Y2JpQWdJQ0JwWmlBb2NISnBiV2wwYVhabGMwUmxaaTVzWlc1bmRHZ2dQVDA5SURFcElIdGNiaUFnSUNBZ0lHTnZibk4wSUcxbGMyZ2dQU0J0WlhOb1QzSkhjbTkxY0NCaGN5QlVTRkpGUlM1TlpYTm9PMXh1SUNBZ0lDQWdZMjl1YzNRZ2JXRjBaWEpwWVd4SmJtUmxlQ0E5SUhCeWFXMXBkR2wyWlhORVpXWmJNRjB1YldGMFpYSnBZV3c3WEc1Y2JpQWdJQ0FnSUdsbUlDaHRZWFJsY21saGJFbHVaR1Y0SUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVmYzJWMGRYQlFjbWx0YVhScGRtVW9iV1Z6YUN3Z2JXRjBaWEpwWVd4SmJtUmxlQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHTnZibk4wSUdkeWIzVndJRDBnYldWemFFOXlSM0p2ZFhBZ1lYTWdWRWhTUlVVdVIzSnZkWEE3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhCeWFXMXBkR2wyWlhORVpXWXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYldWemFDQTlJR2R5YjNWd0xtTm9hV3hrY21WdVcybGRJR0Z6SUZSSVVrVkZMazFsYzJnN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRHVnlhV0ZzU1c1a1pYZ2dQU0J3Y21sdGFYUnBkbVZ6UkdWbVcybGRMbTFoZEdWeWFXRnNPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaHRZWFJsY21saGJFbHVaR1Y0SUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5elpYUjFjRkJ5YVcxcGRHbDJaU2h0WlhOb0xDQnRZWFJsY21saGJFbHVaR1Y0S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ0WlhOb1QzSkhjbTkxY0R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkVaV3hsZEdVZ2RYTmxJRzltSUdCTFNGSmZiV0YwWlhKcFlXeHpYM1Z1YkdsMFlDQm1jbTl0SUdsMGN5QmdiV0YwWlhKcFlXeHpZQ0JwWmlCMGFHVWdiV0YwWlhKcFlXd2dhWE1nZFhOcGJtY2dUVlJ2YjI0dVhHNGdJQ0FxWEc0Z0lDQXFJRk5wYm1ObElFZE1WRVpNYjJGa1pYSWdhR0YyWlNCemJ5QnRZVzU1SUdoaGNtUmpiMlJsWkNCd2NtOWpaV1IxY21VZ2NtVnNZWFJsWkNCMGJ5QmdTMGhTWDIxaGRHVnlhV0ZzYzE5MWJteHBkR0JjYmlBZ0lDb2dkMlVnYUdGMlpTQjBieUJrWld4bGRHVWdkR2hsSUdWNGRHVnVjMmx2YmlCaVpXWnZjbVVnZDJVZ2MzUmhjblFnZEc4Z2NHRnljMlVnZEdobElHZHNWRVl1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5eVpXMXZkbVZWYm14cGRFVjRkR1Z1YzJsdmJrbG1UVlJ2YjI1RmVHbHpkSE1vS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2NHRnljMlZ5SUQwZ2RHaHBjeTV3WVhKelpYSTdYRzRnSUNBZ1kyOXVjM1FnYW5OdmJpQTlJSEJoY25ObGNpNXFjMjl1SUdGeklFZE1WRVpUWTJobGJXRXVTVWRNVkVZN1hHNWNiaUFnSUNCamIyNXpkQ0J0WVhSbGNtbGhiRVJsWm5NZ1BTQnFjMjl1TG0xaGRHVnlhV0ZzY3p0Y2JpQWdJQ0J0WVhSbGNtbGhiRVJsWm5NL0xtMWhjQ2dvYldGMFpYSnBZV3hFWldZc0lHbE5ZWFJsY21saGJDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdaWGgwWlc1emFXOXVJRDBnZEdocGN5NWZaMlYwVFZSdmIyNUZlSFJsYm5OcGIyNG9hVTFoZEdWeWFXRnNLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHVjRkR1Z1YzJsdmJpQW1KaUJ0WVhSbGNtbGhiRVJsWmk1bGVIUmxibk5wYjI1elB5NWJKMHRJVWw5dFlYUmxjbWxoYkhOZmRXNXNhWFFuWFNrZ2UxeHVJQ0FnSUNBZ0lDQmtaV3hsZEdVZ2JXRjBaWEpwWVd4RVpXWXVaWGgwWlc1emFXOXVjMXNuUzBoU1gyMWhkR1Z5YVdGc2MxOTFibXhwZENkZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmZaMlYwVFZSdmIyNUZlSFJsYm5OcGIyNG9iV0YwWlhKcFlXeEpibVJsZURvZ2JuVnRZbVZ5S1RvZ1ZqRk5WRzl2YmxOamFHVnRZUzVXVWsxRFRXRjBaWEpwWVd4elRWUnZiMjRnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdOdmJuTjBJSEJoY25ObGNpQTlJSFJvYVhNdWNHRnljMlZ5TzF4dUlDQWdJR052Ym5OMElHcHpiMjRnUFNCd1lYSnpaWEl1YW5OdmJpQmhjeUJIVEZSR1UyTm9aVzFoTGtsSFRGUkdPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXRjBaWEpwWVd4RVpXWWdQU0JxYzI5dUxtMWhkR1Z5YVdGc2N6OHVXMjFoZEdWeWFXRnNTVzVrWlhoZE8xeHVYRzRnSUNBZ2FXWWdLRzFoZEdWeWFXRnNSR1ZtSUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGNiaUFnSUNBZ0lDQWdZRTFVYjI5dVRXRjBaWEpwWVd4TWIyRmtaWEpRYkhWbmFXNDZJRUYwZEdWdGNIUWdkRzhnZFhObElHMWhkR1Z5YVdGc2Mxc2tlMjFoZEdWeWFXRnNTVzVrWlhoOVhTQnZaaUJuYkZSR0lHSjFkQ0IwYUdVZ2JXRjBaWEpwWVd3Z1pHOWxjMjRuZENCbGVHbHpkR0FzWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCbGVIUmxibk5wYjI0Z1BTQnRZWFJsY21saGJFUmxaaTVsZUhSbGJuTnBiMjV6UHk1YlRWUnZiMjVOWVhSbGNtbGhiRXh2WVdSbGNsQnNkV2RwYmk1RldGUkZUbE5KVDA1ZlRrRk5SVjBnWVhOY2JpQWdJQ0FnSUh3Z1ZqRk5WRzl2YmxOamFHVnRZUzVXVWsxRFRXRjBaWEpwWVd4elRWUnZiMjVjYmlBZ0lDQWdJSHdnZFc1a1pXWnBibVZrTzF4dUlDQWdJR2xtSUNobGVIUmxibk5wYjI0Z1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnpjR1ZqVm1WeWMybHZiaUE5SUdWNGRHVnVjMmx2Ymk1emNHVmpWbVZ5YzJsdmJqdGNiaUFnSUNCcFppQW9JVkJQVTFOSlFreEZYMU5RUlVOZlZrVlNVMGxQVGxNdWFHRnpLSE53WldOV1pYSnphVzl1S1NrZ2UxeHVJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0JnVFZSdmIyNU5ZWFJsY21saGJFeHZZV1JsY2xCc2RXZHBiam9nVlc1cmJtOTNiaUFrZTAxVWIyOXVUV0YwWlhKcFlXeE1iMkZrWlhKUWJIVm5hVzR1UlZoVVJVNVRTVTlPWDA1QlRVVjlJSE53WldOV1pYSnphVzl1SUZ3aUpIdHpjR1ZqVm1WeWMybHZibjFjSW1Bc1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaWGgwWlc1emFXOXVPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QmZaWGgwWlc1a1RXRjBaWEpwWVd4UVlYSmhiWE1vWEc0Z0lDQWdaWGgwWlc1emFXOXVPaUJXTVUxVWIyOXVVMk5vWlcxaExsWlNUVU5OWVhSbGNtbGhiSE5OVkc5dmJpeGNiaUFnSUNCdFlYUmxjbWxoYkZCaGNtRnRjem9nVFZSdmIyNU5ZWFJsY21saGJGQmhjbUZ0WlhSbGNuTXNYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJQzh2SUZKbGJXOTJhVzVuSUcxaGRHVnlhV0ZzSUhCaGNtRnRjeUIwYUdGMElHbHpJRzV2ZENCeVpYRjFhWEpsWkNCMGJ5QnpkWEJ5WlhOeklIZGhjbTVwYm1kekxseHVJQ0FnSUdSbGJHVjBaU0FvYldGMFpYSnBZV3hRWVhKaGJYTWdZWE1nVkVoU1JVVXVUV1Z6YUZOMFlXNWtZWEprVFdGMFpYSnBZV3hRWVhKaGJXVjBaWEp6S1M1dFpYUmhiRzVsYzNNN1hHNGdJQ0FnWkdWc1pYUmxJQ2h0WVhSbGNtbGhiRkJoY21GdGN5QmhjeUJVU0ZKRlJTNU5aWE5vVTNSaGJtUmhjbVJOWVhSbGNtbGhiRkJoY21GdFpYUmxjbk1wTG5KdmRXZG9ibVZ6Y3p0Y2JseHVJQ0FnSUdOdmJuTjBJR0Z6YzJsbmJraGxiSEJsY2lBOUlHNWxkeUJIVEZSR1RWUnZiMjVOWVhSbGNtbGhiRkJoY21GdGMwRnpjMmxuYmtobGJIQmxjaWgwYUdsekxuQmhjbk5sY2l3Z2JXRjBaWEpwWVd4UVlYSmhiWE1wTzF4dVhHNGdJQ0FnWVhOemFXZHVTR1ZzY0dWeUxtRnpjMmxuYmxCeWFXMXBkR2wyWlNnbmRISmhibk53WVhKbGJuUlhhWFJvV2xkeWFYUmxKeXdnWlhoMFpXNXphVzl1TG5SeVlXNXpjR0Z5Wlc1MFYybDBhRnBYY21sMFpTazdYRzRnSUNBZ1lYTnphV2R1U0dWc2NHVnlMbUZ6YzJsbmJrTnZiRzl5S0NkemFHRmtaVU52Ykc5eVJtRmpkRzl5Snl3Z1pYaDBaVzV6YVc5dUxuTm9ZV1JsUTI5c2IzSkdZV04wYjNJcE8xeHVJQ0FnSUdGemMybG5ia2hsYkhCbGNpNWhjM05wWjI1VVpYaDBkWEpsS0NkemFHRmtaVTExYkhScGNHeDVWR1Y0ZEhWeVpTY3NJR1Y0ZEdWdWMybHZiaTV6YUdGa1pVMTFiSFJwY0d4NVZHVjRkSFZ5WlN3Z2RISjFaU2s3WEc0Z0lDQWdZWE56YVdkdVNHVnNjR1Z5TG1GemMybG5ibEJ5YVcxcGRHbDJaU2duYzJoaFpHbHVaMU5vYVdaMFJtRmpkRzl5Snl3Z1pYaDBaVzV6YVc5dUxuTm9ZV1JwYm1kVGFHbG1kRVpoWTNSdmNpazdYRzRnSUNBZ1lYTnphV2R1U0dWc2NHVnlMbUZ6YzJsbmJsUmxlSFIxY21Vb0ozTm9ZV1JwYm1kVGFHbG1kRlJsZUhSMWNtVW5MQ0JsZUhSbGJuTnBiMjR1YzJoaFpHbHVaMU5vYVdaMFZHVjRkSFZ5WlN3Z2RISjFaU2s3WEc0Z0lDQWdZWE56YVdkdVNHVnNjR1Z5TG1GemMybG5ibEJ5YVcxcGRHbDJaU2duYzJoaFpHbHVaMU5vYVdaMFZHVjRkSFZ5WlZOallXeGxKeXdnWlhoMFpXNXphVzl1TG5Ob1lXUnBibWRUYUdsbWRGUmxlSFIxY21VL0xuTmpZV3hsS1R0Y2JpQWdJQ0JoYzNOcFoyNUlaV3h3WlhJdVlYTnphV2R1VUhKcGJXbDBhWFpsS0NkemFHRmthVzVuVkc5dmJubEdZV04wYjNJbkxDQmxlSFJsYm5OcGIyNHVjMmhoWkdsdVoxUnZiMjU1Um1GamRHOXlLVHRjYmlBZ0lDQmhjM05wWjI1SVpXeHdaWEl1WVhOemFXZHVVSEpwYldsMGFYWmxLQ2RuYVVWeGRXRnNhWHBoZEdsdmJrWmhZM1J2Y2ljc0lHVjRkR1Z1YzJsdmJpNW5hVVZ4ZFdGc2FYcGhkR2x2YmtaaFkzUnZjaWs3WEc0Z0lDQWdZWE56YVdkdVNHVnNjR1Z5TG1GemMybG5ia052Ykc5eUtDZHRZWFJqWVhCR1lXTjBiM0luTENCbGVIUmxibk5wYjI0dWJXRjBZMkZ3Um1GamRHOXlLVHRjYmlBZ0lDQmhjM05wWjI1SVpXeHdaWEl1WVhOemFXZHVWR1Y0ZEhWeVpTZ25iV0YwWTJGd1ZHVjRkSFZ5WlNjc0lHVjRkR1Z1YzJsdmJpNXRZWFJqWVhCVVpYaDBkWEpsTENCMGNuVmxLVHRjYmlBZ0lDQmhjM05wWjI1SVpXeHdaWEl1WVhOemFXZHVRMjlzYjNJb0ozQmhjbUZ0WlhSeWFXTlNhVzFEYjJ4dmNrWmhZM1J2Y2ljc0lHVjRkR1Z1YzJsdmJpNXdZWEpoYldWMGNtbGpVbWx0UTI5c2IzSkdZV04wYjNJcE8xeHVJQ0FnSUdGemMybG5ia2hsYkhCbGNpNWhjM05wWjI1VVpYaDBkWEpsS0NkeWFXMU5kV3gwYVhCc2VWUmxlSFIxY21VbkxDQmxlSFJsYm5OcGIyNHVjbWx0VFhWc2RHbHdiSGxVWlhoMGRYSmxMQ0IwY25WbEtUdGNiaUFnSUNCaGMzTnBaMjVJWld4d1pYSXVZWE56YVdkdVVISnBiV2wwYVhabEtDZHlhVzFNYVdkb2RHbHVaMDFwZUVaaFkzUnZjaWNzSUdWNGRHVnVjMmx2Ymk1eWFXMU1hV2RvZEdsdVowMXBlRVpoWTNSdmNpazdYRzRnSUNBZ1lYTnphV2R1U0dWc2NHVnlMbUZ6YzJsbmJsQnlhVzFwZEdsMlpTZ25jR0Z5WVcxbGRISnBZMUpwYlVaeVpYTnVaV3hRYjNkbGNrWmhZM1J2Y2ljc0lHVjRkR1Z1YzJsdmJpNXdZWEpoYldWMGNtbGpVbWx0Um5KbGMyNWxiRkJ2ZDJWeVJtRmpkRzl5S1R0Y2JpQWdJQ0JoYzNOcFoyNUlaV3h3WlhJdVlYTnphV2R1VUhKcGJXbDBhWFpsS0Nkd1lYSmhiV1YwY21salVtbHRUR2xtZEVaaFkzUnZjaWNzSUdWNGRHVnVjMmx2Ymk1d1lYSmhiV1YwY21salVtbHRUR2xtZEVaaFkzUnZjaWs3WEc0Z0lDQWdZWE56YVdkdVNHVnNjR1Z5TG1GemMybG5ibEJ5YVcxcGRHbDJaU2duYjNWMGJHbHVaVmRwWkhSb1RXOWtaU2NzSUdWNGRHVnVjMmx2Ymk1dmRYUnNhVzVsVjJsa2RHaE5iMlJsSUdGeklFMVViMjl1VFdGMFpYSnBZV3hQZFhSc2FXNWxWMmxrZEdoTmIyUmxLVHRjYmlBZ0lDQmhjM05wWjI1SVpXeHdaWEl1WVhOemFXZHVVSEpwYldsMGFYWmxLQ2R2ZFhSc2FXNWxWMmxrZEdoR1lXTjBiM0luTENCbGVIUmxibk5wYjI0dWIzVjBiR2x1WlZkcFpIUm9SbUZqZEc5eUtUdGNiaUFnSUNCaGMzTnBaMjVJWld4d1pYSXVZWE56YVdkdVZHVjRkSFZ5WlNnbmIzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbEp5d2daWGgwWlc1emFXOXVMbTkxZEd4cGJtVlhhV1IwYUUxMWJIUnBjR3g1VkdWNGRIVnlaU3dnWm1Gc2MyVXBPMXh1SUNBZ0lHRnpjMmxuYmtobGJIQmxjaTVoYzNOcFoyNURiMnh2Y2lnbmIzVjBiR2x1WlVOdmJHOXlSbUZqZEc5eUp5d2daWGgwWlc1emFXOXVMbTkxZEd4cGJtVkRiMnh2Y2taaFkzUnZjaWs3WEc0Z0lDQWdZWE56YVdkdVNHVnNjR1Z5TG1GemMybG5ibEJ5YVcxcGRHbDJaU2duYjNWMGJHbHVaVXhwWjJoMGFXNW5UV2w0Um1GamRHOXlKeXdnWlhoMFpXNXphVzl1TG05MWRHeHBibVZNYVdkb2RHbHVaMDFwZUVaaFkzUnZjaWs3WEc0Z0lDQWdZWE56YVdkdVNHVnNjR1Z5TG1GemMybG5ibFJsZUhSMWNtVW9KM1YyUVc1cGJXRjBhVzl1VFdGemExUmxlSFIxY21VbkxDQmxlSFJsYm5OcGIyNHVkWFpCYm1sdFlYUnBiMjVOWVhOclZHVjRkSFZ5WlN3Z1ptRnNjMlVwTzF4dUlDQWdJR0Z6YzJsbmJraGxiSEJsY2k1aGMzTnBaMjVRY21sdGFYUnBkbVVvSjNWMlFXNXBiV0YwYVc5dVUyTnliMnhzV0ZOd1pXVmtSbUZqZEc5eUp5d2daWGgwWlc1emFXOXVMblYyUVc1cGJXRjBhVzl1VTJOeWIyeHNXRk53WldWa1JtRmpkRzl5S1R0Y2JpQWdJQ0JoYzNOcFoyNUlaV3h3WlhJdVlYTnphV2R1VUhKcGJXbDBhWFpsS0NkMWRrRnVhVzFoZEdsdmJsTmpjbTlzYkZsVGNHVmxaRVpoWTNSdmNpY3NJR1Y0ZEdWdWMybHZiaTUxZGtGdWFXMWhkR2x2YmxOamNtOXNiRmxUY0dWbFpFWmhZM1J2Y2lrN1hHNGdJQ0FnWVhOemFXZHVTR1ZzY0dWeUxtRnpjMmxuYmxCeWFXMXBkR2wyWlNnbmRYWkJibWx0WVhScGIyNVNiM1JoZEdsdmJsTndaV1ZrUm1GamRHOXlKeXdnWlhoMFpXNXphVzl1TG5WMlFXNXBiV0YwYVc5dVVtOTBZWFJwYjI1VGNHVmxaRVpoWTNSdmNpazdYRzVjYmlBZ0lDQmhjM05wWjI1SVpXeHdaWEl1WVhOemFXZHVVSEpwYldsMGFYWmxLQ2QyTUVOdmJYQmhkRk5vWVdSbEp5d2dkR2hwY3k1Mk1FTnZiWEJoZEZOb1lXUmxLVHRjYmlBZ0lDQmhjM05wWjI1SVpXeHdaWEl1WVhOemFXZHVVSEpwYldsMGFYWmxLQ2RrWldKMVowMXZaR1VuTENCMGFHbHpMbVJsWW5WblRXOWtaU2s3WEc1Y2JpQWdJQ0JoZDJGcGRDQmhjM05wWjI1SVpXeHdaWEl1Y0dWdVpHbHVaenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCVWFHbHpJSGRwYkd3Z1pHOGdkSGR2SUhCeWIyTmxjM05sY3lCMGFHRjBJR2x6SUhKbGNYVnBjbVZrSUhSdklISmxibVJsY2lCTlZHOXZiaUJ3Y205d1pYSnNlUzVjYmlBZ0lDcGNiaUFnSUNvZ0xTQlRaWFFnY21WdVpHVnlJRzl5WkdWeVhHNGdJQ0FxSUMwZ1IyVnVaWEpoZEdVZ2IzVjBiR2x1WlZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2JXVnphQ0JCSUhSaGNtZGxkQ0JIVEZSR0lIQnlhVzFwZEdsMlpWeHVJQ0FnS2lCQWNHRnlZVzBnYldGMFpYSnBZV3hKYm1SbGVDQlVhR1VnYldGMFpYSnBZV3dnYVc1a1pYZ2diMllnZEdobElIQnlhVzFwZEdsMlpWeHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmZjMlYwZFhCUWNtbHRhWFJwZG1Vb2JXVnphRG9nVkVoU1JVVXVUV1Z6YUN3Z2JXRjBaWEpwWVd4SmJtUmxlRG9nYm5WdFltVnlLVG9nZG05cFpDQjdYRzRnSUNBZ1kyOXVjM1FnWlhoMFpXNXphVzl1SUQwZ2RHaHBjeTVmWjJWMFRWUnZiMjVGZUhSbGJuTnBiMjRvYldGMFpYSnBZV3hKYm1SbGVDazdYRzRnSUNBZ2FXWWdLR1Y0ZEdWdWMybHZiaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ1WkdWeVQzSmtaWElnUFNCMGFHbHpMbDl3WVhKelpWSmxibVJsY2s5eVpHVnlLR1Y0ZEdWdWMybHZiaWs3WEc0Z0lDQWdJQ0J0WlhOb0xuSmxibVJsY2s5eVpHVnlJRDBnY21WdVpHVnlUM0prWlhJZ0t5QjBhR2x6TG5KbGJtUmxjazl5WkdWeVQyWm1jMlYwTzF4dVhHNGdJQ0FnSUNCMGFHbHpMbDluWlc1bGNtRjBaVTkxZEd4cGJtVW9iV1Z6YUNrN1hHNWNiaUFnSUNBZ0lIUm9hWE11WDJGa1pGUnZUV0YwWlhKcFlXeFRaWFFvYldWemFDazdYRzVjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSMlZ1WlhKaGRHVWdiM1YwYkdsdVpTQm1iM0lnZEdobElHZHBkbVZ1SUcxbGMyZ3NJR2xtSUdsMElHNWxaV1J6TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2JXVnphQ0JVYUdVZ2RHRnlaMlYwSUcxbGMyaGNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdYMmRsYm1WeVlYUmxUM1YwYkdsdVpTaHRaWE5vT2lCVVNGSkZSUzVOWlhOb0tUb2dkbTlwWkNCN1hHNGdJQ0FnTHk4Z1Qwc3NJR2wwSjNNZ2RHaGxJR2hoWTJ0NUlIQmhjblF1WEc0Z0lDQWdMeThnVjJVZ1lYSmxJR2R2YVc1bklIUnZJR1IxY0d4cFkyRjBaU0IwYUdVZ1RWUnZiMjVOWVhSbGNtbGhiQ0JtYjNJZ2IzVjBiR2x1WlNCMWMyVXVYRzRnSUNBZ0x5OGdWR2hsYmlCM1pTQmhjbVVnWjI5cGJtY2dkRzhnWTNKbFlYUmxJSFIzYnlCblpXOXRaWFJ5ZVNCbmNtOTFjSE1nWVc1a0lISmxabVZ5SUhOaGJXVWdZblZtWm1WeUlHSjFkQ0JrYVdabVpYSmxiblFnYldGMFpYSnBZV3d1WEc0Z0lDQWdMeThnU1hRbmN5Qm9iM2NnZDJVZ1pISmhkeUIwZDI4Z2JXRjBaWEpwWVd4eklHRjBJRzl1WTJVZ2RYTnBibWNnWVNCemFXNW5iR1VnYldWemFDNWNibHh1SUNBZ0lDOHZJRzFoYTJVZ2MzVnlaU0IwYUdVZ2JXRjBaWEpwWVd3Z2FYTWdiWFJ2YjI1Y2JpQWdJQ0JqYjI1emRDQnpkWEptWVdObFRXRjBaWEpwWVd3Z1BTQnRaWE5vTG0xaGRHVnlhV0ZzTzF4dUlDQWdJR2xtSUNnaEtITjFjbVpoWTJWTllYUmxjbWxoYkNCcGJuTjBZVzVqWlc5bUlFMVViMjl1VFdGMFpYSnBZV3dwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnWTJobFkyc2dkMmhsZEdobGNpQjNaU0J5WldGc2JIa2dhR0YyWlNCMGJ5QndjbVZ3WVhKbElHOTFkR3hwYm1VZ2IzSWdibTkwWEc0Z0lDQWdhV1lnS0hOMWNtWmhZMlZOWVhSbGNtbGhiQzV2ZFhSc2FXNWxWMmxrZEdoTmIyUmxJRDA5UFNBbmJtOXVaU2NnZkh3Z2MzVnlabUZqWlUxaGRHVnlhV0ZzTG05MWRHeHBibVZYYVdSMGFFWmhZM1J2Y2lBOFBTQXdMakFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJ0WVd0bElHbDBjeUJ0WVhSbGNtbGhiQ0JoYmlCaGNuSmhlVnh1SUNBZ0lHMWxjMmd1YldGMFpYSnBZV3dnUFNCYmMzVnlabUZqWlUxaGRHVnlhV0ZzWFRzZ0x5OGdiV1Z6YUM1dFlYUmxjbWxoYkNCcGN5Qm5kV0Z5WVc1MFpXVmtJSFJ2SUdKbElHRWdUV0YwWlhKcFlXd2dhVzRnUjB4VVJreHZZV1JsY2x4dVhHNGdJQ0FnTHk4Z1pIVndiR2xqWVhSbElIUm9aU0J0WVhSbGNtbGhiQ0JtYjNJZ2IzVjBiR2x1WlNCMWMyVmNiaUFnSUNCamIyNXpkQ0J2ZFhSc2FXNWxUV0YwWlhKcFlXd2dQU0J6ZFhKbVlXTmxUV0YwWlhKcFlXd3VZMnh2Ym1Vb0tUdGNiaUFnSUNCdmRYUnNhVzVsVFdGMFpYSnBZV3d1Ym1GdFpTQXJQU0FuSUNoUGRYUnNhVzVsS1NjN1hHNGdJQ0FnYjNWMGJHbHVaVTFoZEdWeWFXRnNMbWx6VDNWMGJHbHVaU0E5SUhSeWRXVTdYRzRnSUNBZ2IzVjBiR2x1WlUxaGRHVnlhV0ZzTG5OcFpHVWdQU0JVU0ZKRlJTNUNZV05yVTJsa1pUdGNiaUFnSUNCdFpYTm9MbTFoZEdWeWFXRnNMbkIxYzJnb2IzVjBiR2x1WlUxaGRHVnlhV0ZzS1R0Y2JseHVJQ0FnSUM4dklHMWhhMlVnZEhkdklHZGxiMjFsZEhKNUlHZHliM1Z3Y3lCdmRYUWdiMllnWVNCellXMWxJR0oxWm1abGNseHVJQ0FnSUdOdmJuTjBJR2RsYjIxbGRISjVJRDBnYldWemFDNW5aVzl0WlhSeWVUc2dMeThnYldWemFDNW5aVzl0WlhSeWVTQnBjeUJuZFdGeVlXNTBaV1ZrSUhSdklHSmxJR0VnUW5WbVptVnlSMlZ2YldWMGNua2dhVzRnUjB4VVJreHZZV1JsY2x4dUlDQWdJR052Ym5OMElIQnlhVzFwZEdsMlpWWmxjblJwWTJWeklEMGdaMlZ2YldWMGNua3VhVzVrWlhnZ1B5Qm5aVzl0WlhSeWVTNXBibVJsZUM1amIzVnVkQ0E2SUdkbGIyMWxkSEo1TG1GMGRISnBZblYwWlhNdWNHOXphWFJwYjI0dVkyOTFiblFnTHlBek8xeHVJQ0FnSUdkbGIyMWxkSEo1TG1Ga1pFZHliM1Z3S0RBc0lIQnlhVzFwZEdsMlpWWmxjblJwWTJWekxDQXdLVHRjYmlBZ0lDQm5aVzl0WlhSeWVTNWhaR1JIY205MWNDZ3dMQ0J3Y21sdGFYUnBkbVZXWlhKMGFXTmxjeXdnTVNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOWhaR1JVYjAxaGRHVnlhV0ZzVTJWMEtHMWxjMmc2SUZSSVVrVkZMazFsYzJncE9pQjJiMmxrSUh0Y2JpQWdJQ0JqYjI1emRDQnRZWFJsY21saGJFOXlUV0YwWlhKcFlXeHpJRDBnYldWemFDNXRZWFJsY21saGJEdGNiaUFnSUNCamIyNXpkQ0J0WVhSbGNtbGhiRk5sZENBOUlHNWxkeUJUWlhROFZFaFNSVVV1VFdGMFpYSnBZV3crS0NrN1hHNWNiaUFnSUNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNodFlYUmxjbWxoYkU5eVRXRjBaWEpwWVd4ektTa2dlMXh1SUNBZ0lDQWdiV0YwWlhKcFlXeFBjazFoZEdWeWFXRnNjeTVtYjNKRllXTm9LQ2h0WVhSbGNtbGhiQ2tnUFQ0Z2JXRjBaWEpwWVd4VFpYUXVZV1JrS0cxaGRHVnlhV0ZzS1NrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJRzFoZEdWeWFXRnNVMlYwTG1Ga1pDaHRZWFJsY21saGJFOXlUV0YwWlhKcFlXeHpLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJRzFoZEdWeWFXRnNJRzltSUcxaGRHVnlhV0ZzVTJWMEtTQjdYRzRnSUNBZ0lDQnBaaUFvYldGMFpYSnBZV3dnYVc1emRHRnVZMlZ2WmlCTlZHOXZiazFoZEdWeWFXRnNLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYMjFVYjI5dVRXRjBaWEpwWVd4VFpYUXVZV1JrS0cxaGRHVnlhV0ZzS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUY5d1lYSnpaVkpsYm1SbGNrOXlaR1Z5S0dWNGRHVnVjMmx2YmpvZ1ZqRk5WRzl2YmxOamFHVnRZUzVXVWsxRFRXRjBaWEpwWVd4elRWUnZiMjRwT2lCdWRXMWlaWElnZTF4dUlDQWdJQzh2SUhSeVlXNXpjR0Z5Wlc1MFYybDBhRnBYY21sMFpTQnlZVzVuWlhNZ1puSnZiU0F3SUhSdklDczVYRzRnSUNBZ0x5OGdiV1Z5WlNCMGNtRnVjM0JoY21WdWRDQnlZVzVuWlhNZ1puSnZiU0F0T1NCMGJ5QXdYRzRnSUNBZ1kyOXVjM1FnWlc1aFlteGxaRnBYY21sMFpTQTlJR1Y0ZEdWdWMybHZiaTUwY21GdWMzQmhjbVZ1ZEZkcGRHaGFWM0pwZEdVN1hHNGdJQ0FnY21WMGRYSnVJQ2hsYm1GaWJHVmtXbGR5YVhSbElEOGdNQ0E2SURFNUtTQXJJQ2hsZUhSbGJuTnBiMjR1Y21WdVpHVnlVWFZsZFdWUFptWnpaWFJPZFcxaVpYSWdQejhnTUNrN1hHNGdJSDFjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN08wRkJRVUU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFXOUhRVHRCUVVOUExGTkJRVk1zVTBGQlV5eERRVUZETEU5QlFVOHNSVUZCUlN4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxGTkJRVk1zUlVGQlJUdEJRVU0zUkN4SlFVRkpMRk5CUVZNc1MwRkJTeXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEU5QlFVOHNTMEZCU3l4WlFVRlpMRU5CUVVNc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNWVUZCVlN4UFFVRlBMRVZCUVVVc1JVRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSVHRCUVVOb1NDeEpRVUZKTEU5QlFVOHNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eEZRVUZGTEZWQlFWVXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSVHRCUVVNdlJDeFJRVUZSTEZOQlFWTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVN1FVRkRia2NzVVVGQlVTeFRRVUZUTEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVN1FVRkRkRWNzVVVGQlVTeFRRVUZUTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVN1FVRkRkRWdzVVVGQlVTeEpRVUZKTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNWVUZCVlN4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZET1VVc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRFVDeERRVUZETzBGQlowMUVPMEZCUTNWQ0xFOUJRVThzWlVGQlpTeExRVUZMTEZWQlFWVXNSMEZCUnl4bFFVRmxMRWRCUVVjc1ZVRkJWU3hMUVVGTExFVkJRVVVzVlVGQlZTeEZRVUZGTEU5QlFVOHNSVUZCUlR0QlFVTjJTQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJReTlDTEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExHbENRVUZwUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4VlFVRlZMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU55UmpzN096czdPMEZET1ZSQk8wRkJSVUU3T3pzN1FVRkpSenRCUVVOVkxFMUJRVUVzYzBKQlFYTkNMRWRCUVVjN1FVRkRjRU03TzBGQlJVYzdRVUZEU0N4SlFVRkJMRWxCUVVrc1JVRkJSU3hOUVVGTk8wRkJSVm83TzBGQlJVYzdRVUZEU0N4SlFVRkJMRTFCUVUwc1JVRkJSU3hSUVVGUk8wRkJSV2hDT3p0QlFVVkhPMEZCUTBnc1NVRkJRU3haUVVGWkxFVkJRVVVzWTBGQll6dEJRVVUxUWpzN1FVRkZSenRCUVVOSUxFbEJRVUVzUlVGQlJTeEZRVUZGTEVsQlFVazdPenRCUXpGQ1ZqdEJRVVZoTEUxQlFVRXNOa0pCUVRaQ0xFZEJRVWM3UVVGRE0wTXNTVUZCUVN4SlFVRkpMRVZCUVVVc1RVRkJUVHRCUVVOYUxFbEJRVUVzWjBKQlFXZENMRVZCUVVVc2EwSkJRV3RDTzBGQlEzQkRMRWxCUVVFc2FVSkJRV2xDTEVWQlFVVXNiVUpCUVcxQ096czdRVU5JZUVNc1RVRkJUU3h4UWtGQmNVSXNSMEZCTmtJN1FVRkRkRVFzU1VGQlFTeEpRVUZKTEVWQlFVVXNSVUZCUlR0QlFVTlNMRWxCUVVFc1NVRkJTU3hGUVVGRkxFMUJRVTA3UTBGRFlpeERRVUZETzBGQlJVWTdPenM3T3pzN08wRkJVVWM3UVVGRFJ5eFRRVUZWTEc5Q1FVRnZRaXhEUVVGRExFOUJRWE5DTEVWQlFVRTdTVUZEZWtRc1NVRkJTU3hSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVU3VVVGRGRrTXNUMEZCVHl4UFFVRlBMRU5CUVVNc1ZVRkJlVUlzUTBGQlF6dEJRVU14UXl4TFFVRkJPMEZCUVUwc1UwRkJRVHRCUVVOTUxGRkJRVUVzVDBGQlR5eHhRa0ZCY1VJc1EwRkJSU3hQUVVGbExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEZWtRc1MwRkJRVHRCUVVOSU96dEJRM1JDUVR0QlFWVkJPenM3T3p0QlFVdEhPMEZCUTFVc1RVRkJRU3hoUVVGakxGTkJRVkVzUzBGQlN5eERRVUZETEdOQlFXTXNRMEZCUVR0QlFUUkRja1FzU1VGQlFTeEpRVUZYTEV0QlFVc3NSMEZCUVR0QlFVTmtMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkRkRU03U1VGRFJDeEpRVUZYTEV0QlFVc3NRMEZCUXl4TFFVRnJRaXhGUVVGQk8xRkJRMnBETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTTdTMEZEZGtNN1FVRkZSQ3hKUVVGQkxFbEJRVmNzUjBGQlJ5eEhRVUZCTzBGQlExb3NVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTm9RenRKUVVORUxFbEJRVmNzUjBGQlJ5eERRVUZETEV0QlFUSkNMRVZCUVVFN1VVRkRlRU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU5xUXp0QlFVVkVMRWxCUVVFc1NVRkJWeXhUUVVGVExFZEJRVUU3UVVGRGJFSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTjBRenRKUVVORUxFbEJRVmNzVTBGQlV5eERRVUZETEV0QlFUSkNMRVZCUVVFN1VVRkRPVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU4yUXp0QlFVVkVMRWxCUVVFc1NVRkJWeXhYUVVGWExFZEJRVUU3UVVGRGNFSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTjRRenRKUVVORUxFbEJRVmNzVjBGQlZ5eERRVUZETEV0QlFXOUNMRVZCUVVFN1VVRkRla01zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU42UXp0QlFVVkVMRWxCUVVFc1NVRkJWeXhSUVVGUkxFZEJRVUU3UVVGRGFrSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTnlRenRKUVVORUxFbEJRVmNzVVVGQlVTeERRVUZETEV0QlFXdENMRVZCUVVFN1VVRkRjRU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU4wUXp0QlFVVkVMRWxCUVVFc1NVRkJWeXhwUWtGQmFVSXNSMEZCUVR0QlFVTXhRaXhSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVOQlFVTTdTMEZET1VNN1NVRkRSQ3hKUVVGWExHbENRVUZwUWl4RFFVRkRMRXRCUVdFc1JVRkJRVHRSUVVONFF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNN1MwRkRMME03UVVGRlJDeEpRVUZCTEVsQlFWY3NWMEZCVnl4SFFVRkJPMEZCUTNCQ0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU03UzBGRGVFTTdTVUZEUkN4SlFVRlhMRmRCUVZjc1EwRkJReXhMUVVFeVFpeEZRVUZCTzFGQlEyaEVMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNN1MwRkRla003UVVGRlJDeEpRVUZCTEVsQlFWY3NaMEpCUVdkQ0xFZEJRVUU3UVVGRGVrSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhEUVVGRE8wdEJRemRETzBsQlEwUXNTVUZCVnl4blFrRkJaMElzUTBGQlF5eExRVUZyUWl4RlFVRkJPMUZCUXpWRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0TFFVTTVRenRCUVVWRUxFbEJRVUVzU1VGQlZ5eHZRa0ZCYjBJc1IwRkJRVHRCUVVNM1FpeFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkRha1E3U1VGRFJDeEpRVUZYTEc5Q1FVRnZRaXhEUVVGRExFdEJRVEpDTEVWQlFVRTdVVUZEZWtRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETzB0QlEyeEVPMEZCUlVRc1NVRkJRU3hKUVVGWExHdENRVUZyUWl4SFFVRkJPMEZCUXpOQ0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTXZRenRKUVVORUxFbEJRVmNzYTBKQlFXdENMRU5CUVVNc1MwRkJZU3hGUVVGQk8xRkJRM3BETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJRenRMUVVOb1JEdEJRVVZFTEVsQlFVRXNTVUZCVnl4dFFrRkJiVUlzUjBGQlFUdEJRVU0xUWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhMUVVGTExFTkJRVU03UzBGRGFFUTdTVUZEUkN4SlFVRlhMRzFDUVVGdFFpeERRVUZETEV0QlFUSkNMRVZCUVVFN1VVRkRlRVFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMHRCUTJwRU8wRkJSVVFzU1VGQlFTeEpRVUZYTEhkQ1FVRjNRaXhIUVVGQk8wRkJRMnBETEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRXRCUVVzc1EwRkJRenRMUVVOeVJEdEpRVU5FTEVsQlFWY3NkMEpCUVhkQ0xFTkJRVU1zUzBGQllTeEZRVUZCTzFGQlF5OURMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU4wUkR0QlFVVkVMRWxCUVVFc1NVRkJWeXhyUWtGQmEwSXNSMEZCUVR0QlFVTXpRaXhSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eExRVUZMTEVOQlFVTTdTMEZETDBNN1NVRkRSQ3hKUVVGWExHdENRVUZyUWl4RFFVRkRMRXRCUVdFc1JVRkJRVHRSUVVONlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNN1MwRkRhRVE3UVVGRlJDeEpRVUZCTEVsQlFWY3NiMEpCUVc5Q0xFZEJRVUU3UVVGRE4wSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1MwRkJTeXhEUVVGRE8wdEJRMnBFTzBsQlEwUXNTVUZCVnl4dlFrRkJiMElzUTBGQlF5eExRVUZoTEVWQlFVRTdVVUZETTBNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETzB0QlEyeEVPMEZCUlVRc1NVRkJRU3hKUVVGWExGbEJRVmtzUjBGQlFUdEJRVU55UWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRPMHRCUTNwRE8wbEJRMFFzU1VGQlZ5eFpRVUZaTEVOQlFVTXNTMEZCYTBJc1JVRkJRVHRSUVVONFF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmxCUVZrc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETzB0QlF6RkRPMEZCUlVRc1NVRkJRU3hKUVVGWExHRkJRV0VzUjBGQlFUdEJRVU4wUWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRPMHRCUXpGRE8wbEJRMFFzU1VGQlZ5eGhRVUZoTEVOQlFVTXNTMEZCTWtJc1JVRkJRVHRSUVVOc1JDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETzB0QlF6TkRPMEZCUlVRc1NVRkJRU3hKUVVGWExIZENRVUYzUWl4SFFVRkJPMEZCUTJwRExGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMSGRDUVVGM1FpeERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTnlSRHRKUVVORUxFbEJRVmNzZDBKQlFYZENMRU5CUVVNc1MwRkJhMElzUlVGQlFUdFJRVU53UkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03UzBGRGRFUTdRVUZGUkN4SlFVRkJMRWxCUVZjc2EwSkJRV3RDTEVkQlFVRTdRVUZETTBJc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUzBGQlN5eERRVUZETzB0QlF5OURPMGxCUTBRc1NVRkJWeXhyUWtGQmEwSXNRMEZCUXl4TFFVRXlRaXhGUVVGQk8xRkJRM1pFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJRenRMUVVOb1JEdEJRVVZFTEVsQlFVRXNTVUZCVnl4dlFrRkJiMElzUjBGQlFUdEJRVU0zUWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU03UzBGRGFrUTdTVUZEUkN4SlFVRlhMRzlDUVVGdlFpeERRVUZETEV0QlFXRXNSVUZCUVR0UlFVTXpReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTTdTMEZEYkVRN1FVRkZSQ3hKUVVGQkxFbEJRVmNzSzBKQlFTdENMRWRCUVVFN1FVRkRlRU1zVVVGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRPMHRCUXpWRU8wbEJRMFFzU1VGQlZ5d3JRa0ZCSzBJc1EwRkJReXhMUVVGaExFVkJRVUU3VVVGRGRFUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8wdEJRemRFTzBGQlJVUXNTVUZCUVN4SlFVRlhMSFZDUVVGMVFpeEhRVUZCTzBGQlEyaERMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFdEJRVXNzUTBGQlF6dExRVU53UkR0SlFVTkVMRWxCUVZjc2RVSkJRWFZDTEVOQlFVTXNTMEZCWVN4RlFVRkJPMUZCUXpsRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0TFFVTnlSRHRCUVVWRUxFbEJRVUVzU1VGQlZ5d3lRa0ZCTWtJc1IwRkJRVHRCUVVOd1F5eFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkRlRVE3U1VGRFJDeEpRVUZYTERKQ1FVRXlRaXhEUVVGRExFdEJRVEpDTEVWQlFVRTdVVUZEYUVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETzB0QlEzcEVPMEZCUlVRc1NVRkJRU3hKUVVGWExHdENRVUZyUWl4SFFVRkJPMEZCUXpOQ0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTXZRenRKUVVORUxFbEJRVmNzYTBKQlFXdENMRU5CUVVNc1MwRkJZU3hGUVVGQk8xRkJRM3BETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJRenRMUVVOb1JEdEJRVVZFTEVsQlFVRXNTVUZCVnl4clFrRkJhMElzUjBGQlFUdEJRVU16UWl4UlFVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFTkJRVU03UzBGREwwTTdTVUZEUkN4SlFVRlhMR3RDUVVGclFpeERRVUZETEV0QlFXdENMRVZCUVVFN1VVRkRPVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMHRCUTJoRU8wRkJSVVFzU1VGQlFTeEpRVUZYTEhkQ1FVRjNRaXhIUVVGQk8wRkJRMnBETEZGQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRXRCUVVzc1EwRkJRenRMUVVOeVJEdEpRVU5FTEVsQlFWY3NkMEpCUVhkQ0xFTkJRVU1zUzBGQllTeEZRVUZCTzFGQlF5OURMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU4wUkR0QlFVVkVMRWxCUVVFc1NVRkJWeXh6UWtGQmMwSXNSMEZCUVR0QlFVTXZRaXhSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTTdTMEZEYmtRN1NVRkRSQ3hKUVVGWExITkNRVUZ6UWl4RFFVRkRMRXRCUVRKQ0xFVkJRVUU3VVVGRE0wUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8wdEJRM0JFTzBGQlJVUXNTVUZCUVN4SlFVRlhMSGRDUVVGM1FpeEhRVUZCTzBGQlEycERMRkZCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEhkQ1FVRjNRaXhEUVVGRExFdEJRVXNzUTBGQlF6dExRVU55UkR0SlFVTkVMRWxCUVZjc2QwSkJRWGRDTEVOQlFVTXNTMEZCWVN4RlFVRkJPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0TFFVTjBSRHRCUVVWRUxFbEJRVUVzU1VGQlZ5eDNRa0ZCZDBJc1IwRkJRVHRCUVVOcVF5eFJRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkRja1E3U1VGRFJDeEpRVUZYTEhkQ1FVRjNRaXhEUVVGRExFdEJRV0VzUlVGQlFUdFJRVU12UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03UzBGRGRFUTdRVUZGUkN4SlFVRkJMRWxCUVZjc2QwSkJRWGRDTEVkQlFVRTdRVUZEYWtNc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zUzBGQlN5eERRVUZETzB0QlEzSkVPMGxCUTBRc1NVRkJWeXgzUWtGQmQwSXNRMEZCUXl4TFFVRmhMRVZCUVVFN1VVRkRMME1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMHRCUTNSRU8wRkJlVUpFT3pzN1FVRkhSenRCUVVOSUxFbEJRVUVzU1VGQlZ5eHBRa0ZCYVVJc1IwRkJRVHRSUVVNeFFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF6dExRVU5vUXp0SlFVTkVMRWxCUVZjc2FVSkJRV2xDTEVOQlFVTXNTMEZCWXl4RlFVRkJPMEZCUTNwRExGRkJRVUVzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhIUVVGSExFdEJRVXNzUTBGQlF6dEJRVVZvUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzcENPMEZCU1VRN096czdPMEZCUzBjN1FVRkRTQ3hKUVVGQkxFbEJRVWtzWVVGQllTeEhRVUZCTzFGQlEyWXNUMEZCVHl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRE8wdEJRelZDTzBGQlJVUTdPenM3TzBGQlMwYzdTVUZEU0N4SlFVRkpMR0ZCUVdFc1EwRkJReXhEUVVGVkxFVkJRVUU3UVVGRE1VSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVVY0UWl4UlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzcENPMEZCU1VRN096czdPMEZCUzBjN1FVRkRTQ3hKUVVGQkxFbEJRVWtzVTBGQlV5eEhRVUZCTzFGQlExZ3NUMEZCVHl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wdEJRM2hDTzBGQlJVUTdPenM3TzBGQlMwYzdTVUZEU0N4SlFVRkpMRk5CUVZNc1EwRkJReXhEUVVGNVFpeEZRVUZCTzBGQlEzSkRMRkZCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZGY0VJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0TFFVTjZRanRCUVVsRUxFbEJRVUVzU1VGQlNTeG5Ra0ZCWjBJc1IwRkJRVHRSUVVOc1FpeFBRVUZQTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dExRVU12UWp0SlFVTkVMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNRMEZCWjBNc1JVRkJRVHRCUVVOdVJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZGTTBJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0TFFVTjZRanRCUVVsRUxFbEJRVUVzU1VGQlNTeFRRVUZUTEVkQlFVRTdVVUZEV0N4UFFVRlBMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU03UzBGRGVFSTdTVUZEUkN4SlFVRkpMRk5CUVZNc1EwRkJReXhEUVVGVkxFVkJRVUU3UVVGRGRFSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVVZ3UWl4UlFVRkJMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzcENPMEZCUlVRN08wRkJSVWM3UVVGRFNDeEpRVUZCTEVsQlFWY3NaVUZCWlN4SFFVRkJPMEZCUTNoQ0xGRkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWp0QlFVVkVMRWxCUVVFc1YwRkJRU3hEUVVGWkxHRkJRWE5ETEVWQlFVVXNSVUZCUVRzN1FVRkRiRVFzVVVGQlFTeExRVUZMTEVOQlFVTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1kwRkJZeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRV3hJYmtNc1NVRkJOa0lzUTBGQlFTdzJRa0ZCUVN4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVOd1F5eEpRVUUyUWl4RFFVRkJMRFpDUVVGQkxFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlEzQkRMRWxCUVRoQ0xFTkJRVUVzT0VKQlFVRXNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkZOVU03T3p0QlFVZEhPMUZCUTBrc1NVRkJSeXhEUVVGQkxFZEJRVUVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdRVUZGYkVJN096czdRVUZKUnp0QlFVTkpMRkZCUVVFc1NVRkJRU3hEUVVGQkxHRkJRV0VzUjBGQlJ5eExRVUZMTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU03UVVGRmJrUTdPenRCUVVkSE8xRkJRMHNzU1VGQmEwSXNRMEZCUVN4clFrRkJRU3hIUVVGSExFbEJRVWtzUTBGQlF6dFJRV1V4UWl4SlFVRmpMRU5CUVVFc1kwRkJRU3hIUVVGSExFdEJRVXNzUTBGQlF6dEJRWGRDZGtJc1VVRkJRU3hKUVVGQkxFTkJRVUVzVlVGQlZTeEhRVUV5UWl4elFrRkJjMElzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUYzUW1wRkxGRkJRVUVzU1VGQlFTeERRVUZCTEdsQ1FVRnBRaXhIUVVGclF5dzJRa0ZCTmtJc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGWGRFWXNTVUZCVlN4RFFVRkJMRlZCUVVFc1IwRkJSeXhMUVVGTExFTkJRVU03TzFGQmMwSjZRaXhKUVVGSkxGVkJRVlVzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSVHRCUVVOd1F5eFpRVUZCTEZWQlFWVXNRMEZCUXl4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJRemxDTEZOQlFVRTdVVUZEUkN4UFFVRlBMRlZCUVZVc1EwRkJReXh4UWtGQmNVSXNRMEZCUXpzN1FVRkhlRU1zVVVGQlFTeFZRVUZWTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJRenRCUVVOMFFpeFJRVUZCTEZWQlFWVXNRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJRM3BDTEZGQlFVRXNWVUZCVlN4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU03T3p0UlFVa3pRaXhKUVVGSkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJUdFpRVU55UXl4VlFVRnJRaXhEUVVGRExGRkJRVkVzUjBGQlNTeFZRVUZyUWl4RFFVRkRMRkZCUVZFc1NVRkJTU3hMUVVGTExFTkJRVU03UVVGRGRFVXNVMEZCUVRzN08xRkJTVVFzU1VGQlNTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVWQlFVVTdXVUZEY2tNc1ZVRkJhMElzUTBGQlF5eFpRVUZaTEVkQlFVa3NWVUZCYTBJc1EwRkJReXhaUVVGWkxFbEJRVWtzUzBGQlN5eERRVUZETzFsQlF6VkZMRlZCUVd0Q0xFTkJRVU1zV1VGQldTeEhRVUZKTEZWQlFXdENMRU5CUVVNc1dVRkJXU3hKUVVGSkxFdEJRVXNzUTBGQlF6dEJRVU01UlN4VFFVRkJPenRSUVVkRUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NTMEZCU3l4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU03V1VGRGVFTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTk8xbEJRM2hDTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1UwRkJVenRaUVVNelFpeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjN1dVRkROMElzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhPMWxCUTNKQ0xFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFR0QlFVTjRRaXhaUVVGQk8wRkJRMFVzWjBKQlFVRXNVMEZCVXl4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTzJkQ1FVTndSQ3hqUVVGakxFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVU3UVVGRE9VTXNaMEpCUVVFc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlR0blFrRkRNVUlzYjBKQlFXOUNMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN1FVRkRjRVFzWjBKQlFVRXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRVZCUVVVN1FVRkRPVVFzWjBKQlFVRXNiMEpCUVc5Q0xFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZPMmRDUVVOeVF5d3JRa0ZCSzBJc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRCUVVNdlJDeG5Ra0ZCUVN4clFrRkJhMElzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVN1FVRkRiRU1zWjBKQlFVRXNiVUpCUVcxQ0xFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZPMmRDUVVOd1F5dzRRa0ZCT0VJc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRCUVVNNVJDeG5Ra0ZCUVN4M1FrRkJkMElzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVN1FVRkRlRU1zWjBKQlFVRXNhMEpCUVd0Q0xFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZPMEZCUTJ4RExHZENRVUZCTEc5Q1FVRnZRaXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlR0QlFVTndReXhuUWtGQlFTeFpRVUZaTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVU3UVVGRGRrUXNaMEpCUVVFc1lVRkJZU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUlR0blFrRkRPVUlzZDBKQlFYZENMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVN1FVRkRlRVFzWjBKQlFVRXNkMEpCUVhkQ0xFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVN1FVRkRia1VzWjBKQlFVRXNhMEpCUVd0Q0xFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZPMmRDUVVOdVF5dzJRa0ZCTmtJc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRCUVVNM1JDeG5Ra0ZCUVN4dlFrRkJiMElzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVN1FVRkRjRU1zWjBKQlFVRXNLMEpCUVN0Q0xFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZPMEZCUXk5RExHZENRVUZCTEhWQ1FVRjFRaXhGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlR0QlFVTjJReXhuUWtGQlFTeFJRVUZSTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVU3UVVGRGJrUXNaMEpCUVVFc2FVSkJRV2xDTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRk8yZENRVU5xUXl4elFrRkJjMElzUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdEJRVU4wUkN4blFrRkJRU3d5UWtGQk1rSXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVU3WjBKQlF6VkRMSE5EUVVGelF5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzBGQlEzUkZMR2RDUVVGQkxHdENRVUZyUWl4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJUdEJRVU5zUXl4blFrRkJRU3hyUWtGQmEwSXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJUdEJRVU0zUkN4blFrRkJRU3gzUWtGQmQwSXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVU3UVVGRGVFTXNaMEpCUVVFc2MwSkJRWE5DTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVGRk8yZENRVU4yUXl4cFEwRkJhVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdEJRVU5xUlN4blFrRkJRU3gzUWtGQmQwSXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVU3UVVGRGVFTXNaMEpCUVVFc2QwSkJRWGRDTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRk8wRkJRM2hETEdkQ1FVRkJMSGRDUVVGM1FpeEZRVUZGTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSVHRCUVVONlF5eGhRVUZCTzBGQlEwUXNXVUZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hWUVVGVkxFTkJRVU1zVVVGQlVTeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZKTEVWQlFVVTdRVUZETVVJc1UwRkJRU3hEUVVFMFF5eERRVUZET3p0QlFVYzVReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN08xRkJSek5DTEVsQlFVa3NRMEZCUXl4NVFrRkJlVUlzUlVGQlJTeERRVUZET3p0QlFVZHFReXhSUVVGQkxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1IwRkJSeXhOUVVNelFqdFpRVU5GTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVUVzUlVGQlJ5eExRVUZMTEVOQlFVRXNRMEZCUVN4RlFVRkpMRXRCUVVzc1EwRkJRU3hEUVVGRkxFTkJRVU03UVVGRGRrWXNXVUZCUVN4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExESkNRVUV5UWl4dlFrRkJiMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVFc1EwRkJSU3hIUVVGSExFVkJRVVU3UVVGREwwWXNXVUZCUVN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTzJ0Q1FVTnlRaXhyUTBGQmEwTXNiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRVVVzUTBGQlFUdEJRVU55Uml4clFrRkJSU3hGUVVGRk8wRkJRMDRzV1VGQlFTeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzWjBOQlFXZERMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZCTEVOQlFVVXNSMEZCUnl4RlFVRkZPMEZCUXk5SExGTkJRVUVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkZaQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVkQlFVY3NRMEZCUXl4TlFVRk5MRXRCUVVrN1dVRkRhRU1zVFVGQlRTeGhRVUZoTEVkQlFVY3NVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZGYmtRc1dVRkJRU3hOUVVGTkxFOUJRVThzUjBGRFdDeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRk5MRTFCUVVFc1EwRkJRU3hOUVVGQkxFTkJRVUVzVFVGQlFTeERRVUZCTEUxQlFVRXNRMEZCUVN4RlFVRkJMRVZCUVVFc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVFc1JVRkJTeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZITEVOQlFVRTdRVUZETlVRc2FVSkJRVUVzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTnVReXhwUWtGQlFTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZYTEZGQlFVRXNSVUZCUVN4TFFVRkxMRU5CUVVrc1EwRkJRU3hGUVVGQkxFdEJRVXNzUlVGQlJTeERRVUZETzBGQlEzQkVMR2xDUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNN08xbEJSM1pDTEUxQlFVMHNRMEZCUXl4WlFVRlpMRWRCUVVjc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTTdXVUZEY0VRc1RVRkJUU3hEUVVGRExHTkJRV01zUjBGQlJ5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJRenM3T3p0WlFVMTRSQ3hKUVVGSkxHRkJRV0VzUjBGQlJ5eEhRVUZITEVWQlFVVTdRVUZEZGtJc1owSkJRVUVzVFVGQlRTeERRVUZETEdOQlFXTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGRGJrUXNaME5CUVdkRExFVkJRMmhETEN0Q1FVRXJRaXhEUVVOb1F5eERRVUZETzBGQlEwZ3NZVUZCUVRzN08xbEJTVVFzU1VGQlNTeGhRVUZoTEVkQlFVY3NSMEZCUnl4RlFVRkZPMEZCUTNaQ0xHZENRVUZCTEUxQlFVMHNRMEZCUXl4alFVRmpMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNhVU5CUVdsRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZETjBZc1owSkJRVUVzVFVGQlRTeERRVUZETEdOQlFXTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eHZRMEZCYjBNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU5xUnl4aFFVRkJPMEZCUTBnc1UwRkJReXhEUVVGRE8wdEJRMGc3UVVGRlJEczdPenRCUVVsSE8wRkJRMGtzU1VGQlFTeE5RVUZOTEVOQlFVTXNTMEZCWVN4RlFVRkJPMUZCUTNwQ0xFbEJRVWtzUTBGQlF5eDVRa0ZCZVVJc1JVRkJSU3hEUVVGRE8wRkJRMnBETEZGQlFVRXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMHRCUTJoRE8wRkJSVTBzU1VGQlFTeEpRVUZKTEVOQlFVTXNUVUZCV1N4RlFVRkJPMEZCUTNSQ0xGRkJRVUVzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenM3T3pzN096czdPMEZCVlc1Q0xGRkJRVUVzU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRE8wRkJRM1JDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETzBGQlEyeERMRkZCUVVFc1NVRkJTU3hEUVVGRExGZEJRVmNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRPMEZCUTNSRExGRkJRVUVzU1VGQlNTeERRVUZETEc5Q1FVRnZRaXhIUVVGSExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1EwRkJRenRCUVVONFJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUjBGQlJ5eE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU03UVVGRGRFUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTTdRVUZETVVNc1VVRkJRU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRWRCUVVjc1RVRkJUU3hEUVVGRExHdENRVUZyUWl4RFFVRkRPMEZCUTNCRUxGRkJRVUVzU1VGQlNTeERRVUZETERKQ1FVRXlRaXhIUVVGSExFMUJRVTBzUTBGQlF5d3lRa0ZCTWtJc1EwRkJRenRCUVVOMFJTeFJRVUZCTEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUjBGQlJ5eE5RVUZOTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU03TzBGQlJ6VkVMRkZCUVVFc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkRPMEZCUlRGRExGRkJRVUVzU1VGQlNTeERRVUZETERaQ1FVRTJRaXhIUVVGSExFMUJRVTBzUTBGQlF5dzJRa0ZCTmtJc1EwRkJRenRCUVVNeFJTeFJRVUZCTEVsQlFVa3NRMEZCUXl3MlFrRkJOa0lzUjBGQlJ5eE5RVUZOTEVOQlFVTXNOa0pCUVRaQ0xFTkJRVU03UVVGRE1VVXNVVUZCUVN4SlFVRkpMRU5CUVVNc09FSkJRVGhDTEVkQlFVY3NUVUZCVFN4RFFVRkRMRGhDUVVFNFFpeERRVUZETzBGQlJUVkZMRkZCUVVFc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4SFFVRkhMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0QlFVVnNSQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJRenRCUVVNeFF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExGTkJRVk1zUTBGQlF6dEJRVU5zUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSMEZCUnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdRVUZGYUVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNN08wRkJSMnhETEZGQlFVRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRmVFSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJRenRMUVVOaU8wRkJSVVE3T3pzN1FVRkpSenRCUVVOTExFbEJRVUVzYTBKQlFXdENMRU5CUVVNc1MwRkJZU3hGUVVGQk8wRkJRM1JETEZGQlFVRXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4TFFVRkxMRWxCUVVrc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5dzJRa0ZCTmtJc1EwRkJRenRCUVVNelJpeFJRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2QwSkJRWGRDTEVOQlFVTXNTMEZCU3l4SlFVRkpMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zTmtKQlFUWkNMRU5CUVVNN1FVRkRNMFlzVVVGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMSGRDUVVGM1FpeERRVUZETEV0QlFVc3NTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExEaENRVUU0UWl4RFFVRkRPMEZCUlRWR0xGRkJRVUVzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUTBGQlF6dExRVU5vUXp0QlFVVkVPenM3UVVGSFJ6dEpRVU5MTEhsQ1FVRjVRaXhIUVVGQk96czdPMUZCU1M5Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZET3p0QlFVY3pReXhSUVVGQkxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBGQlF6TkZMRkZCUVVFc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNRMEZCUXp0QlFVTjJSaXhSUVVGQkxFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1FVRkRNMFlzVVVGQlFTeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4dlFrRkJiMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVOQlFVTTdRVUZETjBjc1VVRkJRU3hKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETERoQ1FVRTRRaXhEUVVGRExFTkJRVU03UVVGRE0wY3NVVUZCUVN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eERRVUZETzBGQlF5OUdMRkZCUVVFc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhEUVVGRE8wRkJRM3BITEZGQlFVRXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVU4yUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExESkNRVUV5UWl4RlFVTjZReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEhORFFVRnpReXhEUVVOeVJDeERRVUZETzBGQlEwWXNVVUZCUVN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXh6UWtGQmMwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHbERRVUZwUXl4RFFVRkRMRU5CUVVNN08xRkJSMnBJTEUxQlFVMHNZVUZCWVN4SFFVRkhMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlc1RUxFbEJRVWtzWVVGQllTeEpRVUZKTEVkQlFVY3NSVUZCUlR0WlFVTjRRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF6dEJRVU5vUkN4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRWRCUVVjc1NVRkJTU3hEUVVGRE8wdEJRMmhETzBGQlJVUTdPMEZCUlVjN1NVRkRTeXhuUWtGQlowSXNSMEZCUVR0UlFVTjBRaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVVZ1UkN4UlFVRkJMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1MwRkJTeXhKUVVGSkxFTkJRVU03UVVGRE9VUXNVVUZCUVN4TlFVRk5MRmRCUVZjc1IwRkRaaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVsQlFVazdXVUZEYWtJc1NVRkJTU3hEUVVGRExGZEJRVmNzUzBGQlN5eEpRVUZKTzFsQlEzcENMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNTMEZCU3l4SlFVRkpPMWxCUTJ4RExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1MwRkJTeXhKUVVGSk8xbEJRMnBETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUzBGQlN5eEpRVUZKTzBGQlEyaERMRmxCUVVFc1NVRkJTU3hEUVVGRExITkNRVUZ6UWl4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVWMlF5eFBRVUZQT3pzN1FVRkhUQ3haUVVGQkxIZENRVUYzUWl4RlFVRkZMR0ZCUVdFN1dVRkZka01zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZPMWxCUTNoQ0xGbEJRVmtzUlVGQlJTeFhRVUZYTEVsQlFVa3NWMEZCVnp0QlFVTjRReXhaUVVGQkxIRkNRVUZ4UWl4RlFVRkZMRmRCUVZjc1NVRkJTU3hEUVVGRExGZEJRVmM3V1VGRGJFUXNaVUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhqUVVGak8wRkJRM0JETEZsQlFVRXNkMEpCUVhkQ0xFVkJRVVVzU1VGQlNTeERRVUZETEc5Q1FVRnZRaXhMUVVGTExFbEJRVWs3UVVGRE5VUXNXVUZCUVN4MVFrRkJkVUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFdEJRVXNzU1VGQlNUdEJRVU14UkN4WlFVRkJMR2xDUVVGcFFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4aFFVRmhMRXRCUVVzc1NVRkJTVHRCUVVNNVF5eFpRVUZCTEhOQ1FVRnpRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1MwRkJTeXhKUVVGSk8xbEJRM2hFTEN0Q1FVRXJRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVsQlFVa3NTVUZCU1N4RFFVRkRMREpDUVVFeVFpeExRVUZMTEVsQlFVazdRVUZETjBZc1dVRkJRU3d3UWtGQk1FSXNSVUZCUlN4SlFVRkpMRU5CUVVNc2MwSkJRWE5DTEV0QlFVc3NTVUZCU1R0QlFVTm9SU3haUVVGQkxHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNTMEZCU3l4SlFVRkpPMEZCUTNKRUxGbEJRVUVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRXRCUVVzc1VVRkJVVHRCUVVNeFF5eFpRVUZCTEd0Q1FVRnJRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eFZRVUZWTEV0QlFVc3NZMEZCWXp0QlFVTjBSQ3haUVVGQkxGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4TFFVRkxMRWxCUVVrN1dVRkRiRU1zYlVKQlFXMUNMRVZCUVVVc1NVRkJTU3hEUVVGRExGVkJRVlVzU1VGQlNTeEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFdEJRVXNzTmtKQlFUWkNMRU5CUVVNc1owSkJRV2RDTzFsQlEycElMRzlDUVVGdlFpeEZRVU5zUWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1MwRkJTeXcyUWtGQk5rSXNRMEZCUXl4cFFrRkJhVUk3VTBGRGFFY3NRMEZCUXp0TFFVTklPMGxCUlU4c2IwSkJRVzlDTEVOQlFVTXNSMEZCZVVNc1JVRkJSU3hIUVVGclF5eEZRVUZCTzFGQlEzaEhMRWxCUVVrc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJUdEJRVU5pTEZsQlFVRXNTVUZCU1N4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExHZENRVUZuUWl4RlFVRkZPMEZCUXpsQ0xHZENRVUZCTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03UVVGRE1VSXNZVUZCUVR0WlFVVkVMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGJFTXNVMEZCUVR0TFFVTkdPMEZCUTBZN08wRkRkRzlDUkN4TlFVRk5MSEZDUVVGeFFpeEhRVUUyUWp0QlFVTjBSQ3hKUVVGQkxFVkJRVVVzUlVGQlJTeEpRVUZKTzBGQlExSXNTVUZCUVN4SlFVRkpMRVZCUVVVc1NVRkJTVHREUVVOWUxFTkJRVU03UVVGRlJqczdPenM3T3pzN08wRkJVMGM3UVVGRFlTeFRRVUZCTEc5Q1FVRnZRaXhEUVVGRExFOUJRWE5DTEVWQlFVVXNWVUZCZFVJc1JVRkJRVHRKUVVOc1JpeEpRVUZKTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVkQlFVY3NSVUZCUlR0QlFVTjJReXhSUVVGQkxFOUJRVThzUTBGQlF5eFZRVUZWTEVkQlFVY3NWVUZCVlN4RFFVRkRPMEZCUTJwRExFdEJRVUU3UVVGQlRTeFRRVUZCTzBGQlEwb3NVVUZCUVN4UFFVRmxMRU5CUVVNc1VVRkJVU3hIUVVGSExIRkNRVUZ4UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJReTlFTEV0QlFVRTdRVUZEU0RzN1FVTnNRa0U3T3pzN1FVRkpSenROUVVOVkxHMURRVUZ0UXl4RFFVRkJPMEZCU3psRExFbEJRVUVzU1VGQlZ5eFBRVUZQTEVkQlFVRTdVVUZEYUVJc1QwRkJUeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRMUVVOd1F6dEpRVVZFTEZkQlFXMUNMRU5CUVVFc1RVRkJhMElzUlVGQlJTeGpRVUYxUXl4RlFVRkJPMEZCUXpWRkxGRkJRVUVzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1FVRkRkRUlzVVVGQlFTeEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMR05CUVdNc1EwRkJRenRCUVVOMFF5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wdEJRM0pDTzBsQlJVMHNaVUZCWlN4RFFVRXdReXhIUVVGTkxFVkJRVVVzUzBGQmFVTXNSVUZCUVR0UlFVTjJSeXhKUVVGSkxFdEJRVXNzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYWtJc1dVRkJRU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVOdVF5eFRRVUZCTzB0QlEwWTdRVUZGVFN4SlFVRkJMRmRCUVZjc1EwRkRhRUlzUjBGQlRTeEZRVU5PTEV0QlFUSkNMRVZCUXpOQ0xHMUNRVUUyUWl4RlFVRkJPMUZCUlRkQ0xFbEJRVWtzUzBGQlN5eEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTnFRaXhaUVVGQkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJSUzlFTEZsQlFVRXNTVUZCU1N4dFFrRkJiVUlzUlVGQlJUdG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeERRVUZETzBGQlEycEVMR0ZCUVVFN1FVRkRSaXhUUVVGQk8wdEJRMFk3UVVGRldTeEpRVUZCTEdGQlFXRXNRMEZEZUVJc1IwRkJUU3hGUVVOT0xFOUJRWE5ETEVWQlEzUkRMR05CUVhWQ0xFVkJRVUU3TzBGQlJYWkNMRmxCUVVFc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eE5RVUZYTEZOQlFVRXNRMEZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hEUVVGQkxFVkJRVUVzUzBGQlFTeERRVUZCTEVWQlFVRXNZVUZCUVR0blFrRkRNVUlzU1VGQlNTeFBRVUZQTEVsQlFVa3NTVUZCU1N4RlFVRkZPMEZCUTI1Q0xHOUNRVUZCTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRmNrVXNiMEpCUVVFc1NVRkJTU3hqUVVGakxFVkJRVVU3ZDBKQlEyeENMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEZWtRc2NVSkJRVUU3UVVGRFJpeHBRa0ZCUVR0aFFVTkdMRU5CUVVFc1IwRkJSeXhEUVVGRE8wRkJSVXdzV1VGQlFTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVVUzUWl4WlFVRkJMRTlCUVU4c1QwRkJUeXhEUVVGRE8xTkJRMmhDTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUVVFN1FVRkZXU3hKUVVGQkxHOUNRVUZ2UWl4RFFVTXZRaXhIUVVGTkxFVkJRMDRzV1VGQlowTXNSVUZEYUVNc1kwRkJkVUlzUlVGQlFUczdXVUZGZGtJc1QwRkJUeXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVkQlFVY3NSVUZCUlN4WlFVRlpMRWxCUVVrc1NVRkJTU3hIUVVGSExFVkJRVVVzUzBGQlN5eEZRVUZGTEZsQlFWa3NSVUZCUlN4SFFVRkhMRk5CUVZNc1JVRkJSU3hqUVVGakxFTkJRVU1zUTBGQlF6dFRRVU0xUnl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVGQk8wRkJRMFk3TzBGRE4wUkVPenRCUVVWSE8wRkJRMGdzVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8wMUJSUzlETEhsQ1FVRjVRaXhEUVVGQk8wRkJhME53UXl4SlFVRkJMRWxCUVZjc1NVRkJTU3hIUVVGQk8xRkJRMklzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXhqUVVGakxFTkJRVU03UzBGRGFrUTdTVUZGUkN4WFFVRnRRaXhEUVVGQkxFMUJRV3RDTEVWQlFVVXNUMEZCUVN4SFFVRTBReXhGUVVGRkxFVkJRVUU3TzBGQlEyNUdMRkZCUVVFc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdVVUZGY2tJc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hEUVVGRExFTkJRVU03VVVGRGVFUXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeFBRVUZQTEVOQlFVTXNZVUZCWVN4TlFVRkpMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkJMRXRCUVVzc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFOUJRVThzUTBGQlF5eFRRVUZUTEUxQlFVa3NTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVRXNUVUZCVFN4RFFVRkRPMEZCUlRkRExGRkJRVUVzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTMEZEY0VNN1NVRkZXU3hWUVVGVkxFZEJRVUU3TzFsQlEzSkNMRWxCUVVrc1EwRkJReXhyUTBGQmEwTXNSVUZCUlN4RFFVRkRPMU5CUXpORExFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlFVRTdRVUZGV1N4SlFVRkJMRk5CUVZNc1EwRkJReXhKUVVGVkxFVkJRVUU3TzBGQlF5OUNMRmxCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzFOQlEzUkZMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRVUU3UVVGRlRTeEpRVUZCTEdWQlFXVXNRMEZCUXl4aFFVRnhRaXhGUVVGQk8xRkJRekZETEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRCUVVNelJDeFJRVUZCTEVsQlFVa3NWMEZCVnl4RlFVRkZPMEZCUTJZc1dVRkJRU3hQUVVGUExHRkJRV0VzUTBGQlF6dEJRVU4wUWl4VFFVRkJPMEZCUlVRc1VVRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dExRVU5pTzBsQlJVMHNiMEpCUVc5Q0xFTkJRVU1zWVVGQmNVSXNSVUZCUlN4alFVRjFReXhGUVVGQk8xRkJRM2hHTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRCUVVONlJDeFJRVUZCTEVsQlFVa3NVMEZCVXl4RlFVRkZPMWxCUTJJc1QwRkJUeXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1UwRkJVeXhGUVVGRkxHTkJRV01zUTBGQlF5eERRVUZETzBGQlF6bEVMRk5CUVVFN1FVRkZSQ3hSUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzB0QlEySTdRVUZGV1N4SlFVRkJMRkZCUVZFc1EwRkJReXhUUVVGcFFpeEZRVUZCT3pzN1FVRkRja01zV1VGQlFTeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRek5DTEZsQlFVRXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRWGRDTEVOQlFVTTdXVUZGTjBNc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXp0WlFVVjZReXhKUVVGSkxFOUJRVThzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYmtJc1owSkJRVUVzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZEWWl4dlJFRkJiMFFzVTBGQlV5eERRVUZCTEc5RFFVRkJMRU5CUVhORExFTkJRM0JITEVOQlFVTTdRVUZEU0N4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRPMWxCUlhwRExFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEJRVVZ5UkN4WlFVRkJMRWxCUVVrc1lVRkJZU3hEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdaMEpCUXpsQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEZkQlFYbENMRU5CUVVNN1owSkJRM1pETEUxQlFVMHNZVUZCWVN4SFFVRkhMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdaMEpCUldoRUxFbEJRVWtzWVVGQllTeEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTjZRaXh2UWtGQlFTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF6dEJRVU16UXl4cFFrRkJRVHRCUVVOR0xHRkJRVUU3UVVGQlRTeHBRa0ZCUVR0blFrRkRUQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eFhRVUV3UWl4RFFVRkRPMEZCUTNwRExHZENRVUZCTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yOUNRVU0zUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCWlN4RFFVRkRPMjlDUVVNM1F5eE5RVUZOTEdGQlFXRXNSMEZCUnl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETzI5Q1FVVm9SQ3hKUVVGSkxHRkJRV0VzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEZWtJc2QwSkJRVUVzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRVZCUVVVc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRE0wTXNjVUpCUVVFN1FVRkRSaXhwUWtGQlFUdEJRVU5HTEdGQlFVRTdRVUZGUkN4WlFVRkJMRTlCUVU4c1YwRkJWeXhEUVVGRE96dEJRVU53UWl4TFFVRkJPMEZCUlVRN096czdPMEZCUzBjN1NVRkRTeXhyUTBGQmEwTXNSMEZCUVR0QlFVTjRReXhSUVVGQkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRNMElzVVVGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJkMElzUTBGQlF6dEJRVVUzUXl4UlFVRkJMRTFCUVUwc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdRVUZEY0VNc1VVRkJRU3haUVVGWkxFdEJRVm9zU1VGQlFTeEpRVUZCTEZsQlFWa3NTMEZCV2l4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeFpRVUZaTEVOQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1YwRkJWeXhGUVVGRkxGTkJRVk1zUzBGQlNUczdXVUZETTBNc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFsQlJYSkVMRWxCUVVrc1UwRkJVeXhMUVVGSkxFTkJRVUVzUlVGQlFTeEhRVUZCTEZkQlFWY3NRMEZCUXl4VlFVRlZMRTFCUVVjc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVUVzY1VKQlFYRkNMRU5CUVVNc1EwRkJRU3hGUVVGRk8wRkJRMmhGTEdkQ1FVRkJMRTlCUVU4c1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8wRkJRM1JFTEdGQlFVRTdRVUZEU0N4VFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOS08wRkJSVThzU1VGQlFTeHJRa0ZCYTBJc1EwRkJReXhoUVVGeFFpeEZRVUZCT3p0QlFVTTVReXhSUVVGQkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRNMElzVVVGQlFTeE5RVUZOTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJkMElzUTBGQlF6dFJRVVUzUXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNVMEZCVXl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGSExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlJYQkVMRWxCUVVrc1YwRkJWeXhKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU4yUWl4WlFVRkJMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRMVlzZFVSQlFYVkVMR0ZCUVdFc1EwRkJRU3gzUTBGQlFTeERRVUV3UXl4RFFVTXZSeXhEUVVGRE8wRkJRMFlzV1VGQlFTeFBRVUZQTEZOQlFWTXNRMEZCUXp0QlFVTnNRaXhUUVVGQk8xRkJSVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1YwRkJWeXhEUVVGRExGVkJRVlVzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4NVFrRkJlVUlzUTBGQlF5eGpRVUZqTEVOQlJYUkZMRU5CUVVNN1VVRkRaQ3hKUVVGSkxGTkJRVk1zU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEY2tJc1dVRkJRU3hQUVVGUExGTkJRVk1zUTBGQlF6dEJRVU5zUWl4VFFVRkJPMEZCUlVRc1VVRkJRU3hOUVVGTkxGZEJRVmNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RFFVRkRPMEZCUXpGRExGRkJRVUVzU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlR0WlFVTTFReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVU5XTEVOQlFYTkRMRzFEUVVGQkxFVkJRVUVzZVVKQlFYbENMRU5CUVVNc1kwRkJZeXhEUVVGcFFpeGpRVUZCTEVWQlFVRXNWMEZCVnl4RFFVRkhMRU5CUVVFc1EwRkJRU3hEUVVNNVJ5eERRVUZETzBGQlEwWXNXVUZCUVN4UFFVRlBMRk5CUVZNc1EwRkJRenRCUVVOc1FpeFRRVUZCTzBGQlJVUXNVVUZCUVN4UFFVRlBMRk5CUVZNc1EwRkJRenRMUVVOc1FqdEpRVVZoTEhGQ1FVRnhRaXhEUVVOcVF5eFRRVUV5UXl4RlFVTXpReXhqUVVGMVF5eEZRVUZCT3pzN08xbEJSM1pETEU5QlFWRXNZMEZCZFVRc1EwRkJReXhUUVVGVExFTkJRVU03V1VGRE1VVXNUMEZCVVN4alFVRjFSQ3hEUVVGRExGTkJRVk1zUTBGQlF6dFpRVVV4UlN4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxHMURRVUZ0UXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzWTBGQll5eERRVUZETEVOQlFVTTdXVUZGTVVZc1dVRkJXU3hEUVVGRExHVkJRV1VzUTBGQlF5eDFRa0ZCZFVJc1JVRkJSU3hUUVVGVExFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRaUVVOMlJpeFpRVUZaTEVOQlFVTXNWMEZCVnl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEZOQlFWTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzFsQlEzcEZMRmxCUVZrc1EwRkJReXhoUVVGaExFTkJRVU1zYzBKQlFYTkNMRVZCUVVVc1UwRkJVeXhEUVVGRExHOUNRVUZ2UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRM3BHTEZsQlFWa3NRMEZCUXl4bFFVRmxMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVXNVMEZCVXl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdXVUZEYWtZc1dVRkJXU3hEUVVGRExHRkJRV0VzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hUUVVGVExFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGRrWXNXVUZCUVN4WlFVRlpMRU5CUVVNc1pVRkJaU3hEUVVGRExEQkNRVUV3UWl4RlFVRkZMRU5CUVVFc1JVRkJRU3hIUVVGQkxGTkJRVk1zUTBGQlF5eHRRa0ZCYlVJc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTXZSaXhaUVVGWkxFTkJRVU1zWlVGQlpTeERRVUZETEc5Q1FVRnZRaXhGUVVGRkxGTkJRVk1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xbEJRMnBHTEZsQlFWa3NRMEZCUXl4bFFVRmxMRU5CUVVNc2MwSkJRWE5DTEVWQlFVVXNVMEZCVXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTTdXVUZEY2tZc1dVRkJXU3hEUVVGRExGZEJRVmNzUTBGQlF5eGpRVUZqTEVWQlFVVXNVMEZCVXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJRMnBGTEZsQlFWa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1pVRkJaU3hGUVVGRkxGTkJRVk1zUTBGQlF5eGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRNMFVzV1VGQldTeERRVUZETEZkQlFWY3NRMEZCUXl3d1FrRkJNRUlzUlVGQlJTeFRRVUZUTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zUTBGQlF6dFpRVU42Uml4WlFVRlpMRU5CUVVNc1lVRkJZU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZMRk5CUVZNc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOeVJpeFpRVUZaTEVOQlFVTXNaVUZCWlN4RFFVRkRMSE5DUVVGelFpeEZRVUZGTEZOQlFWTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVUZETzFsQlEzSkdMRmxCUVZrc1EwRkJReXhsUVVGbExFTkJRVU1zYVVOQlFXbERMRVZCUVVVc1UwRkJVeXhEUVVGRExDdENRVUVyUWl4RFFVRkRMRU5CUVVNN1dVRkRNMGNzV1VGQldTeERRVUZETEdWQlFXVXNRMEZCUXl4NVFrRkJlVUlzUlVGQlJTeFRRVUZUTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dFpRVU16Uml4WlFVRlpMRU5CUVVNc1pVRkJaU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMRk5CUVZNc1EwRkJReXhuUWtGQmFVUXNRMEZCUXl4RFFVRkRPMWxCUXpsSExGbEJRVmtzUTBGQlF5eGxRVUZsTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVVzVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03V1VGRGFrWXNXVUZCV1N4RFFVRkRMR0ZCUVdFc1EwRkJReXcyUWtGQk5rSXNSVUZCUlN4VFFVRlRMRU5CUVVNc01rSkJRVEpDTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkRlRWNzV1VGQldTeERRVUZETEZkQlFWY3NRMEZCUXl4dlFrRkJiMElzUlVGQlJTeFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFpRVU0zUlN4WlFVRlpMRU5CUVVNc1pVRkJaU3hEUVVGRExEQkNRVUV3UWl4RlFVRkZMRk5CUVZNc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RFFVRkRPMWxCUXpkR0xGbEJRVmtzUTBGQlF5eGhRVUZoTEVOQlFVTXNkMEpCUVhkQ0xFVkJRVVVzVTBGQlV5eERRVUZETEhOQ1FVRnpRaXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlF6bEdMRmxCUVZrc1EwRkJReXhsUVVGbExFTkJRVU1zSzBKQlFTdENMRVZCUVVVc1UwRkJVeXhEUVVGRExEWkNRVUUyUWl4RFFVRkRMRU5CUVVNN1dVRkRka2NzV1VGQldTeERRVUZETEdWQlFXVXNRMEZCUXl3clFrRkJLMElzUlVGQlJTeFRRVUZUTEVOQlFVTXNOa0pCUVRaQ0xFTkJRVU1zUTBGQlF6dFpRVU4yUnl4WlFVRlpMRU5CUVVNc1pVRkJaU3hEUVVGRExHZERRVUZuUXl4RlFVRkZMRk5CUVZNc1EwRkJReXc0UWtGQk9FSXNRMEZCUXl4RFFVRkRPMWxCUlhwSExGbEJRVmtzUTBGQlF5eGxRVUZsTEVOQlFVTXNaVUZCWlN4RlFVRkZMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFpRVU5zUlN4WlFVRlpMRU5CUVVNc1pVRkJaU3hEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1dVRkZNVVFzVFVGQlRTeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRPenRCUVVNMVFpeExRVUZCTzBGQlJVUTdPenM3T3pzN08wRkJVVWM3U1VGRFN5eGxRVUZsTEVOQlFVTXNTVUZCWjBJc1JVRkJSU3hoUVVGeFFpeEZRVUZCTzFGQlF6ZEVMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dEJRVU42UkN4UlFVRkJMRWxCUVVrc1UwRkJVeXhGUVVGRk8xbEJRMklzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUTNSRUxFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0QlFVVjRSQ3haUVVGQkxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVVUxUWl4WlFVRkJMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVVM1FpeFBRVUZQTzBGQlExSXNVMEZCUVR0TFFVTkdPMEZCUlVRN096czdRVUZKUnp0QlFVTkxMRWxCUVVFc1owSkJRV2RDTEVOQlFVTXNTVUZCWjBJc1JVRkJRVHM3T3pzN08wRkJUM1pETEZGQlFVRXNUVUZCVFN4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dEJRVU4wUXl4UlFVRkJMRWxCUVVrc1JVRkJSU3hsUVVGbExGbEJRVmtzWVVGQllTeERRVUZETEVWQlFVVTdXVUZETDBNc1QwRkJUenRCUVVOU0xGTkJRVUU3TzFGQlIwUXNTVUZCU1N4bFFVRmxMRU5CUVVNc1owSkJRV2RDTEV0QlFVc3NUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXhyUWtGQmEwSXNTVUZCU1N4SFFVRkhMRVZCUVVVN1dVRkROVVlzVDBGQlR6dEJRVU5TTEZOQlFVRTdPMUZCUjBRc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPenRCUVVkc1F5eFJRVUZCTEUxQlFVMHNaVUZCWlN4SFFVRkhMR1ZCUVdVc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dEJRVU5vUkN4UlFVRkJMR1ZCUVdVc1EwRkJReXhKUVVGSkxFbEJRVWtzV1VGQldTeERRVUZETzBGQlEzSkRMRkZCUVVFc1pVRkJaU3hEUVVGRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdRVUZEYWtNc1VVRkJRU3hsUVVGbExFTkJRVU1zU1VGQlNTeEhRVUZITEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkRkRU1zVVVGQlFTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6czdRVUZIY0VNc1VVRkJRU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUXk5Q0xFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1VVRkJVU3hEUVVGRExFdEJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM3BITEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRek5ETEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRelZETzBGQlJVOHNTVUZCUVN4cFFrRkJhVUlzUTBGQlF5eEpRVUZuUWl4RlFVRkJPMEZCUTNoRExGRkJRVUVzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzBGQlF6RkRMRkZCUVVFc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeEhRVUZITEVWQlFXdENMRU5CUVVNN1FVRkZPVU1zVVVGQlFTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlR0QlFVTjBReXhaUVVGQkxHMUNRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExGRkJRVkVzUzBGQlN5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRFVXNVMEZCUVR0QlFVRk5MR0ZCUVVFN1FVRkRUQ3haUVVGQkxGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEJRVU4wUXl4VFFVRkJPMEZCUlVRc1VVRkJRU3hMUVVGTExFMUJRVTBzVVVGQlVTeEpRVUZKTEZkQlFWY3NSVUZCUlR0WlFVTnNReXhKUVVGSkxGRkJRVkVzV1VGQldTeGhRVUZoTEVWQlFVVTdRVUZEY2tNc1owSkJRVUVzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTjBReXhoUVVGQk8wRkJRMFlzVTBGQlFUdExRVU5HTzBGQlJVOHNTVUZCUVN4cFFrRkJhVUlzUTBGQlF5eFRRVUV5UXl4RlFVRkJPenM3TzBGQlIyNUZMRkZCUVVFc1RVRkJUU3hoUVVGaExFZEJRVWNzVTBGQlV5eERRVUZETEhGQ1FVRnhRaXhEUVVGRE8xRkJRM1JFTEU5QlFVOHNRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eE5RVUZCTEZOQlFWTXNRMEZCUXl4MVFrRkJkVUlzVFVGQlNTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUjBGQlFTeERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTTFSVHM3UVVFdlVtRXNlVUpCUVdNc1EwRkJRU3hqUVVGQkxFZEJRVWNzYzBKQlFYTkNPenM3T3lKOVxuIiwiLyohXG4gKiBAcGl4aXYvdGhyZWUtdnJtLW1hdGVyaWFscy1oZHItZW1pc3NpdmUtbXVsdGlwbGllciB2Mi4xLjFcbiAqIFN1cHBvcnQgVlJNQ19oZHJfZW1pc3NpdmVNdWx0aXBsaWVyIGZvciBAcGl4aXYvdGhyZWUtdnJtXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjQgcGl4aXYgSW5jLlxuICogQHBpeGl2L3RocmVlLXZybS1tYXRlcmlhbHMtaGRyLWVtaXNzaXZlLW11bHRpcGxpZXIgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgTUlUIExpY2Vuc2VcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waXhpdi90aHJlZS12cm0vYmxvYi9yZWxlYXNlL0xJQ0VOU0VcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcblxyXG5mdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG50eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxufTtcblxuY2xhc3MgVlJNTWF0ZXJpYWxzSERSRW1pc3NpdmVNdWx0aXBsaWVyTG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIFZSTU1hdGVyaWFsc0hEUkVtaXNzaXZlTXVsdGlwbGllckxvYWRlclBsdWdpbi5FWFRFTlNJT05fTkFNRTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFyc2VyKSB7XG4gICAgICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgIH1cbiAgICBleHRlbmRNYXRlcmlhbFBhcmFtcyhtYXRlcmlhbEluZGV4LCBtYXRlcmlhbFBhcmFtcykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gdGhpcy5fZ2V0SERSRW1pc3NpdmVNdWx0aXBsaWVyRXh0ZW5zaW9uKG1hdGVyaWFsSW5kZXgpO1xuICAgICAgICAgICAgaWYgKGV4dGVuc2lvbiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVGhpcyBleHRlbnNpb24gaXMgYXJjaGl2ZWQuIEVtaXQgd2FybmluZ1xuICAgICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdnJtLWMvdnJtLXNwZWNpZmljYXRpb24vcHVsbC8zNzVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVlJNTWF0ZXJpYWxzSERSRW1pc3NpdmVNdWx0aXBsaWVyTG9hZGVyUGx1Z2luOiBgVlJNQ19tYXRlcmlhbHNfaGRyX2VtaXNzaXZlTXVsdGlwbGllcmAgaXMgYXJjaGl2ZWQuIFVzZSBgS0hSX21hdGVyaWFsc19lbWlzc2l2ZV9zdHJlbmd0aGAgaW5zdGVhZC4nKTtcbiAgICAgICAgICAgIGNvbnN0IGVtaXNzaXZlTXVsdGlwbGllciA9IGV4dGVuc2lvbi5lbWlzc2l2ZU11bHRpcGxpZXI7XG4gICAgICAgICAgICBtYXRlcmlhbFBhcmFtcy5lbWlzc2l2ZUludGVuc2l0eSA9IGVtaXNzaXZlTXVsdGlwbGllcjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9nZXRIRFJFbWlzc2l2ZU11bHRpcGxpZXJFeHRlbnNpb24obWF0ZXJpYWxJbmRleCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBwYXJzZXIgPSB0aGlzLnBhcnNlcjtcbiAgICAgICAgY29uc3QganNvbiA9IHBhcnNlci5qc29uO1xuICAgICAgICBjb25zdCBtYXRlcmlhbERlZiA9IChfYSA9IGpzb24ubWF0ZXJpYWxzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbbWF0ZXJpYWxJbmRleF07XG4gICAgICAgIGlmIChtYXRlcmlhbERlZiA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTU1hdGVyaWFsc0hEUkVtaXNzaXZlTXVsdGlwbGllckxvYWRlclBsdWdpbjogQXR0ZW1wdCB0byB1c2UgbWF0ZXJpYWxzWyR7bWF0ZXJpYWxJbmRleH1dIG9mIGdsVEYgYnV0IHRoZSBtYXRlcmlhbCBkb2Vzbid0IGV4aXN0YCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IChfYiA9IG1hdGVyaWFsRGVmLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYltWUk1NYXRlcmlhbHNIRFJFbWlzc2l2ZU11bHRpcGxpZXJMb2FkZXJQbHVnaW4uRVhURU5TSU9OX05BTUVdO1xuICAgICAgICBpZiAoZXh0ZW5zaW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4dGVuc2lvbjtcbiAgICB9XG59XG5WUk1NYXRlcmlhbHNIRFJFbWlzc2l2ZU11bHRpcGxpZXJMb2FkZXJQbHVnaW4uRVhURU5TSU9OX05BTUUgPSAnVlJNQ19tYXRlcmlhbHNfaGRyX2VtaXNzaXZlTXVsdGlwbGllcic7XG5cbmV4cG9ydCB7IFZSTU1hdGVyaWFsc0hEUkVtaXNzaXZlTXVsdGlwbGllckxvYWRlclBsdWdpbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkR2h5WldVdGRuSnRMVzFoZEdWeWFXRnNjeTFvWkhJdFpXMXBjM05wZG1VdGJYVnNkR2x3YkdsbGNpNXRiMlIxYkdVdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OTBjMnhwWWk5MGMyeHBZaTVsY3pZdWFuTWlMQ0l1TGk5emNtTXZWbEpOVFdGMFpYSnBZV3h6U0VSU1JXMXBjM05wZG1WTmRXeDBhWEJzYVdWeVRHOWhaR1Z5VUd4MVoybHVMblJ6SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lwY2NseHVRMjl3ZVhKcFoyaDBJQ2hqS1NCTmFXTnliM052Wm5RZ1EyOXljRzl5WVhScGIyNHVYSEpjYmx4eVhHNVFaWEp0YVhOemFXOXVJSFJ2SUhWelpTd2dZMjl3ZVN3Z2JXOWthV1o1TENCaGJtUXZiM0lnWkdsemRISnBZblYwWlNCMGFHbHpJSE52Wm5SM1lYSmxJR1p2Y2lCaGJubGNjbHh1Y0hWeWNHOXpaU0IzYVhSb0lHOXlJSGRwZEdodmRYUWdabVZsSUdseklHaGxjbVZpZVNCbmNtRnVkR1ZrTGx4eVhHNWNjbHh1VkVoRklGTlBSbFJYUVZKRklFbFRJRkJTVDFaSlJFVkVJRndpUVZNZ1NWTmNJaUJCVGtRZ1ZFaEZJRUZWVkVoUFVpQkVTVk5EVEVGSlRWTWdRVXhNSUZkQlVsSkJUbFJKUlZNZ1YwbFVTRnh5WEc1U1JVZEJVa1FnVkU4Z1ZFaEpVeUJUVDBaVVYwRlNSU0JKVGtOTVZVUkpUa2NnUVV4TUlFbE5VRXhKUlVRZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGbGNjbHh1UVU1RUlFWkpWRTVGVTFNdUlFbE9JRTVQSUVWV1JVNVVJRk5JUVV4TUlGUklSU0JCVlZSSVQxSWdRa1VnVEVsQlFreEZJRVpQVWlCQlRsa2dVMUJGUTBsQlRDd2dSRWxTUlVOVUxGeHlYRzVKVGtSSlVrVkRWQ3dnVDFJZ1EwOU9VMFZSVlVWT1ZFbEJUQ0JFUVUxQlIwVlRJRTlTSUVGT1dTQkVRVTFCUjBWVElGZElRVlJUVDBWV1JWSWdVa1ZUVlV4VVNVNUhJRVpTVDAxY2NseHVURTlUVXlCUFJpQlZVMFVzSUVSQlZFRWdUMUlnVUZKUFJrbFVVeXdnVjBoRlZFaEZVaUJKVGlCQlRpQkJRMVJKVDA0Z1QwWWdRMDlPVkZKQlExUXNJRTVGUjB4SlIwVk9RMFVnVDFKY2NseHVUMVJJUlZJZ1ZFOVNWRWxQVlZNZ1FVTlVTVTlPTENCQlVrbFRTVTVISUU5VlZDQlBSaUJQVWlCSlRpQkRUMDVPUlVOVVNVOU9JRmRKVkVnZ1ZFaEZJRlZUUlNCUFVseHlYRzVRUlZKR1QxSk5RVTVEUlNCUFJpQlVTRWxUSUZOUFJsUlhRVkpGTGx4eVhHNHFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lBcUwxeHlYRzR2S2lCbmJHOWlZV3dnVW1WbWJHVmpkQ3dnVUhKdmJXbHpaU3dnVTNWd2NISmxjM05sWkVWeWNtOXlMQ0JUZVcxaWIyd2dLaTljY2x4dVhISmNiblpoY2lCbGVIUmxibVJUZEdGMGFXTnpJRDBnWm5WdVkzUnBiMjRvWkN3Z1lpa2dlMXh5WEc0Z0lDQWdaWGgwWlc1a1UzUmhkR2xqY3lBOUlFOWlhbVZqZEM1elpYUlFjbTkwYjNSNWNHVlBaaUI4ZkZ4eVhHNGdJQ0FnSUNBZ0lDaDdJRjlmY0hKdmRHOWZYem9nVzEwZ2ZTQnBibk4wWVc1alpXOW1JRUZ5Y21GNUlDWW1JR1oxYm1OMGFXOXVJQ2hrTENCaUtTQjdJR1F1WDE5d2NtOTBiMTlmSUQwZ1lqc2dmU2tnZkh4Y2NseHVJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQW9aQ3dnWWlrZ2V5Qm1iM0lnS0haaGNpQndJR2x1SUdJcElHbG1JQ2hQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMbWhoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvWWl3Z2NDa3BJR1JiY0YwZ1BTQmlXM0JkT3lCOU8xeHlYRzRnSUNBZ2NtVjBkWEp1SUdWNGRHVnVaRk4wWVhScFkzTW9aQ3dnWWlrN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTlsZUhSbGJtUnpLR1FzSUdJcElIdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdZaUFoUFQwZ1hDSm1kVzVqZEdsdmJsd2lJQ1ltSUdJZ0lUMDlJRzUxYkd3cFhISmNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtOc1lYTnpJR1Y0ZEdWdVpITWdkbUZzZFdVZ1hDSWdLeUJUZEhKcGJtY29ZaWtnS3lCY0lpQnBjeUJ1YjNRZ1lTQmpiMjV6ZEhKMVkzUnZjaUJ2Y2lCdWRXeHNYQ0lwTzF4eVhHNGdJQ0FnWlhoMFpXNWtVM1JoZEdsamN5aGtMQ0JpS1R0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUY5ZktDa2dleUIwYUdsekxtTnZibk4wY25WamRHOXlJRDBnWkRzZ2ZWeHlYRzRnSUNBZ1pDNXdjbTkwYjNSNWNHVWdQU0JpSUQwOVBTQnVkV3hzSUQ4Z1QySnFaV04wTG1OeVpXRjBaU2hpS1NBNklDaGZYeTV3Y205MGIzUjVjR1VnUFNCaUxuQnliM1J2ZEhsd1pTd2dibVYzSUY5ZktDa3BPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnZG1GeUlGOWZZWE56YVdkdUlEMGdablZ1WTNScGIyNG9LU0I3WEhKY2JpQWdJQ0JmWDJGemMybG5iaUE5SUU5aWFtVmpkQzVoYzNOcFoyNGdmSHdnWm5WdVkzUnBiMjRnWDE5aGMzTnBaMjRvZENrZ2UxeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJSE1zSUdrZ1BTQXhMQ0J1SUQwZ1lYSm5kVzFsYm5SekxteGxibWQwYURzZ2FTQThJRzQ3SUdrckt5a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpJRDBnWVhKbmRXMWxiblJ6VzJsZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCd0lHbHVJSE1wSUdsbUlDaFBZbXBsWTNRdWNISnZkRzkwZVhCbExtaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29jeXdnY0NrcElIUmJjRjBnUFNCelczQmRPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2REdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lISmxkSFZ5YmlCZlgyRnpjMmxuYmk1aGNIQnNlU2gwYUdsekxDQmhjbWQxYldWdWRITXBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5eVpYTjBLSE1zSUdVcElIdGNjbHh1SUNBZ0lIWmhjaUIwSUQwZ2UzMDdYSEpjYmlBZ0lDQm1iM0lnS0haaGNpQndJR2x1SUhNcElHbG1JQ2hQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMbWhoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvY3l3Z2NDa2dKaVlnWlM1cGJtUmxlRTltS0hBcElEd2dNQ2xjY2x4dUlDQWdJQ0FnSUNCMFczQmRJRDBnYzF0d1hUdGNjbHh1SUNBZ0lHbG1JQ2h6SUNFOUlHNTFiR3dnSmlZZ2RIbHdaVzltSUU5aWFtVmpkQzVuWlhSUGQyNVFjbTl3WlhKMGVWTjViV0p2YkhNZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlsY2NseHVJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQnBJRDBnTUN3Z2NDQTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVZONWJXSnZiSE1vY3lrN0lHa2dQQ0J3TG14bGJtZDBhRHNnYVNzcktTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsTG1sdVpHVjRUMllvY0Z0cFhTa2dQQ0F3SUNZbUlFOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWNISnZjR1Z5ZEhsSmMwVnVkVzFsY21GaWJHVXVZMkZzYkNoekxDQndXMmxkS1NsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmJjRnRwWFYwZ1BTQnpXM0JiYVYxZE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJSEpsZEhWeWJpQjBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5a1pXTnZjbUYwWlNoa1pXTnZjbUYwYjNKekxDQjBZWEpuWlhRc0lHdGxlU3dnWkdWell5a2dlMXh5WEc0Z0lDQWdkbUZ5SUdNZ1BTQmhjbWQxYldWdWRITXViR1Z1WjNSb0xDQnlJRDBnWXlBOElETWdQeUIwWVhKblpYUWdPaUJrWlhOaklEMDlQU0J1ZFd4c0lEOGdaR1Z6WXlBOUlFOWlhbVZqZEM1blpYUlBkMjVRY205d1pYSjBlVVJsYzJOeWFYQjBiM0lvZEdGeVoyVjBMQ0JyWlhrcElEb2daR1Z6WXl3Z1pEdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdVbVZtYkdWamRDQTlQVDBnWENKdlltcGxZM1JjSWlBbUppQjBlWEJsYjJZZ1VtVm1iR1ZqZEM1a1pXTnZjbUYwWlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCeUlEMGdVbVZtYkdWamRDNWtaV052Y21GMFpTaGtaV052Y21GMGIzSnpMQ0IwWVhKblpYUXNJR3RsZVN3Z1pHVnpZeWs3WEhKY2JpQWdJQ0JsYkhObElHWnZjaUFvZG1GeUlHa2dQU0JrWldOdmNtRjBiM0p6TG14bGJtZDBhQ0F0SURFN0lHa2dQajBnTURzZ2FTMHRLU0JwWmlBb1pDQTlJR1JsWTI5eVlYUnZjbk5iYVYwcElISWdQU0FvWXlBOElETWdQeUJrS0hJcElEb2dZeUErSURNZ1B5QmtLSFJoY21kbGRDd2dhMlY1TENCeUtTQTZJR1FvZEdGeVoyVjBMQ0JyWlhrcEtTQjhmQ0J5TzF4eVhHNGdJQ0FnY21WMGRYSnVJR01nUGlBeklDWW1JSElnSmlZZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLSFJoY21kbGRDd2dhMlY1TENCeUtTd2djanRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmNHRnlZVzBvY0dGeVlXMUpibVJsZUN3Z1pHVmpiM0poZEc5eUtTQjdYSEpjYmlBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0Z0tIUmhjbWRsZEN3Z2EyVjVLU0I3SUdSbFkyOXlZWFJ2Y2loMFlYSm5aWFFzSUd0bGVTd2djR0Z5WVcxSmJtUmxlQ2s3SUgxY2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZaWE5FWldOdmNtRjBaU2hqZEc5eUxDQmtaWE5qY21sd2RHOXlTVzRzSUdSbFkyOXlZWFJ2Y25Nc0lHTnZiblJsZUhSSmJpd2dhVzVwZEdsaGJHbDZaWEp6TENCbGVIUnlZVWx1YVhScFlXeHBlbVZ5Y3lrZ2UxeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z1lXTmpaWEIwS0dZcElIc2dhV1lnS0dZZ0lUMDlJSFp2YVdRZ01DQW1KaUIwZVhCbGIyWWdaaUFoUFQwZ1hDSm1kVzVqZEdsdmJsd2lLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVJuVnVZM1JwYjI0Z1pYaHdaV04wWldSY0lpazdJSEpsZEhWeWJpQm1PeUI5WEhKY2JpQWdJQ0IyWVhJZ2EybHVaQ0E5SUdOdmJuUmxlSFJKYmk1cmFXNWtMQ0JyWlhrZ1BTQnJhVzVrSUQwOVBTQmNJbWRsZEhSbGNsd2lJRDhnWENKblpYUmNJaUE2SUd0cGJtUWdQVDA5SUZ3aWMyVjBkR1Z5WENJZ1B5QmNJbk5sZEZ3aUlEb2dYQ0oyWVd4MVpWd2lPMXh5WEc0Z0lDQWdkbUZ5SUhSaGNtZGxkQ0E5SUNGa1pYTmpjbWx3ZEc5eVNXNGdKaVlnWTNSdmNpQS9JR052Ym5SbGVIUkpibHRjSW5OMFlYUnBZMXdpWFNBL0lHTjBiM0lnT2lCamRHOXlMbkJ5YjNSdmRIbHdaU0E2SUc1MWJHdzdYSEpjYmlBZ0lDQjJZWElnWkdWelkzSnBjSFJ2Y2lBOUlHUmxjMk55YVhCMGIzSkpiaUI4ZkNBb2RHRnlaMlYwSUQ4Z1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVSR1Z6WTNKcGNIUnZjaWgwWVhKblpYUXNJR052Ym5SbGVIUkpiaTV1WVcxbEtTQTZJSHQ5S1R0Y2NseHVJQ0FnSUhaaGNpQmZMQ0JrYjI1bElEMGdabUZzYzJVN1hISmNiaUFnSUNCbWIzSWdLSFpoY2lCcElEMGdaR1ZqYjNKaGRHOXljeTVzWlc1bmRHZ2dMU0F4T3lCcElENDlJREE3SUdrdExTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQmpiMjUwWlhoMElEMGdlMzA3WEhKY2JpQWdJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2NDQnBiaUJqYjI1MFpYaDBTVzRwSUdOdmJuUmxlSFJiY0YwZ1BTQndJRDA5UFNCY0ltRmpZMlZ6YzF3aUlEOGdlMzBnT2lCamIyNTBaWGgwU1c1YmNGMDdYSEpjYmlBZ0lDQWdJQ0FnWm05eUlDaDJZWElnY0NCcGJpQmpiMjUwWlhoMFNXNHVZV05qWlhOektTQmpiMjUwWlhoMExtRmpZMlZ6YzF0d1hTQTlJR052Ym5SbGVIUkpiaTVoWTJObGMzTmJjRjA3WEhKY2JpQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEM1aFpHUkpibWwwYVdGc2FYcGxjaUE5SUdaMWJtTjBhVzl1SUNobUtTQjdJR2xtSUNoa2IyNWxLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVEyRnVibTkwSUdGa1pDQnBibWwwYVdGc2FYcGxjbk1nWVdaMFpYSWdaR1ZqYjNKaGRHbHZiaUJvWVhNZ1kyOXRjR3hsZEdWa1hDSXBPeUJsZUhSeVlVbHVhWFJwWVd4cGVtVnljeTV3ZFhOb0tHRmpZMlZ3ZENobUlIeDhJRzUxYkd3cEtUc2dmVHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdLREFzSUdSbFkyOXlZWFJ2Y25OYmFWMHBLR3RwYm1RZ1BUMDlJRndpWVdOalpYTnpiM0pjSWlBL0lIc2daMlYwT2lCa1pYTmpjbWx3ZEc5eUxtZGxkQ3dnYzJWME9pQmtaWE5qY21sd2RHOXlMbk5sZENCOUlEb2daR1Z6WTNKcGNIUnZjbHRyWlhsZExDQmpiMjUwWlhoMEtUdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2EybHVaQ0E5UFQwZ1hDSmhZMk5sYzNOdmNsd2lLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoeVpYTjFiSFFnUFQwOUlIWnZhV1FnTUNrZ1kyOXVkR2x1ZFdVN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHlaWE4xYkhRZ1BUMDlJRzUxYkd3Z2ZId2dkSGx3Wlc5bUlISmxjM1ZzZENBaFBUMGdYQ0p2WW1wbFkzUmNJaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrOWlhbVZqZENCbGVIQmxZM1JsWkZ3aUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRjhnUFNCaFkyTmxjSFFvY21WemRXeDBMbWRsZENrcElHUmxjMk55YVhCMGIzSXVaMlYwSUQwZ1h6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRjhnUFNCaFkyTmxjSFFvY21WemRXeDBMbk5sZENrcElHUmxjMk55YVhCMGIzSXVjMlYwSUQwZ1h6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRjhnUFNCaFkyTmxjSFFvY21WemRXeDBMbWx1YVhRcEtTQnBibWwwYVdGc2FYcGxjbk11ZFc1emFHbG1kQ2hmS1R0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFFwS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQmNJbVpwWld4a1hDSXBJR2x1YVhScFlXeHBlbVZ5Y3k1MWJuTm9hV1owS0Y4cE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR1JsYzJOeWFYQjBiM0piYTJWNVhTQTlJRjg3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ2FXWWdLSFJoY21kbGRDa2dUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hSaGNtZGxkQ3dnWTI5dWRHVjRkRWx1TG01aGJXVXNJR1JsYzJOeWFYQjBiM0lwTzF4eVhHNGdJQ0FnWkc5dVpTQTlJSFJ5ZFdVN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl5ZFc1SmJtbDBhV0ZzYVhwbGNuTW9kR2hwYzBGeVp5d2dhVzVwZEdsaGJHbDZaWEp6TENCMllXeDFaU2tnZTF4eVhHNGdJQ0FnZG1GeUlIVnpaVlpoYkhWbElEMGdZWEpuZFcxbGJuUnpMbXhsYm1kMGFDQStJREk3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJwSUQwZ01Ec2dhU0E4SUdsdWFYUnBZV3hwZW1WeWN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2RYTmxWbUZzZFdVZ1B5QnBibWwwYVdGc2FYcGxjbk5iYVYwdVkyRnNiQ2gwYUdselFYSm5MQ0IyWVd4MVpTa2dPaUJwYm1sMGFXRnNhWHBsY25OYmFWMHVZMkZzYkNoMGFHbHpRWEpuS1R0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUhKbGRIVnliaUIxYzJWV1lXeDFaU0EvSUhaaGJIVmxJRG9nZG05cFpDQXdPMXh5WEc1OU8xeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmNISnZjRXRsZVNoNEtTQjdYSEpjYmlBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhnZ1BUMDlJRndpYzNsdFltOXNYQ0lnUHlCNElEb2dYQ0pjSWk1amIyNWpZWFFvZUNrN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl6WlhSR2RXNWpkR2x2Yms1aGJXVW9aaXdnYm1GdFpTd2djSEpsWm1sNEtTQjdYSEpjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JRzVoYldVZ1BUMDlJRndpYzNsdFltOXNYQ0lwSUc1aGJXVWdQU0J1WVcxbExtUmxjMk55YVhCMGFXOXVJRDhnWENKYlhDSXVZMjl1WTJGMEtHNWhiV1V1WkdWelkzSnBjSFJwYjI0c0lGd2lYVndpS1NBNklGd2lYQ0k3WEhKY2JpQWdJQ0J5WlhSMWNtNGdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dZc0lGd2libUZ0WlZ3aUxDQjdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaU3dnZG1Gc2RXVTZJSEJ5WldacGVDQS9JRndpWENJdVkyOXVZMkYwS0hCeVpXWnBlQ3dnWENJZ1hDSXNJRzVoYldVcElEb2dibUZ0WlNCOUtUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDIxbGRHRmtZWFJoS0cxbGRHRmtZWFJoUzJWNUxDQnRaWFJoWkdGMFlWWmhiSFZsS1NCN1hISmNiaUFnSUNCcFppQW9kSGx3Wlc5bUlGSmxabXhsWTNRZ1BUMDlJRndpYjJKcVpXTjBYQ0lnSmlZZ2RIbHdaVzltSUZKbFpteGxZM1F1YldWMFlXUmhkR0VnUFQwOUlGd2lablZ1WTNScGIyNWNJaWtnY21WMGRYSnVJRkpsWm14bFkzUXViV1YwWVdSaGRHRW9iV1YwWVdSaGRHRkxaWGtzSUcxbGRHRmtZWFJoVm1Gc2RXVXBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5aGQyRnBkR1Z5S0hSb2FYTkJjbWNzSUY5aGNtZDFiV1Z1ZEhNc0lGQXNJR2RsYm1WeVlYUnZjaWtnZTF4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnWVdSdmNIUW9kbUZzZFdVcElIc2djbVYwZFhKdUlIWmhiSFZsSUdsdWMzUmhibU5sYjJZZ1VDQS9JSFpoYkhWbElEb2dibVYzSUZBb1puVnVZM1JwYjI0Z0tISmxjMjlzZG1VcElIc2djbVZ6YjJ4MlpTaDJZV3gxWlNrN0lIMHBPeUI5WEhKY2JpQWdJQ0J5WlhSMWNtNGdibVYzSUNoUUlIeDhJQ2hRSUQwZ1VISnZiV2x6WlNrcEtHWjFibU4wYVc5dUlDaHlaWE52YkhabExDQnlaV3BsWTNRcElIdGNjbHh1SUNBZ0lDQWdJQ0JtZFc1amRHbHZiaUJtZFd4bWFXeHNaV1FvZG1Gc2RXVXBJSHNnZEhKNUlIc2djM1JsY0NoblpXNWxjbUYwYjNJdWJtVjRkQ2gyWVd4MVpTa3BPeUI5SUdOaGRHTm9JQ2hsS1NCN0lISmxhbVZqZENobEtUc2dmU0I5WEhKY2JpQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z2NtVnFaV04wWldRb2RtRnNkV1VwSUhzZ2RISjVJSHNnYzNSbGNDaG5aVzVsY21GMGIzSmJYQ0owYUhKdmQxd2lYU2gyWVd4MVpTa3BPeUI5SUdOaGRHTm9JQ2hsS1NCN0lISmxhbVZqZENobEtUc2dmU0I5WEhKY2JpQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z2MzUmxjQ2h5WlhOMWJIUXBJSHNnY21WemRXeDBMbVJ2Ym1VZ1B5QnlaWE52YkhabEtISmxjM1ZzZEM1MllXeDFaU2tnT2lCaFpHOXdkQ2h5WlhOMWJIUXVkbUZzZFdVcExuUm9aVzRvWm5Wc1ptbHNiR1ZrTENCeVpXcGxZM1JsWkNrN0lIMWNjbHh1SUNBZ0lDQWdJQ0J6ZEdWd0tDaG5aVzVsY21GMGIzSWdQU0JuWlc1bGNtRjBiM0l1WVhCd2JIa29kR2hwYzBGeVp5d2dYMkZ5WjNWdFpXNTBjeUI4ZkNCYlhTa3BMbTVsZUhRb0tTazdYSEpjYmlBZ0lDQjlLVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZloyVnVaWEpoZEc5eUtIUm9hWE5CY21jc0lHSnZaSGtwSUh0Y2NseHVJQ0FnSUhaaGNpQmZJRDBnZXlCc1lXSmxiRG9nTUN3Z2MyVnVkRG9nWm5WdVkzUnBiMjRvS1NCN0lHbG1JQ2gwV3pCZElDWWdNU2tnZEdoeWIzY2dkRnN4WFRzZ2NtVjBkWEp1SUhSYk1WMDdJSDBzSUhSeWVYTTZJRnRkTENCdmNITTZJRnRkSUgwc0lHWXNJSGtzSUhRc0lHYzdYSEpjYmlBZ0lDQnlaWFIxY200Z1p5QTlJSHNnYm1WNGREb2dkbVZ5WWlnd0tTd2dYQ0owYUhKdmQxd2lPaUIyWlhKaUtERXBMQ0JjSW5KbGRIVnlibHdpT2lCMlpYSmlLRElwSUgwc0lIUjVjR1Z2WmlCVGVXMWliMndnUFQwOUlGd2lablZ1WTNScGIyNWNJaUFtSmlBb1oxdFRlVzFpYjJ3dWFYUmxjbUYwYjNKZElEMGdablZ1WTNScGIyNG9LU0I3SUhKbGRIVnliaUIwYUdsek95QjlLU3dnWnp0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhabGNtSW9iaWtnZXlCeVpYUjFjbTRnWm5WdVkzUnBiMjRnS0hZcElIc2djbVYwZFhKdUlITjBaWEFvVzI0c0lIWmRLVHNnZlRzZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2MzUmxjQ2h2Y0NrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNobUtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpUjJWdVpYSmhkRzl5SUdseklHRnNjbVZoWkhrZ1pYaGxZM1YwYVc1bkxsd2lLVHRjY2x4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvWnlBbUppQW9aeUE5SURBc0lHOXdXekJkSUNZbUlDaGZJRDBnTUNrcExDQmZLU0IwY25rZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aaUE5SURFc0lIa2dKaVlnS0hRZ1BTQnZjRnN3WFNBbUlESWdQeUI1VzF3aWNtVjBkWEp1WENKZElEb2diM0JiTUYwZ1B5QjVXMXdpZEdoeWIzZGNJbDBnZkh3Z0tDaDBJRDBnZVZ0Y0luSmxkSFZ5Ymx3aVhTa2dKaVlnZEM1allXeHNLSGtwTENBd0tTQTZJSGt1Ym1WNGRDa2dKaVlnSVNoMElEMGdkQzVqWVd4c0tIa3NJRzl3V3pGZEtTa3VaRzl1WlNrZ2NtVjBkWEp1SUhRN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDVJRDBnTUN3Z2RDa2diM0FnUFNCYmIzQmJNRjBnSmlBeUxDQjBMblpoYkhWbFhUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNodmNGc3dYU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0F3T2lCallYTmxJREU2SUhRZ1BTQnZjRHNnWW5KbFlXczdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElEUTZJRjh1YkdGaVpXd3JLenNnY21WMGRYSnVJSHNnZG1Gc2RXVTZJRzl3V3pGZExDQmtiMjVsT2lCbVlXeHpaU0I5TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0ExT2lCZkxteGhZbVZzS3lzN0lIa2dQU0J2Y0ZzeFhUc2diM0FnUFNCYk1GMDdJR052Ym5ScGJuVmxPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQTNPaUJ2Y0NBOUlGOHViM0J6TG5CdmNDZ3BPeUJmTG5SeWVYTXVjRzl3S0NrN0lHTnZiblJwYm5WbE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JU2gwSUQwZ1h5NTBjbmx6TENCMElEMGdkQzVzWlc1bmRHZ2dQaUF3SUNZbUlIUmJkQzVzWlc1bmRHZ2dMU0F4WFNrZ0ppWWdLRzl3V3pCZElEMDlQU0EySUh4OElHOXdXekJkSUQwOVBTQXlLU2tnZXlCZklEMGdNRHNnWTI5dWRHbHVkV1U3SUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2IzQmJNRjBnUFQwOUlETWdKaVlnS0NGMElIeDhJQ2h2Y0ZzeFhTQStJSFJiTUYwZ0ppWWdiM0JiTVYwZ1BDQjBXek5kS1NrcElIc2dYeTVzWVdKbGJDQTlJRzl3V3pGZE95QmljbVZoYXpzZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHZjRnN3WFNBOVBUMGdOaUFtSmlCZkxteGhZbVZzSUR3Z2RGc3hYU2tnZXlCZkxteGhZbVZzSUQwZ2RGc3hYVHNnZENBOUlHOXdPeUJpY21WaGF6c2dmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwSUNZbUlGOHViR0ZpWld3Z1BDQjBXekpkS1NCN0lGOHViR0ZpWld3Z1BTQjBXekpkT3lCZkxtOXdjeTV3ZFhOb0tHOXdLVHNnWW5KbFlXczdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEZzeVhTa2dYeTV2Y0hNdWNHOXdLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYeTUwY25sekxuQnZjQ2dwT3lCamIyNTBhVzUxWlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J2Y0NBOUlHSnZaSGt1WTJGc2JDaDBhR2x6UVhKbkxDQmZLVHRjY2x4dUlDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdJRzl3SUQwZ1d6WXNJR1ZkT3lCNUlEMGdNRHNnZlNCbWFXNWhiR3g1SUhzZ1ppQTlJSFFnUFNBd095QjlYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHOXdXekJkSUNZZ05Ta2dkR2h5YjNjZ2IzQmJNVjA3SUhKbGRIVnliaUI3SUhaaGJIVmxPaUJ2Y0Zzd1hTQS9JRzl3V3pGZElEb2dkbTlwWkNBd0xDQmtiMjVsT2lCMGNuVmxJSDA3WEhKY2JpQWdJQ0I5WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCMllYSWdYMTlqY21WaGRHVkNhVzVrYVc1bklEMGdUMkpxWldOMExtTnlaV0YwWlNBL0lDaG1kVzVqZEdsdmJpaHZMQ0J0TENCckxDQnJNaWtnZTF4eVhHNGdJQ0FnYVdZZ0tHc3lJRDA5UFNCMWJtUmxabWx1WldRcElHc3lJRDBnYXp0Y2NseHVJQ0FnSUhaaGNpQmtaWE5qSUQwZ1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVSR1Z6WTNKcGNIUnZjaWh0TENCcktUdGNjbHh1SUNBZ0lHbG1JQ2doWkdWell5QjhmQ0FvWENKblpYUmNJaUJwYmlCa1pYTmpJRDhnSVcwdVgxOWxjMDF2WkhWc1pTQTZJR1JsYzJNdWQzSnBkR0ZpYkdVZ2ZId2daR1Z6WXk1amIyNW1hV2QxY21GaWJHVXBLU0I3WEhKY2JpQWdJQ0FnSUNBZ1pHVnpZeUE5SUhzZ1pXNTFiV1Z5WVdKc1pUb2dkSEoxWlN3Z1oyVjBPaUJtZFc1amRHbHZiaWdwSUhzZ2NtVjBkWEp1SUcxYmExMDdJSDBnZlR0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaHZMQ0JyTWl3Z1pHVnpZeWs3WEhKY2JuMHBJRG9nS0daMWJtTjBhVzl1S0c4c0lHMHNJR3NzSUdzeUtTQjdYSEpjYmlBZ0lDQnBaaUFvYXpJZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnYXpJZ1BTQnJPMXh5WEc0Z0lDQWdiMXRyTWwwZ1BTQnRXMnRkTzF4eVhHNTlLVHRjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMlY0Y0c5eWRGTjBZWElvYlN3Z2J5a2dlMXh5WEc0Z0lDQWdabTl5SUNoMllYSWdjQ0JwYmlCdEtTQnBaaUFvY0NBaFBUMGdYQ0prWldaaGRXeDBYQ0lnSmlZZ0lVOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWFHRnpUM2R1VUhKdmNHVnlkSGt1WTJGc2JDaHZMQ0J3S1NrZ1gxOWpjbVZoZEdWQ2FXNWthVzVuS0c4c0lHMHNJSEFwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOTJZV3gxWlhNb2J5a2dlMXh5WEc0Z0lDQWdkbUZ5SUhNZ1BTQjBlWEJsYjJZZ1UzbHRZbTlzSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnSmlZZ1UzbHRZbTlzTG1sMFpYSmhkRzl5TENCdElEMGdjeUFtSmlCdlczTmRMQ0JwSUQwZ01EdGNjbHh1SUNBZ0lHbG1JQ2h0S1NCeVpYUjFjbTRnYlM1allXeHNLRzhwTzF4eVhHNGdJQ0FnYVdZZ0tHOGdKaVlnZEhsd1pXOW1JRzh1YkdWdVozUm9JRDA5UFNCY0ltNTFiV0psY2x3aUtTQnlaWFIxY200Z2UxeHlYRzRnSUNBZ0lDQWdJRzVsZUhRNklHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c4Z0ppWWdhU0ErUFNCdkxteGxibWQwYUNrZ2J5QTlJSFp2YVdRZ01EdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RtRnNkV1U2SUc4Z0ppWWdiMXRwS3l0ZExDQmtiMjVsT2lBaGJ5QjlPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtITWdQeUJjSWs5aWFtVmpkQ0JwY3lCdWIzUWdhWFJsY21GaWJHVXVYQ0lnT2lCY0lsTjViV0p2YkM1cGRHVnlZWFJ2Y2lCcGN5QnViM1FnWkdWbWFXNWxaQzVjSWlrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM0psWVdRb2J5d2diaWtnZTF4eVhHNGdJQ0FnZG1GeUlHMGdQU0IwZVhCbGIyWWdVM2x0WW05c0lEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ0ppWWdiMXRUZVcxaWIyd3VhWFJsY21GMGIzSmRPMXh5WEc0Z0lDQWdhV1lnS0NGdEtTQnlaWFIxY200Z2J6dGNjbHh1SUNBZ0lIWmhjaUJwSUQwZ2JTNWpZV3hzS0c4cExDQnlMQ0JoY2lBOUlGdGRMQ0JsTzF4eVhHNGdJQ0FnZEhKNUlIdGNjbHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9LRzRnUFQwOUlIWnZhV1FnTUNCOGZDQnVMUzBnUGlBd0tTQW1KaUFoS0hJZ1BTQnBMbTVsZUhRb0tTa3VaRzl1WlNrZ1lYSXVjSFZ6YUNoeUxuWmhiSFZsS1R0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUdOaGRHTm9JQ2hsY25KdmNpa2dleUJsSUQwZ2V5Qmxjbkp2Y2pvZ1pYSnliM0lnZlRzZ2ZWeHlYRzRnSUNBZ1ptbHVZV3hzZVNCN1hISmNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISWdKaVlnSVhJdVpHOXVaU0FtSmlBb2JTQTlJR2xiWENKeVpYUjFjbTVjSWwwcEtTQnRMbU5oYkd3b2FTazdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHWnBibUZzYkhrZ2V5QnBaaUFvWlNrZ2RHaHliM2NnWlM1bGNuSnZjanNnZlZ4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnY21WMGRYSnVJR0Z5TzF4eVhHNTlYSEpjYmx4eVhHNHZLaW9nUUdSbGNISmxZMkYwWldRZ0tpOWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmYzNCeVpXRmtLQ2tnZTF4eVhHNGdJQ0FnWm05eUlDaDJZWElnWVhJZ1BTQmJYU3dnYVNBOUlEQTdJR2tnUENCaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvT3lCcEt5c3BYSEpjYmlBZ0lDQWdJQ0FnWVhJZ1BTQmhjaTVqYjI1allYUW9YMTl5WldGa0tHRnlaM1Z0Wlc1MGMxdHBYU2twTzF4eVhHNGdJQ0FnY21WMGRYSnVJR0Z5TzF4eVhHNTlYSEpjYmx4eVhHNHZLaW9nUUdSbGNISmxZMkYwWldRZ0tpOWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmYzNCeVpXRmtRWEp5WVhsektDa2dlMXh5WEc0Z0lDQWdabTl5SUNoMllYSWdjeUE5SURBc0lHa2dQU0F3TENCcGJDQTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZzdJR2tnUENCcGJEc2dhU3NyS1NCeklDczlJR0Z5WjNWdFpXNTBjMXRwWFM1c1pXNW5kR2c3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJ5SUQwZ1FYSnlZWGtvY3lrc0lHc2dQU0F3TENCcElEMGdNRHNnYVNBOElHbHNPeUJwS3lzcFhISmNiaUFnSUNBZ0lDQWdabTl5SUNoMllYSWdZU0E5SUdGeVozVnRaVzUwYzF0cFhTd2dhaUE5SURBc0lHcHNJRDBnWVM1c1pXNW5kR2c3SUdvZ1BDQnFiRHNnYWlzckxDQnJLeXNwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpiYTEwZ1BTQmhXMnBkTzF4eVhHNGdJQ0FnY21WMGRYSnVJSEk3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgzTndjbVZoWkVGeWNtRjVLSFJ2TENCbWNtOXRMQ0J3WVdOcktTQjdYSEpjYmlBZ0lDQnBaaUFvY0dGamF5QjhmQ0JoY21kMWJXVnVkSE11YkdWdVozUm9JRDA5UFNBeUtTQm1iM0lnS0haaGNpQnBJRDBnTUN3Z2JDQTlJR1p5YjIwdWJHVnVaM1JvTENCaGNqc2dhU0E4SUd3N0lHa3JLeWtnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoY2lCOGZDQWhLR2tnYVc0Z1puSnZiU2twSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRmhjaWtnWVhJZ1BTQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWMyeHBZMlV1WTJGc2JDaG1jbTl0TENBd0xDQnBLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdZWEpiYVYwZ1BTQm1jbTl0VzJsZE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJSDFjY2x4dUlDQWdJSEpsZEhWeWJpQjBieTVqYjI1allYUW9ZWElnZkh3Z1FYSnlZWGt1Y0hKdmRHOTBlWEJsTG5Oc2FXTmxMbU5oYkd3b1puSnZiU2twTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWhkMkZwZENoMktTQjdYSEpjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeUJwYm5OMFlXNWpaVzltSUY5ZllYZGhhWFFnUHlBb2RHaHBjeTUySUQwZ2Rpd2dkR2hwY3lrZ09pQnVaWGNnWDE5aGQyRnBkQ2gyS1R0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZZWE41Ym1OSFpXNWxjbUYwYjNJb2RHaHBjMEZ5Wnl3Z1gyRnlaM1Z0Wlc1MGN5d2daMlZ1WlhKaGRHOXlLU0I3WEhKY2JpQWdJQ0JwWmlBb0lWTjViV0p2YkM1aGMzbHVZMGwwWlhKaGRHOXlLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVUzbHRZbTlzTG1GemVXNWpTWFJsY21GMGIzSWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc0Z0lDQWdkbUZ5SUdjZ1BTQm5aVzVsY21GMGIzSXVZWEJ3Ykhrb2RHaHBjMEZ5Wnl3Z1gyRnlaM1Z0Wlc1MGN5QjhmQ0JiWFNrc0lHa3NJSEVnUFNCYlhUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCcElEMGdlMzBzSUhabGNtSW9YQ0p1WlhoMFhDSXBMQ0IyWlhKaUtGd2lkR2h5YjNkY0lpa3NJSFpsY21Jb1hDSnlaWFIxY201Y0lpa3NJR2xiVTNsdFltOXNMbUZ6ZVc1alNYUmxjbUYwYjNKZElEMGdablZ1WTNScGIyNGdLQ2tnZXlCeVpYUjFjbTRnZEdocGN6c2dmU3dnYVR0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhabGNtSW9iaWtnZXlCcFppQW9aMXR1WFNrZ2FWdHVYU0E5SUdaMWJtTjBhVzl1SUNoMktTQjdJSEpsZEhWeWJpQnVaWGNnVUhKdmJXbHpaU2htZFc1amRHbHZiaUFvWVN3Z1lpa2dleUJ4TG5CMWMyZ29XMjRzSUhZc0lHRXNJR0pkS1NBK0lERWdmSHdnY21WemRXMWxLRzRzSUhZcE95QjlLVHNnZlRzZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2NtVnpkVzFsS0c0c0lIWXBJSHNnZEhKNUlIc2djM1JsY0NoblcyNWRLSFlwS1RzZ2ZTQmpZWFJqYUNBb1pTa2dleUJ6WlhSMGJHVW9jVnN3WFZzelhTd2daU2s3SUgwZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2MzUmxjQ2h5S1NCN0lISXVkbUZzZFdVZ2FXNXpkR0Z1WTJWdlppQmZYMkYzWVdsMElEOGdVSEp2YldselpTNXlaWE52YkhabEtISXVkbUZzZFdVdWRpa3VkR2hsYmlobWRXeG1hV3hzTENCeVpXcGxZM1FwSURvZ2MyVjBkR3hsS0hGYk1GMWJNbDBzSUhJcE95QjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQm1kV3htYVd4c0tIWmhiSFZsS1NCN0lISmxjM1Z0WlNoY0ltNWxlSFJjSWl3Z2RtRnNkV1VwT3lCOVhISmNiaUFnSUNCbWRXNWpkR2x2YmlCeVpXcGxZM1FvZG1Gc2RXVXBJSHNnY21WemRXMWxLRndpZEdoeWIzZGNJaXdnZG1Gc2RXVXBPeUI5WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJ6WlhSMGJHVW9aaXdnZGlrZ2V5QnBaaUFvWmloMktTd2djUzV6YUdsbWRDZ3BMQ0J4TG14bGJtZDBhQ2tnY21WemRXMWxLSEZiTUYxYk1GMHNJSEZiTUYxYk1WMHBPeUI5WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyRnplVzVqUkdWc1pXZGhkRzl5S0c4cElIdGNjbHh1SUNBZ0lIWmhjaUJwTENCd08xeHlYRzRnSUNBZ2NtVjBkWEp1SUdrZ1BTQjdmU3dnZG1WeVlpaGNJbTVsZUhSY0lpa3NJSFpsY21Jb1hDSjBhSEp2ZDF3aUxDQm1kVzVqZEdsdmJpQW9aU2tnZXlCMGFISnZkeUJsT3lCOUtTd2dkbVZ5WWloY0luSmxkSFZ5Ymx3aUtTd2dhVnRUZVcxaWIyd3VhWFJsY21GMGIzSmRJRDBnWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RHaHBjenNnZlN3Z2FUdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlIWmxjbUlvYml3Z1ppa2dleUJwVzI1ZElEMGdiMXR1WFNBL0lHWjFibU4wYVc5dUlDaDJLU0I3SUhKbGRIVnliaUFvY0NBOUlDRndLU0EvSUhzZ2RtRnNkV1U2SUY5ZllYZGhhWFFvYjF0dVhTaDJLU2tzSUdSdmJtVTZJR1poYkhObElIMGdPaUJtSUQ4Z1ppaDJLU0E2SUhZN0lIMGdPaUJtT3lCOVhISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMkZ6ZVc1alZtRnNkV1Z6S0c4cElIdGNjbHh1SUNBZ0lHbG1JQ2doVTNsdFltOXNMbUZ6ZVc1alNYUmxjbUYwYjNJcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pUZVcxaWIyd3VZWE41Ym1OSmRHVnlZWFJ2Y2lCcGN5QnViM1FnWkdWbWFXNWxaQzVjSWlrN1hISmNiaUFnSUNCMllYSWdiU0E5SUc5YlUzbHRZbTlzTG1GemVXNWpTWFJsY21GMGIzSmRMQ0JwTzF4eVhHNGdJQ0FnY21WMGRYSnVJRzBnUHlCdExtTmhiR3dvYnlrZ09pQW9ieUE5SUhSNWNHVnZaaUJmWDNaaGJIVmxjeUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJRDhnWDE5MllXeDFaWE1vYnlrZ09pQnZXMU41YldKdmJDNXBkR1Z5WVhSdmNsMG9LU3dnYVNBOUlIdDlMQ0IyWlhKaUtGd2libVY0ZEZ3aUtTd2dkbVZ5WWloY0luUm9jbTkzWENJcExDQjJaWEppS0Z3aWNtVjBkWEp1WENJcExDQnBXMU41YldKdmJDNWhjM2x1WTBsMFpYSmhkRzl5WFNBOUlHWjFibU4wYVc5dUlDZ3BJSHNnY21WMGRYSnVJSFJvYVhNN0lIMHNJR2twTzF4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnZG1WeVlpaHVLU0I3SUdsYmJsMGdQU0J2VzI1ZElDWW1JR1oxYm1OMGFXOXVJQ2gyS1NCN0lISmxkSFZ5YmlCdVpYY2dVSEp2YldselpTaG1kVzVqZEdsdmJpQW9jbVZ6YjJ4MlpTd2djbVZxWldOMEtTQjdJSFlnUFNCdlcyNWRLSFlwTENCelpYUjBiR1VvY21WemIyeDJaU3dnY21WcVpXTjBMQ0IyTG1SdmJtVXNJSFl1ZG1Gc2RXVXBPeUI5S1RzZ2ZUc2dmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdjMlYwZEd4bEtISmxjMjlzZG1Vc0lISmxhbVZqZEN3Z1pDd2dkaWtnZXlCUWNtOXRhWE5sTG5KbGMyOXNkbVVvZGlrdWRHaGxiaWhtZFc1amRHbHZiaWgyS1NCN0lISmxjMjlzZG1Vb2V5QjJZV3gxWlRvZ2Rpd2daRzl1WlRvZ1pDQjlLVHNnZlN3Z2NtVnFaV04wS1RzZ2ZWeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl0WVd0bFZHVnRjR3hoZEdWUFltcGxZM1FvWTI5dmEyVmtMQ0J5WVhjcElIdGNjbHh1SUNBZ0lHbG1JQ2hQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrcElIc2dUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dOdmIydGxaQ3dnWENKeVlYZGNJaXdnZXlCMllXeDFaVG9nY21GM0lIMHBPeUI5SUdWc2MyVWdleUJqYjI5clpXUXVjbUYzSUQwZ2NtRjNPeUI5WEhKY2JpQWdJQ0J5WlhSMWNtNGdZMjl2YTJWa08xeHlYRzU5TzF4eVhHNWNjbHh1ZG1GeUlGOWZjMlYwVFc5a2RXeGxSR1ZtWVhWc2RDQTlJRTlpYW1WamRDNWpjbVZoZEdVZ1B5QW9ablZ1WTNScGIyNG9ieXdnZGlrZ2UxeHlYRzRnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRzhzSUZ3aVpHVm1ZWFZzZEZ3aUxDQjdJR1Z1ZFcxbGNtRmliR1U2SUhSeWRXVXNJSFpoYkhWbE9pQjJJSDBwTzF4eVhHNTlLU0E2SUdaMWJtTjBhVzl1S0c4c0lIWXBJSHRjY2x4dUlDQWdJRzliWENKa1pXWmhkV3gwWENKZElEMGdkanRjY2x4dWZUdGNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgybHRjRzl5ZEZOMFlYSW9iVzlrS1NCN1hISmNiaUFnSUNCcFppQW9iVzlrSUNZbUlHMXZaQzVmWDJWelRXOWtkV3hsS1NCeVpYUjFjbTRnYlc5a08xeHlYRzRnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJSHQ5TzF4eVhHNGdJQ0FnYVdZZ0tHMXZaQ0FoUFNCdWRXeHNLU0JtYjNJZ0tIWmhjaUJySUdsdUlHMXZaQ2tnYVdZZ0tHc2dJVDA5SUZ3aVpHVm1ZWFZzZEZ3aUlDWW1JRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2h0YjJRc0lHc3BLU0JmWDJOeVpXRjBaVUpwYm1ScGJtY29jbVZ6ZFd4MExDQnRiMlFzSUdzcE8xeHlYRzRnSUNBZ1gxOXpaWFJOYjJSMWJHVkVaV1poZFd4MEtISmxjM1ZzZEN3Z2JXOWtLVHRjY2x4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMmx0Y0c5eWRFUmxabUYxYkhRb2JXOWtLU0I3WEhKY2JpQWdJQ0J5WlhSMWNtNGdLRzF2WkNBbUppQnRiMlF1WDE5bGMwMXZaSFZzWlNrZ1B5QnRiMlFnT2lCN0lHUmxabUYxYkhRNklHMXZaQ0I5TzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFZGxkQ2h5WldObGFYWmxjaXdnYzNSaGRHVXNJR3RwYm1Rc0lHWXBJSHRjY2x4dUlDQWdJR2xtSUNocmFXNWtJRDA5UFNCY0ltRmNJaUFtSmlBaFppa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxCeWFYWmhkR1VnWVdOalpYTnpiM0lnZDJGeklHUmxabWx1WldRZ2QybDBhRzkxZENCaElHZGxkSFJsY2x3aUtUdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdjM1JoZEdVZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lISmxZMlZwZG1WeUlDRTlQU0J6ZEdGMFpTQjhmQ0FoWmlBNklDRnpkR0YwWlM1b1lYTW9jbVZqWldsMlpYSXBLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVEyRnVibTkwSUhKbFlXUWdjSEpwZG1GMFpTQnRaVzFpWlhJZ1puSnZiU0JoYmlCdlltcGxZM1FnZDJodmMyVWdZMnhoYzNNZ1pHbGtJRzV2ZENCa1pXTnNZWEpsSUdsMFhDSXBPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHdHBibVFnUFQwOUlGd2liVndpSUQ4Z1ppQTZJR3RwYm1RZ1BUMDlJRndpWVZ3aUlEOGdaaTVqWVd4c0tISmxZMlZwZG1WeUtTQTZJR1lnUHlCbUxuWmhiSFZsSURvZ2MzUmhkR1V1WjJWMEtISmxZMlZwZG1WeUtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWTJ4aGMzTlFjbWwyWVhSbFJtbGxiR1JUWlhRb2NtVmpaV2wyWlhJc0lITjBZWFJsTENCMllXeDFaU3dnYTJsdVpDd2daaWtnZTF4eVhHNGdJQ0FnYVdZZ0tHdHBibVFnUFQwOUlGd2liVndpS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVSEpwZG1GMFpTQnRaWFJvYjJRZ2FYTWdibTkwSUhkeWFYUmhZbXhsWENJcE8xeHlYRzRnSUNBZ2FXWWdLR3RwYm1RZ1BUMDlJRndpWVZ3aUlDWW1JQ0ZtS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVSEpwZG1GMFpTQmhZMk5sYzNOdmNpQjNZWE1nWkdWbWFXNWxaQ0IzYVhSb2IzVjBJR0VnYzJWMGRHVnlYQ0lwTzF4eVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCemRHRjBaU0E5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJRDhnY21WalpXbDJaWElnSVQwOUlITjBZWFJsSUh4OElDRm1JRG9nSVhOMFlYUmxMbWhoY3loeVpXTmxhWFpsY2lrcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pEWVc1dWIzUWdkM0pwZEdVZ2NISnBkbUYwWlNCdFpXMWlaWElnZEc4Z1lXNGdiMkpxWldOMElIZG9iM05sSUdOc1lYTnpJR1JwWkNCdWIzUWdaR1ZqYkdGeVpTQnBkRndpS1R0Y2NseHVJQ0FnSUhKbGRIVnliaUFvYTJsdVpDQTlQVDBnWENKaFhDSWdQeUJtTG1OaGJHd29jbVZqWldsMlpYSXNJSFpoYkhWbEtTQTZJR1lnUHlCbUxuWmhiSFZsSUQwZ2RtRnNkV1VnT2lCemRHRjBaUzV6WlhRb2NtVmpaV2wyWlhJc0lIWmhiSFZsS1Nrc0lIWmhiSFZsTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFbHVLSE4wWVhSbExDQnlaV05sYVhabGNpa2dlMXh5WEc0Z0lDQWdhV1lnS0hKbFkyVnBkbVZ5SUQwOVBTQnVkV3hzSUh4OElDaDBlWEJsYjJZZ2NtVmpaV2wyWlhJZ0lUMDlJRndpYjJKcVpXTjBYQ0lnSmlZZ2RIbHdaVzltSUhKbFkyVnBkbVZ5SUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lwS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lRMkZ1Ym05MElIVnpaU0FuYVc0bklHOXdaWEpoZEc5eUlHOXVJRzV2YmkxdlltcGxZM1JjSWlrN1hISmNiaUFnSUNCeVpYUjFjbTRnZEhsd1pXOW1JSE4wWVhSbElEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ1B5QnlaV05sYVhabGNpQTlQVDBnYzNSaGRHVWdPaUJ6ZEdGMFpTNW9ZWE1vY21WalpXbDJaWElwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWhaR1JFYVhOd2IzTmhZbXhsVW1WemIzVnlZMlVvWlc1MkxDQjJZV3gxWlN3Z1lYTjVibU1wSUh0Y2NseHVJQ0FnSUdsbUlDaDJZV3gxWlNBaFBUMGdiblZzYkNBbUppQjJZV3gxWlNBaFBUMGdkbTlwWkNBd0tTQjdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCMllXeDFaU0FoUFQwZ1hDSnZZbXBsWTNSY0lpQW1KaUIwZVhCbGIyWWdkbUZzZFdVZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJazlpYW1WamRDQmxlSEJsWTNSbFpDNWNJaWs3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR1JwYzNCdmMyVTdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHRnplVzVqS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hVM2x0WW05c0xtRnplVzVqUkdsemNHOXpaU2tnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lsTjViV0p2YkM1aGMzbHVZMFJwYzNCdmMyVWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmthWE53YjNObElEMGdkbUZzZFdWYlUzbHRZbTlzTG1GemVXNWpSR2x6Y0c5elpWMDdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hrYVhOd2IzTmxJRDA5UFNCMmIybGtJREFwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRlRlVzFpYjJ3dVpHbHpjRzl6WlNrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJbE41YldKdmJDNWthWE53YjNObElHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1pHbHpjRzl6WlNBOUlIWmhiSFZsVzFONWJXSnZiQzVrYVhOd2IzTmxYVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJrYVhOd2IzTmxJQ0U5UFNCY0ltWjFibU4wYVc5dVhDSXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKUFltcGxZM1FnYm05MElHUnBjM0J2YzJGaWJHVXVYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lHVnVkaTV6ZEdGamF5NXdkWE5vS0hzZ2RtRnNkV1U2SUhaaGJIVmxMQ0JrYVhOd2IzTmxPaUJrYVhOd2IzTmxMQ0JoYzNsdVl6b2dZWE41Ym1NZ2ZTazdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQmxiSE5sSUdsbUlDaGhjM2x1WXlrZ2UxeHlYRzRnSUNBZ0lDQWdJR1Z1ZGk1emRHRmpheTV3ZFhOb0tIc2dZWE41Ym1NNklIUnlkV1VnZlNrN1hISmNiaUFnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVTdYSEpjYm4xY2NseHVYSEpjYm5aaGNpQmZVM1Z3Y0hKbGMzTmxaRVZ5Y205eUlEMGdkSGx3Wlc5bUlGTjFjSEJ5WlhOelpXUkZjbkp2Y2lBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUQ4Z1UzVndjSEpsYzNObFpFVnljbTl5SURvZ1puVnVZM1JwYjI0Z0tHVnljbTl5TENCemRYQndjbVZ6YzJWa0xDQnRaWE56WVdkbEtTQjdYSEpjYmlBZ0lDQjJZWElnWlNBOUlHNWxkeUJGY25KdmNpaHRaWE56WVdkbEtUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCbExtNWhiV1VnUFNCY0lsTjFjSEJ5WlhOelpXUkZjbkp2Y2x3aUxDQmxMbVZ5Y205eUlEMGdaWEp5YjNJc0lHVXVjM1Z3Y0hKbGMzTmxaQ0E5SUhOMWNIQnlaWE56WldRc0lHVTdYSEpjYm4wN1hISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5a2FYTndiM05sVW1WemIzVnlZMlZ6S0dWdWRpa2dlMXh5WEc0Z0lDQWdablZ1WTNScGIyNGdabUZwYkNobEtTQjdYSEpjYmlBZ0lDQWdJQ0FnWlc1MkxtVnljbTl5SUQwZ1pXNTJMbWhoYzBWeWNtOXlJRDhnYm1WM0lGOVRkWEJ3Y21WemMyVmtSWEp5YjNJb1pTd2daVzUyTG1WeWNtOXlMQ0JjSWtGdUlHVnljbTl5SUhkaGN5QnpkWEJ3Y21WemMyVmtJR1IxY21sdVp5QmthWE53YjNOaGJDNWNJaWtnT2lCbE8xeHlYRzRnSUNBZ0lDQWdJR1Z1ZGk1b1lYTkZjbkp2Y2lBOUlIUnlkV1U3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJ1WlhoMEtDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2hsYm5ZdWMzUmhZMnN1YkdWdVozUm9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCeVpXTWdQU0JsYm5ZdWMzUmhZMnN1Y0c5d0tDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnllU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdjbVZqTG1ScGMzQnZjMlVnSmlZZ2NtVmpMbVJwYzNCdmMyVXVZMkZzYkNoeVpXTXVkbUZzZFdVcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hKbFl5NWhjM2x1WXlrZ2NtVjBkWEp1SUZCeWIyMXBjMlV1Y21WemIyeDJaU2h5WlhOMWJIUXBMblJvWlc0b2JtVjRkQ3dnWm5WdVkzUnBiMjRvWlNrZ2V5Qm1ZV2xzS0dVcE95QnlaWFIxY200Z2JtVjRkQ2dwT3lCOUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCallYUmphQ0FvWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabUZwYkNobEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCcFppQW9aVzUyTG1oaGMwVnljbTl5S1NCMGFISnZkeUJsYm5ZdVpYSnliM0k3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0J5WlhSMWNtNGdibVY0ZENncE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQjdYSEpjYmlBZ0lDQmZYMlY0ZEdWdVpITTZJRjlmWlhoMFpXNWtjeXhjY2x4dUlDQWdJRjlmWVhOemFXZHVPaUJmWDJGemMybG5iaXhjY2x4dUlDQWdJRjlmY21WemREb2dYMTl5WlhOMExGeHlYRzRnSUNBZ1gxOWtaV052Y21GMFpUb2dYMTlrWldOdmNtRjBaU3hjY2x4dUlDQWdJRjlmY0dGeVlXMDZJRjlmY0dGeVlXMHNYSEpjYmlBZ0lDQmZYMjFsZEdGa1lYUmhPaUJmWDIxbGRHRmtZWFJoTEZ4eVhHNGdJQ0FnWDE5aGQyRnBkR1Z5T2lCZlgyRjNZV2wwWlhJc1hISmNiaUFnSUNCZlgyZGxibVZ5WVhSdmNqb2dYMTluWlc1bGNtRjBiM0lzWEhKY2JpQWdJQ0JmWDJOeVpXRjBaVUpwYm1ScGJtYzZJRjlmWTNKbFlYUmxRbWx1WkdsdVp5eGNjbHh1SUNBZ0lGOWZaWGh3YjNKMFUzUmhjam9nWDE5bGVIQnZjblJUZEdGeUxGeHlYRzRnSUNBZ1gxOTJZV3gxWlhNNklGOWZkbUZzZFdWekxGeHlYRzRnSUNBZ1gxOXlaV0ZrT2lCZlgzSmxZV1FzWEhKY2JpQWdJQ0JmWDNOd2NtVmhaRG9nWDE5emNISmxZV1FzWEhKY2JpQWdJQ0JmWDNOd2NtVmhaRUZ5Y21GNWN6b2dYMTl6Y0hKbFlXUkJjbkpoZVhNc1hISmNiaUFnSUNCZlgzTndjbVZoWkVGeWNtRjVPaUJmWDNOd2NtVmhaRUZ5Y21GNUxGeHlYRzRnSUNBZ1gxOWhkMkZwZERvZ1gxOWhkMkZwZEN4Y2NseHVJQ0FnSUY5ZllYTjVibU5IWlc1bGNtRjBiM0k2SUY5ZllYTjVibU5IWlc1bGNtRjBiM0lzWEhKY2JpQWdJQ0JmWDJGemVXNWpSR1ZzWldkaGRHOXlPaUJmWDJGemVXNWpSR1ZzWldkaGRHOXlMRnh5WEc0Z0lDQWdYMTloYzNsdVkxWmhiSFZsY3pvZ1gxOWhjM2x1WTFaaGJIVmxjeXhjY2x4dUlDQWdJRjlmYldGclpWUmxiWEJzWVhSbFQySnFaV04wT2lCZlgyMWhhMlZVWlcxd2JHRjBaVTlpYW1WamRDeGNjbHh1SUNBZ0lGOWZhVzF3YjNKMFUzUmhjam9nWDE5cGJYQnZjblJUZEdGeUxGeHlYRzRnSUNBZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwT2lCZlgybHRjRzl5ZEVSbFptRjFiSFFzWEhKY2JpQWdJQ0JmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrUjJWME9pQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtSMlYwTEZ4eVhHNGdJQ0FnWDE5amJHRnpjMUJ5YVhaaGRHVkdhV1ZzWkZObGREb2dYMTlqYkdGemMxQnlhWFpoZEdWR2FXVnNaRk5sZEN4Y2NseHVJQ0FnSUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSSmJqb2dYMTlqYkdGemMxQnlhWFpoZEdWR2FXVnNaRWx1TEZ4eVhHNGdJQ0FnWDE5aFpHUkVhWE53YjNOaFlteGxVbVZ6YjNWeVkyVTZJRjlmWVdSa1JHbHpjRzl6WVdKc1pWSmxjMjkxY21ObExGeHlYRzRnSUNBZ1gxOWthWE53YjNObFVtVnpiM1Z5WTJWek9pQmZYMlJwYzNCdmMyVlNaWE52ZFhKalpYTXNYSEpjYm4wN1hISmNiaUlzSW1sdGNHOXlkQ0I3SUVkTVZFWk1iMkZrWlhKUWJIVm5hVzRzSUVkTVZFWlFZWEp6WlhJZ2ZTQm1jbTl0SUNkMGFISmxaUzlsZUdGdGNHeGxjeTlxYzIwdmJHOWhaR1Z5Y3k5SFRGUkdURzloWkdWeUxtcHpKenRjYm1sdGNHOXlkQ0FxSUdGeklFaEVVa1Z0YVhOemFYWmxUWFZzZEdsd2JHbGxjbE5qYUdWdFlTQm1jbTl0SUNkQWNHbDRhWFl2ZEhsd1pYTXRkbkp0WXkxdFlYUmxjbWxoYkhNdGFHUnlMV1Z0YVhOemFYWmxMVzExYkhScGNHeHBaWEl0TVM0d0p6dGNibWx0Y0c5eWRDQjdJRWRNVkVZZ1lYTWdSMHhVUmxOamFHVnRZU0I5SUdaeWIyMGdKMEJuYkhSbUxYUnlZVzV6Wm05eWJTOWpiM0psSnp0Y2JseHVaWGh3YjNKMElHTnNZWE56SUZaU1RVMWhkR1Z5YVdGc2MwaEVVa1Z0YVhOemFYWmxUWFZzZEdsd2JHbGxja3h2WVdSbGNsQnNkV2RwYmlCcGJYQnNaVzFsYm5SeklFZE1WRVpNYjJGa1pYSlFiSFZuYVc0Z2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklFVllWRVZPVTBsUFRsOU9RVTFGSUQwZ0oxWlNUVU5mYldGMFpYSnBZV3h6WDJoa2NsOWxiV2x6YzJsMlpVMTFiSFJwY0d4cFpYSW5JR0Z6SUdOdmJuTjBPMXh1WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCd1lYSnpaWEk2SUVkTVZFWlFZWEp6WlhJN1hHNWNiaUFnY0hWaWJHbGpJR2RsZENCdVlXMWxLQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlGWlNUVTFoZEdWeWFXRnNjMGhFVWtWdGFYTnphWFpsVFhWc2RHbHdiR2xsY2t4dllXUmxjbEJzZFdkcGJpNUZXRlJGVGxOSlQwNWZUa0ZOUlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaHdZWEp6WlhJNklFZE1WRVpRWVhKelpYSXBJSHRjYmlBZ0lDQjBhR2x6TG5CaGNuTmxjaUE5SUhCaGNuTmxjanRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJoYzNsdVl5QmxlSFJsYm1STllYUmxjbWxoYkZCaGNtRnRjeWh0WVhSbGNtbGhiRWx1WkdWNE9pQnVkVzFpWlhJc0lHMWhkR1Z5YVdGc1VHRnlZVzF6T2lCN0lGdHJaWGs2SUhOMGNtbHVaMTA2SUdGdWVTQjlLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnWlhoMFpXNXphVzl1SUQwZ2RHaHBjeTVmWjJWMFNFUlNSVzFwYzNOcGRtVk5kV3gwYVhCc2FXVnlSWGgwWlc1emFXOXVLRzFoZEdWeWFXRnNTVzVrWlhncE8xeHVJQ0FnSUdsbUlDaGxlSFJsYm5OcGIyNGdQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklGUm9hWE1nWlhoMFpXNXphVzl1SUdseklHRnlZMmhwZG1Wa0xpQkZiV2wwSUhkaGNtNXBibWRjYmlBZ0lDQXZMeUJUWldVNklHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTJjbTB0WXk5MmNtMHRjM0JsWTJsbWFXTmhkR2x2Ymk5d2RXeHNMek0zTlZ4dUlDQWdJR052Ym5OdmJHVXVkMkZ5YmloY2JpQWdJQ0FnSUNkV1VrMU5ZWFJsY21saGJITklSRkpGYldsemMybDJaVTExYkhScGNHeHBaWEpNYjJGa1pYSlFiSFZuYVc0NklHQldVazFEWDIxaGRHVnlhV0ZzYzE5b1pISmZaVzFwYzNOcGRtVk5kV3gwYVhCc2FXVnlZQ0JwY3lCaGNtTm9hWFpsWkM0Z1ZYTmxJR0JMU0ZKZmJXRjBaWEpwWVd4elgyVnRhWE56YVhabFgzTjBjbVZ1WjNSb1lDQnBibk4wWldGa0xpY3NYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHTnZibk4wSUdWdGFYTnphWFpsVFhWc2RHbHdiR2xsY2lBOUlHVjRkR1Z1YzJsdmJpNWxiV2x6YzJsMlpVMTFiSFJwY0d4cFpYSTdYRzRnSUNBZ2JXRjBaWEpwWVd4UVlYSmhiWE11WlcxcGMzTnBkbVZKYm5SbGJuTnBkSGtnUFNCbGJXbHpjMmwyWlUxMWJIUnBjR3hwWlhJN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOW5aWFJJUkZKRmJXbHpjMmwyWlUxMWJIUnBjR3hwWlhKRmVIUmxibk5wYjI0b1hHNGdJQ0FnYldGMFpYSnBZV3hKYm1SbGVEb2diblZ0WW1WeUxGeHVJQ0FwT2lCSVJGSkZiV2x6YzJsMlpVMTFiSFJwY0d4cFpYSlRZMmhsYldFdVZsSk5RMDFoZEdWeWFXRnNjMGhFVWtWdGFYTnphWFpsVFhWc2RHbHdiR2xsY2lCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ1kyOXVjM1FnY0dGeWMyVnlJRDBnZEdocGN5NXdZWEp6WlhJN1hHNGdJQ0FnWTI5dWMzUWdhbk52YmlBOUlIQmhjbk5sY2k1cWMyOXVJR0Z6SUVkTVZFWlRZMmhsYldFdVNVZE1WRVk3WEc1Y2JpQWdJQ0JqYjI1emRDQnRZWFJsY21saGJFUmxaaUE5SUdwemIyNHViV0YwWlhKcFlXeHpQeTViYldGMFpYSnBZV3hKYm1SbGVGMDdYRzVjYmlBZ0lDQnBaaUFvYldGMFpYSnBZV3hFWldZZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0JnVmxKTlRXRjBaWEpwWVd4elNFUlNSVzFwYzNOcGRtVk5kV3gwYVhCc2FXVnlURzloWkdWeVVHeDFaMmx1T2lCQmRIUmxiWEIwSUhSdklIVnpaU0J0WVhSbGNtbGhiSE5iSkh0dFlYUmxjbWxoYkVsdVpHVjRmVjBnYjJZZ1oyeFVSaUJpZFhRZ2RHaGxJRzFoZEdWeWFXRnNJR1J2WlhOdUozUWdaWGhwYzNSZ0xGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdaWGgwWlc1emFXOXVJRDBnYldGMFpYSnBZV3hFWldZdVpYaDBaVzV6YVc5dWN6OHVXMVpTVFUxaGRHVnlhV0ZzYzBoRVVrVnRhWE56YVhabFRYVnNkR2x3YkdsbGNreHZZV1JsY2xCc2RXZHBiaTVGV0ZSRlRsTkpUMDVmVGtGTlJWMGdZWE5jYmlBZ0lDQWdJSHdnU0VSU1JXMXBjM05wZG1WTmRXeDBhWEJzYVdWeVUyTm9aVzFoTGxaU1RVTk5ZWFJsY21saGJITklSRkpGYldsemMybDJaVTExYkhScGNHeHBaWEpjYmlBZ0lDQWdJSHdnZFc1a1pXWnBibVZrTzF4dUlDQWdJR2xtSUNobGVIUmxibk5wYjI0Z1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaWGgwWlc1emFXOXVPMXh1SUNCOVhHNTlYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJiMGRCTzBGQlEwOHNVMEZCVXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRkxGVkJRVlVzUlVGQlJTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZPMEZCUXpkRUxFbEJRVWtzVTBGQlV5eExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1QwRkJUeXhMUVVGTExGbEJRVmtzUTBGQlF5eEhRVUZITEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhWUVVGVkxFOUJRVThzUlVGQlJTeEZRVUZGTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTzBGQlEyaElMRWxCUVVrc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRVZCUVVVc1ZVRkJWU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTzBGQlF5OUVMRkZCUVZFc1UwRkJVeXhUUVVGVExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU51Unl4UlFVRlJMRk5CUVZNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU4wUnl4UlFVRlJMRk5CUVZNc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU1zUlVGQlJUdEJRVU4wU0N4UlFVRlJMRWxCUVVrc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hWUVVGVkxFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVNNVJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTlFMRU5CUVVNN1FVRm5UVVE3UVVGRGRVSXNUMEZCVHl4bFFVRmxMRXRCUVVzc1ZVRkJWU3hIUVVGSExHVkJRV1VzUjBGQlJ5eFZRVUZWTEV0QlFVc3NSVUZCUlN4VlFVRlZMRVZCUVVVc1QwRkJUeXhGUVVGRk8wRkJRM1pJTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZETDBJc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NhVUpCUVdsQ0xFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExGVkJRVlVzUjBGQlJ5eFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNKR096dE5RekZVWVN3MlEwRkJOa01zUTBGQlFUdEJRVXQ0UkN4SlFVRkJMRWxCUVZjc1NVRkJTU3hIUVVGQk8xRkJRMklzVDBGQlR5dzJRMEZCTmtNc1EwRkJReXhqUVVGakxFTkJRVU03UzBGRGNrVTdRVUZGUkN4SlFVRkJMRmRCUVVFc1EwRkJiVUlzVFVGQmEwSXNSVUZCUVR0QlFVTnVReXhSUVVGQkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPMHRCUTNSQ08wbEJSVmtzYjBKQlFXOUNMRU5CUVVNc1lVRkJjVUlzUlVGQlJTeGpRVUZ6UXl4RlFVRkJPenRaUVVNM1JpeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc2EwTkJRV3RETEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1dVRkRla1VzU1VGQlNTeFRRVUZUTEVsQlFVa3NTVUZCU1N4RlFVRkZPMmRDUVVOeVFpeFBRVUZQTzBGQlExSXNZVUZCUVRzN08wRkJTVVFzV1VGQlFTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTldMRzlLUVVGdlNpeERRVU55U2l4RFFVRkRPMEZCUlVZc1dVRkJRU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRk5CUVZNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0QlFVTjRSQ3haUVVGQkxHTkJRV01zUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0VFFVTjJSQ3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVUZCTzBGQlJVOHNTVUZCUVN4clEwRkJhME1zUTBGRGVFTXNZVUZCY1VJc1JVRkJRVHM3UVVGRmNrSXNVVUZCUVN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBGQlF6TkNMRkZCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFYZENMRU5CUVVNN1VVRkZOME1zVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1NVRkJTU3hEUVVGRExGTkJRVk1zVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4aFFVRmhMRU5CUVVNc1EwRkJRenRSUVVWd1JDeEpRVUZKTEZkQlFWY3NTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRka0lzV1VGQlFTeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVTldMREpGUVVFeVJTeGhRVUZoTEVOQlFVRXNkME5CUVVFc1EwRkJNRU1zUTBGRGJra3NRMEZCUXp0QlFVTkdMRmxCUVVFc1QwRkJUeXhUUVVGVExFTkJRVU03UVVGRGJFSXNVMEZCUVR0UlFVVkVMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEZkQlFWY3NRMEZCUXl4VlFVRlZMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVWNzTmtOQlFUWkRMRU5CUVVNc1kwRkJZeXhEUVVVeFJpeERRVUZETzFGQlEyUXNTVUZCU1N4VFFVRlRMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRM0pDTEZsQlFVRXNUMEZCVHl4VFFVRlRMRU5CUVVNN1FVRkRiRUlzVTBGQlFUdEJRVVZFTEZGQlFVRXNUMEZCVHl4VFFVRlRMRU5CUVVNN1MwRkRiRUk3TzBGQmJrUmhMRFpEUVVGakxFTkJRVUVzWTBGQlFTeEhRVUZITEhWRFFVRm5SRHM3T3pzaWZRPT1cbiIsIi8qIVxuICogQHBpeGl2L3RocmVlLXZybS1tYXRlcmlhbHMtdjBjb21wYXQgdjIuMS4xXG4gKiBWUk0wLjAgbWF0ZXJpYWxzIGNvbXBhdGliaWxpdHkgbGF5ZXIgcGx1Z2luIGZvciBAcGl4aXYvdGhyZWUtdnJtXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjQgcGl4aXYgSW5jLlxuICogQHBpeGl2L3RocmVlLXZybS1tYXRlcmlhbHMtdjBjb21wYXQgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgTUlUIExpY2Vuc2VcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waXhpdi90aHJlZS12cm0vYmxvYi9yZWxlYXNlL0xJQ0VOU0VcbiAqL1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuXHJcbmZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbnR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG59O1xuXG5mdW5jdGlvbiBnYW1tYUVPVEYoZSkge1xuICAgIHJldHVybiBNYXRoLnBvdyhlLCAyLjIpO1xufVxuXG5jbGFzcyBWUk1NYXRlcmlhbHNWMENvbXBhdFBsdWdpbiB7XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIHJldHVybiAnVlJNTWF0ZXJpYWxzVjBDb21wYXRQbHVnaW4nO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihwYXJzZXIpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICAgICAgdGhpcy5fcmVuZGVyUXVldWVNYXBUcmFuc3BhcmVudCA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyUXVldWVNYXBUcmFuc3BhcmVudFpXcml0ZSA9IG5ldyBNYXAoKTtcbiAgICAgICAgLy8gV09SS0FST1VORDogQWRkIEtIUl90ZXh0dXJlX3RyYW5zZm9ybSB0byBleHRlbnNpb25zVXNlZFxuICAgICAgICAvLyBJdCBpcyB0b28gbGF0ZSB0byBhZGQgdGhpcyBpbiBiZWZvcmVSb290XG4gICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICBqc29uLmV4dGVuc2lvbnNVc2VkID0gKF9hID0ganNvbi5leHRlbnNpb25zVXNlZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW107XG4gICAgICAgIGlmIChqc29uLmV4dGVuc2lvbnNVc2VkLmluZGV4T2YoJ0tIUl90ZXh0dXJlX3RyYW5zZm9ybScpID09PSAtMSkge1xuICAgICAgICAgICAganNvbi5leHRlbnNpb25zVXNlZC5wdXNoKCdLSFJfdGV4dHVyZV90cmFuc2Zvcm0nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBiZWZvcmVSb290KCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gdGhpcy5wYXJzZXIuanNvbjtcbiAgICAgICAgICAgIC8vIGVhcmx5IGFib3J0IGlmIGl0IGRvZXNuJ3QgdXNlIFYwVlJNXG4gICAgICAgICAgICBjb25zdCB2MFZSTUV4dGVuc2lvbiA9IChfYSA9IGpzb24uZXh0ZW5zaW9ucykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWydWUk0nXTtcbiAgICAgICAgICAgIGNvbnN0IHYwTWF0ZXJpYWxQcm9wZXJ0aWVzID0gdjBWUk1FeHRlbnNpb24gPT09IG51bGwgfHwgdjBWUk1FeHRlbnNpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHYwVlJNRXh0ZW5zaW9uLm1hdGVyaWFsUHJvcGVydGllcztcbiAgICAgICAgICAgIGlmICghdjBNYXRlcmlhbFByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBwb3B1bGF0ZSByZW5kZXIgcXVldWUgbWFwXG4gICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZVJlbmRlclF1ZXVlTWFwKHYwTWF0ZXJpYWxQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIC8vIGNvbnZlcnQgVjAgbWF0ZXJpYWwgcHJvcGVydGllcyBpbnRvIFYxIGNvbXBhdGlibGUgZm9ybWF0XG4gICAgICAgICAgICB2ME1hdGVyaWFsUHJvcGVydGllcy5mb3JFYWNoKChtYXRlcmlhbFByb3BlcnRpZXMsIG1hdGVyaWFsSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsRGVmID0gKF9hID0ganNvbi5tYXRlcmlhbHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVttYXRlcmlhbEluZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWxEZWYgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTU1hdGVyaWFsc1YwQ29tcGF0UGx1Z2luOiBBdHRlbXB0IHRvIHVzZSBtYXRlcmlhbHNbJHttYXRlcmlhbEluZGV4fV0gb2YgZ2xURiBidXQgdGhlIG1hdGVyaWFsIGRvZXNuJ3QgZXhpc3RgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWF0ZXJpYWxQcm9wZXJ0aWVzLnNoYWRlciA9PT0gJ1ZSTS9NVG9vbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSB0aGlzLl9wYXJzZVYwTVRvb25Qcm9wZXJ0aWVzKG1hdGVyaWFsUHJvcGVydGllcywgbWF0ZXJpYWxEZWYpO1xuICAgICAgICAgICAgICAgICAgICBqc29uLm1hdGVyaWFsc1ttYXRlcmlhbEluZGV4XSA9IG1hdGVyaWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICgoX2IgPSBtYXRlcmlhbFByb3BlcnRpZXMuc2hhZGVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iuc3RhcnRzV2l0aCgnVlJNL1VubGl0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSB0aGlzLl9wYXJzZVYwVW5saXRQcm9wZXJ0aWVzKG1hdGVyaWFsUHJvcGVydGllcywgbWF0ZXJpYWxEZWYpO1xuICAgICAgICAgICAgICAgICAgICBqc29uLm1hdGVyaWFsc1ttYXRlcmlhbEluZGV4XSA9IG1hdGVyaWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtYXRlcmlhbFByb3BlcnRpZXMuc2hhZGVyID09PSAnVlJNX1VTRV9HTFRGU0hBREVSJykgO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFZSTU1hdGVyaWFsc1YwQ29tcGF0UGx1Z2luOiBVbmtub3duIHNoYWRlcjogJHttYXRlcmlhbFByb3BlcnRpZXMuc2hhZGVyfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3BhcnNlVjBNVG9vblByb3BlcnRpZXMobWF0ZXJpYWxQcm9wZXJ0aWVzLCBzY2hlbWFNYXRlcmlhbCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2ssIF9sLCBfbSwgX28sIF9wLCBfcSwgX3IsIF9zLCBfdCwgX3UsIF92LCBfdywgX3gsIF95LCBfeiwgXzAsIF8xLCBfMiwgXzMsIF80LCBfNSwgXzYsIF83LCBfOCwgXzksIF8xMCwgXzExLCBfMTIsIF8xMywgXzE0LCBfMTUsIF8xNiwgXzE3LCBfMTgsIF8xOTtcbiAgICAgICAgY29uc3QgaXNUcmFuc3BhcmVudCA9IChfYiA9IChfYSA9IG1hdGVyaWFsUHJvcGVydGllcy5rZXl3b3JkTWFwKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbJ19BTFBIQUJMRU5EX09OJ10pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbHNlO1xuICAgICAgICBjb25zdCBlbmFibGVkWldyaXRlID0gKChfYyA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY1snX1pXcml0ZSddKSA9PT0gMTtcbiAgICAgICAgY29uc3QgdHJhbnNwYXJlbnRXaXRoWldyaXRlID0gZW5hYmxlZFpXcml0ZSAmJiBpc1RyYW5zcGFyZW50O1xuICAgICAgICBjb25zdCByZW5kZXJRdWV1ZU9mZnNldE51bWJlciA9IHRoaXMuX3YwUGFyc2VSZW5kZXJRdWV1ZShtYXRlcmlhbFByb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCBpc0N1dG9mZiA9IChfZSA9IChfZCA9IG1hdGVyaWFsUHJvcGVydGllcy5rZXl3b3JkTWFwKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2RbJ19BTFBIQVRFU1RfT04nXSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogZmFsc2U7XG4gICAgICAgIGNvbnN0IGFscGhhTW9kZSA9IGlzVHJhbnNwYXJlbnQgPyAnQkxFTkQnIDogaXNDdXRvZmYgPyAnTUFTSycgOiAnT1BBUVVFJztcbiAgICAgICAgY29uc3QgYWxwaGFDdXRvZmYgPSBpc0N1dG9mZiA/IChfZiA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF9mID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZlsnX0N1dG9mZiddIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBjdWxsTW9kZSA9IChfaCA9IChfZyA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZ1snX0N1bGxNb2RlJ10pICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDI7IC8vIGVudW0sIHsgT2ZmLCBGcm9udCwgQmFjayB9XG4gICAgICAgIGNvbnN0IGRvdWJsZVNpZGVkID0gY3VsbE1vZGUgPT09IDA7XG4gICAgICAgIGNvbnN0IHRleHR1cmVUcmFuc2Zvcm1FeHQgPSB0aGlzLl9wb3J0VGV4dHVyZVRyYW5zZm9ybShtYXRlcmlhbFByb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCBiYXNlQ29sb3JGYWN0b3IgPSAoX2sgPSAoX2ogPSBtYXRlcmlhbFByb3BlcnRpZXMudmVjdG9yUHJvcGVydGllcykgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qWydfQ29sb3InXSkgPT09IG51bGwgfHwgX2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9rLm1hcCgodiwgaSkgPT4gKGkgPT09IDMgPyB2IDogZ2FtbWFFT1RGKHYpKSk7XG4gICAgICAgIGNvbnN0IGJhc2VDb2xvclRleHR1cmVJbmRleCA9IChfbCA9IG1hdGVyaWFsUHJvcGVydGllcy50ZXh0dXJlUHJvcGVydGllcykgPT09IG51bGwgfHwgX2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9sWydfTWFpblRleCddO1xuICAgICAgICBjb25zdCBiYXNlQ29sb3JUZXh0dXJlID0gYmFzZUNvbG9yVGV4dHVyZUluZGV4ICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGluZGV4OiBiYXNlQ29sb3JUZXh0dXJlSW5kZXgsXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogT2JqZWN0LmFzc2lnbih7fSwgdGV4dHVyZVRyYW5zZm9ybUV4dCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgbm9ybWFsVGV4dHVyZVNjYWxlID0gKF9tID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmZsb2F0UHJvcGVydGllcykgPT09IG51bGwgfHwgX20gPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9tWydfQnVtcFNjYWxlJ107XG4gICAgICAgIGNvbnN0IG5vcm1hbFRleHR1cmVJbmRleCA9IChfbyA9IG1hdGVyaWFsUHJvcGVydGllcy50ZXh0dXJlUHJvcGVydGllcykgPT09IG51bGwgfHwgX28gPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9vWydfQnVtcE1hcCddO1xuICAgICAgICBjb25zdCBub3JtYWxUZXh0dXJlID0gbm9ybWFsVGV4dHVyZUluZGV4ICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGluZGV4OiBub3JtYWxUZXh0dXJlSW5kZXgsXG4gICAgICAgICAgICAgICAgc2NhbGU6IG5vcm1hbFRleHR1cmVTY2FsZSxcbiAgICAgICAgICAgICAgICBleHRlbnNpb25zOiBPYmplY3QuYXNzaWduKHt9LCB0ZXh0dXJlVHJhbnNmb3JtRXh0KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBlbWlzc2l2ZUZhY3RvciA9IChfcSA9IChfcCA9IG1hdGVyaWFsUHJvcGVydGllcy52ZWN0b3JQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3BbJ19FbWlzc2lvbkNvbG9yJ10pID09PSBudWxsIHx8IF9xID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcS5tYXAoZ2FtbWFFT1RGKTtcbiAgICAgICAgY29uc3QgZW1pc3NpdmVUZXh0dXJlSW5kZXggPSAoX3IgPSBtYXRlcmlhbFByb3BlcnRpZXMudGV4dHVyZVByb3BlcnRpZXMpID09PSBudWxsIHx8IF9yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfclsnX0VtaXNzaW9uTWFwJ107XG4gICAgICAgIGNvbnN0IGVtaXNzaXZlVGV4dHVyZSA9IGVtaXNzaXZlVGV4dHVyZUluZGV4ICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGluZGV4OiBlbWlzc2l2ZVRleHR1cmVJbmRleCxcbiAgICAgICAgICAgICAgICBleHRlbnNpb25zOiBPYmplY3QuYXNzaWduKHt9LCB0ZXh0dXJlVHJhbnNmb3JtRXh0KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBzaGFkZUNvbG9yRmFjdG9yID0gKF90ID0gKF9zID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLnZlY3RvclByb3BlcnRpZXMpID09PSBudWxsIHx8IF9zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfc1snX1NoYWRlQ29sb3InXSkgPT09IG51bGwgfHwgX3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90Lm1hcChnYW1tYUVPVEYpO1xuICAgICAgICBjb25zdCBzaGFkZU11bHRpcGx5VGV4dHVyZUluZGV4ID0gKF91ID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLnRleHR1cmVQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfdSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3VbJ19TaGFkZVRleHR1cmUnXTtcbiAgICAgICAgY29uc3Qgc2hhZGVNdWx0aXBseVRleHR1cmUgPSBzaGFkZU11bHRpcGx5VGV4dHVyZUluZGV4ICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGluZGV4OiBzaGFkZU11bHRpcGx5VGV4dHVyZUluZGV4LFxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IE9iamVjdC5hc3NpZ24oe30sIHRleHR1cmVUcmFuc2Zvcm1FeHQpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIC8vIGNvbnZlcnQgdjAgc2hhZGUgc2hpZnQgLyBzaGFkZSB0b29ueVxuICAgICAgICBsZXQgc2hhZGluZ1NoaWZ0RmFjdG9yID0gKF93ID0gKF92ID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmZsb2F0UHJvcGVydGllcykgPT09IG51bGwgfHwgX3YgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92WydfU2hhZGVTaGlmdCddKSAhPT0gbnVsbCAmJiBfdyAhPT0gdm9pZCAwID8gX3cgOiAwLjA7XG4gICAgICAgIGxldCBzaGFkaW5nVG9vbnlGYWN0b3IgPSAoX3kgPSAoX3ggPSBtYXRlcmlhbFByb3BlcnRpZXMuZmxvYXRQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfeCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3hbJ19TaGFkZVRvb255J10pICE9PSBudWxsICYmIF95ICE9PSB2b2lkIDAgPyBfeSA6IDAuOTtcbiAgICAgICAgc2hhZGluZ1Rvb255RmFjdG9yID0gVEhSRUUuTWF0aFV0aWxzLmxlcnAoc2hhZGluZ1Rvb255RmFjdG9yLCAxLjAsIDAuNSArIDAuNSAqIHNoYWRpbmdTaGlmdEZhY3Rvcik7XG4gICAgICAgIHNoYWRpbmdTaGlmdEZhY3RvciA9IC1zaGFkaW5nU2hpZnRGYWN0b3IgLSAoMS4wIC0gc2hhZGluZ1Rvb255RmFjdG9yKTtcbiAgICAgICAgY29uc3QgZ2lJbnRlbnNpdHlGYWN0b3IgPSAoX3ogPSBtYXRlcmlhbFByb3BlcnRpZXMuZmxvYXRQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfeiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3pbJ19JbmRpcmVjdExpZ2h0SW50ZW5zaXR5J107XG4gICAgICAgIGNvbnN0IGdpRXF1YWxpemF0aW9uRmFjdG9yID0gZ2lJbnRlbnNpdHlGYWN0b3IgPyAxLjAgLSBnaUludGVuc2l0eUZhY3RvciA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgbWF0Y2FwVGV4dHVyZUluZGV4ID0gKF8wID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLnRleHR1cmVQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfMCA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzBbJ19TcGhlcmVBZGQnXTtcbiAgICAgICAgY29uc3QgbWF0Y2FwRmFjdG9yID0gbWF0Y2FwVGV4dHVyZUluZGV4ICE9IG51bGwgPyBbMS4wLCAxLjAsIDEuMF0gOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG1hdGNhcFRleHR1cmUgPSBtYXRjYXBUZXh0dXJlSW5kZXggIT0gbnVsbFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgaW5kZXg6IG1hdGNhcFRleHR1cmVJbmRleCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCByaW1MaWdodGluZ01peEZhY3RvciA9IChfMSA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF8xID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfMVsnX1JpbUxpZ2h0aW5nTWl4J107XG4gICAgICAgIGNvbnN0IHJpbU11bHRpcGx5VGV4dHVyZUluZGV4ID0gKF8yID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLnRleHR1cmVQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzJbJ19SaW1UZXh0dXJlJ107XG4gICAgICAgIGNvbnN0IHJpbU11bHRpcGx5VGV4dHVyZSA9IHJpbU11bHRpcGx5VGV4dHVyZUluZGV4ICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGluZGV4OiByaW1NdWx0aXBseVRleHR1cmVJbmRleCxcbiAgICAgICAgICAgICAgICBleHRlbnNpb25zOiBPYmplY3QuYXNzaWduKHt9LCB0ZXh0dXJlVHJhbnNmb3JtRXh0KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBwYXJhbWV0cmljUmltQ29sb3JGYWN0b3IgPSAoXzQgPSAoXzMgPSBtYXRlcmlhbFByb3BlcnRpZXMudmVjdG9yUHJvcGVydGllcykgPT09IG51bGwgfHwgXzMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF8zWydfUmltQ29sb3InXSkgPT09IG51bGwgfHwgXzQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF80Lm1hcChnYW1tYUVPVEYpO1xuICAgICAgICBjb25zdCBwYXJhbWV0cmljUmltRnJlc25lbFBvd2VyRmFjdG9yID0gKF81ID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmZsb2F0UHJvcGVydGllcykgPT09IG51bGwgfHwgXzUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF81WydfUmltRnJlc25lbFBvd2VyJ107XG4gICAgICAgIGNvbnN0IHBhcmFtZXRyaWNSaW1MaWZ0RmFjdG9yID0gKF82ID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmZsb2F0UHJvcGVydGllcykgPT09IG51bGwgfHwgXzYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF82WydfUmltTGlmdCddO1xuICAgICAgICBjb25zdCBvdXRsaW5lV2lkdGhNb2RlID0gWydub25lJywgJ3dvcmxkQ29vcmRpbmF0ZXMnLCAnc2NyZWVuQ29vcmRpbmF0ZXMnXVsoXzggPSAoXzcgPSBtYXRlcmlhbFByb3BlcnRpZXMuZmxvYXRQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfNyA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzdbJ19PdXRsaW5lV2lkdGhNb2RlJ10pICE9PSBudWxsICYmIF84ICE9PSB2b2lkIDAgPyBfOCA6IDBdO1xuICAgICAgICAvLyAvLyB2MCBvdXRsaW5lV2lkdGhGYWN0b3IgaXMgaW4gY2VudGltZXRlclxuICAgICAgICBsZXQgb3V0bGluZVdpZHRoRmFjdG9yID0gKF8xMCA9IChfOSA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF85ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfOVsnX091dGxpbmVXaWR0aCddKSAhPT0gbnVsbCAmJiBfMTAgIT09IHZvaWQgMCA/IF8xMCA6IDAuMDtcbiAgICAgICAgb3V0bGluZVdpZHRoRmFjdG9yID0gMC4wMSAqIG91dGxpbmVXaWR0aEZhY3RvcjtcbiAgICAgICAgY29uc3Qgb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlSW5kZXggPSAoXzExID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLnRleHR1cmVQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfMTEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF8xMVsnX091dGxpbmVXaWR0aFRleHR1cmUnXTtcbiAgICAgICAgY29uc3Qgb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlID0gb3V0bGluZVdpZHRoTXVsdGlwbHlUZXh0dXJlSW5kZXggIT0gbnVsbFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgaW5kZXg6IG91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZUluZGV4LFxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IE9iamVjdC5hc3NpZ24oe30sIHRleHR1cmVUcmFuc2Zvcm1FeHQpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG91dGxpbmVDb2xvckZhY3RvciA9IChfMTMgPSAoXzEyID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLnZlY3RvclByb3BlcnRpZXMpID09PSBudWxsIHx8IF8xMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzEyWydfT3V0bGluZUNvbG9yJ10pID09PSBudWxsIHx8IF8xMyA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzEzLm1hcChnYW1tYUVPVEYpO1xuICAgICAgICBjb25zdCBvdXRsaW5lQ29sb3JNb2RlID0gKF8xNCA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF8xNCA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzE0WydfT3V0bGluZUNvbG9yTW9kZSddOyAvLyBlbnVtLCB7IEZpeGVkLCBNaXhlZCB9XG4gICAgICAgIGNvbnN0IG91dGxpbmVMaWdodGluZ01peEZhY3RvciA9IG91dGxpbmVDb2xvck1vZGUgPT09IDEgPyAoXzE1ID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmZsb2F0UHJvcGVydGllcykgPT09IG51bGwgfHwgXzE1ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfMTVbJ19PdXRsaW5lTGlnaHRpbmdNaXgnXSA6IDAuMDtcbiAgICAgICAgY29uc3QgdXZBbmltYXRpb25NYXNrVGV4dHVyZUluZGV4ID0gKF8xNiA9IG1hdGVyaWFsUHJvcGVydGllcy50ZXh0dXJlUHJvcGVydGllcykgPT09IG51bGwgfHwgXzE2ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfMTZbJ19VdkFuaW1NYXNrVGV4dHVyZSddO1xuICAgICAgICBjb25zdCB1dkFuaW1hdGlvbk1hc2tUZXh0dXJlID0gdXZBbmltYXRpb25NYXNrVGV4dHVyZUluZGV4ICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGluZGV4OiB1dkFuaW1hdGlvbk1hc2tUZXh0dXJlSW5kZXgsXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogT2JqZWN0LmFzc2lnbih7fSwgdGV4dHVyZVRyYW5zZm9ybUV4dCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdXZBbmltYXRpb25TY3JvbGxYU3BlZWRGYWN0b3IgPSAoXzE3ID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmZsb2F0UHJvcGVydGllcykgPT09IG51bGwgfHwgXzE3ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfMTdbJ19VdkFuaW1TY3JvbGxYJ107XG4gICAgICAgIC8vIHV2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yIHdpbGwgYmUgb3Bwb3NpdGUgYmV0d2VlbiBWMCBhbmQgVjFcbiAgICAgICAgbGV0IHV2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yID0gKF8xOCA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF8xOCA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzE4WydfVXZBbmltU2Nyb2xsWSddO1xuICAgICAgICBpZiAodXZBbmltYXRpb25TY3JvbGxZU3BlZWRGYWN0b3IgIT0gbnVsbCkge1xuICAgICAgICAgICAgdXZBbmltYXRpb25TY3JvbGxZU3BlZWRGYWN0b3IgPSAtdXZBbmltYXRpb25TY3JvbGxZU3BlZWRGYWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXZBbmltYXRpb25Sb3RhdGlvblNwZWVkRmFjdG9yID0gKF8xOSA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF8xOSA9PT0gdm9pZCAwID8gdm9pZCAwIDogXzE5WydfVXZBbmltUm90YXRpb24nXTtcbiAgICAgICAgY29uc3QgbXRvb25FeHRlbnNpb24gPSB7XG4gICAgICAgICAgICBzcGVjVmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgICB0cmFuc3BhcmVudFdpdGhaV3JpdGUsXG4gICAgICAgICAgICByZW5kZXJRdWV1ZU9mZnNldE51bWJlcixcbiAgICAgICAgICAgIHNoYWRlQ29sb3JGYWN0b3IsXG4gICAgICAgICAgICBzaGFkZU11bHRpcGx5VGV4dHVyZSxcbiAgICAgICAgICAgIHNoYWRpbmdTaGlmdEZhY3RvcixcbiAgICAgICAgICAgIHNoYWRpbmdUb29ueUZhY3RvcixcbiAgICAgICAgICAgIGdpRXF1YWxpemF0aW9uRmFjdG9yLFxuICAgICAgICAgICAgbWF0Y2FwRmFjdG9yLFxuICAgICAgICAgICAgbWF0Y2FwVGV4dHVyZSxcbiAgICAgICAgICAgIHJpbUxpZ2h0aW5nTWl4RmFjdG9yLFxuICAgICAgICAgICAgcmltTXVsdGlwbHlUZXh0dXJlLFxuICAgICAgICAgICAgcGFyYW1ldHJpY1JpbUNvbG9yRmFjdG9yLFxuICAgICAgICAgICAgcGFyYW1ldHJpY1JpbUZyZXNuZWxQb3dlckZhY3RvcixcbiAgICAgICAgICAgIHBhcmFtZXRyaWNSaW1MaWZ0RmFjdG9yLFxuICAgICAgICAgICAgb3V0bGluZVdpZHRoTW9kZSxcbiAgICAgICAgICAgIG91dGxpbmVXaWR0aEZhY3RvcixcbiAgICAgICAgICAgIG91dGxpbmVXaWR0aE11bHRpcGx5VGV4dHVyZSxcbiAgICAgICAgICAgIG91dGxpbmVDb2xvckZhY3RvcixcbiAgICAgICAgICAgIG91dGxpbmVMaWdodGluZ01peEZhY3RvcixcbiAgICAgICAgICAgIHV2QW5pbWF0aW9uTWFza1RleHR1cmUsXG4gICAgICAgICAgICB1dkFuaW1hdGlvblNjcm9sbFhTcGVlZEZhY3RvcixcbiAgICAgICAgICAgIHV2QW5pbWF0aW9uU2Nyb2xsWVNwZWVkRmFjdG9yLFxuICAgICAgICAgICAgdXZBbmltYXRpb25Sb3RhdGlvblNwZWVkRmFjdG9yLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY2hlbWFNYXRlcmlhbCksIHsgcGJyTWV0YWxsaWNSb3VnaG5lc3M6IHtcbiAgICAgICAgICAgICAgICBiYXNlQ29sb3JGYWN0b3IsXG4gICAgICAgICAgICAgICAgYmFzZUNvbG9yVGV4dHVyZSxcbiAgICAgICAgICAgIH0sIG5vcm1hbFRleHR1cmUsXG4gICAgICAgICAgICBlbWlzc2l2ZVRleHR1cmUsXG4gICAgICAgICAgICBlbWlzc2l2ZUZhY3RvcixcbiAgICAgICAgICAgIGFscGhhTW9kZSxcbiAgICAgICAgICAgIGFscGhhQ3V0b2ZmLFxuICAgICAgICAgICAgZG91YmxlU2lkZWQsIGV4dGVuc2lvbnM6IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgICAgICAgICAgICAgVlJNQ19tYXRlcmlhbHNfbXRvb246IG10b29uRXh0ZW5zaW9uLFxuICAgICAgICAgICAgfSB9KTtcbiAgICB9XG4gICAgX3BhcnNlVjBVbmxpdFByb3BlcnRpZXMobWF0ZXJpYWxQcm9wZXJ0aWVzLCBzY2hlbWFNYXRlcmlhbCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGNvbnN0IGlzVHJhbnNwYXJlbnRaV3JpdGUgPSBtYXRlcmlhbFByb3BlcnRpZXMuc2hhZGVyID09PSAnVlJNL1VubGl0VHJhbnNwYXJlbnRaV3JpdGUnO1xuICAgICAgICBjb25zdCBpc1RyYW5zcGFyZW50ID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLnNoYWRlciA9PT0gJ1ZSTS9VbmxpdFRyYW5zcGFyZW50JyB8fCBpc1RyYW5zcGFyZW50WldyaXRlO1xuICAgICAgICBjb25zdCByZW5kZXJRdWV1ZU9mZnNldE51bWJlciA9IHRoaXMuX3YwUGFyc2VSZW5kZXJRdWV1ZShtYXRlcmlhbFByb3BlcnRpZXMpO1xuICAgICAgICBjb25zdCBpc0N1dG9mZiA9IG1hdGVyaWFsUHJvcGVydGllcy5zaGFkZXIgPT09ICdWUk0vVW5saXRDdXRvdXQnO1xuICAgICAgICBjb25zdCBhbHBoYU1vZGUgPSBpc1RyYW5zcGFyZW50ID8gJ0JMRU5EJyA6IGlzQ3V0b2ZmID8gJ01BU0snIDogJ09QQVFVRSc7XG4gICAgICAgIGNvbnN0IGFscGhhQ3V0b2ZmID0gaXNDdXRvZmYgPyAoX2EgPSBtYXRlcmlhbFByb3BlcnRpZXMuZmxvYXRQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbJ19DdXRvZmYnXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdGV4dHVyZVRyYW5zZm9ybUV4dCA9IHRoaXMuX3BvcnRUZXh0dXJlVHJhbnNmb3JtKG1hdGVyaWFsUHJvcGVydGllcyk7XG4gICAgICAgIGNvbnN0IGJhc2VDb2xvckZhY3RvciA9IChfYyA9IChfYiA9IG1hdGVyaWFsUHJvcGVydGllcy52ZWN0b3JQcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2JbJ19Db2xvciddKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubWFwKGdhbW1hRU9URik7XG4gICAgICAgIGNvbnN0IGJhc2VDb2xvclRleHR1cmVJbmRleCA9IChfZCA9IG1hdGVyaWFsUHJvcGVydGllcy50ZXh0dXJlUHJvcGVydGllcykgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kWydfTWFpblRleCddO1xuICAgICAgICBjb25zdCBiYXNlQ29sb3JUZXh0dXJlID0gYmFzZUNvbG9yVGV4dHVyZUluZGV4ICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGluZGV4OiBiYXNlQ29sb3JUZXh0dXJlSW5kZXgsXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogT2JqZWN0LmFzc2lnbih7fSwgdGV4dHVyZVRyYW5zZm9ybUV4dCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgLy8gdXNlIG10b29uIGluc3RlYWQgb2YgdW5saXQsIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIFZSTTAuMCBzcGVjaWZpYyBmZWF0dXJlcyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGdsdGZcbiAgICAgICAgY29uc3QgbXRvb25FeHRlbnNpb24gPSB7XG4gICAgICAgICAgICBzcGVjVmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgICB0cmFuc3BhcmVudFdpdGhaV3JpdGU6IGlzVHJhbnNwYXJlbnRaV3JpdGUsXG4gICAgICAgICAgICByZW5kZXJRdWV1ZU9mZnNldE51bWJlcixcbiAgICAgICAgICAgIHNoYWRlQ29sb3JGYWN0b3I6IGJhc2VDb2xvckZhY3RvcixcbiAgICAgICAgICAgIHNoYWRlTXVsdGlwbHlUZXh0dXJlOiBiYXNlQ29sb3JUZXh0dXJlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzY2hlbWFNYXRlcmlhbCksIHsgcGJyTWV0YWxsaWNSb3VnaG5lc3M6IHtcbiAgICAgICAgICAgICAgICBiYXNlQ29sb3JGYWN0b3IsXG4gICAgICAgICAgICAgICAgYmFzZUNvbG9yVGV4dHVyZSxcbiAgICAgICAgICAgIH0sIGFscGhhTW9kZSxcbiAgICAgICAgICAgIGFscGhhQ3V0b2ZmLCBleHRlbnNpb25zOiB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgICAgICAgICAgIFZSTUNfbWF0ZXJpYWxzX210b29uOiBtdG9vbkV4dGVuc2lvbixcbiAgICAgICAgICAgIH0gfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIGdsVEYgYEtIUl90ZXh0dXJlX3RyYW5zZm9ybWAgZXh0ZW5zaW9uIGZyb20gdjAgdGV4dHVyZSB0cmFuc2Zvcm0gaW5mby5cbiAgICAgKi9cbiAgICBfcG9ydFRleHR1cmVUcmFuc2Zvcm0obWF0ZXJpYWxQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgIGNvbnN0IHRleHR1cmVUcmFuc2Zvcm0gPSAoX2EgPSBtYXRlcmlhbFByb3BlcnRpZXMudmVjdG9yUHJvcGVydGllcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWydfTWFpblRleCddO1xuICAgICAgICBpZiAodGV4dHVyZVRyYW5zZm9ybSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gWyhfYiA9IHRleHR1cmVUcmFuc2Zvcm0gPT09IG51bGwgfHwgdGV4dHVyZVRyYW5zZm9ybSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGV4dHVyZVRyYW5zZm9ybVswXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMC4wLCAoX2MgPSB0ZXh0dXJlVHJhbnNmb3JtID09PSBudWxsIHx8IHRleHR1cmVUcmFuc2Zvcm0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRleHR1cmVUcmFuc2Zvcm1bMV0pICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDAuMF07XG4gICAgICAgIGNvbnN0IHNjYWxlID0gWyhfZCA9IHRleHR1cmVUcmFuc2Zvcm0gPT09IG51bGwgfHwgdGV4dHVyZVRyYW5zZm9ybSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGV4dHVyZVRyYW5zZm9ybVsyXSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMS4wLCAoX2UgPSB0ZXh0dXJlVHJhbnNmb3JtID09PSBudWxsIHx8IHRleHR1cmVUcmFuc2Zvcm0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRleHR1cmVUcmFuc2Zvcm1bM10pICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IDEuMF07XG4gICAgICAgIG9mZnNldFsxXSA9IDEuMCAtIHNjYWxlWzFdIC0gb2Zmc2V0WzFdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgICAgICAgS0hSX3RleHR1cmVfdHJhbnNmb3JtOiB7IG9mZnNldCwgc2NhbGUgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCB2MCByZW5kZXIgb3JkZXIgaW50byB2MSByZW5kZXIgb3JkZXIuXG4gICAgICogVGhpcyB1c2VzIGEgbWFwIGZyb20gdjAgcmVuZGVyIHF1ZXVlIHRvIHYxIGNvbXBsaWFudCByZW5kZXIgcXVldWUgb2Zmc2V0IHdoaWNoIGlzIGdlbmVyYXRlZCBpbiB7QGxpbmsgX3BvcHVsYXRlUmVuZGVyUXVldWVNYXB9LlxuICAgICAqL1xuICAgIF92MFBhcnNlUmVuZGVyUXVldWUobWF0ZXJpYWxQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBpc1RyYW5zcGFyZW50ID0gKF9iID0gKF9hID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmtleXdvcmRNYXApID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsnX0FMUEhBQkxFTkRfT04nXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2U7XG4gICAgICAgIGNvbnN0IGVuYWJsZWRaV3JpdGUgPSAoKF9jID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmZsb2F0UHJvcGVydGllcykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jWydfWldyaXRlJ10pID09PSAxO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgaWYgKGlzVHJhbnNwYXJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHYwUXVldWUgPSBtYXRlcmlhbFByb3BlcnRpZXMucmVuZGVyUXVldWU7XG4gICAgICAgICAgICBpZiAodjBRdWV1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVuYWJsZWRaV3JpdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5fcmVuZGVyUXVldWVNYXBUcmFuc3BhcmVudFpXcml0ZS5nZXQodjBRdWV1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0aGlzLl9yZW5kZXJRdWV1ZU1hcFRyYW5zcGFyZW50LmdldCh2MFF1ZXVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbWFwIHdoaWNoIG1hcHMgdjAgcmVuZGVyIHF1ZXVlIHRvIHYxIGNvbXBsaWFudCByZW5kZXIgcXVldWUgb2Zmc2V0LlxuICAgICAqIFRoaXMgbGlzdHMgdXAgYWxsIHJlbmRlciBxdWV1ZXMgdGhlIG1vZGVsIHVzZSBhbmQgY3JlYXRlcyBhIG1hcCB0byBuZXcgcmVuZGVyIHF1ZXVlIG9mZnNldHMgaW4gdGhlIHNhbWUgb3JkZXIuXG4gICAgICovXG4gICAgX3BvcHVsYXRlUmVuZGVyUXVldWVNYXAobWF0ZXJpYWxQcm9wZXJ0aWVzTGlzdCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXQgb2YgdXNlZCByZW5kZXIgcXVldWVzIGluIFRyYW5zcGFyZW50IG1hdGVyaWFscy5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHJlbmRlclF1ZXVlc1RyYW5zcGFyZW50ID0gbmV3IFNldCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXQgb2YgdXNlZCByZW5kZXIgcXVldWVzIGluIFRyYW5zcGFyZW50WldyaXRlIG1hdGVyaWFscy5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHJlbmRlclF1ZXVlc1RyYW5zcGFyZW50WldyaXRlID0gbmV3IFNldCgpO1xuICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgcmVuZGVyIHF1ZXVlIHNldFxuICAgICAgICBtYXRlcmlhbFByb3BlcnRpZXNMaXN0LmZvckVhY2goKG1hdGVyaWFsUHJvcGVydGllcykgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgICAgICBjb25zdCBpc1RyYW5zcGFyZW50ID0gKF9iID0gKF9hID0gbWF0ZXJpYWxQcm9wZXJ0aWVzLmtleXdvcmRNYXApID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsnX0FMUEhBQkxFTkRfT04nXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBlbmFibGVkWldyaXRlID0gKChfYyA9IG1hdGVyaWFsUHJvcGVydGllcy5mbG9hdFByb3BlcnRpZXMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY1snX1pXcml0ZSddKSA9PT0gMTtcbiAgICAgICAgICAgIGlmIChpc1RyYW5zcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdjBRdWV1ZSA9IG1hdGVyaWFsUHJvcGVydGllcy5yZW5kZXJRdWV1ZTtcbiAgICAgICAgICAgICAgICBpZiAodjBRdWV1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbmFibGVkWldyaXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJRdWV1ZXNUcmFuc3BhcmVudFpXcml0ZS5hZGQodjBRdWV1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJRdWV1ZXNUcmFuc3BhcmVudC5hZGQodjBRdWV1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBzaG93IGEgd2FybmluZyBpZiB0aGUgbW9kZWwgdXNlcyB2MSBpbmNvbXBhdGlibGUgbnVtYmVyIG9mIHJlbmRlciBxdWV1ZXNcbiAgICAgICAgaWYgKHJlbmRlclF1ZXVlc1RyYW5zcGFyZW50LnNpemUgPiAxMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1NYXRlcmlhbHNWMENvbXBhdFBsdWdpbjogVGhpcyBWUk0gdXNlcyAke3JlbmRlclF1ZXVlc1RyYW5zcGFyZW50LnNpemV9IHJlbmRlciBxdWV1ZXMgZm9yIFRyYW5zcGFyZW50IG1hdGVyaWFscyB3aGlsZSBWUk0gMS4wIG9ubHkgc3VwcG9ydHMgdXAgdG8gMTAgcmVuZGVyIHF1ZXVlcy4gVGhlIG1vZGVsIG1pZ2h0IG5vdCBiZSByZW5kZXJlZCBjb3JyZWN0bHkuYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlbmRlclF1ZXVlc1RyYW5zcGFyZW50WldyaXRlLnNpemUgPiAxMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1NYXRlcmlhbHNWMENvbXBhdFBsdWdpbjogVGhpcyBWUk0gdXNlcyAke3JlbmRlclF1ZXVlc1RyYW5zcGFyZW50WldyaXRlLnNpemV9IHJlbmRlciBxdWV1ZXMgZm9yIFRyYW5zcGFyZW50WldyaXRlIG1hdGVyaWFscyB3aGlsZSBWUk0gMS4wIG9ubHkgc3VwcG9ydHMgdXAgdG8gMTAgcmVuZGVyIHF1ZXVlcy4gVGhlIG1vZGVsIG1pZ2h0IG5vdCBiZSByZW5kZXJlZCBjb3JyZWN0bHkuYCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3JlYXRlIGEgbWFwIGZyb20gdjAgcmVuZGVyIHF1ZXVlIHRvIHYxIHJlbmRlciBxdWV1ZSBvZmZzZXRcbiAgICAgICAgQXJyYXkuZnJvbShyZW5kZXJRdWV1ZXNUcmFuc3BhcmVudClcbiAgICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAgIC5mb3JFYWNoKChxdWV1ZSwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3UXVldWVPZmZzZXQgPSBNYXRoLm1pbihNYXRoLm1heChpIC0gcmVuZGVyUXVldWVzVHJhbnNwYXJlbnQuc2l6ZSArIDEsIC05KSwgMCk7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJRdWV1ZU1hcFRyYW5zcGFyZW50LnNldChxdWV1ZSwgbmV3UXVldWVPZmZzZXQpO1xuICAgICAgICB9KTtcbiAgICAgICAgQXJyYXkuZnJvbShyZW5kZXJRdWV1ZXNUcmFuc3BhcmVudFpXcml0ZSlcbiAgICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAgIC5mb3JFYWNoKChxdWV1ZSwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3UXVldWVPZmZzZXQgPSBNYXRoLm1pbihNYXRoLm1heChpLCAwKSwgOSk7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJRdWV1ZU1hcFRyYW5zcGFyZW50WldyaXRlLnNldChxdWV1ZSwgbmV3UXVldWVPZmZzZXQpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFZSTU1hdGVyaWFsc1YwQ29tcGF0UGx1Z2luIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRHaHlaV1V0ZG5KdExXMWhkR1Z5YVdGc2N5MTJNR052YlhCaGRDNXRiMlIxYkdVdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OTBjMnhwWWk5MGMyeHBZaTVsY3pZdWFuTWlMQ0l1TGk5emNtTXZkWFJwYkhNdloyRnRiV0ZGVDFSR0xuUnpJaXdpTGk0dmMzSmpMMVpTVFUxaGRHVnlhV0ZzYzFZd1EyOXRjR0YwVUd4MVoybHVMblJ6SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lwY2NseHVRMjl3ZVhKcFoyaDBJQ2hqS1NCTmFXTnliM052Wm5RZ1EyOXljRzl5WVhScGIyNHVYSEpjYmx4eVhHNVFaWEp0YVhOemFXOXVJSFJ2SUhWelpTd2dZMjl3ZVN3Z2JXOWthV1o1TENCaGJtUXZiM0lnWkdsemRISnBZblYwWlNCMGFHbHpJSE52Wm5SM1lYSmxJR1p2Y2lCaGJubGNjbHh1Y0hWeWNHOXpaU0IzYVhSb0lHOXlJSGRwZEdodmRYUWdabVZsSUdseklHaGxjbVZpZVNCbmNtRnVkR1ZrTGx4eVhHNWNjbHh1VkVoRklGTlBSbFJYUVZKRklFbFRJRkJTVDFaSlJFVkVJRndpUVZNZ1NWTmNJaUJCVGtRZ1ZFaEZJRUZWVkVoUFVpQkVTVk5EVEVGSlRWTWdRVXhNSUZkQlVsSkJUbFJKUlZNZ1YwbFVTRnh5WEc1U1JVZEJVa1FnVkU4Z1ZFaEpVeUJUVDBaVVYwRlNSU0JKVGtOTVZVUkpUa2NnUVV4TUlFbE5VRXhKUlVRZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGbGNjbHh1UVU1RUlFWkpWRTVGVTFNdUlFbE9JRTVQSUVWV1JVNVVJRk5JUVV4TUlGUklSU0JCVlZSSVQxSWdRa1VnVEVsQlFreEZJRVpQVWlCQlRsa2dVMUJGUTBsQlRDd2dSRWxTUlVOVUxGeHlYRzVKVGtSSlVrVkRWQ3dnVDFJZ1EwOU9VMFZSVlVWT1ZFbEJUQ0JFUVUxQlIwVlRJRTlTSUVGT1dTQkVRVTFCUjBWVElGZElRVlJUVDBWV1JWSWdVa1ZUVlV4VVNVNUhJRVpTVDAxY2NseHVURTlUVXlCUFJpQlZVMFVzSUVSQlZFRWdUMUlnVUZKUFJrbFVVeXdnVjBoRlZFaEZVaUJKVGlCQlRpQkJRMVJKVDA0Z1QwWWdRMDlPVkZKQlExUXNJRTVGUjB4SlIwVk9RMFVnVDFKY2NseHVUMVJJUlZJZ1ZFOVNWRWxQVlZNZ1FVTlVTVTlPTENCQlVrbFRTVTVISUU5VlZDQlBSaUJQVWlCSlRpQkRUMDVPUlVOVVNVOU9JRmRKVkVnZ1ZFaEZJRlZUUlNCUFVseHlYRzVRUlZKR1QxSk5RVTVEUlNCUFJpQlVTRWxUSUZOUFJsUlhRVkpGTGx4eVhHNHFLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lBcUwxeHlYRzR2S2lCbmJHOWlZV3dnVW1WbWJHVmpkQ3dnVUhKdmJXbHpaU3dnVTNWd2NISmxjM05sWkVWeWNtOXlMQ0JUZVcxaWIyd2dLaTljY2x4dVhISmNiblpoY2lCbGVIUmxibVJUZEdGMGFXTnpJRDBnWm5WdVkzUnBiMjRvWkN3Z1lpa2dlMXh5WEc0Z0lDQWdaWGgwWlc1a1UzUmhkR2xqY3lBOUlFOWlhbVZqZEM1elpYUlFjbTkwYjNSNWNHVlBaaUI4ZkZ4eVhHNGdJQ0FnSUNBZ0lDaDdJRjlmY0hKdmRHOWZYem9nVzEwZ2ZTQnBibk4wWVc1alpXOW1JRUZ5Y21GNUlDWW1JR1oxYm1OMGFXOXVJQ2hrTENCaUtTQjdJR1F1WDE5d2NtOTBiMTlmSUQwZ1lqc2dmU2tnZkh4Y2NseHVJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQW9aQ3dnWWlrZ2V5Qm1iM0lnS0haaGNpQndJR2x1SUdJcElHbG1JQ2hQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMbWhoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvWWl3Z2NDa3BJR1JiY0YwZ1BTQmlXM0JkT3lCOU8xeHlYRzRnSUNBZ2NtVjBkWEp1SUdWNGRHVnVaRk4wWVhScFkzTW9aQ3dnWWlrN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTlsZUhSbGJtUnpLR1FzSUdJcElIdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdZaUFoUFQwZ1hDSm1kVzVqZEdsdmJsd2lJQ1ltSUdJZ0lUMDlJRzUxYkd3cFhISmNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtOc1lYTnpJR1Y0ZEdWdVpITWdkbUZzZFdVZ1hDSWdLeUJUZEhKcGJtY29ZaWtnS3lCY0lpQnBjeUJ1YjNRZ1lTQmpiMjV6ZEhKMVkzUnZjaUJ2Y2lCdWRXeHNYQ0lwTzF4eVhHNGdJQ0FnWlhoMFpXNWtVM1JoZEdsamN5aGtMQ0JpS1R0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUY5ZktDa2dleUIwYUdsekxtTnZibk4wY25WamRHOXlJRDBnWkRzZ2ZWeHlYRzRnSUNBZ1pDNXdjbTkwYjNSNWNHVWdQU0JpSUQwOVBTQnVkV3hzSUQ4Z1QySnFaV04wTG1OeVpXRjBaU2hpS1NBNklDaGZYeTV3Y205MGIzUjVjR1VnUFNCaUxuQnliM1J2ZEhsd1pTd2dibVYzSUY5ZktDa3BPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnZG1GeUlGOWZZWE56YVdkdUlEMGdablZ1WTNScGIyNG9LU0I3WEhKY2JpQWdJQ0JmWDJGemMybG5iaUE5SUU5aWFtVmpkQzVoYzNOcFoyNGdmSHdnWm5WdVkzUnBiMjRnWDE5aGMzTnBaMjRvZENrZ2UxeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJSE1zSUdrZ1BTQXhMQ0J1SUQwZ1lYSm5kVzFsYm5SekxteGxibWQwYURzZ2FTQThJRzQ3SUdrckt5a2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpJRDBnWVhKbmRXMWxiblJ6VzJsZE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCd0lHbHVJSE1wSUdsbUlDaFBZbXBsWTNRdWNISnZkRzkwZVhCbExtaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29jeXdnY0NrcElIUmJjRjBnUFNCelczQmRPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2REdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lISmxkSFZ5YmlCZlgyRnpjMmxuYmk1aGNIQnNlU2gwYUdsekxDQmhjbWQxYldWdWRITXBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5eVpYTjBLSE1zSUdVcElIdGNjbHh1SUNBZ0lIWmhjaUIwSUQwZ2UzMDdYSEpjYmlBZ0lDQm1iM0lnS0haaGNpQndJR2x1SUhNcElHbG1JQ2hQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMbWhoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvY3l3Z2NDa2dKaVlnWlM1cGJtUmxlRTltS0hBcElEd2dNQ2xjY2x4dUlDQWdJQ0FnSUNCMFczQmRJRDBnYzF0d1hUdGNjbHh1SUNBZ0lHbG1JQ2h6SUNFOUlHNTFiR3dnSmlZZ2RIbHdaVzltSUU5aWFtVmpkQzVuWlhSUGQyNVFjbTl3WlhKMGVWTjViV0p2YkhNZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlsY2NseHVJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQnBJRDBnTUN3Z2NDQTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVZONWJXSnZiSE1vY3lrN0lHa2dQQ0J3TG14bGJtZDBhRHNnYVNzcktTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsTG1sdVpHVjRUMllvY0Z0cFhTa2dQQ0F3SUNZbUlFOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWNISnZjR1Z5ZEhsSmMwVnVkVzFsY21GaWJHVXVZMkZzYkNoekxDQndXMmxkS1NsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmJjRnRwWFYwZ1BTQnpXM0JiYVYxZE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJSEpsZEhWeWJpQjBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5a1pXTnZjbUYwWlNoa1pXTnZjbUYwYjNKekxDQjBZWEpuWlhRc0lHdGxlU3dnWkdWell5a2dlMXh5WEc0Z0lDQWdkbUZ5SUdNZ1BTQmhjbWQxYldWdWRITXViR1Z1WjNSb0xDQnlJRDBnWXlBOElETWdQeUIwWVhKblpYUWdPaUJrWlhOaklEMDlQU0J1ZFd4c0lEOGdaR1Z6WXlBOUlFOWlhbVZqZEM1blpYUlBkMjVRY205d1pYSjBlVVJsYzJOeWFYQjBiM0lvZEdGeVoyVjBMQ0JyWlhrcElEb2daR1Z6WXl3Z1pEdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdVbVZtYkdWamRDQTlQVDBnWENKdlltcGxZM1JjSWlBbUppQjBlWEJsYjJZZ1VtVm1iR1ZqZEM1a1pXTnZjbUYwWlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCeUlEMGdVbVZtYkdWamRDNWtaV052Y21GMFpTaGtaV052Y21GMGIzSnpMQ0IwWVhKblpYUXNJR3RsZVN3Z1pHVnpZeWs3WEhKY2JpQWdJQ0JsYkhObElHWnZjaUFvZG1GeUlHa2dQU0JrWldOdmNtRjBiM0p6TG14bGJtZDBhQ0F0SURFN0lHa2dQajBnTURzZ2FTMHRLU0JwWmlBb1pDQTlJR1JsWTI5eVlYUnZjbk5iYVYwcElISWdQU0FvWXlBOElETWdQeUJrS0hJcElEb2dZeUErSURNZ1B5QmtLSFJoY21kbGRDd2dhMlY1TENCeUtTQTZJR1FvZEdGeVoyVjBMQ0JyWlhrcEtTQjhmQ0J5TzF4eVhHNGdJQ0FnY21WMGRYSnVJR01nUGlBeklDWW1JSElnSmlZZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLSFJoY21kbGRDd2dhMlY1TENCeUtTd2djanRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmNHRnlZVzBvY0dGeVlXMUpibVJsZUN3Z1pHVmpiM0poZEc5eUtTQjdYSEpjYmlBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0Z0tIUmhjbWRsZEN3Z2EyVjVLU0I3SUdSbFkyOXlZWFJ2Y2loMFlYSm5aWFFzSUd0bGVTd2djR0Z5WVcxSmJtUmxlQ2s3SUgxY2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZaWE5FWldOdmNtRjBaU2hqZEc5eUxDQmtaWE5qY21sd2RHOXlTVzRzSUdSbFkyOXlZWFJ2Y25Nc0lHTnZiblJsZUhSSmJpd2dhVzVwZEdsaGJHbDZaWEp6TENCbGVIUnlZVWx1YVhScFlXeHBlbVZ5Y3lrZ2UxeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z1lXTmpaWEIwS0dZcElIc2dhV1lnS0dZZ0lUMDlJSFp2YVdRZ01DQW1KaUIwZVhCbGIyWWdaaUFoUFQwZ1hDSm1kVzVqZEdsdmJsd2lLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVJuVnVZM1JwYjI0Z1pYaHdaV04wWldSY0lpazdJSEpsZEhWeWJpQm1PeUI5WEhKY2JpQWdJQ0IyWVhJZ2EybHVaQ0E5SUdOdmJuUmxlSFJKYmk1cmFXNWtMQ0JyWlhrZ1BTQnJhVzVrSUQwOVBTQmNJbWRsZEhSbGNsd2lJRDhnWENKblpYUmNJaUE2SUd0cGJtUWdQVDA5SUZ3aWMyVjBkR1Z5WENJZ1B5QmNJbk5sZEZ3aUlEb2dYQ0oyWVd4MVpWd2lPMXh5WEc0Z0lDQWdkbUZ5SUhSaGNtZGxkQ0E5SUNGa1pYTmpjbWx3ZEc5eVNXNGdKaVlnWTNSdmNpQS9JR052Ym5SbGVIUkpibHRjSW5OMFlYUnBZMXdpWFNBL0lHTjBiM0lnT2lCamRHOXlMbkJ5YjNSdmRIbHdaU0E2SUc1MWJHdzdYSEpjYmlBZ0lDQjJZWElnWkdWelkzSnBjSFJ2Y2lBOUlHUmxjMk55YVhCMGIzSkpiaUI4ZkNBb2RHRnlaMlYwSUQ4Z1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVSR1Z6WTNKcGNIUnZjaWgwWVhKblpYUXNJR052Ym5SbGVIUkpiaTV1WVcxbEtTQTZJSHQ5S1R0Y2NseHVJQ0FnSUhaaGNpQmZMQ0JrYjI1bElEMGdabUZzYzJVN1hISmNiaUFnSUNCbWIzSWdLSFpoY2lCcElEMGdaR1ZqYjNKaGRHOXljeTVzWlc1bmRHZ2dMU0F4T3lCcElENDlJREE3SUdrdExTa2dlMXh5WEc0Z0lDQWdJQ0FnSUhaaGNpQmpiMjUwWlhoMElEMGdlMzA3WEhKY2JpQWdJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2NDQnBiaUJqYjI1MFpYaDBTVzRwSUdOdmJuUmxlSFJiY0YwZ1BTQndJRDA5UFNCY0ltRmpZMlZ6YzF3aUlEOGdlMzBnT2lCamIyNTBaWGgwU1c1YmNGMDdYSEpjYmlBZ0lDQWdJQ0FnWm05eUlDaDJZWElnY0NCcGJpQmpiMjUwWlhoMFNXNHVZV05qWlhOektTQmpiMjUwWlhoMExtRmpZMlZ6YzF0d1hTQTlJR052Ym5SbGVIUkpiaTVoWTJObGMzTmJjRjA3WEhKY2JpQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEM1aFpHUkpibWwwYVdGc2FYcGxjaUE5SUdaMWJtTjBhVzl1SUNobUtTQjdJR2xtSUNoa2IyNWxLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVEyRnVibTkwSUdGa1pDQnBibWwwYVdGc2FYcGxjbk1nWVdaMFpYSWdaR1ZqYjNKaGRHbHZiaUJvWVhNZ1kyOXRjR3hsZEdWa1hDSXBPeUJsZUhSeVlVbHVhWFJwWVd4cGVtVnljeTV3ZFhOb0tHRmpZMlZ3ZENobUlIeDhJRzUxYkd3cEtUc2dmVHRjY2x4dUlDQWdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdLREFzSUdSbFkyOXlZWFJ2Y25OYmFWMHBLR3RwYm1RZ1BUMDlJRndpWVdOalpYTnpiM0pjSWlBL0lIc2daMlYwT2lCa1pYTmpjbWx3ZEc5eUxtZGxkQ3dnYzJWME9pQmtaWE5qY21sd2RHOXlMbk5sZENCOUlEb2daR1Z6WTNKcGNIUnZjbHRyWlhsZExDQmpiMjUwWlhoMEtUdGNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2EybHVaQ0E5UFQwZ1hDSmhZMk5sYzNOdmNsd2lLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoeVpYTjFiSFFnUFQwOUlIWnZhV1FnTUNrZ1kyOXVkR2x1ZFdVN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHlaWE4xYkhRZ1BUMDlJRzUxYkd3Z2ZId2dkSGx3Wlc5bUlISmxjM1ZzZENBaFBUMGdYQ0p2WW1wbFkzUmNJaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrOWlhbVZqZENCbGVIQmxZM1JsWkZ3aUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRjhnUFNCaFkyTmxjSFFvY21WemRXeDBMbWRsZENrcElHUmxjMk55YVhCMGIzSXVaMlYwSUQwZ1h6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRjhnUFNCaFkyTmxjSFFvY21WemRXeDBMbk5sZENrcElHUmxjMk55YVhCMGIzSXVjMlYwSUQwZ1h6dGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRjhnUFNCaFkyTmxjSFFvY21WemRXeDBMbWx1YVhRcEtTQnBibWwwYVdGc2FYcGxjbk11ZFc1emFHbG1kQ2hmS1R0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFFwS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQmNJbVpwWld4a1hDSXBJR2x1YVhScFlXeHBlbVZ5Y3k1MWJuTm9hV1owS0Y4cE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR1JsYzJOeWFYQjBiM0piYTJWNVhTQTlJRjg3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ2FXWWdLSFJoY21kbGRDa2dUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hSaGNtZGxkQ3dnWTI5dWRHVjRkRWx1TG01aGJXVXNJR1JsYzJOeWFYQjBiM0lwTzF4eVhHNGdJQ0FnWkc5dVpTQTlJSFJ5ZFdVN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl5ZFc1SmJtbDBhV0ZzYVhwbGNuTW9kR2hwYzBGeVp5d2dhVzVwZEdsaGJHbDZaWEp6TENCMllXeDFaU2tnZTF4eVhHNGdJQ0FnZG1GeUlIVnpaVlpoYkhWbElEMGdZWEpuZFcxbGJuUnpMbXhsYm1kMGFDQStJREk3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJwSUQwZ01Ec2dhU0E4SUdsdWFYUnBZV3hwZW1WeWN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2RYTmxWbUZzZFdVZ1B5QnBibWwwYVdGc2FYcGxjbk5iYVYwdVkyRnNiQ2gwYUdselFYSm5MQ0IyWVd4MVpTa2dPaUJwYm1sMGFXRnNhWHBsY25OYmFWMHVZMkZzYkNoMGFHbHpRWEpuS1R0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUhKbGRIVnliaUIxYzJWV1lXeDFaU0EvSUhaaGJIVmxJRG9nZG05cFpDQXdPMXh5WEc1OU8xeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmNISnZjRXRsZVNoNEtTQjdYSEpjYmlBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhnZ1BUMDlJRndpYzNsdFltOXNYQ0lnUHlCNElEb2dYQ0pjSWk1amIyNWpZWFFvZUNrN1hISmNibjA3WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl6WlhSR2RXNWpkR2x2Yms1aGJXVW9aaXdnYm1GdFpTd2djSEpsWm1sNEtTQjdYSEpjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JRzVoYldVZ1BUMDlJRndpYzNsdFltOXNYQ0lwSUc1aGJXVWdQU0J1WVcxbExtUmxjMk55YVhCMGFXOXVJRDhnWENKYlhDSXVZMjl1WTJGMEtHNWhiV1V1WkdWelkzSnBjSFJwYjI0c0lGd2lYVndpS1NBNklGd2lYQ0k3WEhKY2JpQWdJQ0J5WlhSMWNtNGdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dZc0lGd2libUZ0WlZ3aUxDQjdJR052Ym1acFozVnlZV0pzWlRvZ2RISjFaU3dnZG1Gc2RXVTZJSEJ5WldacGVDQS9JRndpWENJdVkyOXVZMkYwS0hCeVpXWnBlQ3dnWENJZ1hDSXNJRzVoYldVcElEb2dibUZ0WlNCOUtUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDIxbGRHRmtZWFJoS0cxbGRHRmtZWFJoUzJWNUxDQnRaWFJoWkdGMFlWWmhiSFZsS1NCN1hISmNiaUFnSUNCcFppQW9kSGx3Wlc5bUlGSmxabXhsWTNRZ1BUMDlJRndpYjJKcVpXTjBYQ0lnSmlZZ2RIbHdaVzltSUZKbFpteGxZM1F1YldWMFlXUmhkR0VnUFQwOUlGd2lablZ1WTNScGIyNWNJaWtnY21WMGRYSnVJRkpsWm14bFkzUXViV1YwWVdSaGRHRW9iV1YwWVdSaGRHRkxaWGtzSUcxbGRHRmtZWFJoVm1Gc2RXVXBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5aGQyRnBkR1Z5S0hSb2FYTkJjbWNzSUY5aGNtZDFiV1Z1ZEhNc0lGQXNJR2RsYm1WeVlYUnZjaWtnZTF4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnWVdSdmNIUW9kbUZzZFdVcElIc2djbVYwZFhKdUlIWmhiSFZsSUdsdWMzUmhibU5sYjJZZ1VDQS9JSFpoYkhWbElEb2dibVYzSUZBb1puVnVZM1JwYjI0Z0tISmxjMjlzZG1VcElIc2djbVZ6YjJ4MlpTaDJZV3gxWlNrN0lIMHBPeUI5WEhKY2JpQWdJQ0J5WlhSMWNtNGdibVYzSUNoUUlIeDhJQ2hRSUQwZ1VISnZiV2x6WlNrcEtHWjFibU4wYVc5dUlDaHlaWE52YkhabExDQnlaV3BsWTNRcElIdGNjbHh1SUNBZ0lDQWdJQ0JtZFc1amRHbHZiaUJtZFd4bWFXeHNaV1FvZG1Gc2RXVXBJSHNnZEhKNUlIc2djM1JsY0NoblpXNWxjbUYwYjNJdWJtVjRkQ2gyWVd4MVpTa3BPeUI5SUdOaGRHTm9JQ2hsS1NCN0lISmxhbVZqZENobEtUc2dmU0I5WEhKY2JpQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z2NtVnFaV04wWldRb2RtRnNkV1VwSUhzZ2RISjVJSHNnYzNSbGNDaG5aVzVsY21GMGIzSmJYQ0owYUhKdmQxd2lYU2gyWVd4MVpTa3BPeUI5SUdOaGRHTm9JQ2hsS1NCN0lISmxhbVZqZENobEtUc2dmU0I5WEhKY2JpQWdJQ0FnSUNBZ1puVnVZM1JwYjI0Z2MzUmxjQ2h5WlhOMWJIUXBJSHNnY21WemRXeDBMbVJ2Ym1VZ1B5QnlaWE52YkhabEtISmxjM1ZzZEM1MllXeDFaU2tnT2lCaFpHOXdkQ2h5WlhOMWJIUXVkbUZzZFdVcExuUm9aVzRvWm5Wc1ptbHNiR1ZrTENCeVpXcGxZM1JsWkNrN0lIMWNjbHh1SUNBZ0lDQWdJQ0J6ZEdWd0tDaG5aVzVsY21GMGIzSWdQU0JuWlc1bGNtRjBiM0l1WVhCd2JIa29kR2hwYzBGeVp5d2dYMkZ5WjNWdFpXNTBjeUI4ZkNCYlhTa3BMbTVsZUhRb0tTazdYSEpjYmlBZ0lDQjlLVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZloyVnVaWEpoZEc5eUtIUm9hWE5CY21jc0lHSnZaSGtwSUh0Y2NseHVJQ0FnSUhaaGNpQmZJRDBnZXlCc1lXSmxiRG9nTUN3Z2MyVnVkRG9nWm5WdVkzUnBiMjRvS1NCN0lHbG1JQ2gwV3pCZElDWWdNU2tnZEdoeWIzY2dkRnN4WFRzZ2NtVjBkWEp1SUhSYk1WMDdJSDBzSUhSeWVYTTZJRnRkTENCdmNITTZJRnRkSUgwc0lHWXNJSGtzSUhRc0lHYzdYSEpjYmlBZ0lDQnlaWFIxY200Z1p5QTlJSHNnYm1WNGREb2dkbVZ5WWlnd0tTd2dYQ0owYUhKdmQxd2lPaUIyWlhKaUtERXBMQ0JjSW5KbGRIVnlibHdpT2lCMlpYSmlLRElwSUgwc0lIUjVjR1Z2WmlCVGVXMWliMndnUFQwOUlGd2lablZ1WTNScGIyNWNJaUFtSmlBb1oxdFRlVzFpYjJ3dWFYUmxjbUYwYjNKZElEMGdablZ1WTNScGIyNG9LU0I3SUhKbGRIVnliaUIwYUdsek95QjlLU3dnWnp0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhabGNtSW9iaWtnZXlCeVpYUjFjbTRnWm5WdVkzUnBiMjRnS0hZcElIc2djbVYwZFhKdUlITjBaWEFvVzI0c0lIWmRLVHNnZlRzZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2MzUmxjQ2h2Y0NrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNobUtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpUjJWdVpYSmhkRzl5SUdseklHRnNjbVZoWkhrZ1pYaGxZM1YwYVc1bkxsd2lLVHRjY2x4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvWnlBbUppQW9aeUE5SURBc0lHOXdXekJkSUNZbUlDaGZJRDBnTUNrcExDQmZLU0IwY25rZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aaUE5SURFc0lIa2dKaVlnS0hRZ1BTQnZjRnN3WFNBbUlESWdQeUI1VzF3aWNtVjBkWEp1WENKZElEb2diM0JiTUYwZ1B5QjVXMXdpZEdoeWIzZGNJbDBnZkh3Z0tDaDBJRDBnZVZ0Y0luSmxkSFZ5Ymx3aVhTa2dKaVlnZEM1allXeHNLSGtwTENBd0tTQTZJSGt1Ym1WNGRDa2dKaVlnSVNoMElEMGdkQzVqWVd4c0tIa3NJRzl3V3pGZEtTa3VaRzl1WlNrZ2NtVjBkWEp1SUhRN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDVJRDBnTUN3Z2RDa2diM0FnUFNCYmIzQmJNRjBnSmlBeUxDQjBMblpoYkhWbFhUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNodmNGc3dYU2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0F3T2lCallYTmxJREU2SUhRZ1BTQnZjRHNnWW5KbFlXczdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElEUTZJRjh1YkdGaVpXd3JLenNnY21WMGRYSnVJSHNnZG1Gc2RXVTZJRzl3V3pGZExDQmtiMjVsT2lCbVlXeHpaU0I5TzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0ExT2lCZkxteGhZbVZzS3lzN0lIa2dQU0J2Y0ZzeFhUc2diM0FnUFNCYk1GMDdJR052Ym5ScGJuVmxPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQTNPaUJ2Y0NBOUlGOHViM0J6TG5CdmNDZ3BPeUJmTG5SeWVYTXVjRzl3S0NrN0lHTnZiblJwYm5WbE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZtWVhWc2REcGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JU2gwSUQwZ1h5NTBjbmx6TENCMElEMGdkQzVzWlc1bmRHZ2dQaUF3SUNZbUlIUmJkQzVzWlc1bmRHZ2dMU0F4WFNrZ0ppWWdLRzl3V3pCZElEMDlQU0EySUh4OElHOXdXekJkSUQwOVBTQXlLU2tnZXlCZklEMGdNRHNnWTI5dWRHbHVkV1U3SUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2IzQmJNRjBnUFQwOUlETWdKaVlnS0NGMElIeDhJQ2h2Y0ZzeFhTQStJSFJiTUYwZ0ppWWdiM0JiTVYwZ1BDQjBXek5kS1NrcElIc2dYeTVzWVdKbGJDQTlJRzl3V3pGZE95QmljbVZoYXpzZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHZjRnN3WFNBOVBUMGdOaUFtSmlCZkxteGhZbVZzSUR3Z2RGc3hYU2tnZXlCZkxteGhZbVZzSUQwZ2RGc3hYVHNnZENBOUlHOXdPeUJpY21WaGF6c2dmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwSUNZbUlGOHViR0ZpWld3Z1BDQjBXekpkS1NCN0lGOHViR0ZpWld3Z1BTQjBXekpkT3lCZkxtOXdjeTV3ZFhOb0tHOXdLVHNnWW5KbFlXczdJSDFjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEZzeVhTa2dYeTV2Y0hNdWNHOXdLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYeTUwY25sekxuQnZjQ2dwT3lCamIyNTBhVzUxWlR0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J2Y0NBOUlHSnZaSGt1WTJGc2JDaDBhR2x6UVhKbkxDQmZLVHRjY2x4dUlDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdJRzl3SUQwZ1d6WXNJR1ZkT3lCNUlEMGdNRHNnZlNCbWFXNWhiR3g1SUhzZ1ppQTlJSFFnUFNBd095QjlYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHOXdXekJkSUNZZ05Ta2dkR2h5YjNjZ2IzQmJNVjA3SUhKbGRIVnliaUI3SUhaaGJIVmxPaUJ2Y0Zzd1hTQS9JRzl3V3pGZElEb2dkbTlwWkNBd0xDQmtiMjVsT2lCMGNuVmxJSDA3WEhKY2JpQWdJQ0I5WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCMllYSWdYMTlqY21WaGRHVkNhVzVrYVc1bklEMGdUMkpxWldOMExtTnlaV0YwWlNBL0lDaG1kVzVqZEdsdmJpaHZMQ0J0TENCckxDQnJNaWtnZTF4eVhHNGdJQ0FnYVdZZ0tHc3lJRDA5UFNCMWJtUmxabWx1WldRcElHc3lJRDBnYXp0Y2NseHVJQ0FnSUhaaGNpQmtaWE5qSUQwZ1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVSR1Z6WTNKcGNIUnZjaWh0TENCcktUdGNjbHh1SUNBZ0lHbG1JQ2doWkdWell5QjhmQ0FvWENKblpYUmNJaUJwYmlCa1pYTmpJRDhnSVcwdVgxOWxjMDF2WkhWc1pTQTZJR1JsYzJNdWQzSnBkR0ZpYkdVZ2ZId2daR1Z6WXk1amIyNW1hV2QxY21GaWJHVXBLU0I3WEhKY2JpQWdJQ0FnSUNBZ1pHVnpZeUE5SUhzZ1pXNTFiV1Z5WVdKc1pUb2dkSEoxWlN3Z1oyVjBPaUJtZFc1amRHbHZiaWdwSUhzZ2NtVjBkWEp1SUcxYmExMDdJSDBnZlR0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaHZMQ0JyTWl3Z1pHVnpZeWs3WEhKY2JuMHBJRG9nS0daMWJtTjBhVzl1S0c4c0lHMHNJR3NzSUdzeUtTQjdYSEpjYmlBZ0lDQnBaaUFvYXpJZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnYXpJZ1BTQnJPMXh5WEc0Z0lDQWdiMXRyTWwwZ1BTQnRXMnRkTzF4eVhHNTlLVHRjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMlY0Y0c5eWRGTjBZWElvYlN3Z2J5a2dlMXh5WEc0Z0lDQWdabTl5SUNoMllYSWdjQ0JwYmlCdEtTQnBaaUFvY0NBaFBUMGdYQ0prWldaaGRXeDBYQ0lnSmlZZ0lVOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWFHRnpUM2R1VUhKdmNHVnlkSGt1WTJGc2JDaHZMQ0J3S1NrZ1gxOWpjbVZoZEdWQ2FXNWthVzVuS0c4c0lHMHNJSEFwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOTJZV3gxWlhNb2J5a2dlMXh5WEc0Z0lDQWdkbUZ5SUhNZ1BTQjBlWEJsYjJZZ1UzbHRZbTlzSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnSmlZZ1UzbHRZbTlzTG1sMFpYSmhkRzl5TENCdElEMGdjeUFtSmlCdlczTmRMQ0JwSUQwZ01EdGNjbHh1SUNBZ0lHbG1JQ2h0S1NCeVpYUjFjbTRnYlM1allXeHNLRzhwTzF4eVhHNGdJQ0FnYVdZZ0tHOGdKaVlnZEhsd1pXOW1JRzh1YkdWdVozUm9JRDA5UFNCY0ltNTFiV0psY2x3aUtTQnlaWFIxY200Z2UxeHlYRzRnSUNBZ0lDQWdJRzVsZUhRNklHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0c4Z0ppWWdhU0ErUFNCdkxteGxibWQwYUNrZ2J5QTlJSFp2YVdRZ01EdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RtRnNkV1U2SUc4Z0ppWWdiMXRwS3l0ZExDQmtiMjVsT2lBaGJ5QjlPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUgwN1hISmNiaUFnSUNCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtITWdQeUJjSWs5aWFtVmpkQ0JwY3lCdWIzUWdhWFJsY21GaWJHVXVYQ0lnT2lCY0lsTjViV0p2YkM1cGRHVnlZWFJ2Y2lCcGN5QnViM1FnWkdWbWFXNWxaQzVjSWlrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM0psWVdRb2J5d2diaWtnZTF4eVhHNGdJQ0FnZG1GeUlHMGdQU0IwZVhCbGIyWWdVM2x0WW05c0lEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ0ppWWdiMXRUZVcxaWIyd3VhWFJsY21GMGIzSmRPMXh5WEc0Z0lDQWdhV1lnS0NGdEtTQnlaWFIxY200Z2J6dGNjbHh1SUNBZ0lIWmhjaUJwSUQwZ2JTNWpZV3hzS0c4cExDQnlMQ0JoY2lBOUlGdGRMQ0JsTzF4eVhHNGdJQ0FnZEhKNUlIdGNjbHh1SUNBZ0lDQWdJQ0IzYUdsc1pTQW9LRzRnUFQwOUlIWnZhV1FnTUNCOGZDQnVMUzBnUGlBd0tTQW1KaUFoS0hJZ1BTQnBMbTVsZUhRb0tTa3VaRzl1WlNrZ1lYSXVjSFZ6YUNoeUxuWmhiSFZsS1R0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUdOaGRHTm9JQ2hsY25KdmNpa2dleUJsSUQwZ2V5Qmxjbkp2Y2pvZ1pYSnliM0lnZlRzZ2ZWeHlYRzRnSUNBZ1ptbHVZV3hzZVNCN1hISmNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISWdKaVlnSVhJdVpHOXVaU0FtSmlBb2JTQTlJR2xiWENKeVpYUjFjbTVjSWwwcEtTQnRMbU5oYkd3b2FTazdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHWnBibUZzYkhrZ2V5QnBaaUFvWlNrZ2RHaHliM2NnWlM1bGNuSnZjanNnZlZ4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnY21WMGRYSnVJR0Z5TzF4eVhHNTlYSEpjYmx4eVhHNHZLaW9nUUdSbGNISmxZMkYwWldRZ0tpOWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmYzNCeVpXRmtLQ2tnZTF4eVhHNGdJQ0FnWm05eUlDaDJZWElnWVhJZ1BTQmJYU3dnYVNBOUlEQTdJR2tnUENCaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvT3lCcEt5c3BYSEpjYmlBZ0lDQWdJQ0FnWVhJZ1BTQmhjaTVqYjI1allYUW9YMTl5WldGa0tHRnlaM1Z0Wlc1MGMxdHBYU2twTzF4eVhHNGdJQ0FnY21WMGRYSnVJR0Z5TzF4eVhHNTlYSEpjYmx4eVhHNHZLaW9nUUdSbGNISmxZMkYwWldRZ0tpOWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmYzNCeVpXRmtRWEp5WVhsektDa2dlMXh5WEc0Z0lDQWdabTl5SUNoMllYSWdjeUE5SURBc0lHa2dQU0F3TENCcGJDQTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZzdJR2tnUENCcGJEc2dhU3NyS1NCeklDczlJR0Z5WjNWdFpXNTBjMXRwWFM1c1pXNW5kR2c3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJ5SUQwZ1FYSnlZWGtvY3lrc0lHc2dQU0F3TENCcElEMGdNRHNnYVNBOElHbHNPeUJwS3lzcFhISmNiaUFnSUNBZ0lDQWdabTl5SUNoMllYSWdZU0E5SUdGeVozVnRaVzUwYzF0cFhTd2dhaUE5SURBc0lHcHNJRDBnWVM1c1pXNW5kR2c3SUdvZ1BDQnFiRHNnYWlzckxDQnJLeXNwWEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSEpiYTEwZ1BTQmhXMnBkTzF4eVhHNGdJQ0FnY21WMGRYSnVJSEk3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgzTndjbVZoWkVGeWNtRjVLSFJ2TENCbWNtOXRMQ0J3WVdOcktTQjdYSEpjYmlBZ0lDQnBaaUFvY0dGamF5QjhmQ0JoY21kMWJXVnVkSE11YkdWdVozUm9JRDA5UFNBeUtTQm1iM0lnS0haaGNpQnBJRDBnTUN3Z2JDQTlJR1p5YjIwdWJHVnVaM1JvTENCaGNqc2dhU0E4SUd3N0lHa3JLeWtnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoY2lCOGZDQWhLR2tnYVc0Z1puSnZiU2twSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRmhjaWtnWVhJZ1BTQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWMyeHBZMlV1WTJGc2JDaG1jbTl0TENBd0xDQnBLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdZWEpiYVYwZ1BTQm1jbTl0VzJsZE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJSDFjY2x4dUlDQWdJSEpsZEhWeWJpQjBieTVqYjI1allYUW9ZWElnZkh3Z1FYSnlZWGt1Y0hKdmRHOTBlWEJsTG5Oc2FXTmxMbU5oYkd3b1puSnZiU2twTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWhkMkZwZENoMktTQjdYSEpjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeUJwYm5OMFlXNWpaVzltSUY5ZllYZGhhWFFnUHlBb2RHaHBjeTUySUQwZ2Rpd2dkR2hwY3lrZ09pQnVaWGNnWDE5aGQyRnBkQ2gyS1R0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZZWE41Ym1OSFpXNWxjbUYwYjNJb2RHaHBjMEZ5Wnl3Z1gyRnlaM1Z0Wlc1MGN5d2daMlZ1WlhKaGRHOXlLU0I3WEhKY2JpQWdJQ0JwWmlBb0lWTjViV0p2YkM1aGMzbHVZMGwwWlhKaGRHOXlLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVUzbHRZbTlzTG1GemVXNWpTWFJsY21GMGIzSWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc0Z0lDQWdkbUZ5SUdjZ1BTQm5aVzVsY21GMGIzSXVZWEJ3Ykhrb2RHaHBjMEZ5Wnl3Z1gyRnlaM1Z0Wlc1MGN5QjhmQ0JiWFNrc0lHa3NJSEVnUFNCYlhUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCcElEMGdlMzBzSUhabGNtSW9YQ0p1WlhoMFhDSXBMQ0IyWlhKaUtGd2lkR2h5YjNkY0lpa3NJSFpsY21Jb1hDSnlaWFIxY201Y0lpa3NJR2xiVTNsdFltOXNMbUZ6ZVc1alNYUmxjbUYwYjNKZElEMGdablZ1WTNScGIyNGdLQ2tnZXlCeVpYUjFjbTRnZEdocGN6c2dmU3dnYVR0Y2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhabGNtSW9iaWtnZXlCcFppQW9aMXR1WFNrZ2FWdHVYU0E5SUdaMWJtTjBhVzl1SUNoMktTQjdJSEpsZEhWeWJpQnVaWGNnVUhKdmJXbHpaU2htZFc1amRHbHZiaUFvWVN3Z1lpa2dleUJ4TG5CMWMyZ29XMjRzSUhZc0lHRXNJR0pkS1NBK0lERWdmSHdnY21WemRXMWxLRzRzSUhZcE95QjlLVHNnZlRzZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2NtVnpkVzFsS0c0c0lIWXBJSHNnZEhKNUlIc2djM1JsY0NoblcyNWRLSFlwS1RzZ2ZTQmpZWFJqYUNBb1pTa2dleUJ6WlhSMGJHVW9jVnN3WFZzelhTd2daU2s3SUgwZ2ZWeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2MzUmxjQ2h5S1NCN0lISXVkbUZzZFdVZ2FXNXpkR0Z1WTJWdlppQmZYMkYzWVdsMElEOGdVSEp2YldselpTNXlaWE52YkhabEtISXVkbUZzZFdVdWRpa3VkR2hsYmlobWRXeG1hV3hzTENCeVpXcGxZM1FwSURvZ2MyVjBkR3hsS0hGYk1GMWJNbDBzSUhJcE95QjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQm1kV3htYVd4c0tIWmhiSFZsS1NCN0lISmxjM1Z0WlNoY0ltNWxlSFJjSWl3Z2RtRnNkV1VwT3lCOVhISmNiaUFnSUNCbWRXNWpkR2x2YmlCeVpXcGxZM1FvZG1Gc2RXVXBJSHNnY21WemRXMWxLRndpZEdoeWIzZGNJaXdnZG1Gc2RXVXBPeUI5WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJ6WlhSMGJHVW9aaXdnZGlrZ2V5QnBaaUFvWmloMktTd2djUzV6YUdsbWRDZ3BMQ0J4TG14bGJtZDBhQ2tnY21WemRXMWxLSEZiTUYxYk1GMHNJSEZiTUYxYk1WMHBPeUI5WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyRnplVzVqUkdWc1pXZGhkRzl5S0c4cElIdGNjbHh1SUNBZ0lIWmhjaUJwTENCd08xeHlYRzRnSUNBZ2NtVjBkWEp1SUdrZ1BTQjdmU3dnZG1WeVlpaGNJbTVsZUhSY0lpa3NJSFpsY21Jb1hDSjBhSEp2ZDF3aUxDQm1kVzVqZEdsdmJpQW9aU2tnZXlCMGFISnZkeUJsT3lCOUtTd2dkbVZ5WWloY0luSmxkSFZ5Ymx3aUtTd2dhVnRUZVcxaWIyd3VhWFJsY21GMGIzSmRJRDBnWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RHaHBjenNnZlN3Z2FUdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlIWmxjbUlvYml3Z1ppa2dleUJwVzI1ZElEMGdiMXR1WFNBL0lHWjFibU4wYVc5dUlDaDJLU0I3SUhKbGRIVnliaUFvY0NBOUlDRndLU0EvSUhzZ2RtRnNkV1U2SUY5ZllYZGhhWFFvYjF0dVhTaDJLU2tzSUdSdmJtVTZJR1poYkhObElIMGdPaUJtSUQ4Z1ppaDJLU0E2SUhZN0lIMGdPaUJtT3lCOVhISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMkZ6ZVc1alZtRnNkV1Z6S0c4cElIdGNjbHh1SUNBZ0lHbG1JQ2doVTNsdFltOXNMbUZ6ZVc1alNYUmxjbUYwYjNJcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pUZVcxaWIyd3VZWE41Ym1OSmRHVnlZWFJ2Y2lCcGN5QnViM1FnWkdWbWFXNWxaQzVjSWlrN1hISmNiaUFnSUNCMllYSWdiU0E5SUc5YlUzbHRZbTlzTG1GemVXNWpTWFJsY21GMGIzSmRMQ0JwTzF4eVhHNGdJQ0FnY21WMGRYSnVJRzBnUHlCdExtTmhiR3dvYnlrZ09pQW9ieUE5SUhSNWNHVnZaaUJmWDNaaGJIVmxjeUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJRDhnWDE5MllXeDFaWE1vYnlrZ09pQnZXMU41YldKdmJDNXBkR1Z5WVhSdmNsMG9LU3dnYVNBOUlIdDlMQ0IyWlhKaUtGd2libVY0ZEZ3aUtTd2dkbVZ5WWloY0luUm9jbTkzWENJcExDQjJaWEppS0Z3aWNtVjBkWEp1WENJcExDQnBXMU41YldKdmJDNWhjM2x1WTBsMFpYSmhkRzl5WFNBOUlHWjFibU4wYVc5dUlDZ3BJSHNnY21WMGRYSnVJSFJvYVhNN0lIMHNJR2twTzF4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnZG1WeVlpaHVLU0I3SUdsYmJsMGdQU0J2VzI1ZElDWW1JR1oxYm1OMGFXOXVJQ2gyS1NCN0lISmxkSFZ5YmlCdVpYY2dVSEp2YldselpTaG1kVzVqZEdsdmJpQW9jbVZ6YjJ4MlpTd2djbVZxWldOMEtTQjdJSFlnUFNCdlcyNWRLSFlwTENCelpYUjBiR1VvY21WemIyeDJaU3dnY21WcVpXTjBMQ0IyTG1SdmJtVXNJSFl1ZG1Gc2RXVXBPeUI5S1RzZ2ZUc2dmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdjMlYwZEd4bEtISmxjMjlzZG1Vc0lISmxhbVZqZEN3Z1pDd2dkaWtnZXlCUWNtOXRhWE5sTG5KbGMyOXNkbVVvZGlrdWRHaGxiaWhtZFc1amRHbHZiaWgyS1NCN0lISmxjMjlzZG1Vb2V5QjJZV3gxWlRvZ2Rpd2daRzl1WlRvZ1pDQjlLVHNnZlN3Z2NtVnFaV04wS1RzZ2ZWeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTl0WVd0bFZHVnRjR3hoZEdWUFltcGxZM1FvWTI5dmEyVmtMQ0J5WVhjcElIdGNjbHh1SUNBZ0lHbG1JQ2hQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrcElIc2dUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dOdmIydGxaQ3dnWENKeVlYZGNJaXdnZXlCMllXeDFaVG9nY21GM0lIMHBPeUI5SUdWc2MyVWdleUJqYjI5clpXUXVjbUYzSUQwZ2NtRjNPeUI5WEhKY2JpQWdJQ0J5WlhSMWNtNGdZMjl2YTJWa08xeHlYRzU5TzF4eVhHNWNjbHh1ZG1GeUlGOWZjMlYwVFc5a2RXeGxSR1ZtWVhWc2RDQTlJRTlpYW1WamRDNWpjbVZoZEdVZ1B5QW9ablZ1WTNScGIyNG9ieXdnZGlrZ2UxeHlYRzRnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRzhzSUZ3aVpHVm1ZWFZzZEZ3aUxDQjdJR1Z1ZFcxbGNtRmliR1U2SUhSeWRXVXNJSFpoYkhWbE9pQjJJSDBwTzF4eVhHNTlLU0E2SUdaMWJtTjBhVzl1S0c4c0lIWXBJSHRjY2x4dUlDQWdJRzliWENKa1pXWmhkV3gwWENKZElEMGdkanRjY2x4dWZUdGNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgybHRjRzl5ZEZOMFlYSW9iVzlrS1NCN1hISmNiaUFnSUNCcFppQW9iVzlrSUNZbUlHMXZaQzVmWDJWelRXOWtkV3hsS1NCeVpYUjFjbTRnYlc5a08xeHlYRzRnSUNBZ2RtRnlJSEpsYzNWc2RDQTlJSHQ5TzF4eVhHNGdJQ0FnYVdZZ0tHMXZaQ0FoUFNCdWRXeHNLU0JtYjNJZ0tIWmhjaUJySUdsdUlHMXZaQ2tnYVdZZ0tHc2dJVDA5SUZ3aVpHVm1ZWFZzZEZ3aUlDWW1JRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2h0YjJRc0lHc3BLU0JmWDJOeVpXRjBaVUpwYm1ScGJtY29jbVZ6ZFd4MExDQnRiMlFzSUdzcE8xeHlYRzRnSUNBZ1gxOXpaWFJOYjJSMWJHVkVaV1poZFd4MEtISmxjM1ZzZEN3Z2JXOWtLVHRjY2x4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMmx0Y0c5eWRFUmxabUYxYkhRb2JXOWtLU0I3WEhKY2JpQWdJQ0J5WlhSMWNtNGdLRzF2WkNBbUppQnRiMlF1WDE5bGMwMXZaSFZzWlNrZ1B5QnRiMlFnT2lCN0lHUmxabUYxYkhRNklHMXZaQ0I5TzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFZGxkQ2h5WldObGFYWmxjaXdnYzNSaGRHVXNJR3RwYm1Rc0lHWXBJSHRjY2x4dUlDQWdJR2xtSUNocmFXNWtJRDA5UFNCY0ltRmNJaUFtSmlBaFppa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxCeWFYWmhkR1VnWVdOalpYTnpiM0lnZDJGeklHUmxabWx1WldRZ2QybDBhRzkxZENCaElHZGxkSFJsY2x3aUtUdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdjM1JoZEdVZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lISmxZMlZwZG1WeUlDRTlQU0J6ZEdGMFpTQjhmQ0FoWmlBNklDRnpkR0YwWlM1b1lYTW9jbVZqWldsMlpYSXBLU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVEyRnVibTkwSUhKbFlXUWdjSEpwZG1GMFpTQnRaVzFpWlhJZ1puSnZiU0JoYmlCdlltcGxZM1FnZDJodmMyVWdZMnhoYzNNZ1pHbGtJRzV2ZENCa1pXTnNZWEpsSUdsMFhDSXBPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHdHBibVFnUFQwOUlGd2liVndpSUQ4Z1ppQTZJR3RwYm1RZ1BUMDlJRndpWVZ3aUlEOGdaaTVqWVd4c0tISmxZMlZwZG1WeUtTQTZJR1lnUHlCbUxuWmhiSFZsSURvZ2MzUmhkR1V1WjJWMEtISmxZMlZwZG1WeUtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWTJ4aGMzTlFjbWwyWVhSbFJtbGxiR1JUWlhRb2NtVmpaV2wyWlhJc0lITjBZWFJsTENCMllXeDFaU3dnYTJsdVpDd2daaWtnZTF4eVhHNGdJQ0FnYVdZZ0tHdHBibVFnUFQwOUlGd2liVndpS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVSEpwZG1GMFpTQnRaWFJvYjJRZ2FYTWdibTkwSUhkeWFYUmhZbXhsWENJcE8xeHlYRzRnSUNBZ2FXWWdLR3RwYm1RZ1BUMDlJRndpWVZ3aUlDWW1JQ0ZtS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVSEpwZG1GMFpTQmhZMk5sYzNOdmNpQjNZWE1nWkdWbWFXNWxaQ0IzYVhSb2IzVjBJR0VnYzJWMGRHVnlYQ0lwTzF4eVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCemRHRjBaU0E5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJRDhnY21WalpXbDJaWElnSVQwOUlITjBZWFJsSUh4OElDRm1JRG9nSVhOMFlYUmxMbWhoY3loeVpXTmxhWFpsY2lrcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pEWVc1dWIzUWdkM0pwZEdVZ2NISnBkbUYwWlNCdFpXMWlaWElnZEc4Z1lXNGdiMkpxWldOMElIZG9iM05sSUdOc1lYTnpJR1JwWkNCdWIzUWdaR1ZqYkdGeVpTQnBkRndpS1R0Y2NseHVJQ0FnSUhKbGRIVnliaUFvYTJsdVpDQTlQVDBnWENKaFhDSWdQeUJtTG1OaGJHd29jbVZqWldsMlpYSXNJSFpoYkhWbEtTQTZJR1lnUHlCbUxuWmhiSFZsSUQwZ2RtRnNkV1VnT2lCemRHRjBaUzV6WlhRb2NtVmpaV2wyWlhJc0lIWmhiSFZsS1Nrc0lIWmhiSFZsTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFbHVLSE4wWVhSbExDQnlaV05sYVhabGNpa2dlMXh5WEc0Z0lDQWdhV1lnS0hKbFkyVnBkbVZ5SUQwOVBTQnVkV3hzSUh4OElDaDBlWEJsYjJZZ2NtVmpaV2wyWlhJZ0lUMDlJRndpYjJKcVpXTjBYQ0lnSmlZZ2RIbHdaVzltSUhKbFkyVnBkbVZ5SUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lwS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lRMkZ1Ym05MElIVnpaU0FuYVc0bklHOXdaWEpoZEc5eUlHOXVJRzV2YmkxdlltcGxZM1JjSWlrN1hISmNiaUFnSUNCeVpYUjFjbTRnZEhsd1pXOW1JSE4wWVhSbElEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ1B5QnlaV05sYVhabGNpQTlQVDBnYzNSaGRHVWdPaUJ6ZEdGMFpTNW9ZWE1vY21WalpXbDJaWElwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWhaR1JFYVhOd2IzTmhZbXhsVW1WemIzVnlZMlVvWlc1MkxDQjJZV3gxWlN3Z1lYTjVibU1wSUh0Y2NseHVJQ0FnSUdsbUlDaDJZV3gxWlNBaFBUMGdiblZzYkNBbUppQjJZV3gxWlNBaFBUMGdkbTlwWkNBd0tTQjdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCMllXeDFaU0FoUFQwZ1hDSnZZbXBsWTNSY0lpQW1KaUIwZVhCbGIyWWdkbUZzZFdVZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJazlpYW1WamRDQmxlSEJsWTNSbFpDNWNJaWs3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR1JwYzNCdmMyVTdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHRnplVzVqS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hVM2x0WW05c0xtRnplVzVqUkdsemNHOXpaU2tnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lsTjViV0p2YkM1aGMzbHVZMFJwYzNCdmMyVWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmthWE53YjNObElEMGdkbUZzZFdWYlUzbHRZbTlzTG1GemVXNWpSR2x6Y0c5elpWMDdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hrYVhOd2IzTmxJRDA5UFNCMmIybGtJREFwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRlRlVzFpYjJ3dVpHbHpjRzl6WlNrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJbE41YldKdmJDNWthWE53YjNObElHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ1pHbHpjRzl6WlNBOUlIWmhiSFZsVzFONWJXSnZiQzVrYVhOd2IzTmxYVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJrYVhOd2IzTmxJQ0U5UFNCY0ltWjFibU4wYVc5dVhDSXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKUFltcGxZM1FnYm05MElHUnBjM0J2YzJGaWJHVXVYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lHVnVkaTV6ZEdGamF5NXdkWE5vS0hzZ2RtRnNkV1U2SUhaaGJIVmxMQ0JrYVhOd2IzTmxPaUJrYVhOd2IzTmxMQ0JoYzNsdVl6b2dZWE41Ym1NZ2ZTazdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQmxiSE5sSUdsbUlDaGhjM2x1WXlrZ2UxeHlYRzRnSUNBZ0lDQWdJR1Z1ZGk1emRHRmpheTV3ZFhOb0tIc2dZWE41Ym1NNklIUnlkV1VnZlNrN1hISmNiaUFnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVTdYSEpjYm4xY2NseHVYSEpjYm5aaGNpQmZVM1Z3Y0hKbGMzTmxaRVZ5Y205eUlEMGdkSGx3Wlc5bUlGTjFjSEJ5WlhOelpXUkZjbkp2Y2lBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUQ4Z1UzVndjSEpsYzNObFpFVnljbTl5SURvZ1puVnVZM1JwYjI0Z0tHVnljbTl5TENCemRYQndjbVZ6YzJWa0xDQnRaWE56WVdkbEtTQjdYSEpjYmlBZ0lDQjJZWElnWlNBOUlHNWxkeUJGY25KdmNpaHRaWE56WVdkbEtUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCbExtNWhiV1VnUFNCY0lsTjFjSEJ5WlhOelpXUkZjbkp2Y2x3aUxDQmxMbVZ5Y205eUlEMGdaWEp5YjNJc0lHVXVjM1Z3Y0hKbGMzTmxaQ0E5SUhOMWNIQnlaWE56WldRc0lHVTdYSEpjYm4wN1hISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5a2FYTndiM05sVW1WemIzVnlZMlZ6S0dWdWRpa2dlMXh5WEc0Z0lDQWdablZ1WTNScGIyNGdabUZwYkNobEtTQjdYSEpjYmlBZ0lDQWdJQ0FnWlc1MkxtVnljbTl5SUQwZ1pXNTJMbWhoYzBWeWNtOXlJRDhnYm1WM0lGOVRkWEJ3Y21WemMyVmtSWEp5YjNJb1pTd2daVzUyTG1WeWNtOXlMQ0JjSWtGdUlHVnljbTl5SUhkaGN5QnpkWEJ3Y21WemMyVmtJR1IxY21sdVp5QmthWE53YjNOaGJDNWNJaWtnT2lCbE8xeHlYRzRnSUNBZ0lDQWdJR1Z1ZGk1b1lYTkZjbkp2Y2lBOUlIUnlkV1U3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJ1WlhoMEtDa2dlMXh5WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2hsYm5ZdWMzUmhZMnN1YkdWdVozUm9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCeVpXTWdQU0JsYm5ZdWMzUmhZMnN1Y0c5d0tDazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnllU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllYSWdjbVZ6ZFd4MElEMGdjbVZqTG1ScGMzQnZjMlVnSmlZZ2NtVmpMbVJwYzNCdmMyVXVZMkZzYkNoeVpXTXVkbUZzZFdVcE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hKbFl5NWhjM2x1WXlrZ2NtVjBkWEp1SUZCeWIyMXBjMlV1Y21WemIyeDJaU2h5WlhOMWJIUXBMblJvWlc0b2JtVjRkQ3dnWm5WdVkzUnBiMjRvWlNrZ2V5Qm1ZV2xzS0dVcE95QnlaWFIxY200Z2JtVjRkQ2dwT3lCOUtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCallYUmphQ0FvWlNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdabUZwYkNobEtUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCcFppQW9aVzUyTG1oaGMwVnljbTl5S1NCMGFISnZkeUJsYm5ZdVpYSnliM0k3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0J5WlhSMWNtNGdibVY0ZENncE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQjdYSEpjYmlBZ0lDQmZYMlY0ZEdWdVpITTZJRjlmWlhoMFpXNWtjeXhjY2x4dUlDQWdJRjlmWVhOemFXZHVPaUJmWDJGemMybG5iaXhjY2x4dUlDQWdJRjlmY21WemREb2dYMTl5WlhOMExGeHlYRzRnSUNBZ1gxOWtaV052Y21GMFpUb2dYMTlrWldOdmNtRjBaU3hjY2x4dUlDQWdJRjlmY0dGeVlXMDZJRjlmY0dGeVlXMHNYSEpjYmlBZ0lDQmZYMjFsZEdGa1lYUmhPaUJmWDIxbGRHRmtZWFJoTEZ4eVhHNGdJQ0FnWDE5aGQyRnBkR1Z5T2lCZlgyRjNZV2wwWlhJc1hISmNiaUFnSUNCZlgyZGxibVZ5WVhSdmNqb2dYMTluWlc1bGNtRjBiM0lzWEhKY2JpQWdJQ0JmWDJOeVpXRjBaVUpwYm1ScGJtYzZJRjlmWTNKbFlYUmxRbWx1WkdsdVp5eGNjbHh1SUNBZ0lGOWZaWGh3YjNKMFUzUmhjam9nWDE5bGVIQnZjblJUZEdGeUxGeHlYRzRnSUNBZ1gxOTJZV3gxWlhNNklGOWZkbUZzZFdWekxGeHlYRzRnSUNBZ1gxOXlaV0ZrT2lCZlgzSmxZV1FzWEhKY2JpQWdJQ0JmWDNOd2NtVmhaRG9nWDE5emNISmxZV1FzWEhKY2JpQWdJQ0JmWDNOd2NtVmhaRUZ5Y21GNWN6b2dYMTl6Y0hKbFlXUkJjbkpoZVhNc1hISmNiaUFnSUNCZlgzTndjbVZoWkVGeWNtRjVPaUJmWDNOd2NtVmhaRUZ5Y21GNUxGeHlYRzRnSUNBZ1gxOWhkMkZwZERvZ1gxOWhkMkZwZEN4Y2NseHVJQ0FnSUY5ZllYTjVibU5IWlc1bGNtRjBiM0k2SUY5ZllYTjVibU5IWlc1bGNtRjBiM0lzWEhKY2JpQWdJQ0JmWDJGemVXNWpSR1ZzWldkaGRHOXlPaUJmWDJGemVXNWpSR1ZzWldkaGRHOXlMRnh5WEc0Z0lDQWdYMTloYzNsdVkxWmhiSFZsY3pvZ1gxOWhjM2x1WTFaaGJIVmxjeXhjY2x4dUlDQWdJRjlmYldGclpWUmxiWEJzWVhSbFQySnFaV04wT2lCZlgyMWhhMlZVWlcxd2JHRjBaVTlpYW1WamRDeGNjbHh1SUNBZ0lGOWZhVzF3YjNKMFUzUmhjam9nWDE5cGJYQnZjblJUZEdGeUxGeHlYRzRnSUNBZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwT2lCZlgybHRjRzl5ZEVSbFptRjFiSFFzWEhKY2JpQWdJQ0JmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrUjJWME9pQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtSMlYwTEZ4eVhHNGdJQ0FnWDE5amJHRnpjMUJ5YVhaaGRHVkdhV1ZzWkZObGREb2dYMTlqYkdGemMxQnlhWFpoZEdWR2FXVnNaRk5sZEN4Y2NseHVJQ0FnSUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSSmJqb2dYMTlqYkdGemMxQnlhWFpoZEdWR2FXVnNaRWx1TEZ4eVhHNGdJQ0FnWDE5aFpHUkVhWE53YjNOaFlteGxVbVZ6YjNWeVkyVTZJRjlmWVdSa1JHbHpjRzl6WVdKc1pWSmxjMjkxY21ObExGeHlYRzRnSUNBZ1gxOWthWE53YjNObFVtVnpiM1Z5WTJWek9pQmZYMlJwYzNCdmMyVlNaWE52ZFhKalpYTXNYSEpjYm4wN1hISmNiaUlzSW1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWVcxdFlVVlBWRVlvWlRvZ2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1Y0c5M0tHVXNJREl1TWlrN1hHNTlYRzRpTENKcGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdleUJXVWswZ1lYTWdWakJXVWswc0lFMWhkR1Z5YVdGc0lHRnpJRll3VFdGMFpYSnBZV3dnZlNCbWNtOXRJQ2RBY0dsNGFYWXZkSGx3WlhNdGRuSnRMVEF1TUNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJXTVUxVWIyOXVVMk5vWlcxaElHWnliMjBnSjBCd2FYaHBkaTkwZVhCbGN5MTJjbTFqTFcxaGRHVnlhV0ZzY3kxdGRHOXZiaTB4TGpBbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCSFRGUkdURzloWkdWeVVHeDFaMmx1TENCSFRGUkdVR0Z5YzJWeUlIMGdabkp2YlNBbmRHaHlaV1V2WlhoaGJYQnNaWE12YW5OdEwyeHZZV1JsY25NdlIweFVSa3h2WVdSbGNpNXFjeWM3WEc1cGJYQnZjblFnZXlCbllXMXRZVVZQVkVZZ2ZTQm1jbTl0SUNjdUwzVjBhV3h6TDJkaGJXMWhSVTlVUmljN1hHNXBiWEJ2Y25RZ2V5QkhURlJHSUdGeklFZE1WRVpUWTJobGJXRWdmU0JtY205dElDZEFaMngwWmkxMGNtRnVjMlp2Y20wdlkyOXlaU2M3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxTllYUmxjbWxoYkhOV01FTnZiWEJoZEZCc2RXZHBiaUJwYlhCc1pXMWxiblJ6SUVkTVZFWk1iMkZrWlhKUWJIVm5hVzRnZTF4dUlDQndkV0pzYVdNZ2NtVmhaRzl1YkhrZ2NHRnljMlZ5T2lCSFRGUkdVR0Z5YzJWeU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQklHMWhjQ0JtY205dElIWXdJSEpsYm1SbGNpQnhkV1YxWlNCMGJ5QjJNU0J5Wlc1a1pYSWdjWFZsZFdVZ2IyWm1jMlYwTENCbWIzSWdWSEpoYm5Od1lYSmxiblFnYldGMFpYSnBZV3h6TGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCZmNtVnVaR1Z5VVhWbGRXVk5ZWEJVY21GdWMzQmhjbVZ1ZERvZ1RXRndQRzUxYldKbGNpd2diblZ0WW1WeVBqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQnRZWEFnWm5KdmJTQjJNQ0J5Wlc1a1pYSWdjWFZsZFdVZ2RHOGdkakVnY21WdVpHVnlJSEYxWlhWbElHOW1abk5sZEN3Z1ptOXlJRlJ5WVc1emNHRnlaVzUwV2xkeWFYUmxJRzFoZEdWeWFXRnNjeTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWDNKbGJtUmxjbEYxWlhWbFRXRndWSEpoYm5Od1lYSmxiblJhVjNKcGRHVTZJRTFoY0R4dWRXMWlaWElzSUc1MWJXSmxjajQ3WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J1WVcxbEtDazZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUNkV1VrMU5ZWFJsY21saGJITldNRU52YlhCaGRGQnNkV2RwYmljN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9jR0Z5YzJWeU9pQkhURlJHVUdGeWMyVnlLU0I3WEc0Z0lDQWdkR2hwY3k1d1lYSnpaWElnUFNCd1lYSnpaWEk3WEc1Y2JpQWdJQ0IwYUdsekxsOXlaVzVrWlhKUmRXVjFaVTFoY0ZSeVlXNXpjR0Z5Wlc1MElEMGdibVYzSUUxaGNDZ3BPMXh1SUNBZ0lIUm9hWE11WDNKbGJtUmxjbEYxWlhWbFRXRndWSEpoYm5Od1lYSmxiblJhVjNKcGRHVWdQU0J1WlhjZ1RXRndLQ2s3WEc1Y2JpQWdJQ0F2THlCWFQxSkxRVkpQVlU1RU9pQkJaR1FnUzBoU1gzUmxlSFIxY21WZmRISmhibk5tYjNKdElIUnZJR1Y0ZEdWdWMybHZibk5WYzJWa1hHNGdJQ0FnTHk4Z1NYUWdhWE1nZEc5dklHeGhkR1VnZEc4Z1lXUmtJSFJvYVhNZ2FXNGdZbVZtYjNKbFVtOXZkRnh1SUNBZ0lHTnZibk4wSUdwemIyNGdQU0IwYUdsekxuQmhjbk5sY2k1cWMyOXVJR0Z6SUVkTVZFWlRZMmhsYldFdVNVZE1WRVk3WEc1Y2JpQWdJQ0JxYzI5dUxtVjRkR1Z1YzJsdmJuTlZjMlZrSUQwZ2FuTnZiaTVsZUhSbGJuTnBiMjV6VlhObFpDQS9QeUJiWFR0Y2JpQWdJQ0JwWmlBb2FuTnZiaTVsZUhSbGJuTnBiMjV6VlhObFpDNXBibVJsZUU5bUtDZExTRkpmZEdWNGRIVnlaVjkwY21GdWMyWnZjbTBuS1NBOVBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUdwemIyNHVaWGgwWlc1emFXOXVjMVZ6WldRdWNIVnphQ2duUzBoU1gzUmxlSFIxY21WZmRISmhibk5tYjNKdEp5azdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHRnplVzVqSUdKbFptOXlaVkp2YjNRb0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdhbk52YmlBOUlIUm9hWE11Y0dGeWMyVnlMbXB6YjI0Z1lYTWdSMHhVUmxOamFHVnRZUzVKUjB4VVJqdGNibHh1SUNBZ0lDOHZJR1ZoY214NUlHRmliM0owSUdsbUlHbDBJR1J2WlhOdUozUWdkWE5sSUZZd1ZsSk5YRzRnSUNBZ1kyOXVjM1FnZGpCV1VrMUZlSFJsYm5OcGIyNGdQU0JxYzI5dUxtVjRkR1Z1YzJsdmJuTS9MbHNuVmxKTkoxMGdZWE1nVmpCV1VrMGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdZMjl1YzNRZ2RqQk5ZWFJsY21saGJGQnliM0JsY25ScFpYTWdQU0IyTUZaU1RVVjRkR1Z1YzJsdmJqOHViV0YwWlhKcFlXeFFjbTl3WlhKMGFXVnpPMXh1SUNBZ0lHbG1JQ2doZGpCTllYUmxjbWxoYkZCeWIzQmxjblJwWlhNcElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCd2IzQjFiR0YwWlNCeVpXNWtaWElnY1hWbGRXVWdiV0Z3WEc0Z0lDQWdkR2hwY3k1ZmNHOXdkV3hoZEdWU1pXNWtaWEpSZFdWMVpVMWhjQ2gyTUUxaGRHVnlhV0ZzVUhKdmNHVnlkR2xsY3lrN1hHNWNiaUFnSUNBdkx5QmpiMjUyWlhKMElGWXdJRzFoZEdWeWFXRnNJSEJ5YjNCbGNuUnBaWE1nYVc1MGJ5QldNU0JqYjIxd1lYUnBZbXhsSUdadmNtMWhkRnh1SUNBZ0lIWXdUV0YwWlhKcFlXeFFjbTl3WlhKMGFXVnpMbVp2Y2tWaFkyZ29LRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeXdnYldGMFpYSnBZV3hKYm1SbGVDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiV0YwWlhKcFlXeEVaV1lnUFNCcWMyOXVMbTFoZEdWeWFXRnNjejh1VzIxaGRHVnlhV0ZzU1c1a1pYaGRPMXh1WEc0Z0lDQWdJQ0JwWmlBb2JXRjBaWEpwWVd4RVpXWWdQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b1hHNGdJQ0FnSUNBZ0lDQWdZRlpTVFUxaGRHVnlhV0ZzYzFZd1EyOXRjR0YwVUd4MVoybHVPaUJCZEhSbGJYQjBJSFJ2SUhWelpTQnRZWFJsY21saGJITmJKSHR0WVhSbGNtbGhiRWx1WkdWNGZWMGdiMllnWjJ4VVJpQmlkWFFnZEdobElHMWhkR1Z5YVdGc0lHUnZaWE51SjNRZ1pYaHBjM1JnTEZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2h0WVhSbGNtbGhiRkJ5YjNCbGNuUnBaWE11YzJoaFpHVnlJRDA5UFNBblZsSk5MMDFVYjI5dUp5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRZWFJsY21saGJDQTlJSFJvYVhNdVgzQmhjbk5sVmpCTlZHOXZibEJ5YjNCbGNuUnBaWE1vYldGMFpYSnBZV3hRY205d1pYSjBhV1Z6TENCdFlYUmxjbWxoYkVSbFppazdYRzRnSUNBZ0lDQWdJR3B6YjI0dWJXRjBaWEpwWVd4eklWdHRZWFJsY21saGJFbHVaR1Y0WFNBOUlHMWhkR1Z5YVdGc08xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaHRZWFJsY21saGJGQnliM0JsY25ScFpYTXVjMmhoWkdWeVB5NXpkR0Z5ZEhOWGFYUm9LQ2RXVWswdlZXNXNhWFFuS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYUmxjbWxoYkNBOUlIUm9hWE11WDNCaGNuTmxWakJWYm14cGRGQnliM0JsY25ScFpYTW9iV0YwWlhKcFlXeFFjbTl3WlhKMGFXVnpMQ0J0WVhSbGNtbGhiRVJsWmlrN1hHNGdJQ0FnSUNBZ0lHcHpiMjR1YldGMFpYSnBZV3h6SVZ0dFlYUmxjbWxoYkVsdVpHVjRYU0E5SUcxaGRHVnlhV0ZzTzF4dUlDQWdJQ0FnZlNCbGJITmxJR2xtSUNodFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWMyaGhaR1Z5SUQwOVBTQW5WbEpOWDFWVFJWOUhURlJHVTBoQlJFVlNKeWtnZTF4dUlDQWdJQ0FnSUNBdkx5Qmdhbk52Ymk1dFlYUmxjbWxoYkhOYmJXRjBaWEpwWVd4SmJtUmxlRjFnSUhOb2IzVnNaQ0JpWlNCaGJISmxZV1I1SUhaaGJHbGtYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWUZaU1RVMWhkR1Z5YVdGc2MxWXdRMjl0Y0dGMFVHeDFaMmx1T2lCVmJtdHViM2R1SUhOb1lXUmxjam9nSkh0dFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWMyaGhaR1Z5ZldBcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmZjR0Z5YzJWV01FMVViMjl1VUhKdmNHVnlkR2xsY3loY2JpQWdJQ0J0WVhSbGNtbGhiRkJ5YjNCbGNuUnBaWE02SUZZd1RXRjBaWEpwWVd3c1hHNGdJQ0FnYzJOb1pXMWhUV0YwWlhKcFlXdzZJRWRNVkVaVFkyaGxiV0V1U1UxaGRHVnlhV0ZzTEZ4dUlDQXBPaUJIVEZSR1UyTm9aVzFoTGtsTllYUmxjbWxoYkNCN1hHNGdJQ0FnWTI5dWMzUWdhWE5VY21GdWMzQmhjbVZ1ZENBOUlHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5NXJaWGwzYjNKa1RXRndQeTViSjE5QlRGQklRVUpNUlU1RVgwOU9KMTBnUHo4Z1ptRnNjMlU3WEc0Z0lDQWdZMjl1YzNRZ1pXNWhZbXhsWkZwWGNtbDBaU0E5SUcxaGRHVnlhV0ZzVUhKdmNHVnlkR2xsY3k1bWJHOWhkRkJ5YjNCbGNuUnBaWE0vTGxzblgxcFhjbWwwWlNkZElEMDlQU0F4TzF4dUlDQWdJR052Ym5OMElIUnlZVzV6Y0dGeVpXNTBWMmwwYUZwWGNtbDBaU0E5SUdWdVlXSnNaV1JhVjNKcGRHVWdKaVlnYVhOVWNtRnVjM0JoY21WdWREdGNibHh1SUNBZ0lHTnZibk4wSUhKbGJtUmxjbEYxWlhWbFQyWm1jMlYwVG5WdFltVnlJRDBnZEdocGN5NWZkakJRWVhKelpWSmxibVJsY2xGMVpYVmxLRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnBjME4xZEc5bVppQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVyWlhsM2IzSmtUV0Z3UHk1YkoxOUJURkJJUVZSRlUxUmZUMDRuWFNBL1B5Qm1ZV3h6WlR0Y2JpQWdJQ0JqYjI1emRDQmhiSEJvWVUxdlpHVWdQU0JwYzFSeVlXNXpjR0Z5Wlc1MElEOGdKMEpNUlU1RUp5QTZJR2x6UTNWMGIyWm1JRDhnSjAxQlUwc25JRG9nSjA5UVFWRlZSU2M3WEc0Z0lDQWdZMjl1YzNRZ1lXeHdhR0ZEZFhSdlptWWdQU0JwYzBOMWRHOW1aaUEvSUcxaGRHVnlhV0ZzVUhKdmNHVnlkR2xsY3k1bWJHOWhkRkJ5YjNCbGNuUnBaWE0vTGxzblgwTjFkRzltWmlkZElEb2dkVzVrWldacGJtVmtPMXh1WEc0Z0lDQWdZMjl1YzNRZ1kzVnNiRTF2WkdVZ1BTQnRZWFJsY21saGJGQnliM0JsY25ScFpYTXVabXh2WVhSUWNtOXdaWEowYVdWelB5NWJKMTlEZFd4c1RXOWtaU2RkSUQ4L0lESTdJQzh2SUdWdWRXMHNJSHNnVDJabUxDQkdjbTl1ZEN3Z1FtRmpheUI5WEc0Z0lDQWdZMjl1YzNRZ1pHOTFZbXhsVTJsa1pXUWdQU0JqZFd4c1RXOWtaU0E5UFQwZ01EdGNibHh1SUNBZ0lHTnZibk4wSUhSbGVIUjFjbVZVY21GdWMyWnZjbTFGZUhRZ1BTQjBhR2x6TGw5d2IzSjBWR1Y0ZEhWeVpWUnlZVzV6Wm05eWJTaHRZWFJsY21saGJGQnliM0JsY25ScFpYTXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1ltRnpaVU52Ykc5eVJtRmpkRzl5SUQwZ2JXRjBaWEpwWVd4UWNtOXdaWEowYVdWekxuWmxZM1J2Y2xCeWIzQmxjblJwWlhNL0xsc25YME52Ykc5eUoxMC9MbTFoY0NoY2JpQWdJQ0FnSUNoMk9pQnVkVzFpWlhJc0lHazZJRzUxYldKbGNpa2dQVDRnS0drZ1BUMDlJRE1nUHlCMklEb2daMkZ0YldGRlQxUkdLSFlwS1N3Z0x5OGdZV3h3YUdFZ1kyaGhibTVsYkNCcGN5QnpkRzl5WldRZ2FXNGdiR2x1WldGeVhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQmlZWE5sUTI5c2IzSlVaWGgwZFhKbFNXNWtaWGdnUFNCdFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWRHVjRkSFZ5WlZCeWIzQmxjblJwWlhNL0xsc25YMDFoYVc1VVpYZ25YVHRjYmlBZ0lDQmpiMjV6ZENCaVlYTmxRMjlzYjNKVVpYaDBkWEpsSUQxY2JpQWdJQ0FnSUdKaGMyVkRiMnh2Y2xSbGVIUjFjbVZKYm1SbGVDQWhQU0J1ZFd4c1hHNGdJQ0FnSUNBZ0lEOGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXNWtaWGc2SUdKaGMyVkRiMnh2Y2xSbGVIUjFjbVZKYm1SbGVDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGRHVnVjMmx2Ym5NNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVkR1Y0ZEhWeVpWUnlZVzV6Wm05eWJVVjRkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lHTnZibk4wSUc1dmNtMWhiRlJsZUhSMWNtVlRZMkZzWlNBOUlHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5NW1iRzloZEZCeWIzQmxjblJwWlhNL0xsc25YMEoxYlhCVFkyRnNaU2RkTzF4dUlDQWdJR052Ym5OMElHNXZjbTFoYkZSbGVIUjFjbVZKYm1SbGVDQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTUwWlhoMGRYSmxVSEp2Y0dWeWRHbGxjejh1V3lkZlFuVnRjRTFoY0NkZE8xeHVJQ0FnSUdOdmJuTjBJRzV2Y20xaGJGUmxlSFIxY21VZ1BWeHVJQ0FnSUNBZ2JtOXliV0ZzVkdWNGRIVnlaVWx1WkdWNElDRTlJRzUxYkd4Y2JpQWdJQ0FnSUNBZ1B5QjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcGJtUmxlRG9nYm05eWJXRnNWR1Y0ZEhWeVpVbHVaR1Y0TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMk5oYkdVNklHNXZjbTFoYkZSbGVIUjFjbVZUWTJGc1pTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGRHVnVjMmx2Ym5NNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVkR1Y0ZEhWeVpWUnlZVzV6Wm05eWJVVjRkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lHTnZibk4wSUdWdGFYTnphWFpsUm1GamRHOXlJRDBnYldGMFpYSnBZV3hRY205d1pYSjBhV1Z6TG5abFkzUnZjbEJ5YjNCbGNuUnBaWE0vTGxzblgwVnRhWE56YVc5dVEyOXNiM0luWFQ4dWJXRndLR2RoYlcxaFJVOVVSaWs3WEc0Z0lDQWdZMjl1YzNRZ1pXMXBjM05wZG1WVVpYaDBkWEpsU1c1a1pYZ2dQU0J0WVhSbGNtbGhiRkJ5YjNCbGNuUnBaWE11ZEdWNGRIVnlaVkJ5YjNCbGNuUnBaWE0vTGxzblgwVnRhWE56YVc5dVRXRndKMTA3WEc0Z0lDQWdZMjl1YzNRZ1pXMXBjM05wZG1WVVpYaDBkWEpsSUQxY2JpQWdJQ0FnSUdWdGFYTnphWFpsVkdWNGRIVnlaVWx1WkdWNElDRTlJRzUxYkd4Y2JpQWdJQ0FnSUNBZ1B5QjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcGJtUmxlRG9nWlcxcGMzTnBkbVZVWlhoMGRYSmxTVzVrWlhnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsZUhSbGJuTnBiMjV6T2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dUxuUmxlSFIxY21WVWNtRnVjMlp2Y20xRmVIUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnT2lCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNCamIyNXpkQ0J6YUdGa1pVTnZiRzl5Um1GamRHOXlJRDBnYldGMFpYSnBZV3hRY205d1pYSjBhV1Z6TG5abFkzUnZjbEJ5YjNCbGNuUnBaWE0vTGxzblgxTm9ZV1JsUTI5c2IzSW5YVDh1YldGd0tHZGhiVzFoUlU5VVJpazdYRzRnSUNBZ1kyOXVjM1FnYzJoaFpHVk5kV3gwYVhCc2VWUmxlSFIxY21WSmJtUmxlQ0E5SUcxaGRHVnlhV0ZzVUhKdmNHVnlkR2xsY3k1MFpYaDBkWEpsVUhKdmNHVnlkR2xsY3o4dVd5ZGZVMmhoWkdWVVpYaDBkWEpsSjEwN1hHNGdJQ0FnWTI5dWMzUWdjMmhoWkdWTmRXeDBhWEJzZVZSbGVIUjFjbVVnUFZ4dUlDQWdJQ0FnYzJoaFpHVk5kV3gwYVhCc2VWUmxlSFIxY21WSmJtUmxlQ0FoUFNCdWRXeHNYRzRnSUNBZ0lDQWdJRDhnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzVrWlhnNklITm9ZV1JsVFhWc2RHbHdiSGxVWlhoMGRYSmxTVzVrWlhnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsZUhSbGJuTnBiMjV6T2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dUxuUmxlSFIxY21WVWNtRnVjMlp2Y20xRmVIUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnT2lCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNBdkx5QXZMeUJqYjI1MlpYSjBJSFl3SUhOb1lXUmxJSE5vYVdaMElDOGdjMmhoWkdVZ2RHOXZibmxjYmlBZ0lDQnNaWFFnYzJoaFpHbHVaMU5vYVdaMFJtRmpkRzl5SUQwZ2JXRjBaWEpwWVd4UWNtOXdaWEowYVdWekxtWnNiMkYwVUhKdmNHVnlkR2xsY3o4dVd5ZGZVMmhoWkdWVGFHbG1kQ2RkSUQ4L0lEQXVNRHRjYmlBZ0lDQnNaWFFnYzJoaFpHbHVaMVJ2YjI1NVJtRmpkRzl5SUQwZ2JXRjBaWEpwWVd4UWNtOXdaWEowYVdWekxtWnNiMkYwVUhKdmNHVnlkR2xsY3o4dVd5ZGZVMmhoWkdWVWIyOXVlU2RkSUQ4L0lEQXVPVHRjYmlBZ0lDQnphR0ZrYVc1blZHOXZibmxHWVdOMGIzSWdQU0JVU0ZKRlJTNU5ZWFJvVlhScGJITXViR1Z5Y0NoemFHRmthVzVuVkc5dmJubEdZV04wYjNJc0lERXVNQ3dnTUM0MUlDc2dNQzQxSUNvZ2MyaGhaR2x1WjFOb2FXWjBSbUZqZEc5eUtUdGNiaUFnSUNCemFHRmthVzVuVTJocFpuUkdZV04wYjNJZ1BTQXRjMmhoWkdsdVoxTm9hV1owUm1GamRHOXlJQzBnS0RFdU1DQXRJSE5vWVdScGJtZFViMjl1ZVVaaFkzUnZjaWs3WEc1Y2JpQWdJQ0JqYjI1emRDQm5hVWx1ZEdWdWMybDBlVVpoWTNSdmNpQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVtYkc5aGRGQnliM0JsY25ScFpYTS9MbHNuWDBsdVpHbHlaV04wVEdsbmFIUkpiblJsYm5OcGRIa25YVHRjYmlBZ0lDQmpiMjV6ZENCbmFVVnhkV0ZzYVhwaGRHbHZia1poWTNSdmNpQTlJR2RwU1c1MFpXNXphWFI1Um1GamRHOXlJRDhnTVM0d0lDMGdaMmxKYm5SbGJuTnBkSGxHWVdOMGIzSWdPaUIxYm1SbFptbHVaV1E3WEc1Y2JpQWdJQ0JqYjI1emRDQnRZWFJqWVhCVVpYaDBkWEpsU1c1a1pYZ2dQU0J0WVhSbGNtbGhiRkJ5YjNCbGNuUnBaWE11ZEdWNGRIVnlaVkJ5YjNCbGNuUnBaWE0vTGxzblgxTndhR1Z5WlVGa1pDZGRPMXh1SUNBZ0lHTnZibk4wSUcxaGRHTmhjRVpoWTNSdmNpQTlJRzFoZEdOaGNGUmxlSFIxY21WSmJtUmxlQ0FoUFNCdWRXeHNJRDhnV3pFdU1Dd2dNUzR3TENBeExqQmRJRG9nZFc1a1pXWnBibVZrTzF4dUlDQWdJR052Ym5OMElHMWhkR05oY0ZSbGVIUjFjbVVnUFZ4dUlDQWdJQ0FnYldGMFkyRndWR1Y0ZEhWeVpVbHVaR1Y0SUNFOUlHNTFiR3hjYmlBZ0lDQWdJQ0FnUHlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGVEb2diV0YwWTJGd1ZHVjRkSFZ5WlVsdVpHVjRMRnh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQmpiMjV6ZENCeWFXMU1hV2RvZEdsdVowMXBlRVpoWTNSdmNpQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVtYkc5aGRGQnliM0JsY25ScFpYTS9MbHNuWDFKcGJVeHBaMmgwYVc1blRXbDRKMTA3WEc0Z0lDQWdZMjl1YzNRZ2NtbHRUWFZzZEdsd2JIbFVaWGgwZFhKbFNXNWtaWGdnUFNCdFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWRHVjRkSFZ5WlZCeWIzQmxjblJwWlhNL0xsc25YMUpwYlZSbGVIUjFjbVVuWFR0Y2JpQWdJQ0JqYjI1emRDQnlhVzFOZFd4MGFYQnNlVlJsZUhSMWNtVWdQVnh1SUNBZ0lDQWdjbWx0VFhWc2RHbHdiSGxVWlhoMGRYSmxTVzVrWlhnZ0lUMGdiblZzYkZ4dUlDQWdJQ0FnSUNBL0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRPaUJ5YVcxTmRXeDBhWEJzZVZSbGVIUjFjbVZKYm1SbGVDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGRHVnVjMmx2Ym5NNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVkR1Y0ZEhWeVpWUnlZVzV6Wm05eWJVVjRkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lHTnZibk4wSUhCaGNtRnRaWFJ5YVdOU2FXMURiMnh2Y2taaFkzUnZjaUE5SUcxaGRHVnlhV0ZzVUhKdmNHVnlkR2xsY3k1MlpXTjBiM0pRY205d1pYSjBhV1Z6UHk1YkoxOVNhVzFEYjJ4dmNpZGRQeTV0WVhBb1oyRnRiV0ZGVDFSR0tUdGNiaUFnSUNCamIyNXpkQ0J3WVhKaGJXVjBjbWxqVW1sdFJuSmxjMjVsYkZCdmQyVnlSbUZqZEc5eUlEMGdiV0YwWlhKcFlXeFFjbTl3WlhKMGFXVnpMbVpzYjJGMFVISnZjR1Z5ZEdsbGN6OHVXeWRmVW1sdFJuSmxjMjVsYkZCdmQyVnlKMTA3WEc0Z0lDQWdZMjl1YzNRZ2NHRnlZVzFsZEhKcFkxSnBiVXhwWm5SR1lXTjBiM0lnUFNCdFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdVpteHZZWFJRY205d1pYSjBhV1Z6UHk1YkoxOVNhVzFNYVdaMEoxMDdYRzVjYmlBZ0lDQmpiMjV6ZENCdmRYUnNhVzVsVjJsa2RHaE5iMlJsSUQwZ1d5ZHViMjVsSnl3Z0ozZHZjbXhrUTI5dmNtUnBibUYwWlhNbkxDQW5jMk55WldWdVEyOXZjbVJwYm1GMFpYTW5YVnRjYmlBZ0lDQWdJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVtYkc5aGRGQnliM0JsY25ScFpYTS9MbHNuWDA5MWRHeHBibVZYYVdSMGFFMXZaR1VuWFNBL1B5QXdYRzRnSUNBZ1hTQmhjeUJXTVUxVWIyOXVVMk5vWlcxaExrMWhkR1Z5YVdGc2MwMVViMjl1VDNWMGJHbHVaVmRwWkhSb1RXOWtaVHRjYmx4dUlDQWdJQzh2SUM4dklIWXdJRzkxZEd4cGJtVlhhV1IwYUVaaFkzUnZjaUJwY3lCcGJpQmpaVzUwYVcxbGRHVnlYRzRnSUNBZ2JHVjBJRzkxZEd4cGJtVlhhV1IwYUVaaFkzUnZjaUE5SUcxaGRHVnlhV0ZzVUhKdmNHVnlkR2xsY3k1bWJHOWhkRkJ5YjNCbGNuUnBaWE0vTGxzblgwOTFkR3hwYm1WWGFXUjBhQ2RkSUQ4L0lEQXVNRHRjYmlBZ0lDQnZkWFJzYVc1bFYybGtkR2hHWVdOMGIzSWdQU0F3TGpBeElDb2diM1YwYkdsdVpWZHBaSFJvUm1GamRHOXlPMXh1WEc0Z0lDQWdZMjl1YzNRZ2IzVjBiR2x1WlZkcFpIUm9UWFZzZEdsd2JIbFVaWGgwZFhKbFNXNWtaWGdnUFNCdFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWRHVjRkSFZ5WlZCeWIzQmxjblJwWlhNL0xsc25YMDkxZEd4cGJtVlhhV1IwYUZSbGVIUjFjbVVuWFR0Y2JpQWdJQ0JqYjI1emRDQnZkWFJzYVc1bFYybGtkR2hOZFd4MGFYQnNlVlJsZUhSMWNtVWdQVnh1SUNBZ0lDQWdiM1YwYkdsdVpWZHBaSFJvVFhWc2RHbHdiSGxVWlhoMGRYSmxTVzVrWlhnZ0lUMGdiblZzYkZ4dUlDQWdJQ0FnSUNBL0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRPaUJ2ZFhSc2FXNWxWMmxrZEdoTmRXeDBhWEJzZVZSbGVIUjFjbVZKYm1SbGVDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGRHVnVjMmx2Ym5NNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVkR1Y0ZEhWeVpWUnlZVzV6Wm05eWJVVjRkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lHTnZibk4wSUc5MWRHeHBibVZEYjJ4dmNrWmhZM1J2Y2lBOUlHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5NTJaV04wYjNKUWNtOXdaWEowYVdWelB5NWJKMTlQZFhSc2FXNWxRMjlzYjNJblhUOHViV0Z3S0dkaGJXMWhSVTlVUmlrN1hHNGdJQ0FnWTI5dWMzUWdiM1YwYkdsdVpVTnZiRzl5VFc5a1pTQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVtYkc5aGRGQnliM0JsY25ScFpYTS9MbHNuWDA5MWRHeHBibVZEYjJ4dmNrMXZaR1VuWFRzZ0x5OGdaVzUxYlN3Z2V5QkdhWGhsWkN3Z1RXbDRaV1FnZlZ4dUlDQWdJR052Ym5OMElHOTFkR3hwYm1WTWFXZG9kR2x1WjAxcGVFWmhZM1J2Y2lBOVhHNGdJQ0FnSUNCdmRYUnNhVzVsUTI5c2IzSk5iMlJsSUQwOVBTQXhJRDhnYldGMFpYSnBZV3hRY205d1pYSjBhV1Z6TG1ac2IyRjBVSEp2Y0dWeWRHbGxjejh1V3lkZlQzVjBiR2x1WlV4cFoyaDBhVzVuVFdsNEoxMGdPaUF3TGpBN1hHNWNiaUFnSUNCamIyNXpkQ0IxZGtGdWFXMWhkR2x2YmsxaGMydFVaWGgwZFhKbFNXNWtaWGdnUFNCdFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWRHVjRkSFZ5WlZCeWIzQmxjblJwWlhNL0xsc25YMVYyUVc1cGJVMWhjMnRVWlhoMGRYSmxKMTA3WEc0Z0lDQWdZMjl1YzNRZ2RYWkJibWx0WVhScGIyNU5ZWE5yVkdWNGRIVnlaU0E5WEc0Z0lDQWdJQ0IxZGtGdWFXMWhkR2x2YmsxaGMydFVaWGgwZFhKbFNXNWtaWGdnSVQwZ2JuVnNiRnh1SUNBZ0lDQWdJQ0EvSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWNE9pQjFka0Z1YVcxaGRHbHZiazFoYzJ0VVpYaDBkWEpsU1c1a1pYZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCbGVIUmxibk5wYjI1ek9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDNHVMblJsZUhSMWNtVlVjbUZ1YzJadmNtMUZlSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQmpiMjV6ZENCMWRrRnVhVzFoZEdsdmJsTmpjbTlzYkZoVGNHVmxaRVpoWTNSdmNpQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVtYkc5aGRGQnliM0JsY25ScFpYTS9MbHNuWDFWMlFXNXBiVk5qY205c2JGZ25YVHRjYmx4dUlDQWdJQzh2SUhWMlFXNXBiV0YwYVc5dVUyTnliMnhzV1ZOd1pXVmtSbUZqZEc5eUlIZHBiR3dnWW1VZ2IzQndiM05wZEdVZ1ltVjBkMlZsYmlCV01DQmhibVFnVmpGY2JpQWdJQ0JzWlhRZ2RYWkJibWx0WVhScGIyNVRZM0p2Ykd4WlUzQmxaV1JHWVdOMGIzSWdQU0J0WVhSbGNtbGhiRkJ5YjNCbGNuUnBaWE11Wm14dllYUlFjbTl3WlhKMGFXVnpQeTViSjE5VmRrRnVhVzFUWTNKdmJHeFpKMTA3WEc0Z0lDQWdhV1lnS0hWMlFXNXBiV0YwYVc5dVUyTnliMnhzV1ZOd1pXVmtSbUZqZEc5eUlDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lIVjJRVzVwYldGMGFXOXVVMk55YjJ4c1dWTndaV1ZrUm1GamRHOXlJRDBnTFhWMlFXNXBiV0YwYVc5dVUyTnliMnhzV1ZOd1pXVmtSbUZqZEc5eU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSFYyUVc1cGJXRjBhVzl1VW05MFlYUnBiMjVUY0dWbFpFWmhZM1J2Y2lBOUlHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5NW1iRzloZEZCeWIzQmxjblJwWlhNL0xsc25YMVYyUVc1cGJWSnZkR0YwYVc5dUoxMDdYRzVjYmlBZ0lDQmpiMjV6ZENCdGRHOXZia1Y0ZEdWdWMybHZiam9nVmpGTlZHOXZibE5qYUdWdFlTNVdVazFEVFdGMFpYSnBZV3h6VFZSdmIyNGdQU0I3WEc0Z0lDQWdJQ0J6Y0dWalZtVnljMmx2YmpvZ0p6RXVNQ2NzWEc0Z0lDQWdJQ0IwY21GdWMzQmhjbVZ1ZEZkcGRHaGFWM0pwZEdVc1hHNGdJQ0FnSUNCeVpXNWtaWEpSZFdWMVpVOW1abk5sZEU1MWJXSmxjaXhjYmlBZ0lDQWdJSE5vWVdSbFEyOXNiM0pHWVdOMGIzSXNYRzRnSUNBZ0lDQnphR0ZrWlUxMWJIUnBjR3g1VkdWNGRIVnlaU3hjYmlBZ0lDQWdJSE5vWVdScGJtZFRhR2xtZEVaaFkzUnZjaXhjYmlBZ0lDQWdJSE5vWVdScGJtZFViMjl1ZVVaaFkzUnZjaXhjYmlBZ0lDQWdJR2RwUlhGMVlXeHBlbUYwYVc5dVJtRmpkRzl5TEZ4dUlDQWdJQ0FnYldGMFkyRndSbUZqZEc5eUxGeHVJQ0FnSUNBZ2JXRjBZMkZ3VkdWNGRIVnlaU3hjYmlBZ0lDQWdJSEpwYlV4cFoyaDBhVzVuVFdsNFJtRmpkRzl5TEZ4dUlDQWdJQ0FnY21sdFRYVnNkR2x3YkhsVVpYaDBkWEpsTEZ4dUlDQWdJQ0FnY0dGeVlXMWxkSEpwWTFKcGJVTnZiRzl5Um1GamRHOXlMRnh1SUNBZ0lDQWdjR0Z5WVcxbGRISnBZMUpwYlVaeVpYTnVaV3hRYjNkbGNrWmhZM1J2Y2l4Y2JpQWdJQ0FnSUhCaGNtRnRaWFJ5YVdOU2FXMU1hV1owUm1GamRHOXlMRnh1SUNBZ0lDQWdiM1YwYkdsdVpWZHBaSFJvVFc5a1pTeGNiaUFnSUNBZ0lHOTFkR3hwYm1WWGFXUjBhRVpoWTNSdmNpeGNiaUFnSUNBZ0lHOTFkR3hwYm1WWGFXUjBhRTExYkhScGNHeDVWR1Y0ZEhWeVpTeGNiaUFnSUNBZ0lHOTFkR3hwYm1WRGIyeHZja1poWTNSdmNpeGNiaUFnSUNBZ0lHOTFkR3hwYm1WTWFXZG9kR2x1WjAxcGVFWmhZM1J2Y2l4Y2JpQWdJQ0FnSUhWMlFXNXBiV0YwYVc5dVRXRnphMVJsZUhSMWNtVXNYRzRnSUNBZ0lDQjFka0Z1YVcxaGRHbHZibE5qY205c2JGaFRjR1ZsWkVaaFkzUnZjaXhjYmlBZ0lDQWdJSFYyUVc1cGJXRjBhVzl1VTJOeWIyeHNXVk53WldWa1JtRmpkRzl5TEZ4dUlDQWdJQ0FnZFhaQmJtbHRZWFJwYjI1U2IzUmhkR2x2YmxOd1pXVmtSbUZqZEc5eUxGeHVJQ0FnSUgwN1hHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnTGk0dWMyTm9aVzFoVFdGMFpYSnBZV3dzWEc1Y2JpQWdJQ0FnSUhCaWNrMWxkR0ZzYkdsalVtOTFaMmh1WlhOek9pQjdYRzRnSUNBZ0lDQWdJR0poYzJWRGIyeHZja1poWTNSdmNpeGNiaUFnSUNBZ0lDQWdZbUZ6WlVOdmJHOXlWR1Y0ZEhWeVpTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnViM0p0WVd4VVpYaDBkWEpsTEZ4dUlDQWdJQ0FnWlcxcGMzTnBkbVZVWlhoMGRYSmxMRnh1SUNBZ0lDQWdaVzFwYzNOcGRtVkdZV04wYjNJc1hHNGdJQ0FnSUNCaGJIQm9ZVTF2WkdVc1hHNGdJQ0FnSUNCaGJIQm9ZVU4xZEc5bVppeGNiaUFnSUNBZ0lHUnZkV0pzWlZOcFpHVmtMRnh1SUNBZ0lDQWdaWGgwWlc1emFXOXVjem9nZTF4dUlDQWdJQ0FnSUNBdkx5QmxjMnhwYm5RdFpHbHpZV0pzWlMxdVpYaDBMV3hwYm1VZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNWhiV2x1WnkxamIyNTJaVzUwYVc5dVhHNGdJQ0FnSUNBZ0lGWlNUVU5mYldGMFpYSnBZV3h6WDIxMGIyOXVPaUJ0ZEc5dmJrVjRkR1Z1YzJsdmJpeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYM0JoY25ObFZqQlZibXhwZEZCeWIzQmxjblJwWlhNb1hHNGdJQ0FnYldGMFpYSnBZV3hRY205d1pYSjBhV1Z6T2lCV01FMWhkR1Z5YVdGc0xGeHVJQ0FnSUhOamFHVnRZVTFoZEdWeWFXRnNPaUJIVEZSR1UyTm9aVzFoTGtsTllYUmxjbWxoYkN4Y2JpQWdLVG9nUjB4VVJsTmphR1Z0WVM1SlRXRjBaWEpwWVd3Z2UxeHVJQ0FnSUdOdmJuTjBJR2x6VkhKaGJuTndZWEpsYm5SYVYzSnBkR1VnUFNCdFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWMyaGhaR1Z5SUQwOVBTQW5WbEpOTDFWdWJHbDBWSEpoYm5Od1lYSmxiblJhVjNKcGRHVW5PMXh1SUNBZ0lHTnZibk4wSUdselZISmhibk53WVhKbGJuUWdQU0J0WVhSbGNtbGhiRkJ5YjNCbGNuUnBaWE11YzJoaFpHVnlJRDA5UFNBblZsSk5MMVZ1YkdsMFZISmhibk53WVhKbGJuUW5JSHg4SUdselZISmhibk53WVhKbGJuUmFWM0pwZEdVN1hHNWNiaUFnSUNCamIyNXpkQ0J5Wlc1a1pYSlJkV1YxWlU5bVpuTmxkRTUxYldKbGNpQTlJSFJvYVhNdVgzWXdVR0Z5YzJWU1pXNWtaWEpSZFdWMVpTaHRZWFJsY21saGJGQnliM0JsY25ScFpYTXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2FYTkRkWFJ2Wm1ZZ1BTQnRZWFJsY21saGJGQnliM0JsY25ScFpYTXVjMmhoWkdWeUlEMDlQU0FuVmxKTkwxVnViR2wwUTNWMGIzVjBKenRjYmlBZ0lDQmpiMjV6ZENCaGJIQm9ZVTF2WkdVZ1BTQnBjMVJ5WVc1emNHRnlaVzUwSUQ4Z0owSk1SVTVFSnlBNklHbHpRM1YwYjJabUlEOGdKMDFCVTBzbklEb2dKMDlRUVZGVlJTYzdYRzRnSUNBZ1kyOXVjM1FnWVd4d2FHRkRkWFJ2Wm1ZZ1BTQnBjME4xZEc5bVppQS9JRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVtYkc5aGRGQnliM0JsY25ScFpYTS9MbHNuWDBOMWRHOW1aaWRkSURvZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ1kyOXVjM1FnZEdWNGRIVnlaVlJ5WVc1elptOXliVVY0ZENBOUlIUm9hWE11WDNCdmNuUlVaWGgwZFhKbFZISmhibk5tYjNKdEtHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5azdYRzVjYmlBZ0lDQmpiMjV6ZENCaVlYTmxRMjlzYjNKR1lXTjBiM0lnUFNCdFlYUmxjbWxoYkZCeWIzQmxjblJwWlhNdWRtVmpkRzl5VUhKdmNHVnlkR2xsY3o4dVd5ZGZRMjlzYjNJblhUOHViV0Z3S0dkaGJXMWhSVTlVUmlrN1hHNGdJQ0FnWTI5dWMzUWdZbUZ6WlVOdmJHOXlWR1Y0ZEhWeVpVbHVaR1Y0SUQwZ2JXRjBaWEpwWVd4UWNtOXdaWEowYVdWekxuUmxlSFIxY21WUWNtOXdaWEowYVdWelB5NWJKMTlOWVdsdVZHVjRKMTA3WEc0Z0lDQWdZMjl1YzNRZ1ltRnpaVU52Ykc5eVZHVjRkSFZ5WlNBOVhHNGdJQ0FnSUNCaVlYTmxRMjlzYjNKVVpYaDBkWEpsU1c1a1pYZ2dJVDBnYm5Wc2JGeHVJQ0FnSUNBZ0lDQS9JSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVaR1Y0T2lCaVlYTmxRMjlzYjNKVVpYaDBkWEpsU1c1a1pYZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCbGVIUmxibk5wYjI1ek9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDNHVMblJsZUhSMWNtVlVjbUZ1YzJadmNtMUZlSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQXZMeUIxYzJVZ2JYUnZiMjRnYVc1emRHVmhaQ0J2WmlCMWJteHBkQ3dnYzJsdVkyVWdkR2hsY21VZ2JXbG5hSFFnWW1VZ1ZsSk5NQzR3SUhOd1pXTnBabWxqSUdabFlYUjFjbVZ6SUhSb1lYUWdZWEpsSUc1dmRDQnpkWEJ3YjNKMFpXUWdZbmtnWjJ4MFpseHVJQ0FnSUdOdmJuTjBJRzEwYjI5dVJYaDBaVzV6YVc5dU9pQldNVTFVYjI5dVUyTm9aVzFoTGxaU1RVTk5ZWFJsY21saGJITk5WRzl2YmlBOUlIdGNiaUFnSUNBZ0lITndaV05XWlhKemFXOXVPaUFuTVM0d0p5eGNiaUFnSUNBZ0lIUnlZVzV6Y0dGeVpXNTBWMmwwYUZwWGNtbDBaVG9nYVhOVWNtRnVjM0JoY21WdWRGcFhjbWwwWlN4Y2JpQWdJQ0FnSUhKbGJtUmxjbEYxWlhWbFQyWm1jMlYwVG5WdFltVnlMRnh1SUNBZ0lDQWdjMmhoWkdWRGIyeHZja1poWTNSdmNqb2dZbUZ6WlVOdmJHOXlSbUZqZEc5eUxGeHVJQ0FnSUNBZ2MyaGhaR1ZOZFd4MGFYQnNlVlJsZUhSMWNtVTZJR0poYzJWRGIyeHZjbFJsZUhSMWNtVXNYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNBdUxpNXpZMmhsYldGTllYUmxjbWxoYkN4Y2JseHVJQ0FnSUNBZ2NHSnlUV1YwWVd4c2FXTlNiM1ZuYUc1bGMzTTZJSHRjYmlBZ0lDQWdJQ0FnWW1GelpVTnZiRzl5Um1GamRHOXlMRnh1SUNBZ0lDQWdJQ0JpWVhObFEyOXNiM0pVWlhoMGRYSmxMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR0ZzY0doaFRXOWtaU3hjYmlBZ0lDQWdJR0ZzY0doaFEzVjBiMlptTEZ4dUlDQWdJQ0FnWlhoMFpXNXphVzl1Y3pvZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjVoYldsdVp5MWpiMjUyWlc1MGFXOXVYRzRnSUNBZ0lDQWdJRlpTVFVOZmJXRjBaWEpwWVd4elgyMTBiMjl1T2lCdGRHOXZia1Y0ZEdWdWMybHZiaXhjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGNtVmhkR1VnWVNCbmJGUkdJR0JMU0ZKZmRHVjRkSFZ5WlY5MGNtRnVjMlp2Y20xZ0lHVjRkR1Z1YzJsdmJpQm1jbTl0SUhZd0lIUmxlSFIxY21VZ2RISmhibk5tYjNKdElHbHVabTh1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5d2IzSjBWR1Y0ZEhWeVpWUnlZVzV6Wm05eWJTaHRZWFJsY21saGJGQnliM0JsY25ScFpYTTZJRll3VFdGMFpYSnBZV3dwT2lCN0lGdHVZVzFsT2lCemRISnBibWRkT2lCaGJua2dmU0I3WEc0Z0lDQWdZMjl1YzNRZ2RHVjRkSFZ5WlZSeVlXNXpabTl5YlNBOUlHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5NTJaV04wYjNKUWNtOXdaWEowYVdWelB5NWJKMTlOWVdsdVZHVjRKMTA3WEc0Z0lDQWdhV1lnS0hSbGVIUjFjbVZVY21GdWMyWnZjbTBnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSHQ5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHOW1abk5sZENBOUlGdDBaWGgwZFhKbFZISmhibk5tYjNKdFB5NWJNRjBnUHo4Z01DNHdMQ0IwWlhoMGRYSmxWSEpoYm5ObWIzSnRQeTViTVYwZ1B6OGdNQzR3WFR0Y2JpQWdJQ0JqYjI1emRDQnpZMkZzWlNBOUlGdDBaWGgwZFhKbFZISmhibk5tYjNKdFB5NWJNbDBnUHo4Z01TNHdMQ0IwWlhoMGRYSmxWSEpoYm5ObWIzSnRQeTViTTEwZ1B6OGdNUzR3WFR0Y2JseHVJQ0FnSUc5bVpuTmxkRnN4WFNBOUlERXVNQ0F0SUhOallXeGxXekZkSUMwZ2IyWm1jMlYwV3pGZE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtRnRhVzVuTFdOdmJuWmxiblJwYjI1Y2JpQWdJQ0FnSUV0SVVsOTBaWGgwZFhKbFgzUnlZVzV6Wm05eWJUb2dleUJ2Wm1aelpYUXNJSE5qWVd4bElIMHNYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEYjI1MlpYSjBJSFl3SUhKbGJtUmxjaUJ2Y21SbGNpQnBiblJ2SUhZeElISmxibVJsY2lCdmNtUmxjaTVjYmlBZ0lDb2dWR2hwY3lCMWMyVnpJR0VnYldGd0lHWnliMjBnZGpBZ2NtVnVaR1Z5SUhGMVpYVmxJSFJ2SUhZeElHTnZiWEJzYVdGdWRDQnlaVzVrWlhJZ2NYVmxkV1VnYjJabWMyVjBJSGRvYVdOb0lHbHpJR2RsYm1WeVlYUmxaQ0JwYmlCN1FHeHBibXNnWDNCdmNIVnNZWFJsVW1WdVpHVnlVWFZsZFdWTllYQjlMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmZGpCUVlYSnpaVkpsYm1SbGNsRjFaWFZsS0cxaGRHVnlhV0ZzVUhKdmNHVnlkR2xsY3pvZ1ZqQk5ZWFJsY21saGJDazZJRzUxYldKbGNpQjdYRzRnSUNBZ1kyOXVjM1FnYVhOVWNtRnVjM0JoY21WdWRDQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTVyWlhsM2IzSmtUV0Z3UHk1YkoxOUJURkJJUVVKTVJVNUVYMDlPSjEwZ1B6OGdabUZzYzJVN1hHNGdJQ0FnWTI5dWMzUWdaVzVoWW14bFpGcFhjbWwwWlNBOUlHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5NW1iRzloZEZCeWIzQmxjblJwWlhNL0xsc25YMXBYY21sMFpTZGRJRDA5UFNBeE8xeHVYRzRnSUNBZ2JHVjBJRzltWm5ObGRDQTlJREE3WEc1Y2JpQWdJQ0JwWmlBb2FYTlVjbUZ1YzNCaGNtVnVkQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdkakJSZFdWMVpTQTlJRzFoZEdWeWFXRnNVSEp2Y0dWeWRHbGxjeTV5Wlc1a1pYSlJkV1YxWlR0Y2JseHVJQ0FnSUNBZ2FXWWdLSFl3VVhWbGRXVWdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1pXNWhZbXhsWkZwWGNtbDBaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHOW1abk5sZENBOUlIUm9hWE11WDNKbGJtUmxjbEYxWlhWbFRXRndWSEpoYm5Od1lYSmxiblJhVjNKcGRHVXVaMlYwS0hZd1VYVmxkV1VwSVR0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQnZabVp6WlhRZ1BTQjBhR2x6TGw5eVpXNWtaWEpSZFdWMVpVMWhjRlJ5WVc1emNHRnlaVzUwTG1kbGRDaDJNRkYxWlhWbEtTRTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2IyWm1jMlYwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElHMWhjQ0IzYUdsamFDQnRZWEJ6SUhZd0lISmxibVJsY2lCeGRXVjFaU0IwYnlCMk1TQmpiMjF3YkdsaGJuUWdjbVZ1WkdWeUlIRjFaWFZsSUc5bVpuTmxkQzVjYmlBZ0lDb2dWR2hwY3lCc2FYTjBjeUIxY0NCaGJHd2djbVZ1WkdWeUlIRjFaWFZsY3lCMGFHVWdiVzlrWld3Z2RYTmxJR0Z1WkNCamNtVmhkR1Z6SUdFZ2JXRndJSFJ2SUc1bGR5QnlaVzVrWlhJZ2NYVmxkV1VnYjJabWMyVjBjeUJwYmlCMGFHVWdjMkZ0WlNCdmNtUmxjaTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDNCdmNIVnNZWFJsVW1WdVpHVnlVWFZsZFdWTllYQW9iV0YwWlhKcFlXeFFjbTl3WlhKMGFXVnpUR2x6ZERvZ1ZqQk5ZWFJsY21saGJGdGRLU0I3WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUVNCelpYUWdiMllnZFhObFpDQnlaVzVrWlhJZ2NYVmxkV1Z6SUdsdUlGUnlZVzV6Y0dGeVpXNTBJRzFoZEdWeWFXRnNjeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQmpiMjV6ZENCeVpXNWtaWEpSZFdWMVpYTlVjbUZ1YzNCaGNtVnVkQ0E5SUc1bGR5QlRaWFE4Ym5WdFltVnlQaWdwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FTQnpaWFFnYjJZZ2RYTmxaQ0J5Wlc1a1pYSWdjWFZsZFdWeklHbHVJRlJ5WVc1emNHRnlaVzUwV2xkeWFYUmxJRzFoZEdWeWFXRnNjeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQmpiMjV6ZENCeVpXNWtaWEpSZFdWMVpYTlVjbUZ1YzNCaGNtVnVkRnBYY21sMFpTQTlJRzVsZHlCVFpYUThiblZ0WW1WeVBpZ3BPMXh1WEc0Z0lDQWdMeThnY0c5d2RXeGhkR1VnZEdobElISmxibVJsY2lCeGRXVjFaU0J6WlhSY2JpQWdJQ0J0WVhSbGNtbGhiRkJ5YjNCbGNuUnBaWE5NYVhOMExtWnZja1ZoWTJnb0tHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5a2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhWE5VY21GdWMzQmhjbVZ1ZENBOUlHMWhkR1Z5YVdGc1VISnZjR1Z5ZEdsbGN5NXJaWGwzYjNKa1RXRndQeTViSjE5QlRGQklRVUpNUlU1RVgwOU9KMTBnUHo4Z1ptRnNjMlU3WEc0Z0lDQWdJQ0JqYjI1emRDQmxibUZpYkdWa1dsZHlhWFJsSUQwZ2JXRjBaWEpwWVd4UWNtOXdaWEowYVdWekxtWnNiMkYwVUhKdmNHVnlkR2xsY3o4dVd5ZGZXbGR5YVhSbEoxMGdQVDA5SURFN1hHNWNiaUFnSUNBZ0lHbG1JQ2hwYzFSeVlXNXpjR0Z5Wlc1MEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIWXdVWFZsZFdVZ1BTQnRZWFJsY21saGJGQnliM0JsY25ScFpYTXVjbVZ1WkdWeVVYVmxkV1U3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLSFl3VVhWbGRXVWdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGxibUZpYkdWa1dsZHlhWFJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5Wlc1a1pYSlJkV1YxWlhOVWNtRnVjM0JoY21WdWRGcFhjbWwwWlM1aFpHUW9kakJSZFdWMVpTazdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxibVJsY2xGMVpYVmxjMVJ5WVc1emNHRnlaVzUwTG1Ga1pDaDJNRkYxWlhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklITm9iM2NnWVNCM1lYSnVhVzVuSUdsbUlIUm9aU0J0YjJSbGJDQjFjMlZ6SUhZeElHbHVZMjl0Y0dGMGFXSnNaU0J1ZFcxaVpYSWdiMllnY21WdVpHVnlJSEYxWlhWbGMxeHVJQ0FnSUdsbUlDaHlaVzVrWlhKUmRXVjFaWE5VY21GdWMzQmhjbVZ1ZEM1emFYcGxJRDRnTVRBcElIdGNiaUFnSUNBZ0lHTnZibk52YkdVdWQyRnliaWhjYmlBZ0lDQWdJQ0FnWUZaU1RVMWhkR1Z5YVdGc2MxWXdRMjl0Y0dGMFVHeDFaMmx1T2lCVWFHbHpJRlpTVFNCMWMyVnpJQ1I3Y21WdVpHVnlVWFZsZFdWelZISmhibk53WVhKbGJuUXVjMmw2WlgwZ2NtVnVaR1Z5SUhGMVpYVmxjeUJtYjNJZ1ZISmhibk53WVhKbGJuUWdiV0YwWlhKcFlXeHpJSGRvYVd4bElGWlNUU0F4TGpBZ2IyNXNlU0J6ZFhCd2IzSjBjeUIxY0NCMGJ5QXhNQ0J5Wlc1a1pYSWdjWFZsZFdWekxpQlVhR1VnYlc5a1pXd2diV2xuYUhRZ2JtOTBJR0psSUhKbGJtUmxjbVZrSUdOdmNuSmxZM1JzZVM1Z0xGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9jbVZ1WkdWeVVYVmxkV1Z6VkhKaGJuTndZWEpsYm5SYVYzSnBkR1V1YzJsNlpTQStJREV3S1NCN1hHNGdJQ0FnSUNCamIyNXpiMnhsTG5kaGNtNG9YRzRnSUNBZ0lDQWdJR0JXVWsxTllYUmxjbWxoYkhOV01FTnZiWEJoZEZCc2RXZHBiam9nVkdocGN5QldVazBnZFhObGN5QWtlM0psYm1SbGNsRjFaWFZsYzFSeVlXNXpjR0Z5Wlc1MFdsZHlhWFJsTG5OcGVtVjlJSEpsYm1SbGNpQnhkV1YxWlhNZ1ptOXlJRlJ5WVc1emNHRnlaVzUwV2xkeWFYUmxJRzFoZEdWeWFXRnNjeUIzYUdsc1pTQldVazBnTVM0d0lHOXViSGtnYzNWd2NHOXlkSE1nZFhBZ2RHOGdNVEFnY21WdVpHVnlJSEYxWlhWbGN5NGdWR2hsSUcxdlpHVnNJRzFwWjJoMElHNXZkQ0JpWlNCeVpXNWtaWEpsWkNCamIzSnlaV04wYkhrdVlDeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdZM0psWVhSbElHRWdiV0Z3SUdaeWIyMGdkakFnY21WdVpHVnlJSEYxWlhWbElIUnZJSFl4SUhKbGJtUmxjaUJ4ZFdWMVpTQnZabVp6WlhSY2JpQWdJQ0JCY25KaGVTNW1jbTl0S0hKbGJtUmxjbEYxWlhWbGMxUnlZVzV6Y0dGeVpXNTBLVnh1SUNBZ0lDQWdMbk52Y25Rb0tWeHVJQ0FnSUNBZ0xtWnZja1ZoWTJnb0tIRjFaWFZsTENCcEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzVsZDFGMVpYVmxUMlptYzJWMElEMGdUV0YwYUM1dGFXNG9UV0YwYUM1dFlYZ29hU0F0SUhKbGJtUmxjbEYxWlhWbGMxUnlZVzV6Y0dGeVpXNTBMbk5wZW1VZ0t5QXhMQ0F0T1Nrc0lEQXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOXlaVzVrWlhKUmRXVjFaVTFoY0ZSeVlXNXpjR0Z5Wlc1MExuTmxkQ2h4ZFdWMVpTd2dibVYzVVhWbGRXVlBabVp6WlhRcE8xeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQkJjbkpoZVM1bWNtOXRLSEpsYm1SbGNsRjFaWFZsYzFSeVlXNXpjR0Z5Wlc1MFdsZHlhWFJsS1Z4dUlDQWdJQ0FnTG5OdmNuUW9LVnh1SUNBZ0lDQWdMbVp2Y2tWaFkyZ29LSEYxWlhWbExDQnBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1bGQxRjFaWFZsVDJabWMyVjBJRDBnVFdGMGFDNXRhVzRvVFdGMGFDNXRZWGdvYVN3Z01Da3NJRGtwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbDl5Wlc1a1pYSlJkV1YxWlUxaGNGUnlZVzV6Y0dGeVpXNTBXbGR5YVhSbExuTmxkQ2h4ZFdWMVpTd2dibVYzVVhWbGRXVlBabVp6WlhRcE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUgxY2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPMEZCUVVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVzlIUVR0QlFVTlBMRk5CUVZNc1UwRkJVeXhEUVVGRExFOUJRVThzUlVGQlJTeFZRVUZWTEVWQlFVVXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSVHRCUVVNM1JDeEpRVUZKTEZOQlFWTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFOUJRVThzUzBGQlN5eFpRVUZaTEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zVlVGQlZTeFBRVUZQTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlR0QlFVTm9TQ3hKUVVGSkxFOUJRVThzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhGUVVGRkxGVkJRVlVzVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlR0QlFVTXZSQ3hSUVVGUkxGTkJRVk1zVTBGQlV5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdRVUZEYmtjc1VVRkJVU3hUUVVGVExGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdRVUZEZEVjc1VVRkJVU3hUUVVGVExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETEVWQlFVVTdRVUZEZEVnc1VVRkJVU3hKUVVGSkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzVlVGQlZTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRE9VVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRVQ3hEUVVGRE8wRkJaMDFFTzBGQlEzVkNMRTlCUVU4c1pVRkJaU3hMUVVGTExGVkJRVlVzUjBGQlJ5eGxRVUZsTEVkQlFVY3NWVUZCVlN4TFFVRkxMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFOUJRVThzUlVGQlJUdEJRVU4yU0N4SlFVRkpMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUXk5Q0xFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eFZRVUZWTEVkQlFVY3NWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOeVJqczdRVU01VkUwc1UwRkJWU3hUUVVGVExFTkJRVU1zUTBGQlV5eEZRVUZCTzBsQlEycERMRTlCUVU4c1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRNVUk3TzAxRFMyRXNNRUpCUVRCQ0xFTkJRVUU3UVVGaGNrTXNTVUZCUVN4SlFVRlhMRWxCUVVrc1IwRkJRVHRCUVVOaUxGRkJRVUVzVDBGQlR5dzBRa0ZCTkVJc1EwRkJRenRMUVVOeVF6dEJRVVZFTEVsQlFVRXNWMEZCUVN4RFFVRnRRaXhOUVVGclFpeEZRVUZCT3p0QlFVTnVReXhSUVVGQkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPMEZCUlhKQ0xGRkJRVUVzU1VGQlNTeERRVUZETERCQ1FVRXdRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdRVUZETlVNc1VVRkJRU3hKUVVGSkxFTkJRVU1zWjBOQlFXZERMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF6czdPMEZCU1d4RUxGRkJRVUVzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGM1FpeERRVUZETzFGQlJXeEVMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMR05CUVdNc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hGUVVGRkxFTkJRVU03VVVGRGFFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzBGQlF5OUVMRmxCUVVFc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dEJRVU51UkN4VFFVRkJPMHRCUTBZN1NVRkZXU3hWUVVGVkxFZEJRVUU3T3p0QlFVTnlRaXhaUVVGQkxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJkMElzUTBGQlF6czdXVUZIYkVRc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eExRVUZMTEVOQlFYTkNMRU5CUVVNN1dVRkRja1VzVFVGQlRTeHZRa0ZCYjBJc1IwRkJSeXhqUVVGakxFdEJRVUVzU1VGQlFTeEpRVUZrTEdOQlFXTXNTMEZCWkN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeGpRVUZqTEVOQlFVVXNhMEpCUVd0Q0xFTkJRVU03V1VGRGFFVXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeEZRVUZGTzJkQ1FVTjZRaXhQUVVGUE8wRkJRMUlzWVVGQlFUczdRVUZIUkN4WlFVRkJMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVUZET3p0WlFVZHVSQ3h2UWtGQmIwSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4aFFVRmhMRXRCUVVrN08yZENRVU5xUlN4TlFVRk5MRmRCUVZjc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNVMEZCVXl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGSExHRkJRV0VzUTBGQlF5eERRVUZETzJkQ1FVVndSQ3hKUVVGSkxGZEJRVmNzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEZGtJc2IwSkJRVUVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4M1JFRkJkMFFzWVVGQllTeERRVUZCTEhkRFFVRkJMRU5CUVRCRExFTkJRMmhJTEVOQlFVTTdiMEpCUTBZc1QwRkJUenRCUVVOU0xHbENRVUZCTzBGQlJVUXNaMEpCUVVFc1NVRkJTU3hyUWtGQmEwSXNRMEZCUXl4TlFVRk5MRXRCUVVzc1YwRkJWeXhGUVVGRk8yOUNRVU0zUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN1FVRkRMMFVzYjBKQlFVRXNTVUZCU1N4RFFVRkRMRk5CUVZVc1EwRkJReXhoUVVGaExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdRVUZETTBNc2FVSkJRVUU3Y1VKQlFVMHNTVUZCU1N4RFFVRkJMRVZCUVVFc1IwRkJRU3hyUWtGQmEwSXNRMEZCUXl4TlFVRk5MREJEUVVGRkxGVkJRVlVzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlR0dlFrRkROMFFzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzBGQlF5OUZMRzlDUVVGQkxFbEJRVWtzUTBGQlF5eFRRVUZWTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRE8wRkJRek5ETEdsQ1FVRkJPMEZCUVUwc2NVSkJRVUVzU1VGQlNTeHJRa0ZCYTBJc1EwRkJReXhOUVVGTkxFdEJRVXNzYjBKQlFXOUNMRVZCUVVVc1EwRkZPVVE3UVVGQlRTeHhRa0ZCUVR0dlFrRkRUQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVRXNORU5CUVVFc1JVRkJLME1zYTBKQlFXdENMRU5CUVVNc1RVRkJUU3hEUVVGRkxFTkJRVUVzUTBGQlF5eERRVUZETzBGQlF6RkdMR2xDUVVGQk8wRkJRMGdzWVVGQlF5eERRVUZETEVOQlFVTTdPMEZCUTBvc1MwRkJRVHRKUVVWUExIVkNRVUYxUWl4RFFVTTNRaXhyUWtGQk9FSXNSVUZET1VJc1kwRkJiME1zUlVGQlFUczdRVUZGY0VNc1VVRkJRU3hOUVVGTkxHRkJRV0VzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVWNzWjBKQlFXZENMRU5CUVVNc1RVRkJTU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJRU3hMUVVGTExFTkJRVU03UVVGRGFrWXNVVUZCUVN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhEUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEd0Q1FVRnJRaXhEUVVGRExHVkJRV1VzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4VFFVRlRMRU5CUVVNc1RVRkJTeXhEUVVGRExFTkJRVU03UVVGRE5VVXNVVUZCUVN4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEdGQlFXRXNTVUZCU1N4aFFVRmhMRU5CUVVNN1VVRkZOMFFzVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0QlFVVTNSU3hSUVVGQkxFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxHdENRVUZyUWl4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eGxRVUZsTEVOQlFVTXNUVUZCU1N4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCUVN4TFFVRkxMRU5CUVVNN1FVRkRNMFVzVVVGQlFTeE5RVUZOTEZOQlFWTXNSMEZCUnl4aFFVRmhMRWRCUVVjc1QwRkJUeXhIUVVGSExGRkJRVkVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NVVUZCVVN4RFFVRkRPMEZCUTNwRkxGRkJRVUVzVFVGQlRTeFhRVUZYTEVkQlFVY3NVVUZCVVN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxHdENRVUZyUWl4RFFVRkRMR1ZCUVdVc01FTkJRVWNzVTBGQlV5eERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRPMEZCUlROR0xGRkJRVUVzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzYTBKQlFXdENMRU5CUVVNc1pVRkJaU3hOUVVGSExFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZCTEZkQlFWY3NRMEZCUXl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkpMRU5CUVVNc1EwRkJRenRCUVVONFJTeFJRVUZCTEUxQlFVMHNWMEZCVnl4SFFVRkhMRkZCUVZFc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRmJrTXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVVelJTeFJRVUZCTEUxQlFVMHNaVUZCWlN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEd0Q1FVRnJRaXhEUVVGRExHZENRVUZuUWl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGSExGRkJRVkVzUTBGQlF5d3dRMEZCUlN4SFFVRkhMRU5CUXpGRkxFTkJRVU1zUTBGQlV5eEZRVUZGTEVOQlFWTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkRka1FzUTBGQlF6dFJRVU5HTEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNhMEpCUVd0Q0xFTkJRVU1zYVVKQlFXbENMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVWNzVlVGQlZTeERRVUZETEVOQlFVTTdRVUZEYWtZc1VVRkJRU3hOUVVGTkxHZENRVUZuUWl4SFFVTndRaXh4UWtGQmNVSXNTVUZCU1N4SlFVRkpPMEZCUXpOQ0xHTkJRVVU3UVVGRFJTeG5Ra0ZCUVN4TFFVRkxMRVZCUVVVc2NVSkJRWEZDTzJkQ1FVTTFRaXhWUVVGVkxFVkJRVUVzVFVGQlFTeERRVUZCTEUxQlFVRXNRMEZCUVN4RlFVRkJMRVZCUTB3c2JVSkJRVzFDTEVOQlEzWkNPMEZCUTBZc1lVRkJRVHRqUVVORUxGTkJRVk1zUTBGQlF6dFJRVVZvUWl4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdWQlFXVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU01UlN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdsQ1FVRnBRaXhOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZITEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUXpsRkxGRkJRVUVzVFVGQlRTeGhRVUZoTEVkQlEycENMR3RDUVVGclFpeEpRVUZKTEVsQlFVazdRVUZEZUVJc1kwRkJSVHRCUVVORkxHZENRVUZCTEV0QlFVc3NSVUZCUlN4clFrRkJhMEk3UVVGRGVrSXNaMEpCUVVFc1MwRkJTeXhGUVVGRkxHdENRVUZyUWp0blFrRkRla0lzVlVGQlZTeEZRVUZCTEUxQlFVRXNRMEZCUVN4TlFVRkJMRU5CUVVFc1JVRkJRU3hGUVVOTUxHMUNRVUZ0UWl4RFFVTjJRanRCUVVOR0xHRkJRVUU3WTBGRFJDeFRRVUZUTEVOQlFVTTdRVUZGYUVJc1VVRkJRU3hOUVVGTkxHTkJRV01zUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hyUWtGQmEwSXNRMEZCUXl4blFrRkJaMElzVFVGQlJ5eEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUVN4blFrRkJaMElzUTBGQlF5eE5RVUZGTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU12Uml4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdsQ1FVRnBRaXhOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRPMEZCUTNCR0xGRkJRVUVzVFVGQlRTeGxRVUZsTEVkQlEyNUNMRzlDUVVGdlFpeEpRVUZKTEVsQlFVazdRVUZETVVJc1kwRkJSVHRCUVVORkxHZENRVUZCTEV0QlFVc3NSVUZCUlN4dlFrRkJiMEk3WjBKQlF6TkNMRlZCUVZVc1JVRkJRU3hOUVVGQkxFTkJRVUVzVFVGQlFTeERRVUZCTEVWQlFVRXNSVUZEVEN4dFFrRkJiVUlzUTBGRGRrSTdRVUZEUml4aFFVRkJPMk5CUTBRc1UwRkJVeXhEUVVGRE8wRkJSV2hDTEZGQlFVRXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hyUWtGQmEwSXNRMEZCUXl4blFrRkJaMElzVFVGQlJ5eEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUVN4aFFVRmhMRU5CUVVNc1RVRkJSU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlFTeEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRPVVlzVFVGQlRTeDVRa0ZCZVVJc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeHJRa0ZCYTBJc1EwRkJReXhwUWtGQmFVSXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXhsUVVGbExFTkJRVU1zUTBGQlF6dEJRVU14Uml4UlFVRkJMRTFCUVUwc2IwSkJRVzlDTEVkQlEzaENMSGxDUVVGNVFpeEpRVUZKTEVsQlFVazdRVUZETDBJc1kwRkJSVHRCUVVORkxHZENRVUZCTEV0QlFVc3NSVUZCUlN4NVFrRkJlVUk3WjBKQlEyaERMRlZCUVZVc1JVRkJRU3hOUVVGQkxFTkJRVUVzVFVGQlFTeERRVUZCTEVWQlFVRXNSVUZEVEN4dFFrRkJiVUlzUTBGRGRrSTdRVUZEUml4aFFVRkJPMk5CUTBRc1UwRkJVeXhEUVVGRE96dEJRVWRvUWl4UlFVRkJMRWxCUVVrc2EwSkJRV3RDTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzYTBKQlFXdENMRU5CUVVNc1pVRkJaU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZITEdGQlFXRXNRMEZCUXl4TlFVRkpMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkJMRWRCUVVjc1EwRkJRenRCUVVOd1JpeFJRVUZCTEVsQlFVa3NhMEpCUVd0Q0xFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc2EwSkJRV3RDTEVOQlFVTXNaVUZCWlN4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGSExHRkJRV0VzUTBGQlF5eE5RVUZKTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZCTEVkQlFVY3NRMEZCUXp0QlFVTndSaXhSUVVGQkxHdENRVUZyUWl4SFFVRkhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMR3RDUVVGclFpeERRVUZETEVOQlFVTTdVVUZEYmtjc2EwSkJRV3RDTEVkQlFVY3NRMEZCUXl4clFrRkJhMElzU1VGQlNTeEhRVUZITEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFJRVVYwUlN4TlFVRk5MR2xDUVVGcFFpeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdWQlFXVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXg1UWtGQmVVSXNRMEZCUXl4RFFVRkRPMEZCUXpGR0xGRkJRVUVzVFVGQlRTeHZRa0ZCYjBJc1IwRkJSeXhwUWtGQmFVSXNSMEZCUnl4SFFVRkhMRWRCUVVjc2FVSkJRV2xDTEVkQlFVY3NVMEZCVXl4RFFVRkRPMUZCUlhKR0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzYTBKQlFXdENMRU5CUVVNc2FVSkJRV2xDTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVjc1dVRkJXU3hEUVVGRExFTkJRVU03UVVGRGFFWXNVVUZCUVN4TlFVRk5MRmxCUVZrc1IwRkJSeXhyUWtGQmEwSXNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJRenRCUVVNNVJTeFJRVUZCTEUxQlFVMHNZVUZCWVN4SFFVTnFRaXhyUWtGQmEwSXNTVUZCU1N4SlFVRkpPMEZCUTNoQ0xHTkJRVVU3UVVGRFJTeG5Ra0ZCUVN4TFFVRkxMRVZCUVVVc2EwSkJRV3RDTzBGQlF6RkNMR0ZCUVVFN1kwRkRSQ3hUUVVGVExFTkJRVU03VVVGRmFFSXNUVUZCVFN4dlFrRkJiMElzUjBGQlJ5eERRVUZCTEVWQlFVRXNSMEZCUVN4clFrRkJhMElzUTBGQlF5eGxRVUZsTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVjc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0UlFVTnlSaXhOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxHdENRVUZyUWl4RFFVRkRMR2xDUVVGcFFpeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkhMR0ZCUVdFc1EwRkJReXhEUVVGRE8wRkJRM1JHTEZGQlFVRXNUVUZCVFN4clFrRkJhMElzUjBGRGRFSXNkVUpCUVhWQ0xFbEJRVWtzU1VGQlNUdEJRVU0zUWl4alFVRkZPMEZCUTBVc1owSkJRVUVzUzBGQlN5eEZRVUZGTEhWQ1FVRjFRanRuUWtGRE9VSXNWVUZCVlN4RlFVRkJMRTFCUVVFc1EwRkJRU3hOUVVGQkxFTkJRVUVzUlVGQlFTeEZRVU5NTEcxQ1FVRnRRaXhEUVVOMlFqdEJRVU5HTEdGQlFVRTdZMEZEUkN4VFFVRlRMRU5CUVVNN1FVRkZhRUlzVVVGQlFTeE5RVUZOTEhkQ1FVRjNRaXhIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEVOQlFVRXNSVUZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdkQ1FVRm5RaXhOUVVGSExFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZCTEZkQlFWY3NRMEZCUXl4TlFVRkZMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTndSeXhOUVVGTkxDdENRVUVyUWl4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxHdENRVUZyUWl4RFFVRkRMR1ZCUVdVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xRkJRMnBITEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNhMEpCUVd0Q0xFTkJRVU1zWlVGQlpTeE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkhMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJSV3BHTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1EwRkRlRVVzVFVGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4clFrRkJhMElzUTBGQlF5eGxRVUZsTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVjc2JVSkJRVzFDTEVOQlFVTXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCU1N4RFFVRkRMRU5CUTJZc1EwRkJRenM3UVVGSGJFUXNVVUZCUVN4SlFVRkpMR3RDUVVGclFpeEhRVUZITEVOQlFVRXNSMEZCUVN4SFFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxHdENRVUZyUWl4RFFVRkRMR1ZCUVdVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eGxRVUZsTEVOQlFVTXNUVUZCU1N4SlFVRkJMRWxCUVVFc1IwRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVkQlFVRXNSMEZCUVN4SFFVRkhMRU5CUVVNN1FVRkRkRVlzVVVGQlFTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFZEJRVWNzYTBKQlFXdENMRU5CUVVNN1VVRkZMME1zVFVGQlRTeG5RMEZCWjBNc1IwRkJSeXhEUVVGQkxFZEJRVUVzUjBGQlFTeHJRa0ZCYTBJc1EwRkJReXhwUWtGQmFVSXNUVUZCUVN4SlFVRkJMRWxCUVVFc1IwRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRWRCUVVFc1EwRkJSeXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRPMEZCUTNoSExGRkJRVUVzVFVGQlRTd3lRa0ZCTWtJc1IwRkRMMElzWjBOQlFXZERMRWxCUVVrc1NVRkJTVHRCUVVOMFF5eGpRVUZGTzBGQlEwVXNaMEpCUVVFc1MwRkJTeXhGUVVGRkxHZERRVUZuUXp0blFrRkRka01zVlVGQlZTeEZRVUZCTEUxQlFVRXNRMEZCUVN4TlFVRkJMRU5CUVVFc1JVRkJRU3hGUVVOTUxHMUNRVUZ0UWl4RFFVTjJRanRCUVVOR0xHRkJRVUU3WTBGRFJDeFRRVUZUTEVOQlFVTTdRVUZGYUVJc1VVRkJRU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRU5CUVVFc1IwRkJRU3hIUVVGQkxFTkJRVUVzUjBGQlFTeEhRVUZCTEd0Q1FVRnJRaXhEUVVGRExHZENRVUZuUWl4TlFVRkhMRWxCUVVFc1NVRkJRU3hIUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1IwRkJRU3hEUVVGQkxHVkJRV1VzUTBGQlF5eE5RVUZGTEVsQlFVRXNTVUZCUVN4SFFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSMEZCUVN4RFFVRkJMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU5zUnl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVOQlFVRXNSMEZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdWQlFXVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1IwRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRWRCUVVFc1EwRkJSeXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMEZCUTI1R0xGRkJRVUVzVFVGQlRTeDNRa0ZCZDBJc1IwRkROVUlzWjBKQlFXZENMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVUVzUjBGQlFTeEhRVUZCTEd0Q1FVRnJRaXhEUVVGRExHVkJRV1VzTkVOQlFVY3NjVUpCUVhGQ0xFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdVVUZGTjBZc1RVRkJUU3d5UWtGQk1rSXNSMEZCUnl4RFFVRkJMRWRCUVVFc1IwRkJRU3hyUWtGQmEwSXNRMEZCUXl4cFFrRkJhVUlzVFVGQlFTeEpRVUZCTEVsQlFVRXNSMEZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVkQlFVRXNRMEZCUnl4dlFrRkJiMElzUTBGQlF5eERRVUZETzBGQlEycEhMRkZCUVVFc1RVRkJUU3h6UWtGQmMwSXNSMEZETVVJc01rSkJRVEpDTEVsQlFVa3NTVUZCU1R0QlFVTnFReXhqUVVGRk8wRkJRMFVzWjBKQlFVRXNTMEZCU3l4RlFVRkZMREpDUVVFeVFqdG5Ra0ZEYkVNc1ZVRkJWU3hGUVVGQkxFMUJRVUVzUTBGQlFTeE5RVUZCTEVOQlFVRXNSVUZCUVN4RlFVTk1MRzFDUVVGdFFpeERRVU4yUWp0QlFVTkdMR0ZCUVVFN1kwRkRSQ3hUUVVGVExFTkJRVU03VVVGRmFFSXNUVUZCVFN3MlFrRkJOa0lzUjBGQlJ5eERRVUZCTEVkQlFVRXNSMEZCUVN4clFrRkJhMElzUTBGQlF5eGxRVUZsTEUxQlFVRXNTVUZCUVN4SlFVRkJMRWRCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4SFFVRkJMRU5CUVVjc1owSkJRV2RDTEVOQlFVTXNRMEZCUXpzN1VVRkhOMFlzU1VGQlNTdzJRa0ZCTmtJc1IwRkJSeXhEUVVGQkxFZEJRVUVzUjBGQlFTeHJRa0ZCYTBJc1EwRkJReXhsUVVGbExFMUJRVUVzU1VGQlFTeEpRVUZCTEVkQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEhRVUZCTEVOQlFVY3NaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFJRVU16Uml4SlFVRkpMRFpDUVVFMlFpeEpRVUZKTEVsQlFVa3NSVUZCUlR0WlFVTjZReXcyUWtGQk5rSXNSMEZCUnl4RFFVRkRMRFpDUVVFMlFpeERRVUZETzBGQlEyaEZMRk5CUVVFN1VVRkZSQ3hOUVVGTkxEaENRVUU0UWl4SFFVRkhMRU5CUVVFc1IwRkJRU3hIUVVGQkxHdENRVUZyUWl4RFFVRkRMR1ZCUVdVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUjBGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFZEJRVUVzUTBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8wRkJSUzlHTEZGQlFVRXNUVUZCVFN4alFVRmpMRWRCUVhGRE8wRkJRM1pFTEZsQlFVRXNWMEZCVnl4RlFVRkZMRXRCUVVzN1dVRkRiRUlzY1VKQlFYRkNPMWxCUTNKQ0xIVkNRVUYxUWp0WlFVTjJRaXhuUWtGQlowSTdXVUZEYUVJc2IwSkJRVzlDTzFsQlEzQkNMR3RDUVVGclFqdFpRVU5zUWl4clFrRkJhMEk3V1VGRGJFSXNiMEpCUVc5Q08xbEJRM0JDTEZsQlFWazdXVUZEV2l4aFFVRmhPMWxCUTJJc2IwSkJRVzlDTzFsQlEzQkNMR3RDUVVGclFqdFpRVU5zUWl4M1FrRkJkMEk3V1VGRGVFSXNLMEpCUVN0Q08xbEJReTlDTEhWQ1FVRjFRanRaUVVOMlFpeG5Ra0ZCWjBJN1dVRkRhRUlzYTBKQlFXdENPMWxCUTJ4Q0xESkNRVUV5UWp0WlFVTXpRaXhyUWtGQmEwSTdXVUZEYkVJc2QwSkJRWGRDTzFsQlEzaENMSE5DUVVGelFqdFpRVU4wUWl3MlFrRkJOa0k3V1VGRE4wSXNOa0pCUVRaQ08xbEJRemRDTERoQ1FVRTRRanRUUVVNdlFpeERRVUZETzFGQlJVWXNUMEZEU3l4TlFVRkJMRU5CUVVFc1RVRkJRU3hEUVVGQkxFMUJRVUVzUTBGQlFTeE5RVUZCTEVOQlFVRXNSVUZCUVN4RlFVRkJMR05CUVdNc1EwRkZha0lzUlVGQlFTeEZRVUZCTEc5Q1FVRnZRaXhGUVVGRk8yZENRVU53UWl4bFFVRmxPMmRDUVVObUxHZENRVUZuUWp0QlFVTnFRaXhoUVVGQkxFVkJRMFFzWVVGQllUdFpRVU5pTEdWQlFXVTdXVUZEWml4alFVRmpPMWxCUTJRc1UwRkJVenRaUVVOVUxGZEJRVmM3V1VGRFdDeFhRVUZYTEVWQlExZ3NWVUZCVlN4RlFVRkZPenRCUVVWV0xHZENRVUZCTEc5Q1FVRnZRaXhGUVVGRkxHTkJRV003WVVGRGNrTXNSVUZEUkN4RFFVRkJMRU5CUVVFN1MwRkRTRHRKUVVWUExIVkNRVUYxUWl4RFFVTTNRaXhyUWtGQk9FSXNSVUZET1VJc1kwRkJiME1zUlVGQlFUczdRVUZGY0VNc1VVRkJRU3hOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMR3RDUVVGclFpeERRVUZETEUxQlFVMHNTMEZCU3l3MFFrRkJORUlzUTBGQlF6dFJRVU4yUml4TlFVRk5MR0ZCUVdFc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4TlFVRk5MRXRCUVVzc2MwSkJRWE5DTEVsQlFVa3NiVUpCUVcxQ0xFTkJRVU03VVVGRmJFY3NUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVVM1JTeFJRVUZCTEUxQlFVMHNVVUZCVVN4SFFVRkhMR3RDUVVGclFpeERRVUZETEUxQlFVMHNTMEZCU3l4cFFrRkJhVUlzUTBGQlF6dEJRVU5xUlN4UlFVRkJMRTFCUVUwc1UwRkJVeXhIUVVGSExHRkJRV0VzUjBGQlJ5eFBRVUZQTEVkQlFVY3NVVUZCVVN4SFFVRkhMRTFCUVUwc1IwRkJSeXhSUVVGUkxFTkJRVU03UVVGRGVrVXNVVUZCUVN4TlFVRk5MRmRCUVZjc1IwRkJSeXhSUVVGUkxFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNhMEpCUVd0Q0xFTkJRVU1zWlVGQlpTd3dRMEZCUnl4VFFVRlRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03VVVGRk0wWXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVVelJTeFJRVUZCTEUxQlFVMHNaVUZCWlN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEd0Q1FVRnJRaXhEUVVGRExHZENRVUZuUWl4TlFVRkhMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxGRkJRVkVzUTBGQlF5eE5RVUZGTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU40Uml4TlFVRk5MSEZDUVVGeFFpeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdsQ1FVRnBRaXhOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZITEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUTJwR0xGRkJRVUVzVFVGQlRTeG5Ra0ZCWjBJc1IwRkRjRUlzY1VKQlFYRkNMRWxCUVVrc1NVRkJTVHRCUVVNelFpeGpRVUZGTzBGQlEwVXNaMEpCUVVFc1MwRkJTeXhGUVVGRkxIRkNRVUZ4UWp0blFrRkROVUlzVlVGQlZTeEZRVUZCTEUxQlFVRXNRMEZCUVN4TlFVRkJMRU5CUVVFc1JVRkJRU3hGUVVOTUxHMUNRVUZ0UWl4RFFVTjJRanRCUVVOR0xHRkJRVUU3WTBGRFJDeFRRVUZUTEVOQlFVTTdPMEZCUjJoQ0xGRkJRVUVzVFVGQlRTeGpRVUZqTEVkQlFYRkRPMEZCUTNaRUxGbEJRVUVzVjBGQlZ5eEZRVUZGTEV0QlFVczdRVUZEYkVJc1dVRkJRU3h4UWtGQmNVSXNSVUZCUlN4dFFrRkJiVUk3V1VGRE1VTXNkVUpCUVhWQ08wRkJRM1pDTEZsQlFVRXNaMEpCUVdkQ0xFVkJRVVVzWlVGQlpUdEJRVU5xUXl4WlFVRkJMRzlDUVVGdlFpeEZRVUZGTEdkQ1FVRm5RanRUUVVOMlF5eERRVUZETzFGQlJVWXNUMEZEU3l4TlFVRkJMRU5CUVVFc1RVRkJRU3hEUVVGQkxFMUJRVUVzUTBGQlFTeE5RVUZCTEVOQlFVRXNSVUZCUVN4RlFVRkJMR05CUVdNc1EwRkZha0lzUlVGQlFTeEZRVUZCTEc5Q1FVRnZRaXhGUVVGRk8yZENRVU53UWl4bFFVRmxPMmRDUVVObUxHZENRVUZuUWp0QlFVTnFRaXhoUVVGQkxFVkJRMFFzVTBGQlV6dFpRVU5VTEZkQlFWY3NSVUZEV0N4VlFVRlZMRVZCUVVVN08wRkJSVllzWjBKQlFVRXNiMEpCUVc5Q0xFVkJRVVVzWTBGQll6dGhRVU55UXl4RlFVTkVMRU5CUVVFc1EwRkJRVHRMUVVOSU8wRkJSVVE3TzBGQlJVYzdRVUZEU3l4SlFVRkJMSEZDUVVGeFFpeERRVUZETEd0Q1FVRTRRaXhGUVVGQk96dFJRVU14UkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMR3RDUVVGclFpeERRVUZETEdkQ1FVRm5RaXhOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZITEZWQlFWVXNRMEZCUXl4RFFVRkRPMUZCUXpORkxFbEJRVWtzWjBKQlFXZENMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRelZDTEZsQlFVRXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRXQ3hUUVVGQk8xRkJSVVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkJMRVZCUVVFc1IwRkJRU3huUWtGQlowSXNTMEZCYUVJc1NVRkJRU3hKUVVGQkxHZENRVUZuUWl4TFFVRm9RaXhMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4blFrRkJaMElzUTBGQlJ5eERRVUZETEVOQlFVTXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCU1N4SFFVRkhMRVZCUVVVc1EwRkJRU3hGUVVGQkxFZEJRVUVzWjBKQlFXZENMRXRCUVdoQ0xFbEJRVUVzU1VGQlFTeG5Ra0ZCWjBJc1MwRkJhRUlzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1owSkJRV2RDTEVOQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE5VVXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGQkxFVkJRVUVzUjBGQlFTeG5Ra0ZCWjBJc1MwRkJhRUlzU1VGQlFTeEpRVUZCTEdkQ1FVRm5RaXhMUVVGb1FpeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3huUWtGQlowSXNRMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJTU3hIUVVGSExFVkJRVVVzUTBGQlFTeEZRVUZCTEVkQlFVRXNaMEpCUVdkQ0xFdEJRV2hDTEVsQlFVRXNTVUZCUVN4blFrRkJaMElzUzBGQmFFSXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzWjBKQlFXZENMRU5CUVVjc1EwRkJReXhEUVVGRExFMUJRVUVzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZGTTBVc1VVRkJRU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZka01zVDBGQlR6czdRVUZGVEN4WlFVRkJMSEZDUVVGeFFpeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSVHRUUVVONlF5eERRVUZETzB0QlEwZzdRVUZGUkRzN08wRkJSMGM3UVVGRFN5eEpRVUZCTEcxQ1FVRnRRaXhEUVVGRExHdENRVUU0UWl4RlFVRkJPenRCUVVONFJDeFJRVUZCTEUxQlFVMHNZVUZCWVN4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzVFVGQlFTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUnl4blFrRkJaMElzUTBGQlF5eE5RVUZKTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZCTEV0QlFVc3NRMEZCUXp0QlFVTnFSaXhSUVVGQkxFMUJRVTBzWVVGQllTeEhRVUZITEVOQlFVRXNRMEZCUVN4RlFVRkJMRWRCUVVFc2EwSkJRV3RDTEVOQlFVTXNaVUZCWlN4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGSExGTkJRVk1zUTBGQlF5eE5RVUZMTEVOQlFVTXNRMEZCUXp0UlFVVTFSU3hKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZGWml4UlFVRkJMRWxCUVVrc1lVRkJZU3hGUVVGRk8wRkJRMnBDTEZsQlFVRXNUVUZCVFN4UFFVRlBMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNWMEZCVnl4RFFVRkRPMWxCUlM5RExFbEJRVWtzVDBGQlR5eEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTnVRaXhuUWtGQlFTeEpRVUZKTEdGQlFXRXNSVUZCUlR0dlFrRkRha0lzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4blEwRkJaME1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkZMRU5CUVVNN1FVRkRPVVFzYVVKQlFVRTdRVUZCVFN4eFFrRkJRVHR2UWtGRFRDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVVc1EwRkJRenRCUVVONFJDeHBRa0ZCUVR0QlFVTkdMR0ZCUVVFN1FVRkRSaXhUUVVGQk8wRkJSVVFzVVVGQlFTeFBRVUZQTEUxQlFVMHNRMEZCUXp0TFFVTm1PMEZCUlVRN096dEJRVWRITzBGQlEwc3NTVUZCUVN4MVFrRkJkVUlzUTBGQlF5eHpRa0ZCYjBNc1JVRkJRVHRCUVVOc1JUczdRVUZGUnp0QlFVTklMRkZCUVVFc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJWU3hEUVVGRE8wRkJSV3hFT3p0QlFVVkhPMEZCUTBnc1VVRkJRU3hOUVVGTkxEWkNRVUUyUWl4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGVkxFTkJRVU03TzBGQlIzaEVMRkZCUVVFc2MwSkJRWE5DTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc2EwSkJRV3RDTEV0QlFVazdPMEZCUTNCRUxGbEJRVUVzVFVGQlRTeGhRVUZoTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzYTBKQlFXdENMRU5CUVVNc1ZVRkJWU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZITEdkQ1FVRm5RaXhEUVVGRExFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzUzBGQlN5eERRVUZETzBGQlEycEdMRmxCUVVFc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlFTeERRVUZCTEVWQlFVRXNSMEZCUVN4clFrRkJhMElzUTBGQlF5eGxRVUZsTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVjc1UwRkJVeXhEUVVGRExFMUJRVXNzUTBGQlF5eERRVUZETzBGQlJUVkZMRmxCUVVFc1NVRkJTU3hoUVVGaExFVkJRVVU3UVVGRGFrSXNaMEpCUVVFc1RVRkJUU3hQUVVGUExFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1YwRkJWeXhEUVVGRE8yZENRVVV2UXl4SlFVRkpMRTlCUVU4c1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGJrSXNiMEpCUVVFc1NVRkJTU3hoUVVGaExFVkJRVVU3UVVGRGFrSXNkMEpCUVVFc05rSkJRVFpDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRelZETEhGQ1FVRkJPMEZCUVUwc2VVSkJRVUU3UVVGRFRDeDNRa0ZCUVN4MVFrRkJkVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRkRU1zY1VKQlFVRTdRVUZEUml4cFFrRkJRVHRCUVVOR0xHRkJRVUU3UVVGRFNDeFRRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkhTQ3hSUVVGQkxFbEJRVWtzZFVKQlFYVkNMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU55UXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVOV0xFTkJRVUVzTUVOQlFVRXNSVUZCTmtNc2RVSkJRWFZDTEVOQlFVTXNTVUZCU1N4RFFVRjVTU3gxU1VGQlFTeERRVUZCTEVOQlEyNU9MRU5CUVVNN1FVRkRTQ3hUUVVGQk8wRkJSVVFzVVVGQlFTeEpRVUZKTERaQ1FVRTJRaXhEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVWQlFVVTdXVUZETTBNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGRFZpeERRVUZCTERCRFFVRkJMRVZCUVRaRExEWkNRVUUyUWl4RFFVRkRMRWxCUVVrc1EwRkJLMGtzTmtsQlFVRXNRMEZCUVN4RFFVTXZUaXhEUVVGRE8wRkJRMGdzVTBGQlFUczdRVUZIUkN4UlFVRkJMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNN1FVRkRhRU1zWVVGQlFTeEpRVUZKTEVWQlFVVTdRVUZEVGl4aFFVRkJMRTlCUVU4c1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEV0QlFVazdXVUZEY0VJc1RVRkJUU3hqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eDFRa0ZCZFVJc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGRrWXNTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1kwRkJZeXhEUVVGRExFTkJRVU03UVVGRE4wUXNVMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZUQ3hSUVVGQkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNOa0pCUVRaQ0xFTkJRVU03UVVGRGRFTXNZVUZCUVN4SlFVRkpMRVZCUVVVN1FVRkRUaXhoUVVGQkxFOUJRVThzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRXRCUVVrN1FVRkRjRUlzV1VGQlFTeE5RVUZOTEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyNUVMRWxCUVVrc1EwRkJReXhuUTBGQlowTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhGUVVGRkxHTkJRV01zUTBGQlF5eERRVUZETzBGQlEyNUZMRk5CUVVNc1EwRkJReXhEUVVGRE8wdEJRMDQ3UVVGRFJqczdPenNpZlE9PVxuIiwiLyohXG4gKiBAcGl4aXYvdGhyZWUtdnJtLW5vZGUtY29uc3RyYWludCB2Mi4xLjFcbiAqIE5vZGUgY29uc3RyYWludCBtb2R1bGUgZm9yIEBwaXhpdi90aHJlZS12cm1cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyNCBwaXhpdiBJbmMuXG4gKiBAcGl4aXYvdGhyZWUtdnJtLW5vZGUtY29uc3RyYWludCBpcyBkaXN0cmlidXRlZCB1bmRlciBNSVQgTGljZW5zZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3BpeGl2L3RocmVlLXZybS9ibG9iL3JlbGVhc2UvTElDRU5TRVxuICovXG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IF92M0EkMyA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jbGFzcyBWUk1Ob2RlQ29uc3RyYWludEhlbHBlciBleHRlbmRzIFRIUkVFLkdyb3VwIHtcbiAgICBjb25zdHJ1Y3Rvcihjb25zdHJhaW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2F0dHJQb3NpdGlvbiA9IG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMCwgMCwgMCwgMF0pLCAzKTtcbiAgICAgICAgdGhpcy5fYXR0clBvc2l0aW9uLnNldFVzYWdlKFRIUkVFLkR5bmFtaWNEcmF3VXNhZ2UpO1xuICAgICAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpO1xuICAgICAgICBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgdGhpcy5fYXR0clBvc2l0aW9uKTtcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe1xuICAgICAgICAgICAgY29sb3I6IDB4ZmYwMGZmLFxuICAgICAgICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICAgICAgICAgIGRlcHRoV3JpdGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fbGluZSA9IG5ldyBUSFJFRS5MaW5lKGdlb21ldHJ5LCBtYXRlcmlhbCk7XG4gICAgICAgIHRoaXMuYWRkKHRoaXMuX2xpbmUpO1xuICAgICAgICB0aGlzLmNvbnN0cmFpbnQgPSBjb25zdHJhaW50O1xuICAgIH1cbiAgICB1cGRhdGVNYXRyaXhXb3JsZChmb3JjZSkge1xuICAgICAgICBfdjNBJDMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMuY29uc3RyYWludC5kZXN0aW5hdGlvbi5tYXRyaXhXb3JsZCk7XG4gICAgICAgIHRoaXMuX2F0dHJQb3NpdGlvbi5zZXRYWVooMCwgX3YzQSQzLngsIF92M0EkMy55LCBfdjNBJDMueik7XG4gICAgICAgIGlmICh0aGlzLmNvbnN0cmFpbnQuc291cmNlKSB7XG4gICAgICAgICAgICBfdjNBJDMuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMuY29uc3RyYWludC5zb3VyY2UubWF0cml4V29ybGQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2F0dHJQb3NpdGlvbi5zZXRYWVooMSwgX3YzQSQzLngsIF92M0EkMy55LCBfdjNBJDMueik7XG4gICAgICAgIHRoaXMuX2F0dHJQb3NpdGlvbi5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgICAgIHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKGZvcmNlKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRlY29tcG9zZVBvc2l0aW9uKG1hdHJpeCwgdGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRhcmdldC5zZXQobWF0cml4LmVsZW1lbnRzWzEyXSwgbWF0cml4LmVsZW1lbnRzWzEzXSwgbWF0cml4LmVsZW1lbnRzWzE0XSk7XG59XG5cbmNvbnN0IF92M0EkMiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfdjNCJDEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuZnVuY3Rpb24gZGVjb21wb3NlUm90YXRpb24obWF0cml4LCB0YXJnZXQpIHtcbiAgICBtYXRyaXguZGVjb21wb3NlKF92M0EkMiwgdGFyZ2V0LCBfdjNCJDEpO1xuICAgIHJldHVybiB0YXJnZXQ7XG59XG5cbi8qKlxuICogQSBjb21wYXQgZnVuY3Rpb24gZm9yIGBRdWF0ZXJuaW9uLmludmVydCgpYCAvIGBRdWF0ZXJuaW9uLmludmVyc2UoKWAuXG4gKiBgUXVhdGVybmlvbi5pbnZlcnQoKWAgaXMgaW50cm9kdWNlZCBpbiByMTIzIGFuZCBgUXVhdGVybmlvbi5pbnZlcnNlKClgIGVtaXRzIGEgd2FybmluZy5cbiAqIFdlIGFyZSBnb2luZyB0byB1c2UgdGhpcyBjb21wYXQgZm9yIGEgd2hpbGUuXG4gKiBAcGFyYW0gdGFyZ2V0IEEgdGFyZ2V0IHF1YXRlcm5pb25cbiAqL1xuZnVuY3Rpb24gcXVhdEludmVydENvbXBhdCh0YXJnZXQpIHtcbiAgICBpZiAodGFyZ2V0LmludmVydCkge1xuICAgICAgICB0YXJnZXQuaW52ZXJ0KCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0YXJnZXQuaW52ZXJzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vKipcbiAqIEEgYmFzZSBjbGFzcyBvZiBWUk0gY29uc3RyYWludCBjbGFzc2VzLlxuICovXG5jbGFzcyBWUk1Ob2RlQ29uc3RyYWludCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBkZXN0aW5hdGlvbiBvYmplY3RcbiAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZGVzdGluYXRpb24sIHNvdXJjZSkge1xuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gICAgICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgICAgICB0aGlzLndlaWdodCA9IDEuMDtcbiAgICB9XG59XG5cbmNvbnN0IF92M0EkMSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfdjNCID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF92M0MgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3F1YXRBJDIgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX3F1YXRCJDIgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuY29uc3QgX3F1YXRDID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbi8qKlxuICogQSBjb25zdHJhaW50IHRoYXQgbWFrZXMgaXQgbG9vayBhdCBhIHNvdXJjZSBvYmplY3QuXG4gKlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdnJtLWMvdnJtLXNwZWNpZmljYXRpb24vdHJlZS9tYXN0ZXIvc3BlY2lmaWNhdGlvbi9WUk1DX25vZGVfY29uc3RyYWludC0xLjBfYmV0YSNyb2xsLWNvbnN0cmFpbnRcbiAqL1xuY2xhc3MgVlJNQWltQ29uc3RyYWludCBleHRlbmRzIFZSTU5vZGVDb25zdHJhaW50IHtcbiAgICAvKipcbiAgICAgKiBUaGUgYWltIGF4aXMgb2YgdGhlIGNvbnN0cmFpbnQuXG4gICAgICovXG4gICAgZ2V0IGFpbUF4aXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9haW1BeGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgYWltIGF4aXMgb2YgdGhlIGNvbnN0cmFpbnQuXG4gICAgICovXG4gICAgc2V0IGFpbUF4aXMoYWltQXhpcykge1xuICAgICAgICB0aGlzLl9haW1BeGlzID0gYWltQXhpcztcbiAgICAgICAgdGhpcy5fdjNBaW1BeGlzLnNldChhaW1BeGlzID09PSAnUG9zaXRpdmVYJyA/IDEuMCA6IGFpbUF4aXMgPT09ICdOZWdhdGl2ZVgnID8gLTEuMCA6IDAuMCwgYWltQXhpcyA9PT0gJ1Bvc2l0aXZlWScgPyAxLjAgOiBhaW1BeGlzID09PSAnTmVnYXRpdmVZJyA/IC0xLjAgOiAwLjAsIGFpbUF4aXMgPT09ICdQb3NpdGl2ZVonID8gMS4wIDogYWltQXhpcyA9PT0gJ05lZ2F0aXZlWicgPyAtMS4wIDogMC4wKTtcbiAgICB9XG4gICAgZ2V0IGRlcGVuZGVuY2llcygpIHtcbiAgICAgICAgY29uc3Qgc2V0ID0gbmV3IFNldChbdGhpcy5zb3VyY2VdKTtcbiAgICAgICAgaWYgKHRoaXMuZGVzdGluYXRpb24ucGFyZW50KSB7XG4gICAgICAgICAgICBzZXQuYWRkKHRoaXMuZGVzdGluYXRpb24ucGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2V0O1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihkZXN0aW5hdGlvbiwgc291cmNlKSB7XG4gICAgICAgIHN1cGVyKGRlc3RpbmF0aW9uLCBzb3VyY2UpO1xuICAgICAgICB0aGlzLl9haW1BeGlzID0gJ1Bvc2l0aXZlWCc7XG4gICAgICAgIHRoaXMuX3YzQWltQXhpcyA9IG5ldyBUSFJFRS5WZWN0b3IzKDEsIDAsIDApO1xuICAgICAgICB0aGlzLl9kc3RSZXN0UXVhdCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgfVxuICAgIHNldEluaXRTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5fZHN0UmVzdFF1YXQuY29weSh0aGlzLmRlc3RpbmF0aW9uLnF1YXRlcm5pb24pO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIC8vIHVwZGF0ZSB3b3JsZCBtYXRyaXggb2YgZGVzdGluYXRpb24gYW5kIHNvdXJjZSBtYW51YWxseVxuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLnVwZGF0ZVdvcmxkTWF0cml4KHRydWUsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5zb3VyY2UudXBkYXRlV29ybGRNYXRyaXgodHJ1ZSwgZmFsc2UpO1xuICAgICAgICAvLyBnZXQgd29ybGQgcXVhdGVybmlvbiBvZiB0aGUgcGFyZW50IG9mIHRoZSBkZXN0aW5hdGlvblxuICAgICAgICBjb25zdCBkc3RQYXJlbnRXb3JsZFF1YXQgPSBfcXVhdEEkMi5pZGVudGl0eSgpO1xuICAgICAgICBjb25zdCBpbnZEc3RQYXJlbnRXb3JsZFF1YXQgPSBfcXVhdEIkMi5pZGVudGl0eSgpO1xuICAgICAgICBpZiAodGhpcy5kZXN0aW5hdGlvbi5wYXJlbnQpIHtcbiAgICAgICAgICAgIGRlY29tcG9zZVJvdGF0aW9uKHRoaXMuZGVzdGluYXRpb24ucGFyZW50Lm1hdHJpeFdvcmxkLCBkc3RQYXJlbnRXb3JsZFF1YXQpO1xuICAgICAgICAgICAgcXVhdEludmVydENvbXBhdChpbnZEc3RQYXJlbnRXb3JsZFF1YXQuY29weShkc3RQYXJlbnRXb3JsZFF1YXQpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjYWxjdWxhdGUgZnJvbS10byB2ZWN0b3JzIGluIHdvcmxkIGNvb3JkXG4gICAgICAgIGNvbnN0IGEwID0gX3YzQSQxLmNvcHkodGhpcy5fdjNBaW1BeGlzKS5hcHBseVF1YXRlcm5pb24odGhpcy5fZHN0UmVzdFF1YXQpLmFwcGx5UXVhdGVybmlvbihkc3RQYXJlbnRXb3JsZFF1YXQpO1xuICAgICAgICBjb25zdCBhMSA9IGRlY29tcG9zZVBvc2l0aW9uKHRoaXMuc291cmNlLm1hdHJpeFdvcmxkLCBfdjNCKVxuICAgICAgICAgICAgLnN1YihkZWNvbXBvc2VQb3NpdGlvbih0aGlzLmRlc3RpbmF0aW9uLm1hdHJpeFdvcmxkLCBfdjNDKSlcbiAgICAgICAgICAgIC5ub3JtYWxpemUoKTtcbiAgICAgICAgLy8gY3JlYXRlIGEgZnJvbS10byBxdWF0ZXJuaW9uLCBjb252ZXJ0IHRvIGRlc3RpbmF0aW9uIGxvY2FsIGNvb3JkLCB0aGVuIG11bHRpcGx5IHJlc3QgcXVhdGVybmlvblxuICAgICAgICBjb25zdCB0YXJnZXRRdWF0ID0gX3F1YXRDXG4gICAgICAgICAgICAuc2V0RnJvbVVuaXRWZWN0b3JzKGEwLCBhMSlcbiAgICAgICAgICAgIC5wcmVtdWx0aXBseShpbnZEc3RQYXJlbnRXb3JsZFF1YXQpXG4gICAgICAgICAgICAubXVsdGlwbHkoZHN0UGFyZW50V29ybGRRdWF0KVxuICAgICAgICAgICAgLm11bHRpcGx5KHRoaXMuX2RzdFJlc3RRdWF0KTtcbiAgICAgICAgLy8gYmxlbmQgd2l0aCB0aGUgcmVzdCBxdWF0ZXJuaW9uIHVzaW5nIHdlaWdodFxuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLnF1YXRlcm5pb24uY29weSh0aGlzLl9kc3RSZXN0UXVhdCkuc2xlcnAodGFyZ2V0UXVhdCwgdGhpcy53ZWlnaHQpO1xuICAgIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcblxyXG5mdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG50eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxufTtcblxuLyoqXG4gKiBUcmF2ZXJzZSBhbmNlc3RvcnMgb2YgZ2l2ZW4gb2JqZWN0IGFuZCBjYWxsIGdpdmVuIGNhbGxiYWNrIGZyb20gcm9vdCBzaWRlLlxuICogSXQgd2lsbCBpbmNsdWRlIHRoZSBnaXZlbiBvYmplY3QgaXRzZWxmLlxuICpcbiAqIEBwYXJhbSBvYmplY3QgVGhlIG9iamVjdCB5b3Ugd2FudCB0byB0cmF2ZXJzZVxuICogQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsIGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBhbmNlc3RvcnNcbiAqL1xuZnVuY3Rpb24gdHJhdmVyc2VBbmNlc3RvcnNGcm9tUm9vdChvYmplY3QsIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JzID0gW29iamVjdF07XG4gICAgbGV0IGhlYWQgPSBvYmplY3QucGFyZW50O1xuICAgIHdoaWxlIChoZWFkICE9PSBudWxsKSB7XG4gICAgICAgIGFuY2VzdG9ycy51bnNoaWZ0KGhlYWQpO1xuICAgICAgICBoZWFkID0gaGVhZC5wYXJlbnQ7XG4gICAgfVxuICAgIGFuY2VzdG9ycy5mb3JFYWNoKChhbmNlc3RvcikgPT4ge1xuICAgICAgICBjYWxsYmFjayhhbmNlc3Rvcik7XG4gICAgfSk7XG59XG5cbmNsYXNzIFZSTU5vZGVDb25zdHJhaW50TWFuYWdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2NvbnN0cmFpbnRzID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9vYmplY3RDb25zdHJhaW50c01hcCA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgZ2V0IGNvbnN0cmFpbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uc3RyYWludHM7XG4gICAgfVxuICAgIGFkZENvbnN0cmFpbnQoY29uc3RyYWludCkge1xuICAgICAgICB0aGlzLl9jb25zdHJhaW50cy5hZGQoY29uc3RyYWludCk7XG4gICAgICAgIGxldCBvYmplY3RTZXQgPSB0aGlzLl9vYmplY3RDb25zdHJhaW50c01hcC5nZXQoY29uc3RyYWludC5kZXN0aW5hdGlvbik7XG4gICAgICAgIGlmIChvYmplY3RTZXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgb2JqZWN0U2V0ID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgdGhpcy5fb2JqZWN0Q29uc3RyYWludHNNYXAuc2V0KGNvbnN0cmFpbnQuZGVzdGluYXRpb24sIG9iamVjdFNldCk7XG4gICAgICAgIH1cbiAgICAgICAgb2JqZWN0U2V0LmFkZChjb25zdHJhaW50KTtcbiAgICB9XG4gICAgZGVsZXRlQ29uc3RyYWludChjb25zdHJhaW50KSB7XG4gICAgICAgIHRoaXMuX2NvbnN0cmFpbnRzLmRlbGV0ZShjb25zdHJhaW50KTtcbiAgICAgICAgY29uc3Qgb2JqZWN0U2V0ID0gdGhpcy5fb2JqZWN0Q29uc3RyYWludHNNYXAuZ2V0KGNvbnN0cmFpbnQuZGVzdGluYXRpb24pO1xuICAgICAgICBvYmplY3RTZXQuZGVsZXRlKGNvbnN0cmFpbnQpO1xuICAgIH1cbiAgICBzZXRJbml0U3RhdGUoKSB7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzVHJpZWQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzRG9uZSA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChjb25zdCBjb25zdHJhaW50IG9mIHRoaXMuX2NvbnN0cmFpbnRzKSB7XG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzQ29uc3RyYWludChjb25zdHJhaW50LCBjb25zdHJhaW50c1RyaWVkLCBjb25zdHJhaW50c0RvbmUsIChjb25zdHJhaW50KSA9PiBjb25zdHJhaW50LnNldEluaXRTdGF0ZSgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzVHJpZWQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzRG9uZSA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChjb25zdCBjb25zdHJhaW50IG9mIHRoaXMuX2NvbnN0cmFpbnRzKSB7XG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzQ29uc3RyYWludChjb25zdHJhaW50LCBjb25zdHJhaW50c1RyaWVkLCBjb25zdHJhaW50c0RvbmUsIChjb25zdHJhaW50KSA9PiBjb25zdHJhaW50LnVwZGF0ZSgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgYSBjb25zdHJhaW50LlxuICAgICAqIElmIHRoZXJlIGFyZSBvdGhlciBjb25zdHJhaW50cyB0aGF0IGFyZSBkZXBlbmRhbnQsIGl0IHdpbGwgdHJ5IHRvIHVwZGF0ZSB0aGVtIHJlY3Vyc2l2ZWx5LlxuICAgICAqIEl0IG1pZ2h0IHRocm93IGFuIGVycm9yIGlmIHRoZXJlIGFyZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gICAgICpcbiAgICAgKiBJbnRlbmRlZCB0byBiZSB1c2VkIGluIHtAbGluayB1cGRhdGV9IGFuZCB7QGxpbmsgX3Byb2Nlc3NDb25zdHJhaW50fSBpdHNlbGYgcmVjdXJzaXZlbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uc3RyYWludCBBIGNvbnN0cmFpbnQgeW91IHdhbnQgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIGNvbnN0cmFpbnRzVHJpZWQgU2V0IG9mIGNvbnN0cmFpbnRzIHRoYXQgYXJlIGFscmVhZHkgdHJpZWQgdG8gYmUgdXBkYXRlZFxuICAgICAqIEBwYXJhbSBjb25zdHJhaW50c0RvbmUgU2V0IG9mIGNvbnN0cmFpbnRzIHRoYXQgYXJlIGFscmVhZHkgdXAgdG8gZGF0ZVxuICAgICAqL1xuICAgIF9wcm9jZXNzQ29uc3RyYWludChjb25zdHJhaW50LCBjb25zdHJhaW50c1RyaWVkLCBjb25zdHJhaW50c0RvbmUsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmIChjb25zdHJhaW50c0RvbmUuaGFzKGNvbnN0cmFpbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnN0cmFpbnRzVHJpZWQuaGFzKGNvbnN0cmFpbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZSTU5vZGVDb25zdHJhaW50TWFuYWdlcjogQ2lyY3VsYXIgZGVwZW5kZW5jeSBkZXRlY3RlZCB3aGlsZSB1cGRhdGluZyBjb25zdHJhaW50cycpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0cmFpbnRzVHJpZWQuYWRkKGNvbnN0cmFpbnQpO1xuICAgICAgICBjb25zdCBkZXBPYmplY3RzID0gY29uc3RyYWludC5kZXBlbmRlbmNpZXM7XG4gICAgICAgIGZvciAoY29uc3QgZGVwT2JqZWN0IG9mIGRlcE9iamVjdHMpIHtcbiAgICAgICAgICAgIHRyYXZlcnNlQW5jZXN0b3JzRnJvbVJvb3QoZGVwT2JqZWN0LCAoZGVwT2JqZWN0QW5jZXN0b3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvYmplY3RTZXQgPSB0aGlzLl9vYmplY3RDb25zdHJhaW50c01hcC5nZXQoZGVwT2JqZWN0QW5jZXN0b3IpO1xuICAgICAgICAgICAgICAgIGlmIChvYmplY3RTZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkZXBDb25zdHJhaW50IG9mIG9iamVjdFNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc0NvbnN0cmFpbnQoZGVwQ29uc3RyYWludCwgY29uc3RyYWludHNUcmllZCwgY29uc3RyYWludHNEb25lLCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYWxsYmFjayhjb25zdHJhaW50KTtcbiAgICAgICAgY29uc3RyYWludHNEb25lLmFkZChjb25zdHJhaW50KTtcbiAgICB9XG59XG5cbmNvbnN0IF9xdWF0QSQxID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbmNvbnN0IF9xdWF0QiQxID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbi8qKlxuICogQSBjb25zdHJhaW50IHRoYXQgdHJhbnNmZXJzIGEgcm90YXRpb24gYXJvdW5kIG9uZSBheGlzIG9mIGEgc291cmNlLlxuICpcbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3ZybS1jL3ZybS1zcGVjaWZpY2F0aW9uL3RyZWUvbWFzdGVyL3NwZWNpZmljYXRpb24vVlJNQ19ub2RlX2NvbnN0cmFpbnQtMS4wX2JldGEjcm9sbC1jb25zdHJhaW50XG4gKi9cbmNsYXNzIFZSTVJvdGF0aW9uQ29uc3RyYWludCBleHRlbmRzIFZSTU5vZGVDb25zdHJhaW50IHtcbiAgICBnZXQgZGVwZW5kZW5jaWVzKCkge1xuICAgICAgICByZXR1cm4gbmV3IFNldChbdGhpcy5zb3VyY2VdKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoZGVzdGluYXRpb24sIHNvdXJjZSkge1xuICAgICAgICBzdXBlcihkZXN0aW5hdGlvbiwgc291cmNlKTtcbiAgICAgICAgdGhpcy5fZHN0UmVzdFF1YXQgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuICAgICAgICB0aGlzLl9pbnZTcmNSZXN0UXVhdCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgfVxuICAgIHNldEluaXRTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5fZHN0UmVzdFF1YXQuY29weSh0aGlzLmRlc3RpbmF0aW9uLnF1YXRlcm5pb24pO1xuICAgICAgICBxdWF0SW52ZXJ0Q29tcGF0KHRoaXMuX2ludlNyY1Jlc3RRdWF0LmNvcHkodGhpcy5zb3VyY2UucXVhdGVybmlvbikpO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgZGVsdGEgcm90YXRpb24gZnJvbSB0aGUgcmVzdCBhYm91dCB0aGUgc291cmNlXG4gICAgICAgIGNvbnN0IHNyY0RlbHRhUXVhdCA9IF9xdWF0QSQxLmNvcHkodGhpcy5faW52U3JjUmVzdFF1YXQpLm11bHRpcGx5KHRoaXMuc291cmNlLnF1YXRlcm5pb24pO1xuICAgICAgICAvLyBtdWx0aXBseSB0aGUgZGVsdGEgdG8gdGhlIHJlc3Qgb2YgdGhlIGRlc3RpbmF0aW9uXG4gICAgICAgIGNvbnN0IHRhcmdldFF1YXQgPSBfcXVhdEIkMS5jb3B5KHRoaXMuX2RzdFJlc3RRdWF0KS5tdWx0aXBseShzcmNEZWx0YVF1YXQpO1xuICAgICAgICAvLyBibGVuZCB3aXRoIHRoZSByZXN0IHF1YXRlcm5pb24gdXNpbmcgd2VpZ2h0XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb24ucXVhdGVybmlvbi5jb3B5KHRoaXMuX2RzdFJlc3RRdWF0KS5zbGVycCh0YXJnZXRRdWF0LCB0aGlzLndlaWdodCk7XG4gICAgfVxufVxuXG5jb25zdCBfdjNBID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF9xdWF0QSA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfcXVhdEIgPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuLyoqXG4gKiBBIGNvbnN0cmFpbnQgdGhhdCB0cmFuc2ZlcnMgYSByb3RhdGlvbiBhcm91bmQgb25lIGF4aXMgb2YgYSBzb3VyY2UuXG4gKlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdnJtLWMvdnJtLXNwZWNpZmljYXRpb24vdHJlZS9tYXN0ZXIvc3BlY2lmaWNhdGlvbi9WUk1DX25vZGVfY29uc3RyYWludC0xLjBfYmV0YSNyb2xsLWNvbnN0cmFpbnRcbiAqL1xuY2xhc3MgVlJNUm9sbENvbnN0cmFpbnQgZXh0ZW5kcyBWUk1Ob2RlQ29uc3RyYWludCB7XG4gICAgLyoqXG4gICAgICogVGhlIHJvbGwgYXhpcyBvZiB0aGUgY29uc3RyYWludC5cbiAgICAgKi9cbiAgICBnZXQgcm9sbEF4aXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb2xsQXhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIHJvbGwgYXhpcyBvZiB0aGUgY29uc3RyYWludC5cbiAgICAgKi9cbiAgICBzZXQgcm9sbEF4aXMocm9sbEF4aXMpIHtcbiAgICAgICAgdGhpcy5fcm9sbEF4aXMgPSByb2xsQXhpcztcbiAgICAgICAgdGhpcy5fdjNSb2xsQXhpcy5zZXQocm9sbEF4aXMgPT09ICdYJyA/IDEuMCA6IDAuMCwgcm9sbEF4aXMgPT09ICdZJyA/IDEuMCA6IDAuMCwgcm9sbEF4aXMgPT09ICdaJyA/IDEuMCA6IDAuMCk7XG4gICAgfVxuICAgIGdldCBkZXBlbmRlbmNpZXMoKSB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KFt0aGlzLnNvdXJjZV0pO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihkZXN0aW5hdGlvbiwgc291cmNlKSB7XG4gICAgICAgIHN1cGVyKGRlc3RpbmF0aW9uLCBzb3VyY2UpO1xuICAgICAgICB0aGlzLl9yb2xsQXhpcyA9ICdYJztcbiAgICAgICAgdGhpcy5fdjNSb2xsQXhpcyA9IG5ldyBUSFJFRS5WZWN0b3IzKDEsIDAsIDApO1xuICAgICAgICB0aGlzLl9kc3RSZXN0UXVhdCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgICAgIHRoaXMuX2ludkRzdFJlc3RRdWF0ID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcbiAgICAgICAgdGhpcy5faW52U3JjUmVzdFF1YXRNdWxEc3RSZXN0UXVhdCA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG4gICAgfVxuICAgIHNldEluaXRTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5fZHN0UmVzdFF1YXQuY29weSh0aGlzLmRlc3RpbmF0aW9uLnF1YXRlcm5pb24pO1xuICAgICAgICBxdWF0SW52ZXJ0Q29tcGF0KHRoaXMuX2ludkRzdFJlc3RRdWF0LmNvcHkodGhpcy5fZHN0UmVzdFF1YXQpKTtcbiAgICAgICAgcXVhdEludmVydENvbXBhdCh0aGlzLl9pbnZTcmNSZXN0UXVhdE11bERzdFJlc3RRdWF0LmNvcHkodGhpcy5zb3VyY2UucXVhdGVybmlvbikpLm11bHRpcGx5KHRoaXMuX2RzdFJlc3RRdWF0KTtcbiAgICB9XG4gICAgdXBkYXRlKCkge1xuICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIGRlbHRhIHJvdGF0aW9uIGZyb20gdGhlIHJlc3QgYWJvdXQgdGhlIHNvdXJjZSwgdGhlbiBjb252ZXJ0IHRvIHRoZSBkZXN0aW5hdGlvbiBsb2NhbCBjb29yZFxuICAgICAgICAvKipcbiAgICAgICAgICogV2hhdCB0aGUgcXVhdERlbHRhIGlzIGludGVuZGVkIHRvIGJlOlxuICAgICAgICAgKlxuICAgICAgICAgKiBgYGB0c1xuICAgICAgICAgKiBjb25zdCBxdWF0U3JjRGVsdGEgPSBfcXVhdEFcbiAgICAgICAgICogICAuY29weSggdGhpcy5faW52U3JjUmVzdFF1YXQgKVxuICAgICAgICAgKiAgIC5tdWx0aXBseSggdGhpcy5zb3VyY2UucXVhdGVybmlvbiApO1xuICAgICAgICAgKiBjb25zdCBxdWF0U3JjRGVsdGFJblBhcmVudCA9IF9xdWF0QlxuICAgICAgICAgKiAgIC5jb3B5KCB0aGlzLl9zcmNSZXN0UXVhdCApXG4gICAgICAgICAqICAgLm11bHRpcGx5KCBxdWF0U3JjRGVsdGEgKVxuICAgICAgICAgKiAgIC5tdWx0aXBseSggdGhpcy5faW52U3JjUmVzdFF1YXQgKTtcbiAgICAgICAgICogY29uc3QgcXVhdFNyY0RlbHRhSW5Ec3QgPSBfcXVhdEFcbiAgICAgICAgICogICAuY29weSggdGhpcy5faW52RHN0UmVzdFF1YXQgKVxuICAgICAgICAgKiAgIC5tdWx0aXBseSggcXVhdFNyY0RlbHRhSW5QYXJlbnQgKVxuICAgICAgICAgKiAgIC5tdWx0aXBseSggdGhpcy5fZHN0UmVzdFF1YXQgKTtcbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBxdWF0RGVsdGEgPSBfcXVhdEFcbiAgICAgICAgICAgIC5jb3B5KHRoaXMuX2ludkRzdFJlc3RRdWF0KVxuICAgICAgICAgICAgLm11bHRpcGx5KHRoaXMuc291cmNlLnF1YXRlcm5pb24pXG4gICAgICAgICAgICAubXVsdGlwbHkodGhpcy5faW52U3JjUmVzdFF1YXRNdWxEc3RSZXN0UXVhdCk7XG4gICAgICAgIC8vIGNyZWF0ZSBhIGZyb20tdG8gcXVhdGVybmlvblxuICAgICAgICBjb25zdCBuMSA9IF92M0EuY29weSh0aGlzLl92M1JvbGxBeGlzKS5hcHBseVF1YXRlcm5pb24ocXVhdERlbHRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoYXQgdGhlIHF1YXRGcm9tVG8gaXMgaW50ZW5kZWQgdG8gYmU6XG4gICAgICAgICAqXG4gICAgICAgICAqIGBgYHRzXG4gICAgICAgICAqIGNvbnN0IHF1YXRGcm9tVG8gPSBfcXVhdEIuc2V0RnJvbVVuaXRWZWN0b3JzKCB0aGlzLl92M1JvbGxBeGlzLCBuMSApLmludmVyc2UoKTtcbiAgICAgICAgICogYGBgXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBxdWF0RnJvbVRvID0gX3F1YXRCLnNldEZyb21Vbml0VmVjdG9ycyhuMSwgdGhpcy5fdjNSb2xsQXhpcyk7XG4gICAgICAgIC8vIHF1YXRGcm9tVG8gKiBxdWF0RGVsdGEgPT0gcm9sbCBleHRyYWN0ZWQgZnJvbSBxdWF0RGVsdGFcbiAgICAgICAgY29uc3QgdGFyZ2V0UXVhdCA9IHF1YXRGcm9tVG8ucHJlbXVsdGlwbHkodGhpcy5fZHN0UmVzdFF1YXQpLm11bHRpcGx5KHF1YXREZWx0YSk7XG4gICAgICAgIC8vIGJsZW5kIHdpdGggdGhlIHJlc3QgcXVhdGVybmlvbiB1c2luZyB3ZWlnaHRcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5xdWF0ZXJuaW9uLmNvcHkodGhpcy5fZHN0UmVzdFF1YXQpLnNsZXJwKHRhcmdldFF1YXQsIHRoaXMud2VpZ2h0KTtcbiAgICB9XG59XG5cbi8qKlxuICogUG9zc2libGUgc3BlYyB2ZXJzaW9ucyBpdCByZWNvZ25pemVzLlxuICovXG5jb25zdCBQT1NTSUJMRV9TUEVDX1ZFUlNJT05TID0gbmV3IFNldChbJzEuMCcsICcxLjAtYmV0YSddKTtcbmNsYXNzIFZSTU5vZGVDb25zdHJhaW50TG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIFZSTU5vZGVDb25zdHJhaW50TG9hZGVyUGx1Z2luLkVYVEVOU0lPTl9OQU1FO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihwYXJzZXIsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5wYXJzZXIgPSBwYXJzZXI7XG4gICAgICAgIHRoaXMuaGVscGVyUm9vdCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5oZWxwZXJSb290O1xuICAgIH1cbiAgICBhZnRlclJvb3QoZ2x0Zikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgZ2x0Zi51c2VyRGF0YS52cm1Ob2RlQ29uc3RyYWludE1hbmFnZXIgPSB5aWVsZCB0aGlzLl9pbXBvcnQoZ2x0Zik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbXBvcnQgY29uc3RyYWludHMgZnJvbSBhIEdMVEYgYW5kIHJldHVybnMgYSB7QGxpbmsgVlJNTm9kZUNvbnN0cmFpbnRNYW5hZ2VyfS5cbiAgICAgKiBJdCBtaWdodCByZXR1cm4gYG51bGxgIGluc3RlYWQgd2hlbiBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGNyZWF0ZWQgb3Igc29tZXRoaW5nIGdvIHdyb25nLlxuICAgICAqXG4gICAgICogQHBhcmFtIGdsdGYgQSBwYXJzZWQgcmVzdWx0IG9mIEdMVEYgdGFrZW4gZnJvbSBHTFRGTG9hZGVyXG4gICAgICovXG4gICAgX2ltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSB0aGlzLnBhcnNlci5qc29uO1xuICAgICAgICAgICAgLy8gZWFybHkgYWJvcnQgaWYgaXQgZG9lc24ndCB1c2UgY29uc3RyYWludHNcbiAgICAgICAgICAgIGNvbnN0IGlzQ29uc3RyYWludHNVc2VkID0gKChfYSA9IGpzb24uZXh0ZW5zaW9uc1VzZWQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbmRleE9mKFZSTU5vZGVDb25zdHJhaW50TG9hZGVyUGx1Z2luLkVYVEVOU0lPTl9OQU1FKSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKCFpc0NvbnN0cmFpbnRzVXNlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWFuYWdlciA9IG5ldyBWUk1Ob2RlQ29uc3RyYWludE1hbmFnZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IHRocmVlTm9kZXMgPSB5aWVsZCB0aGlzLnBhcnNlci5nZXREZXBlbmRlbmNpZXMoJ25vZGUnKTtcbiAgICAgICAgICAgIC8vIGltcG9ydCBjb25zdHJhaW50cyBmb3IgZWFjaCBub2Rlc1xuICAgICAgICAgICAgdGhyZWVOb2Rlcy5mb3JFYWNoKChub2RlLCBub2RlSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NoZW1hTm9kZSA9IGpzb24ubm9kZXNbbm9kZUluZGV4XTtcbiAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgZXh0ZW5zaW9uIHVzZXMgdGhlIGV4dGVuc2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IChfYSA9IHNjaGVtYU5vZGUgPT09IG51bGwgfHwgc2NoZW1hTm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hTm9kZS5leHRlbnNpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbVlJNTm9kZUNvbnN0cmFpbnRMb2FkZXJQbHVnaW4uRVhURU5TSU9OX05BTUVdO1xuICAgICAgICAgICAgICAgIGlmIChleHRlbnNpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHNwZWNWZXJzaW9uID0gZXh0ZW5zaW9uLnNwZWNWZXJzaW9uO1xuICAgICAgICAgICAgICAgIGlmICghUE9TU0lCTEVfU1BFQ19WRVJTSU9OUy5oYXMoc3BlY1ZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVlJNTm9kZUNvbnN0cmFpbnRMb2FkZXJQbHVnaW46IFVua25vd24gJHtWUk1Ob2RlQ29uc3RyYWludExvYWRlclBsdWdpbi5FWFRFTlNJT05fTkFNRX0gc3BlY1ZlcnNpb24gXCIke3NwZWNWZXJzaW9ufVwiYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY29uc3RyYWludERlZiA9IGV4dGVuc2lvbi5jb25zdHJhaW50O1xuICAgICAgICAgICAgICAgIC8vIGltcG9ydCBjb25zdHJhaW50c1xuICAgICAgICAgICAgICAgIGlmIChjb25zdHJhaW50RGVmLnJvbGwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25zdHJhaW50ID0gdGhpcy5faW1wb3J0Um9sbENvbnN0cmFpbnQobm9kZSwgdGhyZWVOb2RlcywgY29uc3RyYWludERlZi5yb2xsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlci5hZGRDb25zdHJhaW50KGNvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25zdHJhaW50RGVmLmFpbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN0cmFpbnQgPSB0aGlzLl9pbXBvcnRBaW1Db25zdHJhaW50KG5vZGUsIHRocmVlTm9kZXMsIGNvbnN0cmFpbnREZWYuYWltKTtcbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlci5hZGRDb25zdHJhaW50KGNvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25zdHJhaW50RGVmLnJvdGF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uc3RyYWludCA9IHRoaXMuX2ltcG9ydFJvdGF0aW9uQ29uc3RyYWludChub2RlLCB0aHJlZU5vZGVzLCBjb25zdHJhaW50RGVmLnJvdGF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlci5hZGRDb25zdHJhaW50KGNvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gaW5pdCBjb25zdHJhaW50c1xuICAgICAgICAgICAgZ2x0Zi5zY2VuZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuICAgICAgICAgICAgbWFuYWdlci5zZXRJbml0U3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBtYW5hZ2VyO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2ltcG9ydFJvbGxDb25zdHJhaW50KGRlc3RpbmF0aW9uLCBub2Rlcywgcm9sbENvbnN0cmFpbnREZWYpIHtcbiAgICAgICAgY29uc3QgeyBzb3VyY2U6IHNvdXJjZUluZGV4LCByb2xsQXhpcywgd2VpZ2h0IH0gPSByb2xsQ29uc3RyYWludERlZjtcbiAgICAgICAgY29uc3Qgc291cmNlID0gbm9kZXNbc291cmNlSW5kZXhdO1xuICAgICAgICBjb25zdCBjb25zdHJhaW50ID0gbmV3IFZSTVJvbGxDb25zdHJhaW50KGRlc3RpbmF0aW9uLCBzb3VyY2UpO1xuICAgICAgICBpZiAocm9sbEF4aXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3RyYWludC5yb2xsQXhpcyA9IHJvbGxBeGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3ZWlnaHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3RyYWludC53ZWlnaHQgPSB3ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGVscGVyUm9vdCkge1xuICAgICAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IFZSTU5vZGVDb25zdHJhaW50SGVscGVyKGNvbnN0cmFpbnQpO1xuICAgICAgICAgICAgdGhpcy5oZWxwZXJSb290LmFkZChoZWxwZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25zdHJhaW50O1xuICAgIH1cbiAgICBfaW1wb3J0QWltQ29uc3RyYWludChkZXN0aW5hdGlvbiwgbm9kZXMsIGFpbUNvbnN0cmFpbnREZWYpIHtcbiAgICAgICAgY29uc3QgeyBzb3VyY2U6IHNvdXJjZUluZGV4LCBhaW1BeGlzLCB3ZWlnaHQgfSA9IGFpbUNvbnN0cmFpbnREZWY7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5vZGVzW3NvdXJjZUluZGV4XTtcbiAgICAgICAgY29uc3QgY29uc3RyYWludCA9IG5ldyBWUk1BaW1Db25zdHJhaW50KGRlc3RpbmF0aW9uLCBzb3VyY2UpO1xuICAgICAgICBpZiAoYWltQXhpcyAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdHJhaW50LmFpbUF4aXMgPSBhaW1BeGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3ZWlnaHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3RyYWludC53ZWlnaHQgPSB3ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGVscGVyUm9vdCkge1xuICAgICAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IFZSTU5vZGVDb25zdHJhaW50SGVscGVyKGNvbnN0cmFpbnQpO1xuICAgICAgICAgICAgdGhpcy5oZWxwZXJSb290LmFkZChoZWxwZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25zdHJhaW50O1xuICAgIH1cbiAgICBfaW1wb3J0Um90YXRpb25Db25zdHJhaW50KGRlc3RpbmF0aW9uLCBub2Rlcywgcm90YXRpb25Db25zdHJhaW50RGVmKSB7XG4gICAgICAgIGNvbnN0IHsgc291cmNlOiBzb3VyY2VJbmRleCwgd2VpZ2h0IH0gPSByb3RhdGlvbkNvbnN0cmFpbnREZWY7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5vZGVzW3NvdXJjZUluZGV4XTtcbiAgICAgICAgY29uc3QgY29uc3RyYWludCA9IG5ldyBWUk1Sb3RhdGlvbkNvbnN0cmFpbnQoZGVzdGluYXRpb24sIHNvdXJjZSk7XG4gICAgICAgIGlmICh3ZWlnaHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3RyYWludC53ZWlnaHQgPSB3ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGVscGVyUm9vdCkge1xuICAgICAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IFZSTU5vZGVDb25zdHJhaW50SGVscGVyKGNvbnN0cmFpbnQpO1xuICAgICAgICAgICAgdGhpcy5oZWxwZXJSb290LmFkZChoZWxwZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25zdHJhaW50O1xuICAgIH1cbn1cblZSTU5vZGVDb25zdHJhaW50TG9hZGVyUGx1Z2luLkVYVEVOU0lPTl9OQU1FID0gJ1ZSTUNfbm9kZV9jb25zdHJhaW50JztcblxuZXhwb3J0IHsgVlJNQWltQ29uc3RyYWludCwgVlJNTm9kZUNvbnN0cmFpbnQsIFZSTU5vZGVDb25zdHJhaW50SGVscGVyLCBWUk1Ob2RlQ29uc3RyYWludExvYWRlclBsdWdpbiwgVlJNTm9kZUNvbnN0cmFpbnRNYW5hZ2VyLCBWUk1Sb2xsQ29uc3RyYWludCwgVlJNUm90YXRpb25Db25zdHJhaW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRHaHlaV1V0ZG5KdExXNXZaR1V0WTI5dWMzUnlZV2x1ZEM1dGIyUjFiR1V1YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1TDNOeVl5OW9aV3h3WlhKekwxWlNUVTV2WkdWRGIyNXpkSEpoYVc1MFNHVnNjR1Z5TG5Seklpd2lMaTR2YzNKakwzVjBhV3h6TDJSbFkyOXRjRzl6WlZCdmMybDBhVzl1TG5Seklpd2lMaTR2YzNKakwzVjBhV3h6TDJSbFkyOXRjRzl6WlZKdmRHRjBhVzl1TG5Seklpd2lMaTR2YzNKakwzVjBhV3h6TDNGMVlYUkpiblpsY25SRGIyMXdZWFF1ZEhNaUxDSXVMaTl6Y21NdlZsSk5UbTlrWlVOdmJuTjBjbUZwYm5RdWRITWlMQ0l1TGk5emNtTXZWbEpOUVdsdFEyOXVjM1J5WVdsdWRDNTBjeUlzSWk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OTBjMnhwWWk5MGMyeHBZaTVsY3pZdWFuTWlMQ0l1TGk5emNtTXZkWFJwYkhNdmRISmhkbVZ5YzJWQmJtTmxjM1J2Y25OR2NtOXRVbTl2ZEM1MGN5SXNJaTR1TDNOeVl5OVdVazFPYjJSbFEyOXVjM1J5WVdsdWRFMWhibUZuWlhJdWRITWlMQ0l1TGk5emNtTXZWbEpOVW05MFlYUnBiMjVEYjI1emRISmhhVzUwTG5Seklpd2lMaTR2YzNKakwxWlNUVkp2Ykd4RGIyNXpkSEpoYVc1MExuUnpJaXdpTGk0dmMzSmpMMVpTVFU1dlpHVkRiMjV6ZEhKaGFXNTBURzloWkdWeVVHeDFaMmx1TG5SeklsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQXFJR0Z6SUZSSVVrVkZJR1p5YjIwZ0ozUm9jbVZsSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVTV2WkdWRGIyNXpkSEpoYVc1MElIMGdabkp2YlNBbkxpNHZWbEpOVG05a1pVTnZibk4wY21GcGJuUW5PMXh1WEc1amIyNXpkQ0JmZGpOQklEMGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqTW9LVHRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRlpTVFU1dlpHVkRiMjV6ZEhKaGFXNTBTR1ZzY0dWeUlHVjRkR1Z1WkhNZ1ZFaFNSVVV1UjNKdmRYQWdlMXh1SUNCd2RXSnNhV01nY21WaFpHOXViSGtnWTI5dWMzUnlZV2x1ZERvZ1ZsSk5UbTlrWlVOdmJuTjBjbUZwYm5RN1hHNGdJSEJ5YVhaaGRHVWdYMnhwYm1VNklGUklVa1ZGTGt4cGJtVTdYRzRnSUhCeWFYWmhkR1VnWDJGMGRISlFiM05wZEdsdmJqb2dWRWhTUlVVdVFuVm1abVZ5UVhSMGNtbGlkWFJsTzF4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhqYjI1emRISmhhVzUwT2lCV1VrMU9iMlJsUTI5dWMzUnlZV2x1ZENrZ2UxeHVJQ0FnSUhOMWNHVnlLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5VUc5emFYUnBiMjRnUFNCdVpYY2dWRWhTUlVVdVFuVm1abVZ5UVhSMGNtbGlkWFJsS0c1bGR5QkdiRzloZERNeVFYSnlZWGtvV3pBc0lEQXNJREFzSURBc0lEQXNJREJkS1N3Z015azdYRzRnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjMmwwYVc5dUxuTmxkRlZ6WVdkbEtGUklVa1ZGTGtSNWJtRnRhV05FY21GM1ZYTmhaMlVwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaMlZ2YldWMGNua2dQU0J1WlhjZ1ZFaFNSVVV1UW5WbVptVnlSMlZ2YldWMGNua29LVHRjYmlBZ0lDQm5aVzl0WlhSeWVTNXpaWFJCZEhSeWFXSjFkR1VvSjNCdmMybDBhVzl1Snl3Z2RHaHBjeTVmWVhSMGNsQnZjMmwwYVc5dUtUdGNibHh1SUNBZ0lHTnZibk4wSUcxaGRHVnlhV0ZzSUQwZ2JtVjNJRlJJVWtWRkxreHBibVZDWVhOcFkwMWhkR1Z5YVdGc0tIdGNiaUFnSUNBZ0lHTnZiRzl5T2lBd2VHWm1NREJtWml4Y2JpQWdJQ0FnSUdSbGNIUm9WR1Z6ZERvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0JrWlhCMGFGZHlhWFJsT2lCbVlXeHpaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSFJvYVhNdVgyeHBibVVnUFNCdVpYY2dWRWhTUlVVdVRHbHVaU2huWlc5dFpYUnllU3dnYldGMFpYSnBZV3dwTzF4dUlDQWdJSFJvYVhNdVlXUmtLSFJvYVhNdVgyeHBibVVwTzF4dVhHNGdJQ0FnZEdocGN5NWpiMjV6ZEhKaGFXNTBJRDBnWTI5dWMzUnlZV2x1ZER0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCMWNHUmhkR1ZOWVhSeWFYaFhiM0pzWkNobWIzSmpaVDg2SUdKdmIyeGxZVzRwT2lCMmIybGtJSHRjYmlBZ0lDQmZkak5CTG5ObGRFWnliMjFOWVhSeWFYaFFiM05wZEdsdmJpaDBhR2x6TG1OdmJuTjBjbUZwYm5RdVpHVnpkR2x1WVhScGIyNHViV0YwY21sNFYyOXliR1FwTzF4dUlDQWdJSFJvYVhNdVgyRjBkSEpRYjNOcGRHbHZiaTV6WlhSWVdWb29NQ3dnWDNZelFTNTRMQ0JmZGpOQkxua3NJRjkyTTBFdWVpazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NWpiMjV6ZEhKaGFXNTBMbk52ZFhKalpTa2dlMXh1SUNBZ0lDQWdYM1l6UVM1elpYUkdjbTl0VFdGMGNtbDRVRzl6YVhScGIyNG9kR2hwY3k1amIyNXpkSEpoYVc1MExuTnZkWEpqWlM1dFlYUnlhWGhYYjNKc1pDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhSb2FYTXVYMkYwZEhKUWIzTnBkR2x2Ymk1elpYUllXVm9vTVN3Z1gzWXpRUzU0TENCZmRqTkJMbmtzSUY5Mk0wRXVlaWs3WEc1Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5VUc5emFYUnBiMjR1Ym1WbFpITlZjR1JoZEdVZ1BTQjBjblZsTzF4dVhHNGdJQ0FnYzNWd1pYSXVkWEJrWVhSbFRXRjBjbWw0VjI5eWJHUW9abTl5WTJVcE8xeHVJQ0I5WEc1OVhHNGlMQ0pwYlhCdmNuUWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmtaV052YlhCdmMyVlFiM05wZEdsdmJqeFVJR1Y0ZEdWdVpITWdWRWhTUlVVdVZtVmpkRzl5TXo0b2JXRjBjbWw0T2lCVVNGSkZSUzVOWVhSeWFYZzBMQ0IwWVhKblpYUTZJRlFwT2lCVUlIdGNiaUFnY21WMGRYSnVJSFJoY21kbGRDNXpaWFFvYldGMGNtbDRMbVZzWlcxbGJuUnpXekV5WFN3Z2JXRjBjbWw0TG1Wc1pXMWxiblJ6V3pFelhTd2diV0YwY21sNExtVnNaVzFsYm5Seld6RTBYU2s3WEc1OVhHNGlMQ0pwYlhCdmNuUWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNWNibU52Ym5OMElGOTJNMEVnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVZMjl1YzNRZ1gzWXpRaUE5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmtaV052YlhCdmMyVlNiM1JoZEdsdmJqeFVJR1Y0ZEdWdVpITWdWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJqNG9iV0YwY21sNE9pQlVTRkpGUlM1TllYUnlhWGcwTENCMFlYSm5aWFE2SUZRcE9pQlVJSHRjYmlBZ2JXRjBjbWw0TG1SbFkyOXRjRzl6WlNoZmRqTkJMQ0IwWVhKblpYUXNJRjkyTTBJcE8xeHVJQ0J5WlhSMWNtNGdkR0Z5WjJWME8xeHVmVnh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1WEc0dktpcGNiaUFxSUVFZ1kyOXRjR0YwSUdaMWJtTjBhVzl1SUdadmNpQmdVWFZoZEdWeWJtbHZiaTVwYm5abGNuUW9LV0FnTHlCZ1VYVmhkR1Z5Ym1sdmJpNXBiblpsY25ObEtDbGdMbHh1SUNvZ1lGRjFZWFJsY201cGIyNHVhVzUyWlhKMEtDbGdJR2x6SUdsdWRISnZaSFZqWldRZ2FXNGdjakV5TXlCaGJtUWdZRkYxWVhSbGNtNXBiMjR1YVc1MlpYSnpaU2dwWUNCbGJXbDBjeUJoSUhkaGNtNXBibWN1WEc0Z0tpQlhaU0JoY21VZ1oyOXBibWNnZEc4Z2RYTmxJSFJvYVhNZ1kyOXRjR0YwSUdadmNpQmhJSGRvYVd4bExseHVJQ29nUUhCaGNtRnRJSFJoY21kbGRDQkJJSFJoY21kbGRDQnhkV0YwWlhKdWFXOXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeGRXRjBTVzUyWlhKMFEyOXRjR0YwUEZRZ1pYaDBaVzVrY3lCVVNGSkZSUzVSZFdGMFpYSnVhVzl1UGloMFlYSm5aWFE2SUZRcE9pQlVJSHRjYmlBZ2FXWWdLQ2gwWVhKblpYUWdZWE1nWVc1NUtTNXBiblpsY25RcElIdGNiaUFnSUNCMFlYSm5aWFF1YVc1MlpYSjBLQ2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnS0hSaGNtZGxkQ0JoY3lCaGJua3BMbWx1ZG1WeWMyVW9LVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUIwWVhKblpYUTdYRzU5WEc0aUxDSnBiWEJ2Y25RZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1Y2JpOHFLbHh1SUNvZ1FTQmlZWE5sSUdOc1lYTnpJRzltSUZaU1RTQmpiMjV6ZEhKaGFXNTBJR05zWVhOelpYTXVYRzRnS2k5Y2JtVjRjRzl5ZENCaFluTjBjbUZqZENCamJHRnpjeUJXVWsxT2IyUmxRMjl1YzNSeVlXbHVkQ0I3WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnYjJKcVpXTjBJR0psYVc1bklHTnZibk4wY21GcGJtVmtJR0o1SUhSb1pTQjdRR3hwYm1zZ2MyOTFjbU5sZlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCa1pYTjBhVzVoZEdsdmJqb2dWRWhTUlVVdVQySnFaV04wTTBRN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQnZZbXBsWTNRZ1kyOXVjM1J5WVdsdWN5QjBhR1VnZTBCc2FXNXJJR1JsYzNScGJtRjBhVzl1ZlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCemIzVnlZMlU2SUZSSVVrVkZMazlpYW1WamRETkVPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnZDJWcFoyaDBJRzltSUhSb1pTQmpiMjV6ZEhKaGFXNTBMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSGRsYVdkb2REb2diblZ0WW1WeU8xeHVYRzRnSUhCMVlteHBZeUJoWW5OMGNtRmpkQ0JuWlhRZ1pHVndaVzVrWlc1amFXVnpLQ2s2SUZObGREeFVTRkpGUlM1UFltcGxZM1F6UkQ0N1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCd1lYSmhiU0JrWlhOMGFXNWhkR2x2YmlCVWFHVWdaR1Z6ZEdsdVlYUnBiMjRnYjJKcVpXTjBYRzRnSUNBcUlFQndZWEpoYlNCemIzVnlZMlVnVkdobElITnZkWEpqWlNCdlltcGxZM1JjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loa1pYTjBhVzVoZEdsdmJqb2dWRWhTUlVVdVQySnFaV04wTTBRc0lITnZkWEpqWlRvZ1ZFaFNSVVV1VDJKcVpXTjBNMFFwSUh0Y2JpQWdJQ0IwYUdsekxtUmxjM1JwYm1GMGFXOXVJRDBnWkdWemRHbHVZWFJwYjI0N1hHNGdJQ0FnZEdocGN5NXpiM1Z5WTJVZ1BTQnpiM1Z5WTJVN1hHNWNiaUFnSUNCMGFHbHpMbmRsYVdkb2RDQTlJREV1TUR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlRaWFFnYVc1cGRHbGhiQ0J6ZEdGMFpTQnZaaUIwYUdVZ1kyOXVjM1J5WVdsdWRDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmhZbk4wY21GamRDQnpaWFJKYm1sMFUzUmhkR1VvS1RvZ2RtOXBaRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWWEJrWVhSbElHRnVaQ0JoY0hCc2VTQjBhR1VnWTI5dWMzUnlZV2x1ZEM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCaFluTjBjbUZqZENCMWNHUmhkR1VvS1RvZ2RtOXBaRHRjYm4xY2JpSXNJbWx0Y0c5eWRDQXFJR0Z6SUZSSVVrVkZJR1p5YjIwZ0ozUm9jbVZsSnp0Y2JtbHRjRzl5ZENCN0lHUmxZMjl0Y0c5elpWQnZjMmwwYVc5dUlIMGdabkp2YlNBbkxpOTFkR2xzY3k5a1pXTnZiWEJ2YzJWUWIzTnBkR2x2YmljN1hHNXBiWEJ2Y25RZ2V5QmtaV052YlhCdmMyVlNiM1JoZEdsdmJpQjlJR1p5YjIwZ0p5NHZkWFJwYkhNdlpHVmpiMjF3YjNObFVtOTBZWFJwYjI0bk8xeHVhVzF3YjNKMElIc2djWFZoZEVsdWRtVnlkRU52YlhCaGRDQjlJR1p5YjIwZ0p5NHZkWFJwYkhNdmNYVmhkRWx1ZG1WeWRFTnZiWEJoZENjN1hHNXBiWEJ2Y25RZ2V5QldVazFPYjJSbFEyOXVjM1J5WVdsdWRDQjlJR1p5YjIwZ0p5NHZWbEpOVG05a1pVTnZibk4wY21GcGJuUW5PMXh1WEc1amIyNXpkQ0JmZGpOQklEMGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqTW9LVHRjYm1OdmJuTjBJRjkyTTBJZ1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WTI5dWMzUWdYM1l6UXlBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVqYjI1emRDQmZjWFZoZEVFZ1BTQnVaWGNnVkVoU1JVVXVVWFZoZEdWeWJtbHZiaWdwTzF4dVkyOXVjM1FnWDNGMVlYUkNJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNibU52Ym5OMElGOXhkV0YwUXlBOUlHNWxkeUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVLQ2s3WEc1Y2JpOHFLbHh1SUNvZ1FTQmpiMjV6ZEhKaGFXNTBJSFJvWVhRZ2JXRnJaWE1nYVhRZ2JHOXZheUJoZENCaElITnZkWEpqWlNCdlltcGxZM1F1WEc0Z0tseHVJQ29nVTJWbE9pQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZkbkp0TFdNdmRuSnRMWE53WldOcFptbGpZWFJwYjI0dmRISmxaUzl0WVhOMFpYSXZjM0JsWTJsbWFXTmhkR2x2Ymk5V1VrMURYMjV2WkdWZlkyOXVjM1J5WVdsdWRDMHhMakJmWW1WMFlTTnliMnhzTFdOdmJuTjBjbUZwYm5SY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWlNUVUZwYlVOdmJuTjBjbUZwYm5RZ1pYaDBaVzVrY3lCV1VrMU9iMlJsUTI5dWMzUnlZV2x1ZENCN1hHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ1lXbHRJR0Y0YVhNZ2IyWWdkR2hsSUdOdmJuTjBjbUZwYm5RdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1oyVjBJR0ZwYlVGNGFYTW9LVG9nSjFCdmMybDBhWFpsV0NjZ2ZDQW5UbVZuWVhScGRtVllKeUI4SUNkUWIzTnBkR2wyWlZrbklId2dKMDVsWjJGMGFYWmxXU2NnZkNBblVHOXphWFJwZG1WYUp5QjhJQ2RPWldkaGRHbDJaVm9uSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZllXbHRRWGhwY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnWVdsdElHRjRhWE1nYjJZZ2RHaGxJR052Ym5OMGNtRnBiblF1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYzJWMElHRnBiVUY0YVhNb1lXbHRRWGhwY3pvZ0oxQnZjMmwwYVhabFdDY2dmQ0FuVG1WbllYUnBkbVZZSnlCOElDZFFiM05wZEdsMlpWa25JSHdnSjA1bFoyRjBhWFpsV1NjZ2ZDQW5VRzl6YVhScGRtVmFKeUI4SUNkT1pXZGhkR2wyWlZvbktTQjdYRzRnSUNBZ2RHaHBjeTVmWVdsdFFYaHBjeUE5SUdGcGJVRjRhWE03WEc0Z0lDQWdkR2hwY3k1ZmRqTkJhVzFCZUdsekxuTmxkQ2hjYmlBZ0lDQWdJR0ZwYlVGNGFYTWdQVDA5SUNkUWIzTnBkR2wyWlZnbklEOGdNUzR3SURvZ1lXbHRRWGhwY3lBOVBUMGdKMDVsWjJGMGFYWmxXQ2NnUHlBdE1TNHdJRG9nTUM0d0xGeHVJQ0FnSUNBZ1lXbHRRWGhwY3lBOVBUMGdKMUJ2YzJsMGFYWmxXU2NnUHlBeExqQWdPaUJoYVcxQmVHbHpJRDA5UFNBblRtVm5ZWFJwZG1WWkp5QS9JQzB4TGpBZ09pQXdMakFzWEc0Z0lDQWdJQ0JoYVcxQmVHbHpJRDA5UFNBblVHOXphWFJwZG1WYUp5QS9JREV1TUNBNklHRnBiVUY0YVhNZ1BUMDlJQ2RPWldkaGRHbDJaVm9uSUQ4Z0xURXVNQ0E2SURBdU1DeGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCaGFXMGdZWGhwY3lCdlppQjBhR1VnWTI5dWMzUnlZV2x1ZEM1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1gyRnBiVUY0YVhNNklDZFFiM05wZEdsMlpWZ25JSHdnSjA1bFoyRjBhWFpsV0NjZ2ZDQW5VRzl6YVhScGRtVlpKeUI4SUNkT1pXZGhkR2wyWlZrbklId2dKMUJ2YzJsMGFYWmxXaWNnZkNBblRtVm5ZWFJwZG1WYUp6dGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSHRBYkdsdWF5QmZZV2x0UVhocGMzMGdZblYwSUdsdUlHRnVJR0ZqZEhWaGJDQldaV04wYjNJeklHWnZjbTB1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5Mk0wRnBiVUY0YVhNNklGUklVa1ZGTGxabFkzUnZjak03WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlJvWlNCeVpYTjBJSEYxWVhSbGNtNXBiMjRnYjJZZ2RHaGxJSHRBYkdsdWF5QmtaWE4wYVc1aGRHbHZibjB1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUY5a2MzUlNaWE4wVVhWaGREb2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJqdGNibHh1SUNCd2RXSnNhV01nWjJWMElHUmxjR1Z1WkdWdVkybGxjeWdwT2lCVFpYUThWRWhTUlVVdVQySnFaV04wTTBRK0lIdGNiaUFnSUNCamIyNXpkQ0J6WlhRZ1BTQnVaWGNnVTJWMFBGUklVa1ZGTGs5aWFtVmpkRE5FUGloYmRHaHBjeTV6YjNWeVkyVmRLVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbVJsYzNScGJtRjBhVzl1TG5CaGNtVnVkQ2tnZTF4dUlDQWdJQ0FnYzJWMExtRmtaQ2gwYUdsekxtUmxjM1JwYm1GMGFXOXVMbkJoY21WdWRDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhObGREdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhrWlhOMGFXNWhkR2x2YmpvZ1ZFaFNSVVV1VDJKcVpXTjBNMFFzSUhOdmRYSmpaVG9nVkVoU1JVVXVUMkpxWldOME0wUXBJSHRjYmlBZ0lDQnpkWEJsY2loa1pYTjBhVzVoZEdsdmJpd2djMjkxY21ObEtUdGNibHh1SUNBZ0lIUm9hWE11WDJGcGJVRjRhWE1nUFNBblVHOXphWFJwZG1WWUp6dGNiaUFnSUNCMGFHbHpMbDkyTTBGcGJVRjRhWE1nUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlneExDQXdMQ0F3S1R0Y2JseHVJQ0FnSUhSb2FYTXVYMlJ6ZEZKbGMzUlJkV0YwSUQwZ2JtVjNJRlJJVWtWRkxsRjFZWFJsY201cGIyNG9LVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ6WlhSSmJtbDBVM1JoZEdVb0tUb2dkbTlwWkNCN1hHNGdJQ0FnZEdocGN5NWZaSE4wVW1WemRGRjFZWFF1WTI5d2VTaDBhR2x6TG1SbGMzUnBibUYwYVc5dUxuRjFZWFJsY201cGIyNHBPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSFZ3WkdGMFpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNBdkx5QjFjR1JoZEdVZ2QyOXliR1FnYldGMGNtbDRJRzltSUdSbGMzUnBibUYwYVc5dUlHRnVaQ0J6YjNWeVkyVWdiV0Z1ZFdGc2JIbGNiaUFnSUNCMGFHbHpMbVJsYzNScGJtRjBhVzl1TG5Wd1pHRjBaVmR2Y214a1RXRjBjbWw0S0hSeWRXVXNJR1poYkhObEtUdGNiaUFnSUNCMGFHbHpMbk52ZFhKalpTNTFjR1JoZEdWWGIzSnNaRTFoZEhKcGVDaDBjblZsTENCbVlXeHpaU2s3WEc1Y2JpQWdJQ0F2THlCblpYUWdkMjl5YkdRZ2NYVmhkR1Z5Ym1sdmJpQnZaaUIwYUdVZ2NHRnlaVzUwSUc5bUlIUm9aU0JrWlhOMGFXNWhkR2x2Ymx4dUlDQWdJR052Ym5OMElHUnpkRkJoY21WdWRGZHZjbXhrVVhWaGRDQTlJRjl4ZFdGMFFTNXBaR1Z1ZEdsMGVTZ3BPMXh1SUNBZ0lHTnZibk4wSUdsdWRrUnpkRkJoY21WdWRGZHZjbXhrVVhWaGRDQTlJRjl4ZFdGMFFpNXBaR1Z1ZEdsMGVTZ3BPMXh1SUNBZ0lHbG1JQ2gwYUdsekxtUmxjM1JwYm1GMGFXOXVMbkJoY21WdWRDa2dlMXh1SUNBZ0lDQWdaR1ZqYjIxd2IzTmxVbTkwWVhScGIyNG9kR2hwY3k1a1pYTjBhVzVoZEdsdmJpNXdZWEpsYm5RdWJXRjBjbWw0VjI5eWJHUXNJR1J6ZEZCaGNtVnVkRmR2Y214a1VYVmhkQ2s3WEc0Z0lDQWdJQ0J4ZFdGMFNXNTJaWEowUTI5dGNHRjBLR2x1ZGtSemRGQmhjbVZ1ZEZkdmNteGtVWFZoZEM1amIzQjVLR1J6ZEZCaGNtVnVkRmR2Y214a1VYVmhkQ2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUdOaGJHTjFiR0YwWlNCbWNtOXRMWFJ2SUhabFkzUnZjbk1nYVc0Z2QyOXliR1FnWTI5dmNtUmNiaUFnSUNCamIyNXpkQ0JoTUNBOUlGOTJNMEV1WTI5d2VTaDBhR2x6TGw5Mk0wRnBiVUY0YVhNcExtRndjR3g1VVhWaGRHVnlibWx2YmloMGFHbHpMbDlrYzNSU1pYTjBVWFZoZENrdVlYQndiSGxSZFdGMFpYSnVhVzl1S0dSemRGQmhjbVZ1ZEZkdmNteGtVWFZoZENrN1hHNGdJQ0FnWTI5dWMzUWdZVEVnUFNCa1pXTnZiWEJ2YzJWUWIzTnBkR2x2YmloMGFHbHpMbk52ZFhKalpTNXRZWFJ5YVhoWGIzSnNaQ3dnWDNZelFpbGNiaUFnSUNBZ0lDNXpkV0lvWkdWamIyMXdiM05sVUc5emFYUnBiMjRvZEdocGN5NWtaWE4wYVc1aGRHbHZiaTV0WVhSeWFYaFhiM0pzWkN3Z1gzWXpReWtwWEc0Z0lDQWdJQ0F1Ym05eWJXRnNhWHBsS0NrN1hHNWNiaUFnSUNBdkx5QmpjbVZoZEdVZ1lTQm1jbTl0TFhSdklIRjFZWFJsY201cGIyNHNJR052Ym5abGNuUWdkRzhnWkdWemRHbHVZWFJwYjI0Z2JHOWpZV3dnWTI5dmNtUXNJSFJvWlc0Z2JYVnNkR2x3YkhrZ2NtVnpkQ0J4ZFdGMFpYSnVhVzl1WEc0Z0lDQWdZMjl1YzNRZ2RHRnlaMlYwVVhWaGRDQTlJRjl4ZFdGMFExeHVJQ0FnSUNBZ0xuTmxkRVp5YjIxVmJtbDBWbVZqZEc5eWN5aGhNQ3dnWVRFcFhHNGdJQ0FnSUNBdWNISmxiWFZzZEdsd2JIa29hVzUyUkhOMFVHRnlaVzUwVjI5eWJHUlJkV0YwS1Z4dUlDQWdJQ0FnTG0xMWJIUnBjR3g1S0dSemRGQmhjbVZ1ZEZkdmNteGtVWFZoZENsY2JpQWdJQ0FnSUM1dGRXeDBhWEJzZVNoMGFHbHpMbDlrYzNSU1pYTjBVWFZoZENrN1hHNWNiaUFnSUNBdkx5QmliR1Z1WkNCM2FYUm9JSFJvWlNCeVpYTjBJSEYxWVhSbGNtNXBiMjRnZFhOcGJtY2dkMlZwWjJoMFhHNGdJQ0FnZEdocGN5NWtaWE4wYVc1aGRHbHZiaTV4ZFdGMFpYSnVhVzl1TG1OdmNIa29kR2hwY3k1ZlpITjBVbVZ6ZEZGMVlYUXBMbk5zWlhKd0tIUmhjbWRsZEZGMVlYUXNJSFJvYVhNdWQyVnBaMmgwS1R0Y2JpQWdmVnh1ZlZ4dUlpd2lMeW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtseHlYRzVEYjNCNWNtbG5hSFFnS0dNcElFMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiaTVjY2x4dVhISmNibEJsY20xcGMzTnBiMjRnZEc4Z2RYTmxMQ0JqYjNCNUxDQnRiMlJwWm5rc0lHRnVaQzl2Y2lCa2FYTjBjbWxpZFhSbElIUm9hWE1nYzI5bWRIZGhjbVVnWm05eUlHRnVlVnh5WEc1d2RYSndiM05sSUhkcGRHZ2diM0lnZDJsMGFHOTFkQ0JtWldVZ2FYTWdhR1Z5WldKNUlHZHlZVzUwWldRdVhISmNibHh5WEc1VVNFVWdVMDlHVkZkQlVrVWdTVk1nVUZKUFZrbEVSVVFnWENKQlV5QkpVMXdpSUVGT1JDQlVTRVVnUVZWVVNFOVNJRVJKVTBOTVFVbE5VeUJCVEV3Z1YwRlNVa0ZPVkVsRlV5QlhTVlJJWEhKY2JsSkZSMEZTUkNCVVR5QlVTRWxUSUZOUFJsUlhRVkpGSUVsT1EweFZSRWxPUnlCQlRFd2dTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRJRTlHSUUxRlVrTklRVTVVUVVKSlRFbFVXVnh5WEc1QlRrUWdSa2xVVGtWVFV5NGdTVTRnVGs4Z1JWWkZUbFFnVTBoQlRFd2dWRWhGSUVGVlZFaFBVaUJDUlNCTVNVRkNURVVnUms5U0lFRk9XU0JUVUVWRFNVRk1MQ0JFU1ZKRlExUXNYSEpjYmtsT1JFbFNSVU5VTENCUFVpQkRUMDVUUlZGVlJVNVVTVUZNSUVSQlRVRkhSVk1nVDFJZ1FVNVpJRVJCVFVGSFJWTWdWMGhCVkZOUFJWWkZVaUJTUlZOVlRGUkpUa2NnUmxKUFRWeHlYRzVNVDFOVElFOUdJRlZUUlN3Z1JFRlVRU0JQVWlCUVVrOUdTVlJUTENCWFNFVlVTRVZTSUVsT0lFRk9JRUZEVkVsUFRpQlBSaUJEVDA1VVVrRkRWQ3dnVGtWSFRFbEhSVTVEUlNCUFVseHlYRzVQVkVoRlVpQlVUMUpVU1U5VlV5QkJRMVJKVDA0c0lFRlNTVk5KVGtjZ1QxVlVJRTlHSUU5U0lFbE9JRU5QVGs1RlExUkpUMDRnVjBsVVNDQlVTRVVnVlZORklFOVNYSEpjYmxCRlVrWlBVazFCVGtORklFOUdJRlJJU1ZNZ1UwOUdWRmRCVWtVdVhISmNiaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUlDb3ZYSEpjYmk4cUlHZHNiMkpoYkNCU1pXWnNaV04wTENCUWNtOXRhWE5sTENCVGRYQndjbVZ6YzJWa1JYSnliM0lzSUZONWJXSnZiQ0FxTDF4eVhHNWNjbHh1ZG1GeUlHVjRkR1Z1WkZOMFlYUnBZM01nUFNCbWRXNWpkR2x2Ymloa0xDQmlLU0I3WEhKY2JpQWdJQ0JsZUhSbGJtUlRkR0YwYVdOeklEMGdUMkpxWldOMExuTmxkRkJ5YjNSdmRIbHdaVTltSUh4OFhISmNiaUFnSUNBZ0lDQWdLSHNnWDE5d2NtOTBiMTlmT2lCYlhTQjlJR2x1YzNSaGJtTmxiMllnUVhKeVlYa2dKaVlnWm5WdVkzUnBiMjRnS0dRc0lHSXBJSHNnWkM1ZlgzQnliM1J2WDE4Z1BTQmlPeUI5S1NCOGZGeHlYRzRnSUNBZ0lDQWdJR1oxYm1OMGFXOXVJQ2hrTENCaUtTQjdJR1p2Y2lBb2RtRnlJSEFnYVc0Z1lpa2dhV1lnS0U5aWFtVmpkQzV3Y205MGIzUjVjR1V1YUdGelQzZHVVSEp2Y0dWeWRIa3VZMkZzYkNoaUxDQndLU2tnWkZ0d1hTQTlJR0piY0YwN0lIMDdYSEpjYmlBZ0lDQnlaWFIxY200Z1pYaDBaVzVrVTNSaGRHbGpjeWhrTENCaUtUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJWNGRHVnVaSE1vWkN3Z1lpa2dlMXh5WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJpSUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lnSmlZZ1lpQWhQVDBnYm5Wc2JDbGNjbHh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVEyeGhjM01nWlhoMFpXNWtjeUIyWVd4MVpTQmNJaUFySUZOMGNtbHVaeWhpS1NBcklGd2lJR2x6SUc1dmRDQmhJR052Ym5OMGNuVmpkRzl5SUc5eUlHNTFiR3hjSWlrN1hISmNiaUFnSUNCbGVIUmxibVJUZEdGMGFXTnpLR1FzSUdJcE8xeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z1gxOG9LU0I3SUhSb2FYTXVZMjl1YzNSeWRXTjBiM0lnUFNCa095QjlYSEpjYmlBZ0lDQmtMbkJ5YjNSdmRIbHdaU0E5SUdJZ1BUMDlJRzUxYkd3Z1B5QlBZbXBsWTNRdVkzSmxZWFJsS0dJcElEb2dLRjlmTG5CeWIzUnZkSGx3WlNBOUlHSXVjSEp2ZEc5MGVYQmxMQ0J1WlhjZ1gxOG9LU2s3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCMllYSWdYMTloYzNOcFoyNGdQU0JtZFc1amRHbHZiaWdwSUh0Y2NseHVJQ0FnSUY5ZllYTnphV2R1SUQwZ1QySnFaV04wTG1GemMybG5iaUI4ZkNCbWRXNWpkR2x2YmlCZlgyRnpjMmxuYmloMEtTQjdYSEpjYmlBZ0lDQWdJQ0FnWm05eUlDaDJZWElnY3l3Z2FTQTlJREVzSUc0Z1BTQmhjbWQxYldWdWRITXViR1Z1WjNSb095QnBJRHdnYmpzZ2FTc3JLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSE1nUFNCaGNtZDFiV1Z1ZEhOYmFWMDdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlIQWdhVzRnY3lrZ2FXWWdLRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2h6TENCd0tTa2dkRnR3WFNBOUlITmJjRjA3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBPMXh5WEc0Z0lDQWdmVnh5WEc0Z0lDQWdjbVYwZFhKdUlGOWZZWE56YVdkdUxtRndjR3g1S0hSb2FYTXNJR0Z5WjNWdFpXNTBjeWs3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgzSmxjM1FvY3l3Z1pTa2dlMXh5WEc0Z0lDQWdkbUZ5SUhRZ1BTQjdmVHRjY2x4dUlDQWdJR1p2Y2lBb2RtRnlJSEFnYVc0Z2N5a2dhV1lnS0U5aWFtVmpkQzV3Y205MGIzUjVjR1V1YUdGelQzZHVVSEp2Y0dWeWRIa3VZMkZzYkNoekxDQndLU0FtSmlCbExtbHVaR1Y0VDJZb2NDa2dQQ0F3S1Z4eVhHNGdJQ0FnSUNBZ0lIUmJjRjBnUFNCelczQmRPMXh5WEc0Z0lDQWdhV1lnS0hNZ0lUMGdiblZzYkNBbUppQjBlWEJsYjJZZ1QySnFaV04wTG1kbGRFOTNibEJ5YjNCbGNuUjVVM2x0WW05c2N5QTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtWeHlYRzRnSUNBZ0lDQWdJR1p2Y2lBb2RtRnlJR2tnUFNBd0xDQndJRDBnVDJKcVpXTjBMbWRsZEU5M2JsQnliM0JsY25SNVUzbHRZbTlzY3loektUc2dhU0E4SUhBdWJHVnVaM1JvT3lCcEt5c3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dVdWFXNWtaWGhQWmlod1cybGRLU0E4SURBZ0ppWWdUMkpxWldOMExuQnliM1J2ZEhsd1pTNXdjbTl3WlhKMGVVbHpSVzUxYldWeVlXSnNaUzVqWVd4c0tITXNJSEJiYVYwcEtWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRnR3VzJsZFhTQTlJSE5iY0Z0cFhWMDdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnY21WMGRYSnVJSFE3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyUmxZMjl5WVhSbEtHUmxZMjl5WVhSdmNuTXNJSFJoY21kbGRDd2dhMlY1TENCa1pYTmpLU0I3WEhKY2JpQWdJQ0IyWVhJZ1l5QTlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZ3NJSElnUFNCaklEd2dNeUEvSUhSaGNtZGxkQ0E2SUdSbGMyTWdQVDA5SUc1MWJHd2dQeUJrWlhOaklEMGdUMkpxWldOMExtZGxkRTkzYmxCeWIzQmxjblI1UkdWelkzSnBjSFJ2Y2loMFlYSm5aWFFzSUd0bGVTa2dPaUJrWlhOakxDQmtPMXh5WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJTWldac1pXTjBJRDA5UFNCY0ltOWlhbVZqZEZ3aUlDWW1JSFI1Y0dWdlppQlNaV1pzWldOMExtUmxZMjl5WVhSbElEMDlQU0JjSW1aMWJtTjBhVzl1WENJcElISWdQU0JTWldac1pXTjBMbVJsWTI5eVlYUmxLR1JsWTI5eVlYUnZjbk1zSUhSaGNtZGxkQ3dnYTJWNUxDQmtaWE5qS1R0Y2NseHVJQ0FnSUdWc2MyVWdabTl5SUNoMllYSWdhU0E5SUdSbFkyOXlZWFJ2Y25NdWJHVnVaM1JvSUMwZ01Uc2dhU0ErUFNBd095QnBMUzBwSUdsbUlDaGtJRDBnWkdWamIzSmhkRzl5YzF0cFhTa2djaUE5SUNoaklEd2dNeUEvSUdRb2Npa2dPaUJqSUQ0Z015QS9JR1FvZEdGeVoyVjBMQ0JyWlhrc0lISXBJRG9nWkNoMFlYSm5aWFFzSUd0bGVTa3BJSHg4SUhJN1hISmNiaUFnSUNCeVpYUjFjbTRnWXlBK0lETWdKaVlnY2lBbUppQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvZEdGeVoyVjBMQ0JyWlhrc0lISXBMQ0J5TzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXdZWEpoYlNod1lYSmhiVWx1WkdWNExDQmtaV052Y21GMGIzSXBJSHRjY2x4dUlDQWdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpQW9kR0Z5WjJWMExDQnJaWGtwSUhzZ1pHVmpiM0poZEc5eUtIUmhjbWRsZEN3Z2EyVjVMQ0J3WVhKaGJVbHVaR1Y0S1RzZ2ZWeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTlsYzBSbFkyOXlZWFJsS0dOMGIzSXNJR1JsYzJOeWFYQjBiM0pKYml3Z1pHVmpiM0poZEc5eWN5d2dZMjl1ZEdWNGRFbHVMQ0JwYm1sMGFXRnNhWHBsY25Nc0lHVjRkSEpoU1c1cGRHbGhiR2w2WlhKektTQjdYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQmhZMk5sY0hRb1ppa2dleUJwWmlBb1ppQWhQVDBnZG05cFpDQXdJQ1ltSUhSNWNHVnZaaUJtSUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSkdkVzVqZEdsdmJpQmxlSEJsWTNSbFpGd2lLVHNnY21WMGRYSnVJR1k3SUgxY2NseHVJQ0FnSUhaaGNpQnJhVzVrSUQwZ1kyOXVkR1Y0ZEVsdUxtdHBibVFzSUd0bGVTQTlJR3RwYm1RZ1BUMDlJRndpWjJWMGRHVnlYQ0lnUHlCY0ltZGxkRndpSURvZ2EybHVaQ0E5UFQwZ1hDSnpaWFIwWlhKY0lpQS9JRndpYzJWMFhDSWdPaUJjSW5aaGJIVmxYQ0k3WEhKY2JpQWdJQ0IyWVhJZ2RHRnlaMlYwSUQwZ0lXUmxjMk55YVhCMGIzSkpiaUFtSmlCamRHOXlJRDhnWTI5dWRHVjRkRWx1VzF3aWMzUmhkR2xqWENKZElEOGdZM1J2Y2lBNklHTjBiM0l1Y0hKdmRHOTBlWEJsSURvZ2JuVnNiRHRjY2x4dUlDQWdJSFpoY2lCa1pYTmpjbWx3ZEc5eUlEMGdaR1Z6WTNKcGNIUnZja2x1SUh4OElDaDBZWEpuWlhRZ1B5QlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5S0hSaGNtZGxkQ3dnWTI5dWRHVjRkRWx1TG01aGJXVXBJRG9nZTMwcE8xeHlYRzRnSUNBZ2RtRnlJRjhzSUdSdmJtVWdQU0JtWVd4elpUdGNjbHh1SUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0JrWldOdmNtRjBiM0p6TG14bGJtZDBhQ0F0SURFN0lHa2dQajBnTURzZ2FTMHRLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RtRnlJR052Ym5SbGVIUWdQU0I3ZlR0Y2NseHVJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQndJR2x1SUdOdmJuUmxlSFJKYmlrZ1kyOXVkR1Y0ZEZ0d1hTQTlJSEFnUFQwOUlGd2lZV05qWlhOelhDSWdQeUI3ZlNBNklHTnZiblJsZUhSSmJsdHdYVHRjY2x4dUlDQWdJQ0FnSUNCbWIzSWdLSFpoY2lCd0lHbHVJR052Ym5SbGVIUkpiaTVoWTJObGMzTXBJR052Ym5SbGVIUXVZV05qWlhOelczQmRJRDBnWTI5dWRHVjRkRWx1TG1GalkyVnpjMXR3WFR0Y2NseHVJQ0FnSUNBZ0lDQmpiMjUwWlhoMExtRmtaRWx1YVhScFlXeHBlbVZ5SUQwZ1puVnVZM1JwYjI0Z0tHWXBJSHNnYVdZZ0tHUnZibVVwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSkRZVzV1YjNRZ1lXUmtJR2x1YVhScFlXeHBlbVZ5Y3lCaFpuUmxjaUJrWldOdmNtRjBhVzl1SUdoaGN5QmpiMjF3YkdWMFpXUmNJaWs3SUdWNGRISmhTVzVwZEdsaGJHbDZaWEp6TG5CMWMyZ29ZV05qWlhCMEtHWWdmSHdnYm5Wc2JDa3BPeUI5TzF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0FvTUN3Z1pHVmpiM0poZEc5eWMxdHBYU2tvYTJsdVpDQTlQVDBnWENKaFkyTmxjM052Y2x3aUlEOGdleUJuWlhRNklHUmxjMk55YVhCMGIzSXVaMlYwTENCelpYUTZJR1JsYzJOeWFYQjBiM0l1YzJWMElIMGdPaUJrWlhOamNtbHdkRzl5VzJ0bGVWMHNJR052Ym5SbGVIUXBPMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQmNJbUZqWTJWemMyOXlYQ0lwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISmxjM1ZzZENBOVBUMGdkbTlwWkNBd0tTQmpiMjUwYVc1MVpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEpsYzNWc2RDQTlQVDBnYm5Wc2JDQjhmQ0IwZVhCbGIyWWdjbVZ6ZFd4MElDRTlQU0JjSW05aWFtVmpkRndpS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lUMkpxWldOMElHVjRjR1ZqZEdWa1hDSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFF1WjJWMEtTa2daR1Z6WTNKcGNIUnZjaTVuWlhRZ1BTQmZPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFF1YzJWMEtTa2daR1Z6WTNKcGNIUnZjaTV6WlhRZ1BTQmZPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWHlBOUlHRmpZMlZ3ZENoeVpYTjFiSFF1YVc1cGRDa3BJR2x1YVhScFlXeHBlbVZ5Y3k1MWJuTm9hV1owS0Y4cE8xeHlYRzRnSUNBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoZklEMGdZV05qWlhCMEtISmxjM1ZzZENrcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RwYm1RZ1BUMDlJRndpWm1sbGJHUmNJaWtnYVc1cGRHbGhiR2w2WlhKekxuVnVjMmhwWm5Rb1h5azdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnWkdWelkzSnBjSFJ2Y2x0clpYbGRJRDBnWHp0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQnBaaUFvZEdGeVoyVjBLU0JQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb2RHRnlaMlYwTENCamIyNTBaWGgwU1c0dWJtRnRaU3dnWkdWelkzSnBjSFJ2Y2lrN1hISmNiaUFnSUNCa2IyNWxJRDBnZEhKMVpUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDNKMWJrbHVhWFJwWVd4cGVtVnljeWgwYUdselFYSm5MQ0JwYm1sMGFXRnNhWHBsY25Nc0lIWmhiSFZsS1NCN1hISmNiaUFnSUNCMllYSWdkWE5sVm1Gc2RXVWdQU0JoY21kMWJXVnVkSE11YkdWdVozUm9JRDRnTWp0Y2NseHVJQ0FnSUdadmNpQW9kbUZ5SUdrZ1BTQXdPeUJwSUR3Z2FXNXBkR2xoYkdsNlpYSnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hISmNiaUFnSUNBZ0lDQWdkbUZzZFdVZ1BTQjFjMlZXWVd4MVpTQS9JR2x1YVhScFlXeHBlbVZ5YzF0cFhTNWpZV3hzS0hSb2FYTkJjbWNzSUhaaGJIVmxLU0E2SUdsdWFYUnBZV3hwZW1WeWMxdHBYUzVqWVd4c0tIUm9hWE5CY21jcE8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ2NtVjBkWEp1SUhWelpWWmhiSFZsSUQ4Z2RtRnNkV1VnT2lCMmIybGtJREE3WEhKY2JuMDdYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXdjbTl3UzJWNUtIZ3BJSHRjY2x4dUlDQWdJSEpsZEhWeWJpQjBlWEJsYjJZZ2VDQTlQVDBnWENKemVXMWliMnhjSWlBL0lIZ2dPaUJjSWx3aUxtTnZibU5oZENoNEtUdGNjbHh1ZlR0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDNObGRFWjFibU4wYVc5dVRtRnRaU2htTENCdVlXMWxMQ0J3Y21WbWFYZ3BJSHRjY2x4dUlDQWdJR2xtSUNoMGVYQmxiMllnYm1GdFpTQTlQVDBnWENKemVXMWliMnhjSWlrZ2JtRnRaU0E5SUc1aGJXVXVaR1Z6WTNKcGNIUnBiMjRnUHlCY0lsdGNJaTVqYjI1allYUW9ibUZ0WlM1a1pYTmpjbWx3ZEdsdmJpd2dYQ0pkWENJcElEb2dYQ0pjSWp0Y2NseHVJQ0FnSUhKbGRIVnliaUJQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1ppd2dYQ0p1WVcxbFhDSXNJSHNnWTI5dVptbG5kWEpoWW14bE9pQjBjblZsTENCMllXeDFaVG9nY0hKbFptbDRJRDhnWENKY0lpNWpiMjVqWVhRb2NISmxabWw0TENCY0lpQmNJaXdnYm1GdFpTa2dPaUJ1WVcxbElIMHBPMXh5WEc1OU8xeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmJXVjBZV1JoZEdFb2JXVjBZV1JoZEdGTFpYa3NJRzFsZEdGa1lYUmhWbUZzZFdVcElIdGNjbHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdVbVZtYkdWamRDQTlQVDBnWENKdlltcGxZM1JjSWlBbUppQjBlWEJsYjJZZ1VtVm1iR1ZqZEM1dFpYUmhaR0YwWVNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCeVpYUjFjbTRnVW1WbWJHVmpkQzV0WlhSaFpHRjBZU2h0WlhSaFpHRjBZVXRsZVN3Z2JXVjBZV1JoZEdGV1lXeDFaU2s3WEhKY2JuMWNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyRjNZV2wwWlhJb2RHaHBjMEZ5Wnl3Z1gyRnlaM1Z0Wlc1MGN5d2dVQ3dnWjJWdVpYSmhkRzl5S1NCN1hISmNiaUFnSUNCbWRXNWpkR2x2YmlCaFpHOXdkQ2gyWVd4MVpTa2dleUJ5WlhSMWNtNGdkbUZzZFdVZ2FXNXpkR0Z1WTJWdlppQlFJRDhnZG1Gc2RXVWdPaUJ1WlhjZ1VDaG1kVzVqZEdsdmJpQW9jbVZ6YjJ4MlpTa2dleUJ5WlhOdmJIWmxLSFpoYkhWbEtUc2dmU2s3SUgxY2NseHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ0tGQWdmSHdnS0ZBZ1BTQlFjbTl0YVhObEtTa29ablZ1WTNScGIyNGdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dlMXh5WEc0Z0lDQWdJQ0FnSUdaMWJtTjBhVzl1SUdaMWJHWnBiR3hsWkNoMllXeDFaU2tnZXlCMGNua2dleUJ6ZEdWd0tHZGxibVZ5WVhSdmNpNXVaWGgwS0haaGJIVmxLU2s3SUgwZ1kyRjBZMmdnS0dVcElIc2djbVZxWldOMEtHVXBPeUI5SUgxY2NseHVJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQnlaV3BsWTNSbFpDaDJZV3gxWlNrZ2V5QjBjbmtnZXlCemRHVndLR2RsYm1WeVlYUnZjbHRjSW5Sb2NtOTNYQ0pkS0haaGJIVmxLU2s3SUgwZ1kyRjBZMmdnS0dVcElIc2djbVZxWldOMEtHVXBPeUI5SUgxY2NseHVJQ0FnSUNBZ0lDQm1kVzVqZEdsdmJpQnpkR1Z3S0hKbGMzVnNkQ2tnZXlCeVpYTjFiSFF1Wkc5dVpTQS9JSEpsYzI5c2RtVW9jbVZ6ZFd4MExuWmhiSFZsS1NBNklHRmtiM0IwS0hKbGMzVnNkQzUyWVd4MVpTa3VkR2hsYmlobWRXeG1hV3hzWldRc0lISmxhbVZqZEdWa0tUc2dmVnh5WEc0Z0lDQWdJQ0FnSUhOMFpYQW9LR2RsYm1WeVlYUnZjaUE5SUdkbGJtVnlZWFJ2Y2k1aGNIQnNlU2gwYUdselFYSm5MQ0JmWVhKbmRXMWxiblJ6SUh4OElGdGRLU2t1Ym1WNGRDZ3BLVHRjY2x4dUlDQWdJSDBwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOW5aVzVsY21GMGIzSW9kR2hwYzBGeVp5d2dZbTlrZVNrZ2UxeHlYRzRnSUNBZ2RtRnlJRjhnUFNCN0lHeGhZbVZzT2lBd0xDQnpaVzUwT2lCbWRXNWpkR2x2YmlncElIc2dhV1lnS0hSYk1GMGdKaUF4S1NCMGFISnZkeUIwV3pGZE95QnlaWFIxY200Z2RGc3hYVHNnZlN3Z2RISjVjem9nVzEwc0lHOXdjem9nVzEwZ2ZTd2daaXdnZVN3Z2RDd2daenRjY2x4dUlDQWdJSEpsZEhWeWJpQm5JRDBnZXlCdVpYaDBPaUIyWlhKaUtEQXBMQ0JjSW5Sb2NtOTNYQ0k2SUhabGNtSW9NU2tzSUZ3aWNtVjBkWEp1WENJNklIWmxjbUlvTWlrZ2ZTd2dkSGx3Wlc5bUlGTjViV0p2YkNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUNZbUlDaG5XMU41YldKdmJDNXBkR1Z5WVhSdmNsMGdQU0JtZFc1amRHbHZiaWdwSUhzZ2NtVjBkWEp1SUhSb2FYTTdJSDBwTENCbk8xeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2RtVnlZaWh1S1NCN0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlBb2Rpa2dleUJ5WlhSMWNtNGdjM1JsY0NoYmJpd2dkbDBwT3lCOU95QjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQnpkR1Z3S0c5d0tTQjdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tHWXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKSFpXNWxjbUYwYjNJZ2FYTWdZV3h5WldGa2VTQmxlR1ZqZFhScGJtY3VYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNobklDWW1JQ2huSUQwZ01Dd2diM0JiTUYwZ0ppWWdLRjhnUFNBd0tTa3NJRjhwSUhSeWVTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htSUQwZ01Td2dlU0FtSmlBb2RDQTlJRzl3V3pCZElDWWdNaUEvSUhsYlhDSnlaWFIxY201Y0lsMGdPaUJ2Y0Zzd1hTQS9JSGxiWENKMGFISnZkMXdpWFNCOGZDQW9LSFFnUFNCNVcxd2ljbVYwZFhKdVhDSmRLU0FtSmlCMExtTmhiR3dvZVNrc0lEQXBJRG9nZVM1dVpYaDBLU0FtSmlBaEtIUWdQU0IwTG1OaGJHd29lU3dnYjNCYk1WMHBLUzVrYjI1bEtTQnlaWFIxY200Z2REdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSGtnUFNBd0xDQjBLU0J2Y0NBOUlGdHZjRnN3WFNBbUlESXNJSFF1ZG1Gc2RXVmRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkMmwwWTJnZ0tHOXdXekJkS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURBNklHTmhjMlVnTVRvZ2RDQTlJRzl3T3lCaWNtVmhhenRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdORG9nWHk1c1lXSmxiQ3NyT3lCeVpYUjFjbTRnZXlCMllXeDFaVG9nYjNCYk1WMHNJR1J2Ym1VNklHWmhiSE5sSUgwN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSURVNklGOHViR0ZpWld3ckt6c2dlU0E5SUc5d1d6RmRPeUJ2Y0NBOUlGc3dYVHNnWTI5dWRHbHVkV1U3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRGM2SUc5d0lEMGdYeTV2Y0hNdWNHOXdLQ2s3SUY4dWRISjVjeTV3YjNBb0tUc2dZMjl1ZEdsdWRXVTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBPbHh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doS0hRZ1BTQmZMblJ5ZVhNc0lIUWdQU0IwTG14bGJtZDBhQ0ErSURBZ0ppWWdkRnQwTG14bGJtZDBhQ0F0SURGZEtTQW1KaUFvYjNCYk1GMGdQVDA5SURZZ2ZId2diM0JiTUYwZ1BUMDlJRElwS1NCN0lGOGdQU0F3T3lCamIyNTBhVzUxWlRzZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHZjRnN3WFNBOVBUMGdNeUFtSmlBb0lYUWdmSHdnS0c5d1d6RmRJRDRnZEZzd1hTQW1KaUJ2Y0ZzeFhTQThJSFJiTTEwcEtTa2dleUJmTG14aFltVnNJRDBnYjNCYk1WMDdJR0p5WldGck95QjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRzl3V3pCZElEMDlQU0EySUNZbUlGOHViR0ZpWld3Z1BDQjBXekZkS1NCN0lGOHViR0ZpWld3Z1BTQjBXekZkT3lCMElEMGdiM0E3SUdKeVpXRnJPeUI5WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hRZ0ppWWdYeTVzWVdKbGJDQThJSFJiTWwwcElIc2dYeTVzWVdKbGJDQTlJSFJiTWwwN0lGOHViM0J6TG5CMWMyZ29iM0FwT3lCaWNtVmhhenNnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMFd6SmRLU0JmTG05d2N5NXdiM0FvS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JmTG5SeWVYTXVjRzl3S0NrN0lHTnZiblJwYm5WbE8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdJQ0FnSUc5d0lEMGdZbTlrZVM1allXeHNLSFJvYVhOQmNtY3NJRjhwTzF4eVhHNGdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHNnYjNBZ1BTQmJOaXdnWlYwN0lIa2dQU0F3T3lCOUlHWnBibUZzYkhrZ2V5Qm1JRDBnZENBOUlEQTdJSDFjY2x4dUlDQWdJQ0FnSUNCcFppQW9iM0JiTUYwZ0ppQTFLU0IwYUhKdmR5QnZjRnN4WFRzZ2NtVjBkWEp1SUhzZ2RtRnNkV1U2SUc5d1d6QmRJRDhnYjNCYk1WMGdPaUIyYjJsa0lEQXNJR1J2Ym1VNklIUnlkV1VnZlR0Y2NseHVJQ0FnSUgxY2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElIWmhjaUJmWDJOeVpXRjBaVUpwYm1ScGJtY2dQU0JQWW1wbFkzUXVZM0psWVhSbElEOGdLR1oxYm1OMGFXOXVLRzhzSUcwc0lHc3NJR3N5S1NCN1hISmNiaUFnSUNCcFppQW9heklnUFQwOUlIVnVaR1ZtYVc1bFpDa2dheklnUFNCck8xeHlYRzRnSUNBZ2RtRnlJR1JsYzJNZ1BTQlBZbXBsWTNRdVoyVjBUM2R1VUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5S0cwc0lHc3BPMXh5WEc0Z0lDQWdhV1lnS0NGa1pYTmpJSHg4SUNoY0ltZGxkRndpSUdsdUlHUmxjMk1nUHlBaGJTNWZYMlZ6VFc5a2RXeGxJRG9nWkdWell5NTNjbWwwWVdKc1pTQjhmQ0JrWlhOakxtTnZibVpwWjNWeVlXSnNaU2twSUh0Y2NseHVJQ0FnSUNBZ0lDQmtaWE5qSUQwZ2V5QmxiblZ0WlhKaFlteGxPaUIwY25WbExDQm5aWFE2SUdaMWJtTjBhVzl1S0NrZ2V5QnlaWFIxY200Z2JWdHJYVHNnZlNCOU8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRzhzSUdzeUxDQmtaWE5qS1R0Y2NseHVmU2tnT2lBb1puVnVZM1JwYjI0b2J5d2diU3dnYXl3Z2F6SXBJSHRjY2x4dUlDQWdJR2xtSUNock1pQTlQVDBnZFc1a1pXWnBibVZrS1NCck1pQTlJR3M3WEhKY2JpQWdJQ0J2VzJzeVhTQTlJRzFiYTEwN1hISmNibjBwTzF4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWlhod2IzSjBVM1JoY2lodExDQnZLU0I3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJ3SUdsdUlHMHBJR2xtSUNod0lDRTlQU0JjSW1SbFptRjFiSFJjSWlBbUppQWhUMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLRzhzSUhBcEtTQmZYMk55WldGMFpVSnBibVJwYm1jb2J5d2diU3dnY0NrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM1poYkhWbGN5aHZLU0I3WEhKY2JpQWdJQ0IyWVhJZ2N5QTlJSFI1Y0dWdlppQlRlVzFpYjJ3Z1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBbUppQlRlVzFpYjJ3dWFYUmxjbUYwYjNJc0lHMGdQU0J6SUNZbUlHOWJjMTBzSUdrZ1BTQXdPMXh5WEc0Z0lDQWdhV1lnS0cwcElISmxkSFZ5YmlCdExtTmhiR3dvYnlrN1hISmNiaUFnSUNCcFppQW9ieUFtSmlCMGVYQmxiMllnYnk1c1pXNW5kR2dnUFQwOUlGd2liblZ0WW1WeVhDSXBJSEpsZEhWeWJpQjdYSEpjYmlBZ0lDQWdJQ0FnYm1WNGREb2dablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2J5QW1KaUJwSUQ0OUlHOHViR1Z1WjNSb0tTQnZJRDBnZG05cFpDQXdPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QjJZV3gxWlRvZ2J5QW1KaUJ2VzJrcksxMHNJR1J2Ym1VNklDRnZJSDA3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ2ZUdGNjbHh1SUNBZ0lIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9jeUEvSUZ3aVQySnFaV04wSUdseklHNXZkQ0JwZEdWeVlXSnNaUzVjSWlBNklGd2lVM2x0WW05c0xtbDBaWEpoZEc5eUlHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmY21WaFpDaHZMQ0J1S1NCN1hISmNiaUFnSUNCMllYSWdiU0E5SUhSNWNHVnZaaUJUZVcxaWIyd2dQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQW1KaUJ2VzFONWJXSnZiQzVwZEdWeVlYUnZjbDA3WEhKY2JpQWdJQ0JwWmlBb0lXMHBJSEpsZEhWeWJpQnZPMXh5WEc0Z0lDQWdkbUZ5SUdrZ1BTQnRMbU5oYkd3b2J5a3NJSElzSUdGeUlEMGdXMTBzSUdVN1hISmNiaUFnSUNCMGNua2dlMXh5WEc0Z0lDQWdJQ0FnSUhkb2FXeGxJQ2dvYmlBOVBUMGdkbTlwWkNBd0lIeDhJRzR0TFNBK0lEQXBJQ1ltSUNFb2NpQTlJR2t1Ym1WNGRDZ3BLUzVrYjI1bEtTQmhjaTV3ZFhOb0tISXVkbUZzZFdVcE8xeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ1kyRjBZMmdnS0dWeWNtOXlLU0I3SUdVZ1BTQjdJR1Z5Y205eU9pQmxjbkp2Y2lCOU95QjlYSEpjYmlBZ0lDQm1hVzVoYkd4NUlIdGNjbHh1SUNBZ0lDQWdJQ0IwY25rZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9jaUFtSmlBaGNpNWtiMjVsSUNZbUlDaHRJRDBnYVZ0Y0luSmxkSFZ5Ymx3aVhTa3BJRzB1WTJGc2JDaHBLVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdabWx1WVd4c2VTQjdJR2xtSUNobEtTQjBhSEp2ZHlCbExtVnljbTl5T3lCOVhISmNiaUFnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnWVhJN1hISmNibjFjY2x4dVhISmNiaThxS2lCQVpHVndjbVZqWVhSbFpDQXFMMXh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5emNISmxZV1FvS1NCN1hISmNiaUFnSUNCbWIzSWdLSFpoY2lCaGNpQTlJRnRkTENCcElEMGdNRHNnYVNBOElHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnN0lHa3JLeWxjY2x4dUlDQWdJQ0FnSUNCaGNpQTlJR0Z5TG1OdmJtTmhkQ2hmWDNKbFlXUW9ZWEpuZFcxbGJuUnpXMmxkS1NrN1hISmNiaUFnSUNCeVpYUjFjbTRnWVhJN1hISmNibjFjY2x4dVhISmNiaThxS2lCQVpHVndjbVZqWVhSbFpDQXFMMXh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5emNISmxZV1JCY25KaGVYTW9LU0I3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJ6SUQwZ01Dd2dhU0E5SURBc0lHbHNJRDBnWVhKbmRXMWxiblJ6TG14bGJtZDBhRHNnYVNBOElHbHNPeUJwS3lzcElITWdLejBnWVhKbmRXMWxiblJ6VzJsZExteGxibWQwYUR0Y2NseHVJQ0FnSUdadmNpQW9kbUZ5SUhJZ1BTQkJjbkpoZVNoektTd2dheUE5SURBc0lHa2dQU0F3T3lCcElEd2dhV3c3SUdrckt5bGNjbHh1SUNBZ0lDQWdJQ0JtYjNJZ0tIWmhjaUJoSUQwZ1lYSm5kVzFsYm5SelcybGRMQ0JxSUQwZ01Dd2dhbXdnUFNCaExteGxibWQwYURzZ2FpQThJR3BzT3lCcUt5c3NJR3NyS3lsY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnY2x0clhTQTlJR0ZiYWwwN1hISmNiaUFnSUNCeVpYUjFjbTRnY2p0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZjM0J5WldGa1FYSnlZWGtvZEc4c0lHWnliMjBzSUhCaFkyc3BJSHRjY2x4dUlDQWdJR2xtSUNod1lXTnJJSHg4SUdGeVozVnRaVzUwY3k1c1pXNW5kR2dnUFQwOUlESXBJR1p2Y2lBb2RtRnlJR2tnUFNBd0xDQnNJRDBnWm5KdmJTNXNaVzVuZEdnc0lHRnlPeUJwSUR3Z2JEc2dhU3NyS1NCN1hISmNiaUFnSUNBZ0lDQWdhV1lnS0dGeUlIeDhJQ0VvYVNCcGJpQm1jbTl0S1NrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV0Z5S1NCaGNpQTlJRUZ5Y21GNUxuQnliM1J2ZEhsd1pTNXpiR2xqWlM1allXeHNLR1p5YjIwc0lEQXNJR2twTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JoY2x0cFhTQTlJR1p5YjIxYmFWMDdYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnY21WMGRYSnVJSFJ2TG1OdmJtTmhkQ2hoY2lCOGZDQkJjbkpoZVM1d2NtOTBiM1I1Y0dVdWMyeHBZMlV1WTJGc2JDaG1jbTl0S1NrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMkYzWVdsMEtIWXBJSHRjY2x4dUlDQWdJSEpsZEhWeWJpQjBhR2x6SUdsdWMzUmhibU5sYjJZZ1gxOWhkMkZwZENBL0lDaDBhR2x6TG5ZZ1BTQjJMQ0IwYUdsektTQTZJRzVsZHlCZlgyRjNZV2wwS0hZcE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTloYzNsdVkwZGxibVZ5WVhSdmNpaDBhR2x6UVhKbkxDQmZZWEpuZFcxbGJuUnpMQ0JuWlc1bGNtRjBiM0lwSUh0Y2NseHVJQ0FnSUdsbUlDZ2hVM2x0WW05c0xtRnplVzVqU1hSbGNtRjBiM0lwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSlRlVzFpYjJ3dVlYTjVibU5KZEdWeVlYUnZjaUJwY3lCdWIzUWdaR1ZtYVc1bFpDNWNJaWs3WEhKY2JpQWdJQ0IyWVhJZ1p5QTlJR2RsYm1WeVlYUnZjaTVoY0hCc2VTaDBhR2x6UVhKbkxDQmZZWEpuZFcxbGJuUnpJSHg4SUZ0ZEtTd2dhU3dnY1NBOUlGdGRPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHa2dQU0I3ZlN3Z2RtVnlZaWhjSW01bGVIUmNJaWtzSUhabGNtSW9YQ0owYUhKdmQxd2lLU3dnZG1WeVlpaGNJbkpsZEhWeWJsd2lLU3dnYVZ0VGVXMWliMnd1WVhONWJtTkpkR1Z5WVhSdmNsMGdQU0JtZFc1amRHbHZiaUFvS1NCN0lISmxkSFZ5YmlCMGFHbHpPeUI5TENCcE8xeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2RtVnlZaWh1S1NCN0lHbG1JQ2huVzI1ZEtTQnBXMjVkSUQwZ1puVnVZM1JwYjI0Z0tIWXBJSHNnY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0daMWJtTjBhVzl1SUNoaExDQmlLU0I3SUhFdWNIVnphQ2hiYml3Z2Rpd2dZU3dnWWwwcElENGdNU0I4ZkNCeVpYTjFiV1VvYml3Z2RpazdJSDBwT3lCOU95QjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQnlaWE4xYldVb2Jpd2dkaWtnZXlCMGNua2dleUJ6ZEdWd0tHZGJibDBvZGlrcE95QjlJR05oZEdOb0lDaGxLU0I3SUhObGRIUnNaU2h4V3pCZFd6TmRMQ0JsS1RzZ2ZTQjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQnpkR1Z3S0hJcElIc2djaTUyWVd4MVpTQnBibk4wWVc1alpXOW1JRjlmWVhkaGFYUWdQeUJRY205dGFYTmxMbkpsYzI5c2RtVW9jaTUyWVd4MVpTNTJLUzUwYUdWdUtHWjFiR1pwYkd3c0lISmxhbVZqZENrZ09pQnpaWFIwYkdVb2NWc3dYVnN5WFN3Z2NpazdJSDFjY2x4dUlDQWdJR1oxYm1OMGFXOXVJR1oxYkdacGJHd29kbUZzZFdVcElIc2djbVZ6ZFcxbEtGd2libVY0ZEZ3aUxDQjJZV3gxWlNrN0lIMWNjbHh1SUNBZ0lHWjFibU4wYVc5dUlISmxhbVZqZENoMllXeDFaU2tnZXlCeVpYTjFiV1VvWENKMGFISnZkMXdpTENCMllXeDFaU2s3SUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUhObGRIUnNaU2htTENCMktTQjdJR2xtSUNobUtIWXBMQ0J4TG5Ob2FXWjBLQ2tzSUhFdWJHVnVaM1JvS1NCeVpYTjFiV1VvY1Zzd1hWc3dYU3dnY1Zzd1hWc3hYU2s3SUgxY2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZZWE41Ym1ORVpXeGxaMkYwYjNJb2J5a2dlMXh5WEc0Z0lDQWdkbUZ5SUdrc0lIQTdYSEpjYmlBZ0lDQnlaWFIxY200Z2FTQTlJSHQ5TENCMlpYSmlLRndpYm1WNGRGd2lLU3dnZG1WeVlpaGNJblJvY205M1hDSXNJR1oxYm1OMGFXOXVJQ2hsS1NCN0lIUm9jbTkzSUdVN0lIMHBMQ0IyWlhKaUtGd2ljbVYwZFhKdVhDSXBMQ0JwVzFONWJXSnZiQzVwZEdWeVlYUnZjbDBnUFNCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQjBhR2x6T3lCOUxDQnBPMXh5WEc0Z0lDQWdablZ1WTNScGIyNGdkbVZ5WWlodUxDQm1LU0I3SUdsYmJsMGdQU0J2VzI1ZElEOGdablZ1WTNScGIyNGdLSFlwSUhzZ2NtVjBkWEp1SUNod0lEMGdJWEFwSUQ4Z2V5QjJZV3gxWlRvZ1gxOWhkMkZwZENodlcyNWRLSFlwS1N3Z1pHOXVaVG9nWm1Gc2MyVWdmU0E2SUdZZ1B5Qm1LSFlwSURvZ2Rqc2dmU0E2SUdZN0lIMWNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWVhONWJtTldZV3gxWlhNb2J5a2dlMXh5WEc0Z0lDQWdhV1lnS0NGVGVXMWliMnd1WVhONWJtTkpkR1Z5WVhSdmNpa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxONWJXSnZiQzVoYzNsdVkwbDBaWEpoZEc5eUlHbHpJRzV2ZENCa1pXWnBibVZrTGx3aUtUdGNjbHh1SUNBZ0lIWmhjaUJ0SUQwZ2IxdFRlVzFpYjJ3dVlYTjVibU5KZEdWeVlYUnZjbDBzSUdrN1hISmNiaUFnSUNCeVpYUjFjbTRnYlNBL0lHMHVZMkZzYkNodktTQTZJQ2h2SUQwZ2RIbHdaVzltSUY5ZmRtRnNkV1Z6SUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnUHlCZlgzWmhiSFZsY3lodktTQTZJRzliVTNsdFltOXNMbWwwWlhKaGRHOXlYU2dwTENCcElEMGdlMzBzSUhabGNtSW9YQ0p1WlhoMFhDSXBMQ0IyWlhKaUtGd2lkR2h5YjNkY0lpa3NJSFpsY21Jb1hDSnlaWFIxY201Y0lpa3NJR2xiVTNsdFltOXNMbUZ6ZVc1alNYUmxjbUYwYjNKZElEMGdablZ1WTNScGIyNGdLQ2tnZXlCeVpYUjFjbTRnZEdocGN6c2dmU3dnYVNrN1hISmNiaUFnSUNCbWRXNWpkR2x2YmlCMlpYSmlLRzRwSUhzZ2FWdHVYU0E5SUc5YmJsMGdKaVlnWm5WdVkzUnBiMjRnS0hZcElIc2djbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLR1oxYm1OMGFXOXVJQ2h5WlhOdmJIWmxMQ0J5WldwbFkzUXBJSHNnZGlBOUlHOWJibDBvZGlrc0lITmxkSFJzWlNoeVpYTnZiSFpsTENCeVpXcGxZM1FzSUhZdVpHOXVaU3dnZGk1MllXeDFaU2s3SUgwcE95QjlPeUI5WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJ6WlhSMGJHVW9jbVZ6YjJ4MlpTd2djbVZxWldOMExDQmtMQ0IyS1NCN0lGQnliMjFwYzJVdWNtVnpiMngyWlNoMktTNTBhR1Z1S0daMWJtTjBhVzl1S0hZcElIc2djbVZ6YjJ4MlpTaDdJSFpoYkhWbE9pQjJMQ0JrYjI1bE9pQmtJSDBwT3lCOUxDQnlaV3BsWTNRcE95QjlYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDIxaGEyVlVaVzF3YkdGMFpVOWlhbVZqZENoamIyOXJaV1FzSUhKaGR5a2dlMXh5WEc0Z0lDQWdhV1lnS0U5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTa2dleUJQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1kyOXZhMlZrTENCY0luSmhkMXdpTENCN0lIWmhiSFZsT2lCeVlYY2dmU2s3SUgwZ1pXeHpaU0I3SUdOdmIydGxaQzV5WVhjZ1BTQnlZWGM3SUgxY2NseHVJQ0FnSUhKbGRIVnliaUJqYjI5clpXUTdYSEpjYm4wN1hISmNibHh5WEc1MllYSWdYMTl6WlhSTmIyUjFiR1ZFWldaaGRXeDBJRDBnVDJKcVpXTjBMbU55WldGMFpTQS9JQ2htZFc1amRHbHZiaWh2TENCMktTQjdYSEpjYmlBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvYnl3Z1hDSmtaV1poZFd4MFhDSXNJSHNnWlc1MWJXVnlZV0pzWlRvZ2RISjFaU3dnZG1Gc2RXVTZJSFlnZlNrN1hISmNibjBwSURvZ1puVnVZM1JwYjI0b2J5d2dkaWtnZTF4eVhHNGdJQ0FnYjF0Y0ltUmxabUYxYkhSY0lsMGdQU0IyTzF4eVhHNTlPMXh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZhVzF3YjNKMFUzUmhjaWh0YjJRcElIdGNjbHh1SUNBZ0lHbG1JQ2h0YjJRZ0ppWWdiVzlrTGw5ZlpYTk5iMlIxYkdVcElISmxkSFZ5YmlCdGIyUTdYSEpjYmlBZ0lDQjJZWElnY21WemRXeDBJRDBnZTMwN1hISmNiaUFnSUNCcFppQW9iVzlrSUNFOUlHNTFiR3dwSUdadmNpQW9kbUZ5SUdzZ2FXNGdiVzlrS1NCcFppQW9heUFoUFQwZ1hDSmtaV1poZFd4MFhDSWdKaVlnVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzVvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0cxdlpDd2dheWtwSUY5ZlkzSmxZWFJsUW1sdVpHbHVaeWh5WlhOMWJIUXNJRzF2WkN3Z2F5azdYSEpjYmlBZ0lDQmZYM05sZEUxdlpIVnNaVVJsWm1GMWJIUW9jbVZ6ZFd4MExDQnRiMlFwTzF4eVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmYVcxd2IzSjBSR1ZtWVhWc2RDaHRiMlFwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUFvYlc5a0lDWW1JRzF2WkM1ZlgyVnpUVzlrZFd4bEtTQS9JRzF2WkNBNklIc2daR1ZtWVhWc2REb2diVzlrSUgwN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtSMlYwS0hKbFkyVnBkbVZ5TENCemRHRjBaU3dnYTJsdVpDd2daaWtnZTF4eVhHNGdJQ0FnYVdZZ0tHdHBibVFnUFQwOUlGd2lZVndpSUNZbUlDRm1LU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVVISnBkbUYwWlNCaFkyTmxjM052Y2lCM1lYTWdaR1ZtYVc1bFpDQjNhWFJvYjNWMElHRWdaMlYwZEdWeVhDSXBPMXh5WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ6ZEdGMFpTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUlEOGdjbVZqWldsMlpYSWdJVDA5SUhOMFlYUmxJSHg4SUNGbUlEb2dJWE4wWVhSbExtaGhjeWh5WldObGFYWmxjaWtwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSkRZVzV1YjNRZ2NtVmhaQ0J3Y21sMllYUmxJRzFsYldKbGNpQm1jbTl0SUdGdUlHOWlhbVZqZENCM2FHOXpaU0JqYkdGemN5QmthV1FnYm05MElHUmxZMnhoY21VZ2FYUmNJaWs3WEhKY2JpQWdJQ0J5WlhSMWNtNGdhMmx1WkNBOVBUMGdYQ0p0WENJZ1B5Qm1JRG9nYTJsdVpDQTlQVDBnWENKaFhDSWdQeUJtTG1OaGJHd29jbVZqWldsMlpYSXBJRG9nWmlBL0lHWXVkbUZzZFdVZ09pQnpkR0YwWlM1blpYUW9jbVZqWldsMlpYSXBPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5amJHRnpjMUJ5YVhaaGRHVkdhV1ZzWkZObGRDaHlaV05sYVhabGNpd2djM1JoZEdVc0lIWmhiSFZsTENCcmFXNWtMQ0JtS1NCN1hISmNiaUFnSUNCcFppQW9hMmx1WkNBOVBUMGdYQ0p0WENJcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pRY21sMllYUmxJRzFsZEdodlpDQnBjeUJ1YjNRZ2QzSnBkR0ZpYkdWY0lpazdYSEpjYmlBZ0lDQnBaaUFvYTJsdVpDQTlQVDBnWENKaFhDSWdKaVlnSVdZcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pRY21sMllYUmxJR0ZqWTJWemMyOXlJSGRoY3lCa1pXWnBibVZrSUhkcGRHaHZkWFFnWVNCelpYUjBaWEpjSWlrN1hISmNiaUFnSUNCcFppQW9kSGx3Wlc5bUlITjBZWFJsSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnUHlCeVpXTmxhWFpsY2lBaFBUMGdjM1JoZEdVZ2ZId2dJV1lnT2lBaGMzUmhkR1V1YUdGektISmxZMlZwZG1WeUtTa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWtOaGJtNXZkQ0IzY21sMFpTQndjbWwyWVhSbElHMWxiV0psY2lCMGJ5QmhiaUJ2WW1wbFkzUWdkMmh2YzJVZ1kyeGhjM01nWkdsa0lHNXZkQ0JrWldOc1lYSmxJR2wwWENJcE8xeHlYRzRnSUNBZ2NtVjBkWEp1SUNocmFXNWtJRDA5UFNCY0ltRmNJaUEvSUdZdVkyRnNiQ2h5WldObGFYWmxjaXdnZG1Gc2RXVXBJRG9nWmlBL0lHWXVkbUZzZFdVZ1BTQjJZV3gxWlNBNklITjBZWFJsTG5ObGRDaHlaV05sYVhabGNpd2dkbUZzZFdVcEtTd2dkbUZzZFdVN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMk5zWVhOelVISnBkbUYwWlVacFpXeGtTVzRvYzNSaGRHVXNJSEpsWTJWcGRtVnlLU0I3WEhKY2JpQWdJQ0JwWmlBb2NtVmpaV2wyWlhJZ1BUMDlJRzUxYkd3Z2ZId2dLSFI1Y0dWdlppQnlaV05sYVhabGNpQWhQVDBnWENKdlltcGxZM1JjSWlBbUppQjBlWEJsYjJZZ2NtVmpaV2wyWlhJZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlrcElIUm9jbTkzSUc1bGR5QlVlWEJsUlhKeWIzSW9YQ0pEWVc1dWIzUWdkWE5sSUNkcGJpY2diM0JsY21GMGIzSWdiMjRnYm05dUxXOWlhbVZqZEZ3aUtUdGNjbHh1SUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnYzNSaGRHVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JSEpsWTJWcGRtVnlJRDA5UFNCemRHRjBaU0E2SUhOMFlYUmxMbWhoY3loeVpXTmxhWFpsY2lrN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMkZrWkVScGMzQnZjMkZpYkdWU1pYTnZkWEpqWlNobGJuWXNJSFpoYkhWbExDQmhjM2x1WXlrZ2UxeHlYRzRnSUNBZ2FXWWdLSFpoYkhWbElDRTlQU0J1ZFd4c0lDWW1JSFpoYkhWbElDRTlQU0IyYjJsa0lEQXBJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUNFOVBTQmNJbTlpYW1WamRGd2lJQ1ltSUhSNWNHVnZaaUIyWVd4MVpTQWhQVDBnWENKbWRXNWpkR2x2Ymx3aUtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpVDJKcVpXTjBJR1Y0Y0dWamRHVmtMbHdpS1R0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnWkdsemNHOXpaVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9ZWE41Ym1NcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZUZVcxaWIyd3VZWE41Ym1ORWFYTndiM05sS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVM2x0WW05c0xtRnplVzVqUkdsemNHOXpaU0JwY3lCdWIzUWdaR1ZtYVc1bFpDNWNJaWs3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1JwYzNCdmMyVWdQU0IyWVd4MVpWdFRlVzFpYjJ3dVlYTjVibU5FYVhOd2IzTmxYVHRjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhV1lnS0dScGMzQnZjMlVnUFQwOUlIWnZhV1FnTUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JVk41YldKdmJDNWthWE53YjNObEtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpVTNsdFltOXNMbVJwYzNCdmMyVWdhWE1nYm05MElHUmxabWx1WldRdVhDSXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmthWE53YjNObElEMGdkbUZzZFdWYlUzbHRZbTlzTG1ScGMzQnZjMlZkTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdScGMzQnZjMlVnSVQwOUlGd2lablZ1WTNScGIyNWNJaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrOWlhbVZqZENCdWIzUWdaR2x6Y0c5ellXSnNaUzVjSWlrN1hISmNiaUFnSUNBZ0lDQWdaVzUyTG5OMFlXTnJMbkIxYzJnb2V5QjJZV3gxWlRvZ2RtRnNkV1VzSUdScGMzQnZjMlU2SUdScGMzQnZjMlVzSUdGemVXNWpPaUJoYzNsdVl5QjlLVHRjY2x4dUlDQWdJSDFjY2x4dUlDQWdJR1ZzYzJVZ2FXWWdLR0Z6ZVc1aktTQjdYSEpjYmlBZ0lDQWdJQ0FnWlc1MkxuTjBZV05yTG5CMWMyZ29leUJoYzNsdVl6b2dkSEoxWlNCOUtUdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjY2x4dWZWeHlYRzVjY2x4dWRtRnlJRjlUZFhCd2NtVnpjMlZrUlhKeWIzSWdQU0IwZVhCbGIyWWdVM1Z3Y0hKbGMzTmxaRVZ5Y205eUlEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ1B5QlRkWEJ3Y21WemMyVmtSWEp5YjNJZ09pQm1kVzVqZEdsdmJpQW9aWEp5YjNJc0lITjFjSEJ5WlhOelpXUXNJRzFsYzNOaFoyVXBJSHRjY2x4dUlDQWdJSFpoY2lCbElEMGdibVYzSUVWeWNtOXlLRzFsYzNOaFoyVXBPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHVXVibUZ0WlNBOUlGd2lVM1Z3Y0hKbGMzTmxaRVZ5Y205eVhDSXNJR1V1WlhKeWIzSWdQU0JsY25KdmNpd2daUzV6ZFhCd2NtVnpjMlZrSUQwZ2MzVndjSEpsYzNObFpDd2daVHRjY2x4dWZUdGNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyUnBjM0J2YzJWU1pYTnZkWEpqWlhNb1pXNTJLU0I3WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJtWVdsc0tHVXBJSHRjY2x4dUlDQWdJQ0FnSUNCbGJuWXVaWEp5YjNJZ1BTQmxibll1YUdGelJYSnliM0lnUHlCdVpYY2dYMU4xY0hCeVpYTnpaV1JGY25KdmNpaGxMQ0JsYm5ZdVpYSnliM0lzSUZ3aVFXNGdaWEp5YjNJZ2QyRnpJSE4xY0hCeVpYTnpaV1FnWkhWeWFXNW5JR1JwYzNCdmMyRnNMbHdpS1NBNklHVTdYSEpjYmlBZ0lDQWdJQ0FnWlc1MkxtaGhjMFZ5Y205eUlEMGdkSEoxWlR0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUdaMWJtTjBhVzl1SUc1bGVIUW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2QyaHBiR1VnS0dWdWRpNXpkR0ZqYXk1c1pXNW5kR2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnZG1GeUlISmxZeUE5SUdWdWRpNXpkR0ZqYXk1d2IzQW9LVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ5WlhOMWJIUWdQU0J5WldNdVpHbHpjRzl6WlNBbUppQnlaV011WkdsemNHOXpaUzVqWVd4c0tISmxZeTUyWVd4MVpTazdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtVmpMbUZ6ZVc1aktTQnlaWFIxY200Z1VISnZiV2x6WlM1eVpYTnZiSFpsS0hKbGMzVnNkQ2t1ZEdobGJpaHVaWGgwTENCbWRXNWpkR2x2YmlobEtTQjdJR1poYVd3b1pTazdJSEpsZEhWeWJpQnVaWGgwS0NrN0lIMHBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhkR05vSUNobEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtWVdsc0tHVXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2hsYm5ZdWFHRnpSWEp5YjNJcElIUm9jbTkzSUdWdWRpNWxjbkp2Y2p0Y2NseHVJQ0FnSUgxY2NseHVJQ0FnSUhKbGRIVnliaUJ1WlhoMEtDazdYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JrWldaaGRXeDBJSHRjY2x4dUlDQWdJRjlmWlhoMFpXNWtjem9nWDE5bGVIUmxibVJ6TEZ4eVhHNGdJQ0FnWDE5aGMzTnBaMjQ2SUY5ZllYTnphV2R1TEZ4eVhHNGdJQ0FnWDE5eVpYTjBPaUJmWDNKbGMzUXNYSEpjYmlBZ0lDQmZYMlJsWTI5eVlYUmxPaUJmWDJSbFkyOXlZWFJsTEZ4eVhHNGdJQ0FnWDE5d1lYSmhiVG9nWDE5d1lYSmhiU3hjY2x4dUlDQWdJRjlmYldWMFlXUmhkR0U2SUY5ZmJXVjBZV1JoZEdFc1hISmNiaUFnSUNCZlgyRjNZV2wwWlhJNklGOWZZWGRoYVhSbGNpeGNjbHh1SUNBZ0lGOWZaMlZ1WlhKaGRHOXlPaUJmWDJkbGJtVnlZWFJ2Y2l4Y2NseHVJQ0FnSUY5ZlkzSmxZWFJsUW1sdVpHbHVaem9nWDE5amNtVmhkR1ZDYVc1a2FXNW5MRnh5WEc0Z0lDQWdYMTlsZUhCdmNuUlRkR0Z5T2lCZlgyVjRjRzl5ZEZOMFlYSXNYSEpjYmlBZ0lDQmZYM1poYkhWbGN6b2dYMTkyWVd4MVpYTXNYSEpjYmlBZ0lDQmZYM0psWVdRNklGOWZjbVZoWkN4Y2NseHVJQ0FnSUY5ZmMzQnlaV0ZrT2lCZlgzTndjbVZoWkN4Y2NseHVJQ0FnSUY5ZmMzQnlaV0ZrUVhKeVlYbHpPaUJmWDNOd2NtVmhaRUZ5Y21GNWN5eGNjbHh1SUNBZ0lGOWZjM0J5WldGa1FYSnlZWGs2SUY5ZmMzQnlaV0ZrUVhKeVlYa3NYSEpjYmlBZ0lDQmZYMkYzWVdsME9pQmZYMkYzWVdsMExGeHlYRzRnSUNBZ1gxOWhjM2x1WTBkbGJtVnlZWFJ2Y2pvZ1gxOWhjM2x1WTBkbGJtVnlZWFJ2Y2l4Y2NseHVJQ0FnSUY5ZllYTjVibU5FWld4bFoyRjBiM0k2SUY5ZllYTjVibU5FWld4bFoyRjBiM0lzWEhKY2JpQWdJQ0JmWDJGemVXNWpWbUZzZFdWek9pQmZYMkZ6ZVc1alZtRnNkV1Z6TEZ4eVhHNGdJQ0FnWDE5dFlXdGxWR1Z0Y0d4aGRHVlBZbXBsWTNRNklGOWZiV0ZyWlZSbGJYQnNZWFJsVDJKcVpXTjBMRnh5WEc0Z0lDQWdYMTlwYlhCdmNuUlRkR0Z5T2lCZlgybHRjRzl5ZEZOMFlYSXNYSEpjYmlBZ0lDQmZYMmx0Y0c5eWRFUmxabUYxYkhRNklGOWZhVzF3YjNKMFJHVm1ZWFZzZEN4Y2NseHVJQ0FnSUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSSFpYUTZJRjlmWTJ4aGMzTlFjbWwyWVhSbFJtbGxiR1JIWlhRc1hISmNiaUFnSUNCZlgyTnNZWE56VUhKcGRtRjBaVVpwWld4a1UyVjBPaUJmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrVTJWMExGeHlYRzRnSUNBZ1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pFbHVPaUJmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrU1c0c1hISmNiaUFnSUNCZlgyRmtaRVJwYzNCdmMyRmliR1ZTWlhOdmRYSmpaVG9nWDE5aFpHUkVhWE53YjNOaFlteGxVbVZ6YjNWeVkyVXNYSEpjYmlBZ0lDQmZYMlJwYzNCdmMyVlNaWE52ZFhKalpYTTZJRjlmWkdsemNHOXpaVkpsYzI5MWNtTmxjeXhjY2x4dWZUdGNjbHh1SWl3aWFXMXdiM0owSUhSNWNHVWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNWNiaThxS2x4dUlDb2dWSEpoZG1WeWMyVWdZVzVqWlhOMGIzSnpJRzltSUdkcGRtVnVJRzlpYW1WamRDQmhibVFnWTJGc2JDQm5hWFpsYmlCallXeHNZbUZqYXlCbWNtOXRJSEp2YjNRZ2MybGtaUzVjYmlBcUlFbDBJSGRwYkd3Z2FXNWpiSFZrWlNCMGFHVWdaMmwyWlc0Z2IySnFaV04wSUdsMGMyVnNaaTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdiMkpxWldOMElGUm9aU0J2WW1wbFkzUWdlVzkxSUhkaGJuUWdkRzhnZEhKaGRtVnljMlZjYmlBcUlFQndZWEpoYlNCallXeHNZbUZqYXlCVWFHVWdZMkZzYkNCaVlXTnJJR1oxYm1OMGFXOXVJSFJvWVhRZ2QybHNiQ0JpWlNCallXeHNaV1FnWm05eUlHVmhZMmdnWVc1alpYTjBiM0p6WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjBjbUYyWlhKelpVRnVZMlZ6ZEc5eWMwWnliMjFTYjI5MEtHOWlhbVZqZERvZ1ZFaFNSVVV1VDJKcVpXTjBNMFFzSUdOaGJHeGlZV05yT2lBb2IySnFaV04wT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ2tnUFQ0Z2RtOXBaQ2s2SUhadmFXUWdlMXh1SUNCamIyNXpkQ0JoYm1ObGMzUnZjbk02SUZSSVVrVkZMazlpYW1WamRETkVXMTBnUFNCYmIySnFaV04wWFR0Y2JseHVJQ0JzWlhRZ2FHVmhaRG9nVkVoU1JVVXVUMkpxWldOME0wUWdmQ0J1ZFd4c0lEMGdiMkpxWldOMExuQmhjbVZ1ZER0Y2JpQWdkMmhwYkdVZ0tHaGxZV1FnSVQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0JoYm1ObGMzUnZjbk11ZFc1emFHbG1kQ2hvWldGa0tUdGNiaUFnSUNCb1pXRmtJRDBnYUdWaFpDNXdZWEpsYm5RN1hHNGdJSDFjYmx4dUlDQmhibU5sYzNSdmNuTXVabTl5UldGamFDZ29ZVzVqWlhOMGIzSXBJRDArSUh0Y2JpQWdJQ0JqWVd4c1ltRmpheWhoYm1ObGMzUnZjaWs3WEc0Z0lIMHBPMXh1ZlZ4dUlpd2lhVzF3YjNKMElIUjVjR1VnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVTV2WkdWRGIyNXpkSEpoYVc1MElIMGdabkp2YlNBbkxpOVdVazFPYjJSbFEyOXVjM1J5WVdsdWRDYzdYRzVwYlhCdmNuUWdleUIwY21GMlpYSnpaVUZ1WTJWemRHOXljMFp5YjIxU2IyOTBJSDBnWm5KdmJTQW5MaTkxZEdsc2N5OTBjbUYyWlhKelpVRnVZMlZ6ZEc5eWMwWnliMjFTYjI5MEp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklGWlNUVTV2WkdWRGIyNXpkSEpoYVc1MFRXRnVZV2RsY2lCN1hHNGdJSEJ5YVhaaGRHVWdYMk52Ym5OMGNtRnBiblJ6SUQwZ2JtVjNJRk5sZER4V1VrMU9iMlJsUTI5dWMzUnlZV2x1ZEQ0b0tUdGNiaUFnY0hWaWJHbGpJR2RsZENCamIyNXpkSEpoYVc1MGN5Z3BPaUJUWlhROFZsSk5UbTlrWlVOdmJuTjBjbUZwYm5RK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWZZMjl1YzNSeVlXbHVkSE03WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUY5dlltcGxZM1JEYjI1emRISmhhVzUwYzAxaGNDQTlJRzVsZHlCTllYQThWRWhTUlVVdVQySnFaV04wTTBRc0lGTmxkRHhXVWsxT2IyUmxRMjl1YzNSeVlXbHVkRDQrS0NrN1hHNWNiaUFnY0hWaWJHbGpJR0ZrWkVOdmJuTjBjbUZwYm5Rb1kyOXVjM1J5WVdsdWREb2dWbEpOVG05a1pVTnZibk4wY21GcGJuUXBPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbDlqYjI1emRISmhhVzUwY3k1aFpHUW9ZMjl1YzNSeVlXbHVkQ2s3WEc1Y2JpQWdJQ0JzWlhRZ2IySnFaV04wVTJWMElEMGdkR2hwY3k1ZmIySnFaV04wUTI5dWMzUnlZV2x1ZEhOTllYQXVaMlYwS0dOdmJuTjBjbUZwYm5RdVpHVnpkR2x1WVhScGIyNHBPMXh1SUNBZ0lHbG1JQ2h2WW1wbFkzUlRaWFFnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnYjJKcVpXTjBVMlYwSUQwZ2JtVjNJRk5sZER4V1VrMU9iMlJsUTI5dWMzUnlZV2x1ZEQ0b0tUdGNiaUFnSUNBZ0lIUm9hWE11WDI5aWFtVmpkRU52Ym5OMGNtRnBiblJ6VFdGd0xuTmxkQ2hqYjI1emRISmhhVzUwTG1SbGMzUnBibUYwYVc5dUxDQnZZbXBsWTNSVFpYUXBPMXh1SUNBZ0lIMWNiaUFnSUNCdlltcGxZM1JUWlhRdVlXUmtLR052Ym5OMGNtRnBiblFwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdSbGJHVjBaVU52Ym5OMGNtRnBiblFvWTI5dWMzUnlZV2x1ZERvZ1ZsSk5UbTlrWlVOdmJuTjBjbUZwYm5RcE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxsOWpiMjV6ZEhKaGFXNTBjeTVrWld4bGRHVW9ZMjl1YzNSeVlXbHVkQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnZZbXBsWTNSVFpYUWdQU0IwYUdsekxsOXZZbXBsWTNSRGIyNXpkSEpoYVc1MGMwMWhjQzVuWlhRb1kyOXVjM1J5WVdsdWRDNWtaWE4wYVc1aGRHbHZiaWtoTzF4dUlDQWdJRzlpYW1WamRGTmxkQzVrWld4bGRHVW9ZMjl1YzNSeVlXbHVkQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nYzJWMFNXNXBkRk4wWVhSbEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTjBJR052Ym5OMGNtRnBiblJ6VkhKcFpXUWdQU0J1WlhjZ1UyVjBQRlpTVFU1dlpHVkRiMjV6ZEhKaGFXNTBQaWdwTzF4dUlDQWdJR052Ym5OMElHTnZibk4wY21GcGJuUnpSRzl1WlNBOUlHNWxkeUJUWlhROFZsSk5UbTlrWlVOdmJuTjBjbUZwYm5RK0tDazdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR052Ym5OMGNtRnBiblFnYjJZZ2RHaHBjeTVmWTI5dWMzUnlZV2x1ZEhNcElIdGNiaUFnSUNBZ0lIUm9hWE11WDNCeWIyTmxjM05EYjI1emRISmhhVzUwS0dOdmJuTjBjbUZwYm5Rc0lHTnZibk4wY21GcGJuUnpWSEpwWldRc0lHTnZibk4wY21GcGJuUnpSRzl1WlN3Z0tHTnZibk4wY21GcGJuUXBJRDArSUdOdmJuTjBjbUZwYm5RdWMyVjBTVzVwZEZOMFlYUmxLQ2twTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUIxY0dSaGRHVW9LVG9nZG05cFpDQjdYRzRnSUNBZ1kyOXVjM1FnWTI5dWMzUnlZV2x1ZEhOVWNtbGxaQ0E5SUc1bGR5QlRaWFE4VmxKTlRtOWtaVU52Ym5OMGNtRnBiblErS0NrN1hHNGdJQ0FnWTI5dWMzUWdZMjl1YzNSeVlXbHVkSE5FYjI1bElEMGdibVYzSUZObGREeFdVazFPYjJSbFEyOXVjM1J5WVdsdWRENG9LVHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWTI5dWMzUnlZV2x1ZENCdlppQjBhR2x6TGw5amIyNXpkSEpoYVc1MGN5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZmNISnZZMlZ6YzBOdmJuTjBjbUZwYm5Rb1kyOXVjM1J5WVdsdWRDd2dZMjl1YzNSeVlXbHVkSE5VY21sbFpDd2dZMjl1YzNSeVlXbHVkSE5FYjI1bExDQW9ZMjl1YzNSeVlXbHVkQ2tnUFQ0Z1kyOXVjM1J5WVdsdWRDNTFjR1JoZEdVb0tTazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRlZ3WkdGMFpTQmhJR052Ym5OMGNtRnBiblF1WEc0Z0lDQXFJRWxtSUhSb1pYSmxJR0Z5WlNCdmRHaGxjaUJqYjI1emRISmhhVzUwY3lCMGFHRjBJR0Z5WlNCa1pYQmxibVJoYm5Rc0lHbDBJSGRwYkd3Z2RISjVJSFJ2SUhWd1pHRjBaU0IwYUdWdElISmxZM1Z5YzJsMlpXeDVMbHh1SUNBZ0tpQkpkQ0J0YVdkb2RDQjBhSEp2ZHlCaGJpQmxjbkp2Y2lCcFppQjBhR1Z5WlNCaGNtVWdZMmx5WTNWc1lYSWdaR1Z3Wlc1a1pXNWphV1Z6TGx4dUlDQWdLbHh1SUNBZ0tpQkpiblJsYm1SbFpDQjBieUJpWlNCMWMyVmtJR2x1SUh0QWJHbHVheUIxY0dSaGRHVjlJR0Z1WkNCN1FHeHBibXNnWDNCeWIyTmxjM05EYjI1emRISmhhVzUwZlNCcGRITmxiR1lnY21WamRYSnphWFpsYkhrdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQmpiMjV6ZEhKaGFXNTBJRUVnWTI5dWMzUnlZV2x1ZENCNWIzVWdkMkZ1ZENCMGJ5QjFjR1JoZEdWY2JpQWdJQ29nUUhCaGNtRnRJR052Ym5OMGNtRnBiblJ6VkhKcFpXUWdVMlYwSUc5bUlHTnZibk4wY21GcGJuUnpJSFJvWVhRZ1lYSmxJR0ZzY21WaFpIa2dkSEpwWldRZ2RHOGdZbVVnZFhCa1lYUmxaRnh1SUNBZ0tpQkFjR0Z5WVcwZ1kyOXVjM1J5WVdsdWRITkViMjVsSUZObGRDQnZaaUJqYjI1emRISmhhVzUwY3lCMGFHRjBJR0Z5WlNCaGJISmxZV1I1SUhWd0lIUnZJR1JoZEdWY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1gzQnliMk5sYzNORGIyNXpkSEpoYVc1MEtGeHVJQ0FnSUdOdmJuTjBjbUZwYm5RNklGWlNUVTV2WkdWRGIyNXpkSEpoYVc1MExGeHVJQ0FnSUdOdmJuTjBjbUZwYm5SelZISnBaV1E2SUZObGREeFdVazFPYjJSbFEyOXVjM1J5WVdsdWRENHNYRzRnSUNBZ1kyOXVjM1J5WVdsdWRITkViMjVsT2lCVFpYUThWbEpOVG05a1pVTnZibk4wY21GcGJuUStMRnh1SUNBZ0lHTmhiR3hpWVdOck9pQW9ZMjl1YzNSeVlXbHVkRG9nVmxKTlRtOWtaVU52Ym5OMGNtRnBiblFwSUQwK0lIWnZhV1FzWEc0Z0lDazZJSFp2YVdRZ2UxeHVJQ0FnSUdsbUlDaGpiMjV6ZEhKaGFXNTBjMFJ2Ym1VdWFHRnpLR052Ym5OMGNtRnBiblFwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0dOdmJuTjBjbUZwYm5SelZISnBaV1F1YUdGektHTnZibk4wY21GcGJuUXBLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMVpTVFU1dlpHVkRiMjV6ZEhKaGFXNTBUV0Z1WVdkbGNqb2dRMmx5WTNWc1lYSWdaR1Z3Wlc1a1pXNWplU0JrWlhSbFkzUmxaQ0IzYUdsc1pTQjFjR1JoZEdsdVp5QmpiMjV6ZEhKaGFXNTBjeWNwTzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZEhKaGFXNTBjMVJ5YVdWa0xtRmtaQ2hqYjI1emRISmhhVzUwS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR1JsY0U5aWFtVmpkSE1nUFNCamIyNXpkSEpoYVc1MExtUmxjR1Z1WkdWdVkybGxjenRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1JsY0U5aWFtVmpkQ0J2WmlCa1pYQlBZbXBsWTNSektTQjdYRzRnSUNBZ0lDQjBjbUYyWlhKelpVRnVZMlZ6ZEc5eWMwWnliMjFTYjI5MEtHUmxjRTlpYW1WamRDd2dLR1JsY0U5aWFtVmpkRUZ1WTJWemRHOXlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5aWFtVmpkRk5sZENBOUlIUm9hWE11WDI5aWFtVmpkRU52Ym5OMGNtRnBiblJ6VFdGd0xtZGxkQ2hrWlhCUFltcGxZM1JCYm1ObGMzUnZjaWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaHZZbXBsWTNSVFpYUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElHUmxjRU52Ym5OMGNtRnBiblFnYjJZZ2IySnFaV04wVTJWMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbDl3Y205alpYTnpRMjl1YzNSeVlXbHVkQ2hrWlhCRGIyNXpkSEpoYVc1MExDQmpiMjV6ZEhKaGFXNTBjMVJ5YVdWa0xDQmpiMjV6ZEhKaGFXNTBjMFJ2Ym1Vc0lHTmhiR3hpWVdOcktUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOaGJHeGlZV05yS0dOdmJuTjBjbUZwYm5RcE8xeHVYRzRnSUNBZ1kyOXVjM1J5WVdsdWRITkViMjVsTG1Ga1pDaGpiMjV6ZEhKaGFXNTBLVHRjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSHNnY1hWaGRFbHVkbVZ5ZEVOdmJYQmhkQ0I5SUdaeWIyMGdKeTR2ZFhScGJITXZjWFZoZEVsdWRtVnlkRU52YlhCaGRDYzdYRzVwYlhCdmNuUWdleUJXVWsxT2IyUmxRMjl1YzNSeVlXbHVkQ0I5SUdaeWIyMGdKeTR2VmxKTlRtOWtaVU52Ym5OMGNtRnBiblFuTzF4dVhHNWpiMjV6ZENCZmNYVmhkRUVnUFNCdVpYY2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpZ3BPMXh1WTI5dWMzUWdYM0YxWVhSQ0lEMGdibVYzSUZSSVVrVkZMbEYxWVhSbGNtNXBiMjRvS1R0Y2JseHVMeW9xWEc0Z0tpQkJJR052Ym5OMGNtRnBiblFnZEdoaGRDQjBjbUZ1YzJabGNuTWdZU0J5YjNSaGRHbHZiaUJoY205MWJtUWdiMjVsSUdGNGFYTWdiMllnWVNCemIzVnlZMlV1WEc0Z0tseHVJQ29nVTJWbE9pQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZkbkp0TFdNdmRuSnRMWE53WldOcFptbGpZWFJwYjI0dmRISmxaUzl0WVhOMFpYSXZjM0JsWTJsbWFXTmhkR2x2Ymk5V1VrMURYMjV2WkdWZlkyOXVjM1J5WVdsdWRDMHhMakJmWW1WMFlTTnliMnhzTFdOdmJuTjBjbUZwYm5SY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWlNUVkp2ZEdGMGFXOXVRMjl1YzNSeVlXbHVkQ0JsZUhSbGJtUnpJRlpTVFU1dlpHVkRiMjV6ZEhKaGFXNTBJSHRjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0J5WlhOMElIRjFZWFJsY201cGIyNGdiMllnZEdobElIdEFiR2x1YXlCa1pYTjBhVzVoZEdsdmJuMHVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjlrYzNSU1pYTjBVWFZoZERvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2Ymp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElHbHVkbVZ5YzJVZ2IyWWdkR2hsSUhKbGMzUWdjWFZoZEdWeWJtbHZiaUJ2WmlCMGFHVWdlMEJzYVc1cklITnZkWEpqWlgwdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXBiblpUY21OU1pYTjBVWFZoZERvZ1ZFaFNSVVV1VVhWaGRHVnlibWx2Ymp0Y2JseHVJQ0J3ZFdKc2FXTWdaMlYwSUdSbGNHVnVaR1Z1WTJsbGN5Z3BPaUJUWlhROFZFaFNSVVV1VDJKcVpXTjBNMFErSUh0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzSUZObGRDaGJkR2hwY3k1emIzVnlZMlZkS1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGtaWE4wYVc1aGRHbHZiam9nVkVoU1JVVXVUMkpxWldOME0wUXNJSE52ZFhKalpUb2dWRWhTUlVVdVQySnFaV04wTTBRcElIdGNiaUFnSUNCemRYQmxjaWhrWlhOMGFXNWhkR2x2Yml3Z2MyOTFjbU5sS1R0Y2JseHVJQ0FnSUhSb2FYTXVYMlJ6ZEZKbGMzUlJkV0YwSUQwZ2JtVjNJRlJJVWtWRkxsRjFZWFJsY201cGIyNG9LVHRjYmlBZ0lDQjBhR2x6TGw5cGJuWlRjbU5TWlhOMFVYVmhkQ0E5SUc1bGR5QlVTRkpGUlM1UmRXRjBaWEp1YVc5dUtDazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdjMlYwU1c1cGRGTjBZWFJsS0NrNklIWnZhV1FnZTF4dUlDQWdJSFJvYVhNdVgyUnpkRkpsYzNSUmRXRjBMbU52Y0hrb2RHaHBjeTVrWlhOMGFXNWhkR2x2Ymk1eGRXRjBaWEp1YVc5dUtUdGNiaUFnSUNCeGRXRjBTVzUyWlhKMFEyOXRjR0YwS0hSb2FYTXVYMmx1ZGxOeVkxSmxjM1JSZFdGMExtTnZjSGtvZEdocGN5NXpiM1Z5WTJVdWNYVmhkR1Z5Ym1sdmJpa3BPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSFZ3WkdGMFpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNBdkx5QmpZV3hqZFd4aGRHVWdkR2hsSUdSbGJIUmhJSEp2ZEdGMGFXOXVJR1p5YjIwZ2RHaGxJSEpsYzNRZ1lXSnZkWFFnZEdobElITnZkWEpqWlZ4dUlDQWdJR052Ym5OMElITnlZMFJsYkhSaFVYVmhkQ0E5SUY5eGRXRjBRUzVqYjNCNUtIUm9hWE11WDJsdWRsTnlZMUpsYzNSUmRXRjBLUzV0ZFd4MGFYQnNlU2gwYUdsekxuTnZkWEpqWlM1eGRXRjBaWEp1YVc5dUtUdGNibHh1SUNBZ0lDOHZJRzExYkhScGNHeDVJSFJvWlNCa1pXeDBZU0IwYnlCMGFHVWdjbVZ6ZENCdlppQjBhR1VnWkdWemRHbHVZWFJwYjI1Y2JpQWdJQ0JqYjI1emRDQjBZWEpuWlhSUmRXRjBJRDBnWDNGMVlYUkNMbU52Y0hrb2RHaHBjeTVmWkhOMFVtVnpkRkYxWVhRcExtMTFiSFJwY0d4NUtITnlZMFJsYkhSaFVYVmhkQ2s3WEc1Y2JpQWdJQ0F2THlCaWJHVnVaQ0IzYVhSb0lIUm9aU0J5WlhOMElIRjFZWFJsY201cGIyNGdkWE5wYm1jZ2QyVnBaMmgwWEc0Z0lDQWdkR2hwY3k1a1pYTjBhVzVoZEdsdmJpNXhkV0YwWlhKdWFXOXVMbU52Y0hrb2RHaHBjeTVmWkhOMFVtVnpkRkYxWVhRcExuTnNaWEp3S0hSaGNtZGxkRkYxWVhRc0lIUm9hWE11ZDJWcFoyaDBLVHRjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSHNnY1hWaGRFbHVkbVZ5ZEVOdmJYQmhkQ0I5SUdaeWIyMGdKeTR2ZFhScGJITXZjWFZoZEVsdWRtVnlkRU52YlhCaGRDYzdYRzVwYlhCdmNuUWdleUJXVWsxT2IyUmxRMjl1YzNSeVlXbHVkQ0I5SUdaeWIyMGdKeTR2VmxKTlRtOWtaVU52Ym5OMGNtRnBiblFuTzF4dVhHNWpiMjV6ZENCZmRqTkJJRDBnYm1WM0lGUklVa1ZGTGxabFkzUnZjak1vS1R0Y2JtTnZibk4wSUY5eGRXRjBRU0E5SUc1bGR5QlVTRkpGUlM1UmRXRjBaWEp1YVc5dUtDazdYRzVqYjI1emRDQmZjWFZoZEVJZ1BTQnVaWGNnVkVoU1JVVXVVWFZoZEdWeWJtbHZiaWdwTzF4dVhHNHZLaXBjYmlBcUlFRWdZMjl1YzNSeVlXbHVkQ0IwYUdGMElIUnlZVzV6Wm1WeWN5QmhJSEp2ZEdGMGFXOXVJR0Z5YjNWdVpDQnZibVVnWVhocGN5QnZaaUJoSUhOdmRYSmpaUzVjYmlBcVhHNGdLaUJUWldVNklHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTJjbTB0WXk5MmNtMHRjM0JsWTJsbWFXTmhkR2x2Ymk5MGNtVmxMMjFoYzNSbGNpOXpjR1ZqYVdacFkyRjBhVzl1TDFaU1RVTmZibTlrWlY5amIyNXpkSEpoYVc1MExURXVNRjlpWlhSaEkzSnZiR3d0WTI5dWMzUnlZV2x1ZEZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5VbTlzYkVOdmJuTjBjbUZwYm5RZ1pYaDBaVzVrY3lCV1VrMU9iMlJsUTI5dWMzUnlZV2x1ZENCN1hHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ2NtOXNiQ0JoZUdseklHOW1JSFJvWlNCamIyNXpkSEpoYVc1MExseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHZGxkQ0J5YjJ4c1FYaHBjeWdwT2lBbldDY2dmQ0FuV1NjZ2ZDQW5XaWNnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TGw5eWIyeHNRWGhwY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnY205c2JDQmhlR2x6SUc5bUlIUm9aU0JqYjI1emRISmhhVzUwTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhObGRDQnliMnhzUVhocGN5aHliMnhzUVhocGN6b2dKMWduSUh3Z0oxa25JSHdnSjFvbktTQjdYRzRnSUNBZ2RHaHBjeTVmY205c2JFRjRhWE1nUFNCeWIyeHNRWGhwY3p0Y2JpQWdJQ0IwYUdsekxsOTJNMUp2Ykd4QmVHbHpMbk5sZENoeWIyeHNRWGhwY3lBOVBUMGdKMWduSUQ4Z01TNHdJRG9nTUM0d0xDQnliMnhzUVhocGN5QTlQVDBnSjFrbklEOGdNUzR3SURvZ01DNHdMQ0J5YjJ4c1FYaHBjeUE5UFQwZ0oxb25JRDhnTVM0d0lEb2dNQzR3S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnY205c2JDQmhlR2x6SUc5bUlIUm9aU0JqYjI1emRISmhhVzUwTGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCZmNtOXNiRUY0YVhNNklDZFlKeUI4SUNkWkp5QjhJQ2RhSnp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElIdEFiR2x1YXlCZmNtOXNiRUY0YVhOOUlHSjFkQ0JwYmlCaGJpQmhZM1IxWVd3Z1ZtVmpkRzl5TXlCbWIzSnRMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmZGpOU2IyeHNRWGhwY3pvZ1ZFaFNSVVV1Vm1WamRHOXlNenRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUhKbGMzUWdjWFZoZEdWeWJtbHZiaUJ2WmlCMGFHVWdlMEJzYVc1cklHUmxjM1JwYm1GMGFXOXVmUzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJSemRGSmxjM1JSZFdGME9pQlVTRkpGUlM1UmRXRjBaWEp1YVc5dU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVWFHVWdhVzUyWlhKelpTQnZaaUIwYUdVZ2NtVnpkQ0J4ZFdGMFpYSnVhVzl1SUc5bUlIUm9aU0I3UUd4cGJtc2daR1Z6ZEdsdVlYUnBiMjU5TGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCZmFXNTJSSE4wVW1WemRGRjFZWFE2SUZSSVVrVkZMbEYxWVhSbGNtNXBiMjQ3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJR0J6Y21OU1pYTjBVWFZoZEM1cGJuWmxjblFvS1NBcUlHUnpkRkpsYzNSUmRXRjBZQzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJsdWRsTnlZMUpsYzNSUmRXRjBUWFZzUkhOMFVtVnpkRkYxWVhRNklGUklVa1ZGTGxGMVlYUmxjbTVwYjI0N1hHNWNiaUFnY0hWaWJHbGpJR2RsZENCa1pYQmxibVJsYm1OcFpYTW9LVG9nVTJWMFBGUklVa1ZGTGs5aWFtVmpkRE5FUGlCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCVFpYUW9XM1JvYVhNdWMyOTFjbU5sWFNrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9aR1Z6ZEdsdVlYUnBiMjQ2SUZSSVVrVkZMazlpYW1WamRETkVMQ0J6YjNWeVkyVTZJRlJJVWtWRkxrOWlhbVZqZERORUtTQjdYRzRnSUNBZ2MzVndaWElvWkdWemRHbHVZWFJwYjI0c0lITnZkWEpqWlNrN1hHNWNiaUFnSUNCMGFHbHpMbDl5YjJ4c1FYaHBjeUE5SUNkWUp6dGNiaUFnSUNCMGFHbHpMbDkyTTFKdmJHeEJlR2x6SUQwZ2JtVjNJRlJJVWtWRkxsWmxZM1J2Y2pNb01Td2dNQ3dnTUNrN1hHNWNiaUFnSUNCMGFHbHpMbDlrYzNSU1pYTjBVWFZoZENBOUlHNWxkeUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVLQ2s3WEc0Z0lDQWdkR2hwY3k1ZmFXNTJSSE4wVW1WemRGRjFZWFFnUFNCdVpYY2dWRWhTUlVVdVVYVmhkR1Z5Ym1sdmJpZ3BPMXh1SUNBZ0lIUm9hWE11WDJsdWRsTnlZMUpsYzNSUmRXRjBUWFZzUkhOMFVtVnpkRkYxWVhRZ1BTQnVaWGNnVkVoU1JVVXVVWFZoZEdWeWJtbHZiaWdwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhObGRFbHVhWFJUZEdGMFpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbDlrYzNSU1pYTjBVWFZoZEM1amIzQjVLSFJvYVhNdVpHVnpkR2x1WVhScGIyNHVjWFZoZEdWeWJtbHZiaWs3WEc0Z0lDQWdjWFZoZEVsdWRtVnlkRU52YlhCaGRDaDBhR2x6TGw5cGJuWkVjM1JTWlhOMFVYVmhkQzVqYjNCNUtIUm9hWE11WDJSemRGSmxjM1JSZFdGMEtTazdYRzRnSUNBZ2NYVmhkRWx1ZG1WeWRFTnZiWEJoZENoMGFHbHpMbDlwYm5aVGNtTlNaWE4wVVhWaGRFMTFiRVJ6ZEZKbGMzUlJkV0YwTG1OdmNIa29kR2hwY3k1emIzVnlZMlV1Y1hWaGRHVnlibWx2YmlrcExtMTFiSFJwY0d4NUtIUm9hWE11WDJSemRGSmxjM1JSZFdGMEtUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QjFjR1JoZEdVb0tUb2dkbTlwWkNCN1hHNGdJQ0FnTHk4Z1kyRnNZM1ZzWVhSbElIUm9aU0JrWld4MFlTQnliM1JoZEdsdmJpQm1jbTl0SUhSb1pTQnlaWE4wSUdGaWIzVjBJSFJvWlNCemIzVnlZMlVzSUhSb1pXNGdZMjl1ZG1WeWRDQjBieUIwYUdVZ1pHVnpkR2x1WVhScGIyNGdiRzlqWVd3Z1kyOXZjbVJjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJYYUdGMElIUm9aU0J4ZFdGMFJHVnNkR0VnYVhNZ2FXNTBaVzVrWldRZ2RHOGdZbVU2WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJnWUdCMGMxeHVJQ0FnSUNBcUlHTnZibk4wSUhGMVlYUlRjbU5FWld4MFlTQTlJRjl4ZFdGMFFWeHVJQ0FnSUNBcUlDQWdMbU52Y0hrb0lIUm9hWE11WDJsdWRsTnlZMUpsYzNSUmRXRjBJQ2xjYmlBZ0lDQWdLaUFnSUM1dGRXeDBhWEJzZVNnZ2RHaHBjeTV6YjNWeVkyVXVjWFZoZEdWeWJtbHZiaUFwTzF4dUlDQWdJQ0FxSUdOdmJuTjBJSEYxWVhSVGNtTkVaV3gwWVVsdVVHRnlaVzUwSUQwZ1gzRjFZWFJDWEc0Z0lDQWdJQ29nSUNBdVkyOXdlU2dnZEdocGN5NWZjM0pqVW1WemRGRjFZWFFnS1Z4dUlDQWdJQ0FxSUNBZ0xtMTFiSFJwY0d4NUtDQnhkV0YwVTNKalJHVnNkR0VnS1Z4dUlDQWdJQ0FxSUNBZ0xtMTFiSFJwY0d4NUtDQjBhR2x6TGw5cGJuWlRjbU5TWlhOMFVYVmhkQ0FwTzF4dUlDQWdJQ0FxSUdOdmJuTjBJSEYxWVhSVGNtTkVaV3gwWVVsdVJITjBJRDBnWDNGMVlYUkJYRzRnSUNBZ0lDb2dJQ0F1WTI5d2VTZ2dkR2hwY3k1ZmFXNTJSSE4wVW1WemRGRjFZWFFnS1Z4dUlDQWdJQ0FxSUNBZ0xtMTFiSFJwY0d4NUtDQnhkV0YwVTNKalJHVnNkR0ZKYmxCaGNtVnVkQ0FwWEc0Z0lDQWdJQ29nSUNBdWJYVnNkR2x3Ykhrb0lIUm9hWE11WDJSemRGSmxjM1JSZFdGMElDazdYRzRnSUNBZ0lDb2dZR0JnWEc0Z0lDQWdJQ292WEc0Z0lDQWdZMjl1YzNRZ2NYVmhkRVJsYkhSaElEMGdYM0YxWVhSQlhHNGdJQ0FnSUNBdVkyOXdlU2gwYUdsekxsOXBiblpFYzNSU1pYTjBVWFZoZENsY2JpQWdJQ0FnSUM1dGRXeDBhWEJzZVNoMGFHbHpMbk52ZFhKalpTNXhkV0YwWlhKdWFXOXVLVnh1SUNBZ0lDQWdMbTExYkhScGNHeDVLSFJvYVhNdVgybHVkbE55WTFKbGMzUlJkV0YwVFhWc1JITjBVbVZ6ZEZGMVlYUXBPMXh1WEc0Z0lDQWdMeThnWTNKbFlYUmxJR0VnWm5KdmJTMTBieUJ4ZFdGMFpYSnVhVzl1WEc0Z0lDQWdZMjl1YzNRZ2JqRWdQU0JmZGpOQkxtTnZjSGtvZEdocGN5NWZkak5TYjJ4c1FYaHBjeWt1WVhCd2JIbFJkV0YwWlhKdWFXOXVLSEYxWVhSRVpXeDBZU2s3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCWGFHRjBJSFJvWlNCeGRXRjBSbkp2YlZSdklHbHpJR2x1ZEdWdVpHVmtJSFJ2SUdKbE9seHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1lHQmdkSE5jYmlBZ0lDQWdLaUJqYjI1emRDQnhkV0YwUm5KdmJWUnZJRDBnWDNGMVlYUkNMbk5sZEVaeWIyMVZibWwwVm1WamRHOXljeWdnZEdocGN5NWZkak5TYjJ4c1FYaHBjeXdnYmpFZ0tTNXBiblpsY25ObEtDazdYRzRnSUNBZ0lDb2dZR0JnWEc0Z0lDQWdJQ292WEc0Z0lDQWdZMjl1YzNRZ2NYVmhkRVp5YjIxVWJ5QTlJRjl4ZFdGMFFpNXpaWFJHY205dFZXNXBkRlpsWTNSdmNuTW9iakVzSUhSb2FYTXVYM1l6VW05c2JFRjRhWE1wTzF4dVhHNGdJQ0FnTHk4Z2NYVmhkRVp5YjIxVWJ5QXFJSEYxWVhSRVpXeDBZU0E5UFNCeWIyeHNJR1Y0ZEhKaFkzUmxaQ0JtY205dElIRjFZWFJFWld4MFlWeHVJQ0FnSUdOdmJuTjBJSFJoY21kbGRGRjFZWFFnUFNCeGRXRjBSbkp2YlZSdkxuQnlaVzExYkhScGNHeDVLSFJvYVhNdVgyUnpkRkpsYzNSUmRXRjBLUzV0ZFd4MGFYQnNlU2h4ZFdGMFJHVnNkR0VwTzF4dVhHNGdJQ0FnTHk4Z1lteGxibVFnZDJsMGFDQjBhR1VnY21WemRDQnhkV0YwWlhKdWFXOXVJSFZ6YVc1bklIZGxhV2RvZEZ4dUlDQWdJSFJvYVhNdVpHVnpkR2x1WVhScGIyNHVjWFZoZEdWeWJtbHZiaTVqYjNCNUtIUm9hWE11WDJSemRGSmxjM1JSZFdGMEtTNXpiR1Z5Y0NoMFlYSm5aWFJSZFdGMExDQjBhR2x6TG5kbGFXZG9kQ2s3WEc0Z0lIMWNibjFjYmlJc0ltbHRjRzl5ZENCMGVYQmxJQ29nWVhNZ1EyOXVjM1J5WVdsdWRGTmphR1Z0WVNCbWNtOXRJQ2RBY0dsNGFYWXZkSGx3WlhNdGRuSnRZeTF1YjJSbExXTnZibk4wY21GcGJuUXRNUzR3Snp0Y2JtbHRjRzl5ZENCMGVYQmxJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCSFRGUkdMQ0JIVEZSR1RHOWhaR1Z5VUd4MVoybHVMQ0JIVEZSR1VHRnljMlZ5SUgwZ1puSnZiU0FuZEdoeVpXVXZaWGhoYlhCc1pYTXZhbk50TDJ4dllXUmxjbk12UjB4VVJreHZZV1JsY2k1cWN5YzdYRzVwYlhCdmNuUWdleUJXVWsxT2IyUmxRMjl1YzNSeVlXbHVkRWhsYkhCbGNpQjlJR1p5YjIwZ0p5NHZhR1ZzY0dWeWN5YzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVTV2WkdWRGIyNXpkSEpoYVc1MFRHOWhaR1Z5VUd4MVoybHVUM0IwYVc5dWN5QjlJR1p5YjIwZ0p5NHZWbEpOVG05a1pVTnZibk4wY21GcGJuUk1iMkZrWlhKUWJIVm5hVzVQY0hScGIyNXpKenRjYm1sdGNHOXlkQ0I3SUZaU1RVNXZaR1ZEYjI1emRISmhhVzUwVFdGdVlXZGxjaUI5SUdaeWIyMGdKeTR2VmxKTlRtOWtaVU52Ym5OMGNtRnBiblJOWVc1aFoyVnlKenRjYm1sdGNHOXlkQ0I3SUZaU1RWSnZkR0YwYVc5dVEyOXVjM1J5WVdsdWRDQjlJR1p5YjIwZ0p5NHZWbEpOVW05MFlYUnBiMjVEYjI1emRISmhhVzUwSnp0Y2JtbHRjRzl5ZENCN0lFZE1WRVlnWVhNZ1IweFVSbE5qYUdWdFlTQjlJR1p5YjIwZ0owQm5iSFJtTFhSeVlXNXpabTl5YlM5amIzSmxKenRjYm1sdGNHOXlkQ0I3SUZaU1RVRnBiVU52Ym5OMGNtRnBiblFnZlNCbWNtOXRJQ2N1TDFaU1RVRnBiVU52Ym5OMGNtRnBiblFuTzF4dWFXMXdiM0owSUhzZ1ZsSk5VbTlzYkVOdmJuTjBjbUZwYm5RZ2ZTQm1jbTl0SUNjdUwxWlNUVkp2Ykd4RGIyNXpkSEpoYVc1MEp6dGNibHh1THlvcVhHNGdLaUJRYjNOemFXSnNaU0J6Y0dWaklIWmxjbk5wYjI1eklHbDBJSEpsWTI5bmJtbDZaWE11WEc0Z0tpOWNibU52Ym5OMElGQlBVMU5KUWt4RlgxTlFSVU5mVmtWU1UwbFBUbE1nUFNCdVpYY2dVMlYwS0Zzbk1TNHdKeXdnSnpFdU1DMWlaWFJoSjEwcE8xeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZsSk5UbTlrWlVOdmJuTjBjbUZwYm5STWIyRmtaWEpRYkhWbmFXNGdhVzF3YkdWdFpXNTBjeUJIVEZSR1RHOWhaR1Z5VUd4MVoybHVJSHRjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JGV0ZSRlRsTkpUMDVmVGtGTlJTQTlJQ2RXVWsxRFgyNXZaR1ZmWTI5dWMzUnlZV2x1ZENjN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZOd1pXTnBabmtnWVc0Z1QySnFaV04wTTBRZ2RHOGdZV1JrSUh0QWJHbHVheUJXVWsxT2IyUmxRMjl1YzNSeVlXbHVkRWhsYkhCbGNuMGdjeTVjYmlBZ0lDb2dTV1lnYm05MElITndaV05wWm1sbFpDd2dhR1ZzY0dWeUlIZHBiR3dnYm05MElHSmxJR055WldGMFpXUXVYRzRnSUNBcUlFbG1JR0J5Wlc1a1pYSlBjbVJsY21BZ2FYTWdjMlYwSUhSdklIUm9aU0J5YjI5MExDQm9aV3h3WlhKeklIZHBiR3dnWTI5d2VTQjBhR1VnYzJGdFpTQmdjbVZ1WkdWeVQzSmtaWEpnSUM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCb1pXeHdaWEpTYjI5MFB6b2dWRWhTUlVVdVQySnFaV04wTTBRN1hHNWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJSEJoY25ObGNqb2dSMHhVUmxCaGNuTmxjanRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJRzVoYldVb0tUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnVmxKTlRtOWtaVU52Ym5OMGNtRnBiblJNYjJGa1pYSlFiSFZuYVc0dVJWaFVSVTVUU1U5T1gwNUJUVVU3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2NHRnljMlZ5T2lCSFRGUkdVR0Z5YzJWeUxDQnZjSFJwYjI1elB6b2dWbEpOVG05a1pVTnZibk4wY21GcGJuUk1iMkZrWlhKUWJIVm5hVzVQY0hScGIyNXpLU0I3WEc0Z0lDQWdkR2hwY3k1d1lYSnpaWElnUFNCd1lYSnpaWEk3WEc1Y2JpQWdJQ0IwYUdsekxtaGxiSEJsY2xKdmIzUWdQU0J2Y0hScGIyNXpQeTVvWld4d1pYSlNiMjkwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdGemVXNWpJR0ZtZEdWeVVtOXZkQ2huYkhSbU9pQkhURlJHS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdaMngwWmk1MWMyVnlSR0YwWVM1MmNtMU9iMlJsUTI5dWMzUnlZV2x1ZEUxaGJtRm5aWElnUFNCaGQyRnBkQ0IwYUdsekxsOXBiWEJ2Y25Rb1oyeDBaaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1NXMXdiM0owSUdOdmJuTjBjbUZwYm5SeklHWnliMjBnWVNCSFRGUkdJR0Z1WkNCeVpYUjFjbTV6SUdFZ2UwQnNhVzVySUZaU1RVNXZaR1ZEYjI1emRISmhhVzUwVFdGdVlXZGxjbjB1WEc0Z0lDQXFJRWwwSUcxcFoyaDBJSEpsZEhWeWJpQmdiblZzYkdBZ2FXNXpkR1ZoWkNCM2FHVnVJR2wwSUdSdlpYTWdibTkwSUc1bFpXUWdkRzhnWW1VZ1kzSmxZWFJsWkNCdmNpQnpiMjFsZEdocGJtY2daMjhnZDNKdmJtY3VYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JuYkhSbUlFRWdjR0Z5YzJWa0lISmxjM1ZzZENCdlppQkhURlJHSUhSaGEyVnVJR1p5YjIwZ1IweFVSa3h2WVdSbGNseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR0Z6ZVc1aklGOXBiWEJ2Y25Rb1oyeDBaam9nUjB4VVJpazZJRkJ5YjIxcGMyVThWbEpOVG05a1pVTnZibk4wY21GcGJuUk5ZVzVoWjJWeUlId2diblZzYkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR3B6YjI0Z1BTQjBhR2x6TG5CaGNuTmxjaTVxYzI5dUlHRnpJRWRNVkVaVFkyaGxiV0V1U1VkTVZFWTdYRzVjYmlBZ0lDQXZMeUJsWVhKc2VTQmhZbTl5ZENCcFppQnBkQ0JrYjJWemJpZDBJSFZ6WlNCamIyNXpkSEpoYVc1MGMxeHVJQ0FnSUdOdmJuTjBJR2x6UTI5dWMzUnlZV2x1ZEhOVmMyVmtJRDBnYW5OdmJpNWxlSFJsYm5OcGIyNXpWWE5sWkQ4dWFXNWtaWGhQWmloV1VrMU9iMlJsUTI5dWMzUnlZV2x1ZEV4dllXUmxjbEJzZFdkcGJpNUZXRlJGVGxOSlQwNWZUa0ZOUlNrZ0lUMDlJQzB4TzF4dUlDQWdJR2xtSUNnaGFYTkRiMjV6ZEhKaGFXNTBjMVZ6WldRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUcxaGJtRm5aWElnUFNCdVpYY2dWbEpOVG05a1pVTnZibk4wY21GcGJuUk5ZVzVoWjJWeUtDazdYRzRnSUNBZ1kyOXVjM1FnZEdoeVpXVk9iMlJsY3pvZ1ZFaFNSVVV1VDJKcVpXTjBNMFJiWFNBOUlHRjNZV2wwSUhSb2FYTXVjR0Z5YzJWeUxtZGxkRVJsY0dWdVpHVnVZMmxsY3lnbmJtOWtaU2NwTzF4dVhHNGdJQ0FnTHk4Z2FXMXdiM0owSUdOdmJuTjBjbUZwYm5SeklHWnZjaUJsWVdOb0lHNXZaR1Z6WEc0Z0lDQWdkR2h5WldWT2IyUmxjeTVtYjNKRllXTm9LQ2h1YjJSbExDQnViMlJsU1c1a1pYZ3BJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5qYUdWdFlVNXZaR1VnUFNCcWMyOXVMbTV2WkdWeklWdHViMlJsU1c1a1pYaGRPMXh1WEc0Z0lDQWdJQ0F2THlCamFHVmpheUJwWmlCMGFHVWdaWGgwWlc1emFXOXVJSFZ6WlhNZ2RHaGxJR1Y0ZEdWdWMybHZibHh1SUNBZ0lDQWdZMjl1YzNRZ1pYaDBaVzV6YVc5dUlEMGdjMk5vWlcxaFRtOWtaVDh1WlhoMFpXNXphVzl1Y3o4dVcxWlNUVTV2WkdWRGIyNXpkSEpoYVc1MFRHOWhaR1Z5VUd4MVoybHVMa1ZZVkVWT1UwbFBUbDlPUVUxRlhTQmhjMXh1SUNBZ0lDQWdJQ0I4SUVOdmJuTjBjbUZwYm5SVFkyaGxiV0V1VmxKTlEwNXZaR1ZEYjI1emRISmhhVzUwWEc0Z0lDQWdJQ0FnSUh3Z2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0lDQnBaaUFvWlhoMFpXNXphVzl1SUQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCamIyNXpkQ0J6Y0dWalZtVnljMmx2YmlBOUlHVjRkR1Z1YzJsdmJpNXpjR1ZqVm1WeWMybHZianRjYmlBZ0lDQWdJR2xtSUNnaFVFOVRVMGxDVEVWZlUxQkZRMTlXUlZKVFNVOU9VeTVvWVhNb2MzQmxZMVpsY25OcGIyNHBLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGNiaUFnSUNBZ0lDQWdJQ0JnVmxKTlRtOWtaVU52Ym5OMGNtRnBiblJNYjJGa1pYSlFiSFZuYVc0NklGVnVhMjV2ZDI0Z0pIdFdVazFPYjJSbFEyOXVjM1J5WVdsdWRFeHZZV1JsY2xCc2RXZHBiaTVGV0ZSRlRsTkpUMDVmVGtGTlJYMGdjM0JsWTFabGNuTnBiMjRnWENJa2UzTndaV05XWlhKemFXOXVmVndpWUN4Y2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCamIyNXpkSEpoYVc1MFJHVm1JRDBnWlhoMFpXNXphVzl1TG1OdmJuTjBjbUZwYm5RN1hHNWNiaUFnSUNBZ0lDOHZJR2x0Y0c5eWRDQmpiMjV6ZEhKaGFXNTBjMXh1SUNBZ0lDQWdhV1lnS0dOdmJuTjBjbUZwYm5SRVpXWXVjbTlzYkNBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOdmJuTjBjbUZwYm5RZ1BTQjBhR2x6TGw5cGJYQnZjblJTYjJ4c1EyOXVjM1J5WVdsdWRDaHViMlJsTENCMGFISmxaVTV2WkdWekxDQmpiMjV6ZEhKaGFXNTBSR1ZtTG5KdmJHd3BPMXh1SUNBZ0lDQWdJQ0J0WVc1aFoyVnlMbUZrWkVOdmJuTjBjbUZwYm5Rb1kyOXVjM1J5WVdsdWRDazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLR052Ym5OMGNtRnBiblJFWldZdVlXbHRJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMjl1YzNSeVlXbHVkQ0E5SUhSb2FYTXVYMmx0Y0c5eWRFRnBiVU52Ym5OMGNtRnBiblFvYm05a1pTd2dkR2h5WldWT2IyUmxjeXdnWTI5dWMzUnlZV2x1ZEVSbFppNWhhVzBwTzF4dUlDQWdJQ0FnSUNCdFlXNWhaMlZ5TG1Ga1pFTnZibk4wY21GcGJuUW9ZMjl1YzNSeVlXbHVkQ2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0dOdmJuTjBjbUZwYm5SRVpXWXVjbTkwWVhScGIyNGdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiMjV6ZEhKaGFXNTBJRDBnZEdocGN5NWZhVzF3YjNKMFVtOTBZWFJwYjI1RGIyNXpkSEpoYVc1MEtHNXZaR1VzSUhSb2NtVmxUbTlrWlhNc0lHTnZibk4wY21GcGJuUkVaV1l1Y205MFlYUnBiMjRwTzF4dUlDQWdJQ0FnSUNCdFlXNWhaMlZ5TG1Ga1pFTnZibk4wY21GcGJuUW9ZMjl1YzNSeVlXbHVkQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0F2THlCcGJtbDBJR052Ym5OMGNtRnBiblJ6WEc0Z0lDQWdaMngwWmk1elkyVnVaUzUxY0dSaGRHVk5ZWFJ5YVhoWGIzSnNaQ2dwTzF4dUlDQWdJRzFoYm1GblpYSXVjMlYwU1c1cGRGTjBZWFJsS0NrN1hHNWNiaUFnSUNCeVpYUjFjbTRnYldGdVlXZGxjanRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCZmFXMXdiM0owVW05c2JFTnZibk4wY21GcGJuUW9YRzRnSUNBZ1pHVnpkR2x1WVhScGIyNDZJRlJJVWtWRkxrOWlhbVZqZERORUxGeHVJQ0FnSUc1dlpHVnpPaUJVU0ZKRlJTNVBZbXBsWTNRelJGdGRMRnh1SUNBZ0lISnZiR3hEYjI1emRISmhhVzUwUkdWbU9pQkRiMjV6ZEhKaGFXNTBVMk5vWlcxaExsSnZiR3hEYjI1emRISmhhVzUwTEZ4dUlDQXBPaUJXVWsxU2IyeHNRMjl1YzNSeVlXbHVkQ0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnpiM1Z5WTJVNklITnZkWEpqWlVsdVpHVjRMQ0J5YjJ4c1FYaHBjeXdnZDJWcFoyaDBJSDBnUFNCeWIyeHNRMjl1YzNSeVlXbHVkRVJsWmp0Y2JpQWdJQ0JqYjI1emRDQnpiM1Z5WTJVZ1BTQnViMlJsYzF0emIzVnlZMlZKYm1SbGVGMDdYRzRnSUNBZ1kyOXVjM1FnWTI5dWMzUnlZV2x1ZENBOUlHNWxkeUJXVWsxU2IyeHNRMjl1YzNSeVlXbHVkQ2hrWlhOMGFXNWhkR2x2Yml3Z2MyOTFjbU5sS1R0Y2JseHVJQ0FnSUdsbUlDaHliMnhzUVhocGN5QWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZEhKaGFXNTBMbkp2Ykd4QmVHbHpJRDBnY205c2JFRjRhWE03WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2gzWldsbmFIUWdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdZMjl1YzNSeVlXbHVkQzUzWldsbmFIUWdQU0IzWldsbmFIUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdWFHVnNjR1Z5VW05dmRDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FHVnNjR1Z5SUQwZ2JtVjNJRlpTVFU1dlpHVkRiMjV6ZEhKaGFXNTBTR1ZzY0dWeUtHTnZibk4wY21GcGJuUXBPMXh1SUNBZ0lDQWdkR2hwY3k1b1pXeHdaWEpTYjI5MExtRmtaQ2hvWld4d1pYSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCamIyNXpkSEpoYVc1ME8xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJRjlwYlhCdmNuUkJhVzFEYjI1emRISmhhVzUwS0Z4dUlDQWdJR1JsYzNScGJtRjBhVzl1T2lCVVNGSkZSUzVQWW1wbFkzUXpSQ3hjYmlBZ0lDQnViMlJsY3pvZ1ZFaFNSVVV1VDJKcVpXTjBNMFJiWFN4Y2JpQWdJQ0JoYVcxRGIyNXpkSEpoYVc1MFJHVm1PaUJEYjI1emRISmhhVzUwVTJOb1pXMWhMa0ZwYlVOdmJuTjBjbUZwYm5Rc1hHNGdJQ2s2SUZaU1RVRnBiVU52Ym5OMGNtRnBiblFnZTF4dUlDQWdJR052Ym5OMElIc2djMjkxY21ObE9pQnpiM1Z5WTJWSmJtUmxlQ3dnWVdsdFFYaHBjeXdnZDJWcFoyaDBJSDBnUFNCaGFXMURiMjV6ZEhKaGFXNTBSR1ZtTzF4dUlDQWdJR052Ym5OMElITnZkWEpqWlNBOUlHNXZaR1Z6VzNOdmRYSmpaVWx1WkdWNFhUdGNiaUFnSUNCamIyNXpkQ0JqYjI1emRISmhhVzUwSUQwZ2JtVjNJRlpTVFVGcGJVTnZibk4wY21GcGJuUW9aR1Z6ZEdsdVlYUnBiMjRzSUhOdmRYSmpaU2s3WEc1Y2JpQWdJQ0JwWmlBb1lXbHRRWGhwY3lBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCamIyNXpkSEpoYVc1MExtRnBiVUY0YVhNZ1BTQmhhVzFCZUdsek8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2QyVnBaMmgwSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBjbUZwYm5RdWQyVnBaMmgwSUQwZ2QyVnBaMmgwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbWhsYkhCbGNsSnZiM1FwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2hsYkhCbGNpQTlJRzVsZHlCV1VrMU9iMlJsUTI5dWMzUnlZV2x1ZEVobGJIQmxjaWhqYjI1emRISmhhVzUwS1R0Y2JpQWdJQ0FnSUhSb2FYTXVhR1ZzY0dWeVVtOXZkQzVoWkdRb2FHVnNjR1Z5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdZMjl1YzNSeVlXbHVkRHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCZmFXMXdiM0owVW05MFlYUnBiMjVEYjI1emRISmhhVzUwS0Z4dUlDQWdJR1JsYzNScGJtRjBhVzl1T2lCVVNGSkZSUzVQWW1wbFkzUXpSQ3hjYmlBZ0lDQnViMlJsY3pvZ1ZFaFNSVVV1VDJKcVpXTjBNMFJiWFN4Y2JpQWdJQ0J5YjNSaGRHbHZia052Ym5OMGNtRnBiblJFWldZNklFTnZibk4wY21GcGJuUlRZMmhsYldFdVVtOTBZWFJwYjI1RGIyNXpkSEpoYVc1MExGeHVJQ0FwT2lCV1VrMVNiM1JoZEdsdmJrTnZibk4wY21GcGJuUWdlMXh1SUNBZ0lHTnZibk4wSUhzZ2MyOTFjbU5sT2lCemIzVnlZMlZKYm1SbGVDd2dkMlZwWjJoMElIMGdQU0J5YjNSaGRHbHZia052Ym5OMGNtRnBiblJFWldZN1hHNGdJQ0FnWTI5dWMzUWdjMjkxY21ObElEMGdibTlrWlhOYmMyOTFjbU5sU1c1a1pYaGRPMXh1SUNBZ0lHTnZibk4wSUdOdmJuTjBjbUZwYm5RZ1BTQnVaWGNnVmxKTlVtOTBZWFJwYjI1RGIyNXpkSEpoYVc1MEtHUmxjM1JwYm1GMGFXOXVMQ0J6YjNWeVkyVXBPMXh1WEc0Z0lDQWdhV1lnS0hkbGFXZG9kQ0FoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0JqYjI1emRISmhhVzUwTG5kbGFXZG9kQ0E5SUhkbGFXZG9kRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NW9aV3h3WlhKU2IyOTBLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h3WlhJZ1BTQnVaWGNnVmxKTlRtOWtaVU52Ym5OMGNtRnBiblJJWld4d1pYSW9ZMjl1YzNSeVlXbHVkQ2s3WEc0Z0lDQWdJQ0IwYUdsekxtaGxiSEJsY2xKdmIzUXVZV1JrS0dobGJIQmxjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHTnZibk4wY21GcGJuUTdYRzRnSUgxY2JuMWNiaUpkTENKdVlXMWxjeUk2V3lKZmRqTkJJaXdpWDNZelFpSXNJbDl4ZFdGMFFTSXNJbDl4ZFdGMFFpSmRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3p0QlFVZEJMRTFCUVUxQkxFMUJRVWtzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVWd1FpeE5RVUZCTEhWQ1FVRjNRaXhUUVVGUkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVRTdRVUZMZEVRc1NVRkJRU3hYUVVGQkxFTkJRVzFDTEZWQlFUWkNMRVZCUVVFN1FVRkRPVU1zVVVGQlFTeExRVUZMTEVWQlFVVXNRMEZCUXp0QlFVVlNMRkZCUVVFc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVFWXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03UVVGRmNFUXNVVUZCUVN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTTFReXhSUVVGUkxFTkJRVU1zV1VGQldTeERRVUZETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03UVVGRmRFUXNVVUZCUVN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRCUVVNelF5eFpRVUZCTEV0QlFVc3NSVUZCUlN4UlFVRlJPMEZCUTJZc1dVRkJRU3hUUVVGVExFVkJRVVVzUzBGQlN6dEJRVU5vUWl4WlFVRkJMRlZCUVZVc1JVRkJSU3hMUVVGTE8wRkJRMnhDTEZOQlFVRXNRMEZCUXl4RFFVRkRPMEZCUlVnc1VVRkJRU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEYUVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVWeVFpeFJRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1ZVRkJWU3hEUVVGRE8wdEJRemxDTzBGQlJVMHNTVUZCUVN4cFFrRkJhVUlzUTBGQlF5eExRVUZsTEVWQlFVRTdVVUZEZEVOQkxFMUJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRCUVVOd1JTeFJRVUZCTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJVRXNUVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSVUVzVFVGQlNTeERRVUZETEVOQlFVTXNSVUZCUlVFc1RVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlJYSkVMRkZCUVVFc1NVRkJTU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEUxQlFVMHNSVUZCUlR0WlFVTXhRa0VzVFVGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8wRkJRMmhGTEZOQlFVRTdRVUZEUkN4UlFVRkJMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlVFc1RVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJVRXNUVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSVUVzVFVGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlhKRUxGRkJRVUVzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJSWFJETEZGQlFVRXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMHRCUTJoRE8wRkJRMFk3TzBGRE1VTmxMRk5CUVVFc2FVSkJRV2xDTEVOQlFUQkNMRTFCUVhGQ0xFVkJRVVVzVFVGQlV5eEZRVUZCTzBsQlEzcEdMRTlCUVU4c1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTI1R096dEJRMFpCTEUxQlFVMUJMRTFCUVVrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVTnFReXhOUVVGTlF5eE5RVUZKTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRmFrSXNVMEZCUVN4cFFrRkJhVUlzUTBGQk5rSXNUVUZCY1VJc1JVRkJSU3hOUVVGVExFVkJRVUU3U1VGRE5VWXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJRMFFzVFVGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlVNc1RVRkJTU3hEUVVGRExFTkJRVU03UVVGRGNrTXNTVUZCUVN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FqczdRVU5PUVRzN096czdRVUZMUnp0QlFVTkhMRk5CUVZVc1owSkJRV2RDTEVOQlFUWkNMRTFCUVZNc1JVRkJRVHRKUVVOd1JTeEpRVUZMTEUxQlFXTXNRMEZCUXl4TlFVRk5MRVZCUVVVN1VVRkRNVUlzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMEZCUTJwQ0xFdEJRVUU3UVVGQlRTeFRRVUZCTzFGQlEwb3NUVUZCWXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRek5DTEV0QlFVRTdRVUZGUkN4SlFVRkJMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDT3p0QlEyUkJPenRCUVVWSE8wMUJRMjFDTEdsQ1FVRnBRaXhEUVVGQk8wRkJhMEp5UXpzN08wRkJSMGM3U1VGRFNDeFhRVUZ0UWl4RFFVRkJMRmRCUVRKQ0xFVkJRVVVzVFVGQmMwSXNSVUZCUVR0QlFVTndSU3hSUVVGQkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPMEZCUXk5Q0xGRkJRVUVzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNN1FVRkZja0lzVVVGQlFTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJRenRMUVVOdVFqdEJRVmRHT3p0QlEzSkRSQ3hOUVVGTlJDeE5RVUZKTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGFrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYWtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkRha01zVFVGQlRVVXNVVUZCVFN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzBGQlEzUkRMRTFCUVUxRExGRkJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVOMFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVVYwUXpzN096dEJRVWxITzBGQlEwY3NUVUZCVHl4blFrRkJhVUlzVTBGQlVTeHBRa0ZCYVVJc1EwRkJRVHRCUVVOeVJEczdRVUZGUnp0QlFVTklMRWxCUVVFc1NVRkJWeXhQUVVGUExFZEJRVUU3VVVGRGFFSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8wdEJRM1JDTzBGQlJVUTdPMEZCUlVjN1NVRkRTQ3hKUVVGWExFOUJRVThzUTBGQlF5eFBRVUV3Uml4RlFVRkJPMEZCUXpOSExGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNN1FVRkRlRUlzVVVGQlFTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkRha0lzVDBGQlR5eExRVUZMTEZkQlFWY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1QwRkJUeXhMUVVGTExGZEJRVmNzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRVZCUTNCRkxFOUJRVThzUzBGQlN5eFhRVUZYTEVkQlFVY3NSMEZCUnl4SFFVRkhMRTlCUVU4c1MwRkJTeXhYUVVGWExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVY3NSMEZCUnl4RlFVTndSU3hQUVVGUExFdEJRVXNzVjBGQlZ5eEhRVUZITEVkQlFVY3NSMEZCUnl4UFFVRlBMRXRCUVVzc1YwRkJWeXhIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZEY2tVc1EwRkJRenRMUVVOSU8wRkJhVUpFTEVsQlFVRXNTVUZCVnl4WlFVRlpMRWRCUVVFN1VVRkRja0lzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVdsQ0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZia1FzVVVGQlFTeEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hGUVVGRk8xbEJRek5DTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTnNReXhUUVVGQk8wRkJSVVFzVVVGQlFTeFBRVUZQTEVkQlFVY3NRMEZCUXp0TFFVTmFPMGxCUlVRc1YwRkJiVUlzUTBGQlFTeFhRVUV5UWl4RlFVRkZMRTFCUVhOQ0xFVkJRVUU3UVVGRGNFVXNVVUZCUVN4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzBGQlJUTkNMRkZCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFhRVUZYTEVOQlFVTTdRVUZETlVJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlRkRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03UzBGRE5VTTdTVUZGVFN4WlFVRlpMRWRCUVVFN1VVRkRha0lzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0TFFVTnlSRHRKUVVWTkxFMUJRVTBzUjBGQlFUczdVVUZGV0N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU5vUkN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6czdRVUZITTBNc1VVRkJRU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhSQ3hSUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdRVUZETjBNc1VVRkJRU3hOUVVGTkxIRkNRVUZ4UWl4SFFVRkhReXhSUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdRVUZEYUVRc1VVRkJRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4RlFVRkZPMWxCUXpOQ0xHbENRVUZwUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzFsQlF6TkZMR2RDUVVGblFpeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFVXNVMEZCUVRzN1VVRkhSQ3hOUVVGTkxFVkJRVVVzUjBGQlIwZ3NUVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eGxRVUZsTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFJRVU0zUnl4TlFVRk5MRVZCUVVVc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTTdZVUZEZUVRc1IwRkJSeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUXpGRUxHRkJRVUVzVTBGQlV5eEZRVUZGTEVOQlFVTTdPMUZCUjJZc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRUdEJRVU4wUWl4aFFVRkJMR3RDUVVGclFpeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNN1lVRkRNVUlzVjBGQlZ5eERRVUZETEhGQ1FVRnhRaXhEUVVGRE8yRkJRMnhETEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUTBGQlF6dEJRVU0xUWl4aFFVRkJMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdPMUZCUnk5Q0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTMEZEY0VZN1FVRkRSanM3UVVONlIwUTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVc5SFFUdEJRVU5QTEZOQlFWTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlR0QlFVTTNSQ3hKUVVGSkxGTkJRVk1zUzBGQlN5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRTlCUVU4c1MwRkJTeXhaUVVGWkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1ZVRkJWU3hQUVVGUExFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJUdEJRVU5vU0N4SlFVRkpMRTlCUVU4c1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RlFVRkZMRlZCUVZVc1QwRkJUeXhGUVVGRkxFMUJRVTBzUlVGQlJUdEJRVU12UkN4UlFVRlJMRk5CUVZNc1UwRkJVeXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVU3UVVGRGJrY3NVVUZCVVN4VFFVRlRMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVU3UVVGRGRFY3NVVUZCVVN4VFFVRlRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVU3UVVGRGRFZ3NVVUZCVVN4SlFVRkpMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1ZVRkJWU3hKUVVGSkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRPVVVzUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEVUN4RFFVRkRPMEZCWjAxRU8wRkJRM1ZDTEU5QlFVOHNaVUZCWlN4TFFVRkxMRlZCUVZVc1IwRkJSeXhsUVVGbExFZEJRVWNzVlVGQlZTeExRVUZMTEVWQlFVVXNWVUZCVlN4RlFVRkZMRTlCUVU4c1JVRkJSVHRCUVVOMlNDeEpRVUZKTEVsQlFVa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlF5OUNMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEdsQ1FVRnBRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhWUVVGVkxFZEJRVWNzVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTnlSanM3UVVNMVZFRTdPenM3T3p0QlFVMUhPMEZCUTJFc1UwRkJRU3g1UWtGQmVVSXNRMEZCUXl4TlFVRnpRaXhGUVVGRkxGRkJRVEJETEVWQlFVRTdRVUZETVVjc1NVRkJRU3hOUVVGTkxGTkJRVk1zUjBGQmNVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVVM1F5eEpRVUZCTEVsQlFVa3NTVUZCU1N4SFFVRXdRaXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEyaEVMRTlCUVU4c1NVRkJTU3hMUVVGTExFbEJRVWtzUlVGQlJUdEJRVU53UWl4UlFVRkJMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEZUVJc1VVRkJRU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTndRaXhMUVVGQk8wRkJSVVFzU1VGQlFTeFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hMUVVGSk8xRkJRemRDTEZGQlFWRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVOeVFpeExRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1PenROUTJwQ1lTeDNRa0ZCZDBJc1EwRkJRVHRCUVVGeVF5eEpRVUZCTEZkQlFVRXNSMEZCUVR0QlFVTlZMRkZCUVVFc1NVRkJRU3hEUVVGQkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCY1VJc1EwRkJRenRCUVVzMVF5eFJRVUZCTEVsQlFVRXNRMEZCUVN4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCTUVNc1EwRkJRenRMUVdkR2JrWTdRVUZ3UmtNc1NVRkJRU3hKUVVGWExGZEJRVmNzUjBGQlFUdFJRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03UzBGRE1VSTdRVUZKVFN4SlFVRkJMR0ZCUVdFc1EwRkJReXhWUVVFMlFpeEZRVUZCTzBGQlEyaEVMRkZCUVVFc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkZiRU1zVVVGQlFTeEpRVUZKTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU4yUlN4SlFVRkpMRk5CUVZNc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGNrSXNXVUZCUVN4VFFVRlRMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRWEZDTEVOQlFVTTdXVUZEZWtNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUTI1RkxGTkJRVUU3UVVGRFJDeFJRVUZCTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UzBGRE0wSTdRVUZGVFN4SlFVRkJMR2RDUVVGblFpeERRVUZETEZWQlFUWkNMRVZCUVVFN1FVRkRia1FzVVVGQlFTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dEJRVVZ5UXl4UlFVRkJMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEZkQlFWY3NRMEZCUlN4RFFVRkRPMEZCUXpGRkxGRkJRVUVzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRMUVVNNVFqdEpRVVZOTEZsQlFWa3NSMEZCUVR0QlFVTnFRaXhSUVVGQkxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRWEZDTEVOQlFVTTdRVUZEZEVRc1VVRkJRU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCY1VJc1EwRkJRenRCUVVWeVJDeFJRVUZCTEV0QlFVc3NUVUZCVFN4VlFVRlZMRWxCUVVrc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJUdEJRVU14UXl4WlFVRkJMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaVUZCWlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hMUVVGTExGVkJRVlVzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTI1SUxGTkJRVUU3UzBGRFJqdEpRVVZOTEUxQlFVMHNSMEZCUVR0QlFVTllMRkZCUVVFc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJjVUlzUTBGQlF6dEJRVU4wUkN4UlFVRkJMRTFCUVUwc1pVRkJaU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEZRVUZ4UWl4RFFVRkRPMEZCUlhKRUxGRkJRVUVzUzBGQlN5eE5RVUZOTEZWQlFWVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRk8wRkJRekZETEZsQlFVRXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEZWQlFWVXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeGxRVUZsTEVWQlFVVXNRMEZCUXl4VlFVRlZMRXRCUVVzc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZETjBjc1UwRkJRVHRMUVVOR08wRkJSVVE3T3pzN096czdPenM3UVVGVlJ6dEJRVU5MTEVsQlFVRXNhMEpCUVd0Q0xFTkJRM2hDTEZWQlFUWkNMRVZCUXpkQ0xHZENRVUYzUXl4RlFVTjRReXhsUVVGMVF5eEZRVU4yUXl4UlFVRnBSQ3hGUVVGQk8wRkJSV3BFTEZGQlFVRXNTVUZCU1N4bFFVRmxMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTzFsQlEyNURMRTlCUVU4N1FVRkRVaXhUUVVGQk8wRkJSVVFzVVVGQlFTeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlR0QlFVTndReXhaUVVGQkxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiVVpCUVcxR0xFTkJRVU1zUTBGQlF6dEJRVU4wUnl4VFFVRkJPMEZCUTBRc1VVRkJRU3huUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRmFrTXNVVUZCUVN4TlFVRk5MRlZCUVZVc1IwRkJSeXhWUVVGVkxFTkJRVU1zV1VGQldTeERRVUZETzBGQlF6TkRMRkZCUVVFc1MwRkJTeXhOUVVGTkxGTkJRVk1zU1VGQlNTeFZRVUZWTEVWQlFVVTdRVUZEYkVNc1dVRkJRU3g1UWtGQmVVSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNTMEZCU1R0blFrRkRla1FzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVkQlFVY3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzBGQlEzQkZMR2RDUVVGQkxFbEJRVWtzVTBGQlV5eEZRVUZGTzBGQlEySXNiMEpCUVVFc1MwRkJTeXhOUVVGTkxHRkJRV0VzU1VGQlNTeFRRVUZUTEVWQlFVVTdkMEpCUTNKRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhoUVVGaExFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1pVRkJaU3hGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEzSkdMSEZDUVVGQk8wRkJRMFlzYVVKQlFVRTdRVUZEU0N4aFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOS0xGTkJRVUU3VVVGRlJDeFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkZja0lzVVVGQlFTeGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wdEJRMnBETzBGQlEwWTdPMEZEZEVaRUxFMUJRVTFGTEZGQlFVMHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVU4wUXl4TlFVRk5ReXhSUVVGTkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1FVRkZkRU03T3pzN1FVRkpSenRCUVVOSExFMUJRVThzY1VKQlFYTkNMRk5CUVZFc2FVSkJRV2xDTEVOQlFVRTdRVUZYTVVRc1NVRkJRU3hKUVVGWExGbEJRVmtzUjBGQlFUdFJRVU55UWl4UFFVRlBMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRMMEk3U1VGRlJDeFhRVUZ0UWl4RFFVRkJMRmRCUVRKQ0xFVkJRVVVzVFVGQmMwSXNSVUZCUVR0QlFVTndSU3hSUVVGQkxFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkZNMElzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU16UXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMHRCUXk5RE8wbEJSVTBzV1VGQldTeEhRVUZCTzFGQlEycENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRGNFUXNVVUZCUVN4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRja1U3U1VGRlRTeE5RVUZOTEVkQlFVRTdPMEZCUlZnc1VVRkJRU3hOUVVGTkxGbEJRVmtzUjBGQlIwUXNVVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdPMEZCUjNoR0xGRkJRVUVzVFVGQlRTeFZRVUZWTEVkQlFVZERMRkZCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6czdVVUZIZWtVc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dExRVU53Ump0QlFVTkdPenRCUXpkRFJDeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVU5xUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0QlFVTjBReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRCUVVWMFF6czdPenRCUVVsSE8wRkJRMGNzVFVGQlR5eHBRa0ZCYTBJc1UwRkJVU3hwUWtGQmFVSXNRMEZCUVR0QlFVTjBSRHM3UVVGRlJ6dEJRVU5JTEVsQlFVRXNTVUZCVnl4UlFVRlJMRWRCUVVFN1VVRkRha0lzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMHRCUTNaQ08wRkJSVVE3TzBGQlJVYzdTVUZEU0N4SlFVRlhMRkZCUVZFc1EwRkJReXhSUVVGNVFpeEZRVUZCTzBGQlF6TkRMRkZCUVVFc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdRVUZETVVJc1VVRkJRU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRXRCUVVzc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVWQlFVVXNVVUZCVVN4TFFVRkxMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEZRVUZGTEZGQlFWRXNTMEZCU3l4SFFVRkhMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzB0QlEyaElPMEZCTWtKRUxFbEJRVUVzU1VGQlZ5eFpRVUZaTEVkQlFVRTdVVUZEY2tJc1QwRkJUeXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJReTlDTzBsQlJVUXNWMEZCYlVJc1EwRkJRU3hYUVVFeVFpeEZRVUZGTEUxQlFYTkNMRVZCUVVFN1FVRkRjRVVzVVVGQlFTeExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJSVE5DTEZGQlFVRXNTVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGNrSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJUbERMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1VVRkRNME1zU1VGQlNTeERRVUZETEdWQlFXVXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU01UXl4SlFVRkpMRU5CUVVNc05rSkJRVFpDTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03UzBGRE4wUTdTVUZGVFN4WlFVRlpMRWRCUVVFN1VVRkRha0lzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0QlFVTndSQ3hSUVVGQkxHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJReTlFTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1MwRkRMMGM3U1VGRlRTeE5RVUZOTEVkQlFVRTdPMEZCUlZnN096czdPenM3T3pzN096czdPenM3UVVGblFrYzdVVUZEU0N4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTk8wRkJRM0pDTEdGQlFVRXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU03UVVGRE1VSXNZVUZCUVN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTTdRVUZEYUVNc1lVRkJRU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETERaQ1FVRTJRaXhEUVVGRExFTkJRVU03TzBGQlIyaEVMRkZCUVVFc1RVRkJUU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUld4Rk96czdPenM3UVVGTlJ6dEJRVU5JTEZGQlFVRXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdPMEZCUjI1RkxGRkJRVUVzVFVGQlRTeFZRVUZWTEVkQlFVY3NWVUZCVlN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE96dFJRVWRxUml4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wdEJRM0JHTzBGQlEwWTdPMEZETVVkRU96dEJRVVZITzBGQlEwZ3NUVUZCVFN4elFrRkJjMElzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETzAxQlJTOURMRFpDUVVFMlFpeERRVUZCTzBGQldYaERMRWxCUVVFc1NVRkJWeXhKUVVGSkxFZEJRVUU3VVVGRFlpeFBRVUZQTERaQ1FVRTJRaXhEUVVGRExHTkJRV01zUTBGQlF6dExRVU55UkR0SlFVVkVMRmRCUVcxQ0xFTkJRVUVzVFVGQmEwSXNSVUZCUlN4UFFVRTRReXhGUVVGQk8wRkJRMjVHTEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRmNrSXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhQUVVGUExFdEJRVUVzU1VGQlFTeEpRVUZRTEU5QlFVOHNTMEZCVUN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeFBRVUZQTEVOQlFVVXNWVUZCVlN4RFFVRkRPMHRCUTNaRE8wRkJSVmtzU1VGQlFTeFRRVUZUTEVOQlFVTXNTVUZCVlN4RlFVRkJPenRCUVVNdlFpeFpRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2QwSkJRWGRDTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEyNUZMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRVUU3UVVGRlJEczdPenM3UVVGTFJ6dEJRVU5oTEVsQlFVRXNUMEZCVHl4RFFVRkRMRWxCUVZVc1JVRkJRVHM3TzBGQlEyaERMRmxCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRjNRaXhEUVVGRE96dEJRVWRzUkN4WlFVRkJMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NRMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkZMRTlCUVU4c1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4alFVRmpMRU5CUVVNc1RVRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU0xUnl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVTdRVUZEZEVJc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEhkQ1FVRjNRaXhGUVVGRkxFTkJRVU03V1VGREwwTXNUVUZCVFN4VlFVRlZMRWRCUVhGQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03TzFsQlJ5OUZMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNVMEZCVXl4TFFVRkpPenRuUWtGRGNrTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXpzN1FVRkhNVU1zWjBKQlFVRXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVlVGQlZTeGhRVUZXTEZWQlFWVXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlZpeFZRVUZWTEVOQlFVVXNWVUZCVlN4TlFVRkhMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxEWkNRVUUyUWl4RFFVRkRMR05CUVdNc1EwRkZNVVVzUTBGQlF6dG5Ra0ZGWkN4SlFVRkpMRk5CUVZNc1NVRkJTU3hKUVVGSkxFVkJRVVU3YjBKQlEzSkNMRTlCUVU4N1FVRkRVaXhwUWtGQlFUdEJRVVZFTEdkQ1FVRkJMRTFCUVUwc1YwRkJWeXhIUVVGSExGTkJRVk1zUTBGQlF5eFhRVUZYTEVOQlFVTTdRVUZETVVNc1owSkJRVUVzU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlR0dlFrRkROVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4RFFVRXdReXgxUTBGQlFTeEZRVUZCTERaQ1FVRTJRaXhEUVVGRExHTkJRV01zUTBGQmFVSXNZMEZCUVN4RlFVRkJMRmRCUVZjc1EwRkJSeXhEUVVGQkxFTkJRVUVzUTBGRGRFZ3NRMEZCUXp0dlFrRkRSaXhQUVVGUE8wRkJRMUlzYVVKQlFVRTdRVUZGUkN4blFrRkJRU3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RFFVRkRPenRCUVVjelF5eG5Ra0ZCUVN4SlFVRkpMR0ZCUVdFc1EwRkJReXhKUVVGSkxFbEJRVWtzU1VGQlNTeEZRVUZGTzBGQlF6bENMRzlDUVVGQkxFMUJRVTBzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNWVUZCVlN4RlFVRkZMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU53Uml4dlFrRkJRU3hQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUTI1RExHbENRVUZCTzBGQlFVMHNjVUpCUVVFc1NVRkJTU3hoUVVGaExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVsQlFVa3NSVUZCUlR0QlFVTndReXh2UWtGQlFTeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRlZCUVZVc1JVRkJSU3hoUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEYkVZc2IwSkJRVUVzVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRCUVVOdVF5eHBRa0ZCUVR0QlFVRk5MSEZDUVVGQkxFbEJRVWtzWVVGQllTeERRVUZETEZGQlFWRXNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRla01zYjBKQlFVRXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExIbENRVUY1UWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hWUVVGVkxFVkJRVVVzWVVGQllTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUXpWR0xHOUNRVUZCTEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRGJrTXNhVUpCUVVFN1FVRkRTQ3hoUVVGRExFTkJRVU1zUTBGQlF6czdRVUZIU0N4WlFVRkJMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1EwRkJRenRaUVVNdlFpeFBRVUZQTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRkZka0lzV1VGQlFTeFBRVUZQTEU5QlFVOHNRMEZCUXpzN1FVRkRhRUlzUzBGQlFUdEJRVVZUTEVsQlFVRXNjVUpCUVhGQ0xFTkJRemRDTEZkQlFUSkNMRVZCUXpOQ0xFdEJRWFZDTEVWQlEzWkNMR2xDUVVGclJDeEZRVUZCTzFGQlJXeEVMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXp0QlFVTndSU3hSUVVGQkxFMUJRVTBzVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOc1F5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMR2xDUVVGcFFpeERRVUZETEZkQlFWY3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVVNVJDeEpRVUZKTEZGQlFWRXNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRjRUlzV1VGQlFTeFZRVUZWTEVOQlFVTXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJRenRCUVVOb1F5eFRRVUZCTzFGQlEwUXNTVUZCU1N4TlFVRk5MRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRMnhDTEZsQlFVRXNWVUZCVlN4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03UVVGRE5VSXNVMEZCUVR0UlFVVkVMRWxCUVVrc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJUdEJRVU51UWl4WlFVRkJMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzZFVKQlFYVkNMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRGRrUXNXVUZCUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhUUVVGQk8wRkJSVVFzVVVGQlFTeFBRVUZQTEZWQlFWVXNRMEZCUXp0TFFVTnVRanRCUVVWVExFbEJRVUVzYjBKQlFXOUNMRU5CUXpWQ0xGZEJRVEpDTEVWQlF6TkNMRXRCUVhWQ0xFVkJRM1pDTEdkQ1FVRm5SQ3hGUVVGQk8xRkJSV2hFTEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUTBGQlF6dEJRVU5zUlN4UlFVRkJMRTFCUVUwc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTnNReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExGZEJRVmNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVTNSQ3hKUVVGSkxFOUJRVThzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYmtJc1dVRkJRU3hWUVVGVkxFTkJRVU1zVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXp0QlFVTTVRaXhUUVVGQk8xRkJRMFFzU1VGQlNTeE5RVUZOTEVsQlFVa3NTVUZCU1N4RlFVRkZPMEZCUTJ4Q0xGbEJRVUVzVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNN1FVRkROVUlzVTBGQlFUdFJRVVZFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSVHRCUVVOdVFpeFpRVUZCTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc2RVSkJRWFZDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkRka1FzV1VGQlFTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU0zUWl4VFFVRkJPMEZCUlVRc1VVRkJRU3hQUVVGUExGVkJRVlVzUTBGQlF6dExRVU51UWp0QlFVVlRMRWxCUVVFc2VVSkJRWGxDTEVOQlEycERMRmRCUVRKQ0xFVkJRek5DTEV0QlFYVkNMRVZCUTNaQ0xIRkNRVUV3UkN4RlFVRkJPMUZCUlRGRUxFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExIRkNRVUZ4UWl4RFFVRkRPMEZCUXpsRUxGRkJRVUVzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJRMnhETEUxQlFVMHNWVUZCVlN4SFFVRkhMRWxCUVVrc2NVSkJRWEZDTEVOQlFVTXNWMEZCVnl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJSV3hGTEVsQlFVa3NUVUZCVFN4SlFVRkpMRWxCUVVrc1JVRkJSVHRCUVVOc1FpeFpRVUZCTEZWQlFWVXNRMEZCUXl4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRE8wRkJRelZDTEZOQlFVRTdVVUZGUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVU3UVVGRGJrSXNXVUZCUVN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxIVkNRVUYxUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRM1pFTEZsQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdRVUZETjBJc1UwRkJRVHRCUVVWRUxGRkJRVUVzVDBGQlR5eFZRVUZWTEVOQlFVTTdTMEZEYmtJN08wRkJla3B6UWl3MlFrRkJZeXhEUVVGQkxHTkJRVUVzUjBGQlJ5eHpRa0ZCYzBJN096czdJbjA9XG4iLCIvKiFcbiAqIEBwaXhpdi90aHJlZS12cm0tc3ByaW5nYm9uZSB2Mi4xLjFcbiAqIFNwcmluZyBib25lIG1vZHVsZSBmb3IgQHBpeGl2L3RocmVlLXZybVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAyMC0yMDI0IHBpeGl2IEluYy5cbiAqIEBwaXhpdi90aHJlZS12cm0tc3ByaW5nYm9uZSBpcyBkaXN0cmlidXRlZCB1bmRlciBNSVQgTGljZW5zZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3BpeGl2L3RocmVlLXZybS9ibG9iL3JlbGVhc2UvTElDRU5TRVxuICovXG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNoYXBlIG9mIGEgY29sbGlkZXIuXG4gKi9cbmNsYXNzIFZSTVNwcmluZ0JvbmVDb2xsaWRlclNoYXBlIHtcbn1cblxuY29uc3QgX3YzQSQ0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF92M0IkMSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jbGFzcyBWUk1TcHJpbmdCb25lQ29sbGlkZXJTaGFwZUNhcHN1bGUgZXh0ZW5kcyBWUk1TcHJpbmdCb25lQ29sbGlkZXJTaGFwZSB7XG4gICAgZ2V0IHR5cGUoKSB7XG4gICAgICAgIHJldHVybiAnY2Fwc3VsZSc7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcmFtcykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSAoX2EgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMub2Zmc2V0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBuZXcgVEhSRUUuVmVjdG9yMygwLjAsIDAuMCwgMC4wKTtcbiAgICAgICAgdGhpcy50YWlsID0gKF9iID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnRhaWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG5ldyBUSFJFRS5WZWN0b3IzKDAuMCwgMC4wLCAwLjApO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IChfYyA9IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5yYWRpdXMpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDAuMDtcbiAgICB9XG4gICAgY2FsY3VsYXRlQ29sbGlzaW9uKGNvbGxpZGVyTWF0cml4LCBvYmplY3RQb3NpdGlvbiwgb2JqZWN0UmFkaXVzLCB0YXJnZXQpIHtcbiAgICAgICAgX3YzQSQ0LmNvcHkodGhpcy5vZmZzZXQpLmFwcGx5TWF0cml4NChjb2xsaWRlck1hdHJpeCk7IC8vIHRyYW5zZm9ybWVkIGhlYWRcbiAgICAgICAgX3YzQiQxLmNvcHkodGhpcy50YWlsKS5hcHBseU1hdHJpeDQoY29sbGlkZXJNYXRyaXgpOyAvLyB0cmFuc2Zvcm1lZCB0YWlsXG4gICAgICAgIF92M0IkMS5zdWIoX3YzQSQ0KTsgLy8gZnJvbSBoZWFkIHRvIHRhaWxcbiAgICAgICAgY29uc3QgbGVuZ3RoU3FDYXBzdWxlID0gX3YzQiQxLmxlbmd0aFNxKCk7XG4gICAgICAgIHRhcmdldC5jb3B5KG9iamVjdFBvc2l0aW9uKS5zdWIoX3YzQSQ0KTsgLy8gZnJvbSBoZWFkIHRvIG9iamVjdFxuICAgICAgICBjb25zdCBkb3QgPSBfdjNCJDEuZG90KHRhcmdldCk7IC8vIGRvdCBwcm9kdWN0IG9mIG9mZnNldFRvVGFpbCBhbmQgb2Zmc2V0VG9PYmplY3RcbiAgICAgICAgaWYgKGRvdCA8PSAwLjApIDtcbiAgICAgICAgZWxzZSBpZiAobGVuZ3RoU3FDYXBzdWxlIDw9IGRvdCkge1xuICAgICAgICAgICAgLy8gaWYgb2JqZWN0IGlzIG5lYXIgZnJvbSB0aGUgdGFpbFxuICAgICAgICAgICAgdGFyZ2V0LnN1YihfdjNCJDEpOyAvLyBmcm9tIHRhaWwgdG8gb2JqZWN0XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiBvYmplY3QgaXMgYmV0d2VlbiB0d28gZW5kc1xuICAgICAgICAgICAgX3YzQiQxLm11bHRpcGx5U2NhbGFyKGRvdCAvIGxlbmd0aFNxQ2Fwc3VsZSk7IC8vIGZyb20gaGVhZCB0byB0aGUgbmVhcmVzdCBwb2ludCBvZiB0aGUgc2hhZnRcbiAgICAgICAgICAgIHRhcmdldC5zdWIoX3YzQiQxKTsgLy8gZnJvbSB0aGUgc2hhZnQgcG9pbnQgdG8gb2JqZWN0XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmFkaXVzID0gb2JqZWN0UmFkaXVzICsgdGhpcy5yYWRpdXM7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gdGFyZ2V0Lmxlbmd0aCgpIC0gcmFkaXVzO1xuICAgICAgICB0YXJnZXQubm9ybWFsaXplKCk7XG4gICAgICAgIHJldHVybiBkaXN0YW5jZTtcbiAgICB9XG59XG5cbmNsYXNzIFZSTVNwcmluZ0JvbmVDb2xsaWRlclNoYXBlU3BoZXJlIGV4dGVuZHMgVlJNU3ByaW5nQm9uZUNvbGxpZGVyU2hhcGUge1xuICAgIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gJ3NwaGVyZSc7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcmFtcykge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm9mZnNldCA9IChfYSA9IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5vZmZzZXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG5ldyBUSFJFRS5WZWN0b3IzKDAuMCwgMC4wLCAwLjApO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IChfYiA9IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5yYWRpdXMpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDAuMDtcbiAgICB9XG4gICAgY2FsY3VsYXRlQ29sbGlzaW9uKGNvbGxpZGVyTWF0cml4LCBvYmplY3RQb3NpdGlvbiwgb2JqZWN0UmFkaXVzLCB0YXJnZXQpIHtcbiAgICAgICAgdGFyZ2V0LmNvcHkodGhpcy5vZmZzZXQpLmFwcGx5TWF0cml4NChjb2xsaWRlck1hdHJpeCk7IC8vIHRyYW5zZm9ybWVkIG9mZnNldFxuICAgICAgICB0YXJnZXQubmVnYXRlKCkuYWRkKG9iamVjdFBvc2l0aW9uKTsgLy8gYSB2ZWN0b3IgZnJvbSBjb2xsaWRlciBjZW50ZXIgdG8gb2JqZWN0IHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IG9iamVjdFJhZGl1cyArIHRoaXMucmFkaXVzO1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHRhcmdldC5sZW5ndGgoKSAtIHJhZGl1cztcbiAgICAgICAgdGFyZ2V0Lm5vcm1hbGl6ZSgpO1xuICAgICAgICByZXR1cm4gZGlzdGFuY2U7XG4gICAgfVxufVxuXG5jb25zdCBfdjNBJDMgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY2xhc3MgQ29sbGlkZXJTaGFwZUNhcHN1bGVCdWZmZXJHZW9tZXRyeSBleHRlbmRzIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IHtcbiAgICBjb25zdHJ1Y3RvcihzaGFwZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLndvcmxkU2NhbGUgPSAxLjA7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSYWRpdXMgPSAwO1xuICAgICAgICB0aGlzLl9jdXJyZW50T2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgdGhpcy5fY3VycmVudFRhaWwgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgICAgICB0aGlzLl9zaGFwZSA9IHNoYXBlO1xuICAgICAgICB0aGlzLl9hdHRyUG9zID0gbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KDM5NiksIDMpO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCB0aGlzLl9hdHRyUG9zKTtcbiAgICAgICAgdGhpcy5fYXR0ckluZGV4ID0gbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgVWludDE2QXJyYXkoMjY0KSwgMSk7XG4gICAgICAgIHRoaXMuc2V0SW5kZXgodGhpcy5fYXR0ckluZGV4KTtcbiAgICAgICAgdGhpcy5fYnVpbGRJbmRleCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGxldCBzaG91bGRVcGRhdGVHZW9tZXRyeSA9IGZhbHNlO1xuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLl9zaGFwZS5yYWRpdXMgLyB0aGlzLndvcmxkU2NhbGU7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50UmFkaXVzICE9PSByYWRpdXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRSYWRpdXMgPSByYWRpdXM7XG4gICAgICAgICAgICBzaG91bGRVcGRhdGVHZW9tZXRyeSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9jdXJyZW50T2Zmc2V0LmVxdWFscyh0aGlzLl9zaGFwZS5vZmZzZXQpKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50T2Zmc2V0LmNvcHkodGhpcy5fc2hhcGUub2Zmc2V0KTtcbiAgICAgICAgICAgIHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YWlsID0gX3YzQSQzLmNvcHkodGhpcy5fc2hhcGUudGFpbCkuZGl2aWRlU2NhbGFyKHRoaXMud29ybGRTY2FsZSk7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50VGFpbC5kaXN0YW5jZVRvU3F1YXJlZCh0YWlsKSA+IDFlLTEwKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50VGFpbC5jb3B5KHRhaWwpO1xuICAgICAgICAgICAgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRVcGRhdGVHZW9tZXRyeSkge1xuICAgICAgICAgICAgdGhpcy5fYnVpbGRQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9idWlsZFBvc2l0aW9uKCkge1xuICAgICAgICBfdjNBJDMuY29weSh0aGlzLl9jdXJyZW50VGFpbCkuc3ViKHRoaXMuX2N1cnJlbnRPZmZzZXQpO1xuICAgICAgICBjb25zdCBsID0gX3YzQSQzLmxlbmd0aCgpIC8gdGhpcy5fY3VycmVudFJhZGl1cztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMTY7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdCA9IChpIC8gMTYuMCkgKiBNYXRoLlBJO1xuICAgICAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooaSwgLU1hdGguc2luKHQpLCAtTWF0aC5jb3ModCksIDAuMCk7XG4gICAgICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWigxNyArIGksIGwgKyBNYXRoLnNpbih0KSwgTWF0aC5jb3ModCksIDAuMCk7XG4gICAgICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWigzNCArIGksIC1NYXRoLnNpbih0KSwgMC4wLCAtTWF0aC5jb3ModCkpO1xuICAgICAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooNTEgKyBpLCBsICsgTWF0aC5zaW4odCksIDAuMCwgTWF0aC5jb3ModCkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdCA9IChpIC8gMTYuMCkgKiBNYXRoLlBJO1xuICAgICAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooNjggKyBpLCAwLjAsIE1hdGguc2luKHQpLCBNYXRoLmNvcyh0KSk7XG4gICAgICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWigxMDAgKyBpLCBsLCBNYXRoLnNpbih0KSwgTWF0aC5jb3ModCkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRoZXRhID0gTWF0aC5hdGFuMihfdjNBJDMueSwgTWF0aC5zcXJ0KF92M0EkMy54ICogX3YzQSQzLnggKyBfdjNBJDMueiAqIF92M0EkMy56KSk7XG4gICAgICAgIGNvbnN0IHBoaSA9IC1NYXRoLmF0YW4yKF92M0EkMy56LCBfdjNBJDMueCk7XG4gICAgICAgIHRoaXMucm90YXRlWih0aGV0YSk7XG4gICAgICAgIHRoaXMucm90YXRlWShwaGkpO1xuICAgICAgICB0aGlzLnNjYWxlKHRoaXMuX2N1cnJlbnRSYWRpdXMsIHRoaXMuX2N1cnJlbnRSYWRpdXMsIHRoaXMuX2N1cnJlbnRSYWRpdXMpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZSh0aGlzLl9jdXJyZW50T2Zmc2V0LngsIHRoaXMuX2N1cnJlbnRPZmZzZXQueSwgdGhpcy5fY3VycmVudE9mZnNldC56KTtcbiAgICAgICAgdGhpcy5fYXR0clBvcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIF9idWlsZEluZGV4KCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM0OyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGkxID0gKGkgKyAxKSAlIDM0O1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKGkgKiAyLCBpLCBpMSk7XG4gICAgICAgICAgICB0aGlzLl9hdHRySW5kZXguc2V0WFkoNjggKyBpICogMiwgMzQgKyBpLCAzNCArIGkxKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGkxID0gKGkgKyAxKSAlIDMyO1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKDEzNiArIGkgKiAyLCA2OCArIGksIDY4ICsgaTEpO1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKDIwMCArIGkgKiAyLCAxMDAgKyBpLCAxMDAgKyBpMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXR0ckluZGV4Lm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG59XG5cbmNsYXNzIENvbGxpZGVyU2hhcGVTcGhlcmVCdWZmZXJHZW9tZXRyeSBleHRlbmRzIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IHtcbiAgICBjb25zdHJ1Y3RvcihzaGFwZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLndvcmxkU2NhbGUgPSAxLjA7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSYWRpdXMgPSAwO1xuICAgICAgICB0aGlzLl9jdXJyZW50T2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgdGhpcy5fc2hhcGUgPSBzaGFwZTtcbiAgICAgICAgdGhpcy5fYXR0clBvcyA9IG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheSgzMiAqIDMgKiAzKSwgMyk7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIHRoaXMuX2F0dHJQb3MpO1xuICAgICAgICB0aGlzLl9hdHRySW5kZXggPSBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBVaW50MTZBcnJheSg2NCAqIDMpLCAxKTtcbiAgICAgICAgdGhpcy5zZXRJbmRleCh0aGlzLl9hdHRySW5kZXgpO1xuICAgICAgICB0aGlzLl9idWlsZEluZGV4KCk7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgbGV0IHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuX3NoYXBlLnJhZGl1cyAvIHRoaXMud29ybGRTY2FsZTtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRSYWRpdXMgIT09IHJhZGl1cykge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudFJhZGl1cyA9IHJhZGl1cztcbiAgICAgICAgICAgIHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2N1cnJlbnRPZmZzZXQuZXF1YWxzKHRoaXMuX3NoYXBlLm9mZnNldCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRPZmZzZXQuY29weSh0aGlzLl9zaGFwZS5vZmZzZXQpO1xuICAgICAgICAgICAgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRVcGRhdGVHZW9tZXRyeSkge1xuICAgICAgICAgICAgdGhpcy5fYnVpbGRQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9idWlsZFBvc2l0aW9uKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHQgPSAoaSAvIDE2LjApICogTWF0aC5QSTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKGksIE1hdGguY29zKHQpLCBNYXRoLnNpbih0KSwgMC4wKTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKDMyICsgaSwgMC4wLCBNYXRoLmNvcyh0KSwgTWF0aC5zaW4odCkpO1xuICAgICAgICAgICAgdGhpcy5fYXR0clBvcy5zZXRYWVooNjQgKyBpLCBNYXRoLnNpbih0KSwgMC4wLCBNYXRoLmNvcyh0KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY2FsZSh0aGlzLl9jdXJyZW50UmFkaXVzLCB0aGlzLl9jdXJyZW50UmFkaXVzLCB0aGlzLl9jdXJyZW50UmFkaXVzKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUodGhpcy5fY3VycmVudE9mZnNldC54LCB0aGlzLl9jdXJyZW50T2Zmc2V0LnksIHRoaXMuX2N1cnJlbnRPZmZzZXQueik7XG4gICAgICAgIHRoaXMuX2F0dHJQb3MubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgICBfYnVpbGRJbmRleCgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpMSA9IChpICsgMSkgJSAzMjtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJJbmRleC5zZXRYWShpICogMiwgaSwgaTEpO1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKDY0ICsgaSAqIDIsIDMyICsgaSwgMzIgKyBpMSk7XG4gICAgICAgICAgICB0aGlzLl9hdHRySW5kZXguc2V0WFkoMTI4ICsgaSAqIDIsIDY0ICsgaSwgNjQgKyBpMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYXR0ckluZGV4Lm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB9XG59XG5cbmNvbnN0IF92M0EkMiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jbGFzcyBWUk1TcHJpbmdCb25lQ29sbGlkZXJIZWxwZXIgZXh0ZW5kcyBUSFJFRS5Hcm91cCB7XG4gICAgY29uc3RydWN0b3IoY29sbGlkZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sbGlkZXIgPSBjb2xsaWRlcjtcbiAgICAgICAgaWYgKHRoaXMuY29sbGlkZXIuc2hhcGUgaW5zdGFuY2VvZiBWUk1TcHJpbmdCb25lQ29sbGlkZXJTaGFwZVNwaGVyZSkge1xuICAgICAgICAgICAgdGhpcy5fZ2VvbWV0cnkgPSBuZXcgQ29sbGlkZXJTaGFwZVNwaGVyZUJ1ZmZlckdlb21ldHJ5KHRoaXMuY29sbGlkZXIuc2hhcGUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY29sbGlkZXIuc2hhcGUgaW5zdGFuY2VvZiBWUk1TcHJpbmdCb25lQ29sbGlkZXJTaGFwZUNhcHN1bGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2dlb21ldHJ5ID0gbmV3IENvbGxpZGVyU2hhcGVDYXBzdWxlQnVmZmVyR2VvbWV0cnkodGhpcy5jb2xsaWRlci5zaGFwZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZSTVNwcmluZ0JvbmVDb2xsaWRlckhlbHBlcjogVW5rbm93biBjb2xsaWRlciBzaGFwZSB0eXBlIGRldGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe1xuICAgICAgICAgICAgY29sb3I6IDB4ZmYwMGZmLFxuICAgICAgICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICAgICAgICAgIGRlcHRoV3JpdGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fbGluZSA9IG5ldyBUSFJFRS5MaW5lU2VnbWVudHModGhpcy5fZ2VvbWV0cnksIG1hdGVyaWFsKTtcbiAgICAgICAgdGhpcy5hZGQodGhpcy5fbGluZSk7XG4gICAgfVxuICAgIGRpc3Bvc2UoKSB7XG4gICAgICAgIHRoaXMuX2dlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgICB9XG4gICAgdXBkYXRlTWF0cml4V29ybGQoZm9yY2UpIHtcbiAgICAgICAgdGhpcy5jb2xsaWRlci51cGRhdGVXb3JsZE1hdHJpeCh0cnVlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMubWF0cml4LmNvcHkodGhpcy5jb2xsaWRlci5tYXRyaXhXb3JsZCk7XG4gICAgICAgIGNvbnN0IG1hdHJpeFdvcmxkRWxlbWVudHMgPSB0aGlzLm1hdHJpeC5lbGVtZW50cztcbiAgICAgICAgdGhpcy5fZ2VvbWV0cnkud29ybGRTY2FsZSA9IF92M0EkMlxuICAgICAgICAgICAgLnNldChtYXRyaXhXb3JsZEVsZW1lbnRzWzBdLCBtYXRyaXhXb3JsZEVsZW1lbnRzWzFdLCBtYXRyaXhXb3JsZEVsZW1lbnRzWzJdKVxuICAgICAgICAgICAgLmxlbmd0aCgpOyAvLyBjYWxjdWxhdGUgc2NhbGUgb2YgeCBjb21wb25lbnRcbiAgICAgICAgdGhpcy5fZ2VvbWV0cnkudXBkYXRlKCk7XG4gICAgICAgIHN1cGVyLnVwZGF0ZU1hdHJpeFdvcmxkKGZvcmNlKTtcbiAgICB9XG59XG5cbmNsYXNzIFNwcmluZ0JvbmVCdWZmZXJHZW9tZXRyeSBleHRlbmRzIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IHtcbiAgICBjb25zdHJ1Y3RvcihzcHJpbmdCb25lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMud29ybGRTY2FsZSA9IDEuMDtcbiAgICAgICAgdGhpcy5fY3VycmVudFJhZGl1cyA9IDA7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUYWlsID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgdGhpcy5fc3ByaW5nQm9uZSA9IHNwcmluZ0JvbmU7XG4gICAgICAgIHRoaXMuX2F0dHJQb3MgPSBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoMjk0KSwgMyk7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIHRoaXMuX2F0dHJQb3MpO1xuICAgICAgICB0aGlzLl9hdHRySW5kZXggPSBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBVaW50MTZBcnJheSgxOTQpLCAxKTtcbiAgICAgICAgdGhpcy5zZXRJbmRleCh0aGlzLl9hdHRySW5kZXgpO1xuICAgICAgICB0aGlzLl9idWlsZEluZGV4KCk7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgbGV0IHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuX3NwcmluZ0JvbmUuc2V0dGluZ3MuaGl0UmFkaXVzIC8gdGhpcy53b3JsZFNjYWxlO1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudFJhZGl1cyAhPT0gcmFkaXVzKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50UmFkaXVzID0gcmFkaXVzO1xuICAgICAgICAgICAgc2hvdWxkVXBkYXRlR2VvbWV0cnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fY3VycmVudFRhaWwuZXF1YWxzKHRoaXMuX3NwcmluZ0JvbmUuaW5pdGlhbExvY2FsQ2hpbGRQb3NpdGlvbikpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRUYWlsLmNvcHkodGhpcy5fc3ByaW5nQm9uZS5pbml0aWFsTG9jYWxDaGlsZFBvc2l0aW9uKTtcbiAgICAgICAgICAgIHNob3VsZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkVXBkYXRlR2VvbWV0cnkpIHtcbiAgICAgICAgICAgIHRoaXMuX2J1aWxkUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfYnVpbGRQb3NpdGlvbigpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0ID0gKGkgLyAxNi4wKSAqIE1hdGguUEk7XG4gICAgICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWihpLCBNYXRoLmNvcyh0KSwgTWF0aC5zaW4odCksIDAuMCk7XG4gICAgICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWigzMiArIGksIDAuMCwgTWF0aC5jb3ModCksIE1hdGguc2luKHQpKTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKDY0ICsgaSwgTWF0aC5zaW4odCksIDAuMCwgTWF0aC5jb3ModCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2NhbGUodGhpcy5fY3VycmVudFJhZGl1cywgdGhpcy5fY3VycmVudFJhZGl1cywgdGhpcy5fY3VycmVudFJhZGl1cyk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlKHRoaXMuX2N1cnJlbnRUYWlsLngsIHRoaXMuX2N1cnJlbnRUYWlsLnksIHRoaXMuX2N1cnJlbnRUYWlsLnopO1xuICAgICAgICB0aGlzLl9hdHRyUG9zLnNldFhZWig5NiwgMCwgMCwgMCk7XG4gICAgICAgIHRoaXMuX2F0dHJQb3Muc2V0WFlaKDk3LCB0aGlzLl9jdXJyZW50VGFpbC54LCB0aGlzLl9jdXJyZW50VGFpbC55LCB0aGlzLl9jdXJyZW50VGFpbC56KTtcbiAgICAgICAgdGhpcy5fYXR0clBvcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICAgIF9idWlsZEluZGV4KCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGkxID0gKGkgKyAxKSAlIDMyO1xuICAgICAgICAgICAgdGhpcy5fYXR0ckluZGV4LnNldFhZKGkgKiAyLCBpLCBpMSk7XG4gICAgICAgICAgICB0aGlzLl9hdHRySW5kZXguc2V0WFkoNjQgKyBpICogMiwgMzIgKyBpLCAzMiArIGkxKTtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJJbmRleC5zZXRYWSgxMjggKyBpICogMiwgNjQgKyBpLCA2NCArIGkxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hdHRySW5kZXguc2V0WFkoMTkyLCA5NiwgOTcpO1xuICAgICAgICB0aGlzLl9hdHRySW5kZXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbn1cblxuY29uc3QgX3YzQSQxID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNsYXNzIFZSTVNwcmluZ0JvbmVKb2ludEhlbHBlciBleHRlbmRzIFRIUkVFLkdyb3VwIHtcbiAgICBjb25zdHJ1Y3RvcihzcHJpbmdCb25lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWF0cml4QXV0b1VwZGF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNwcmluZ0JvbmUgPSBzcHJpbmdCb25lO1xuICAgICAgICB0aGlzLl9nZW9tZXRyeSA9IG5ldyBTcHJpbmdCb25lQnVmZmVyR2VvbWV0cnkodGhpcy5zcHJpbmdCb25lKTtcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe1xuICAgICAgICAgICAgY29sb3I6IDB4ZmZmZjAwLFxuICAgICAgICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICAgICAgICAgIGRlcHRoV3JpdGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fbGluZSA9IG5ldyBUSFJFRS5MaW5lU2VnbWVudHModGhpcy5fZ2VvbWV0cnksIG1hdGVyaWFsKTtcbiAgICAgICAgdGhpcy5hZGQodGhpcy5fbGluZSk7XG4gICAgfVxuICAgIGRpc3Bvc2UoKSB7XG4gICAgICAgIHRoaXMuX2dlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgICB9XG4gICAgdXBkYXRlTWF0cml4V29ybGQoZm9yY2UpIHtcbiAgICAgICAgdGhpcy5zcHJpbmdCb25lLmJvbmUudXBkYXRlV29ybGRNYXRyaXgodHJ1ZSwgZmFsc2UpO1xuICAgICAgICB0aGlzLm1hdHJpeC5jb3B5KHRoaXMuc3ByaW5nQm9uZS5ib25lLm1hdHJpeFdvcmxkKTtcbiAgICAgICAgY29uc3QgbWF0cml4V29ybGRFbGVtZW50cyA9IHRoaXMubWF0cml4LmVsZW1lbnRzO1xuICAgICAgICB0aGlzLl9nZW9tZXRyeS53b3JsZFNjYWxlID0gX3YzQSQxXG4gICAgICAgICAgICAuc2V0KG1hdHJpeFdvcmxkRWxlbWVudHNbMF0sIG1hdHJpeFdvcmxkRWxlbWVudHNbMV0sIG1hdHJpeFdvcmxkRWxlbWVudHNbMl0pXG4gICAgICAgICAgICAubGVuZ3RoKCk7IC8vIGNhbGN1bGF0ZSBzY2FsZSBvZiB4IGNvbXBvbmVudFxuICAgICAgICB0aGlzLl9nZW9tZXRyeS51cGRhdGUoKTtcbiAgICAgICAgc3VwZXIudXBkYXRlTWF0cml4V29ybGQoZm9yY2UpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29sbGlkZXIgb2YgYSBWUk0uXG4gKi9cbmNsYXNzIFZSTVNwcmluZ0JvbmVDb2xsaWRlciBleHRlbmRzIFRIUkVFLk9iamVjdDNEIHtcbiAgICBjb25zdHJ1Y3RvcihzaGFwZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNoYXBlID0gc2hhcGU7XG4gICAgfVxufVxuXG5jb25zdCBfbWF0QSQxID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcbi8qKlxuICogQSBjb21wYXQgZnVuY3Rpb24gZm9yIGBNYXRyaXg0LmludmVydCgpYCAvIGBNYXRyaXg0LmdldEludmVyc2UoKWAuXG4gKiBgTWF0cml4NC5pbnZlcnQoKWAgaXMgaW50cm9kdWNlZCBpbiByMTIzIGFuZCBgTWF0cml4NC5nZXRJbnZlcnNlKClgIGVtaXRzIGEgd2FybmluZy5cbiAqIFdlIGFyZSBnb2luZyB0byB1c2UgdGhpcyBjb21wYXQgZm9yIGEgd2hpbGUuXG4gKiBAcGFyYW0gdGFyZ2V0IEEgdGFyZ2V0IG1hdHJpeFxuICovXG5mdW5jdGlvbiBtYXQ0SW52ZXJ0Q29tcGF0KHRhcmdldCkge1xuICAgIGlmICh0YXJnZXQuaW52ZXJ0KSB7XG4gICAgICAgIHRhcmdldC5pbnZlcnQoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRhcmdldC5nZXRJbnZlcnNlKF9tYXRBJDEuY29weSh0YXJnZXQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cblxuY2xhc3MgTWF0cml4NEludmVyc2VDYWNoZSB7XG4gICAgLyoqXG4gICAgICogSW52ZXJzZSBvZiBnaXZlbiBtYXRyaXguXG4gICAgICogTm90ZSB0aGF0IGl0IHdpbGwgcmV0dXJuIGl0cyBpbnRlcm5hbCBwcml2YXRlIGluc3RhbmNlLlxuICAgICAqIE1ha2Ugc3VyZSBjb3B5aW5nIHRoaXMgYmVmb3JlIG11dGF0ZSB0aGlzLlxuICAgICAqL1xuICAgIGdldCBpbnZlcnNlKCkge1xuICAgICAgICBpZiAodGhpcy5fc2hvdWxkVXBkYXRlSW52ZXJzZSkge1xuICAgICAgICAgICAgdGhpcy5faW52ZXJzZUNhY2hlLmNvcHkodGhpcy5tYXRyaXgpO1xuICAgICAgICAgICAgbWF0NEludmVydENvbXBhdCh0aGlzLl9pbnZlcnNlQ2FjaGUpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVXBkYXRlSW52ZXJzZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZlcnNlQ2FjaGU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKG1hdHJpeCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBjYWNoZSBvZiBpbnZlcnNlIG9mIGN1cnJlbnQgbWF0cml4LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5faW52ZXJzZUNhY2hlID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgZmxhZyB0aGF0IG1ha2VzIGl0IHdhbnQgdG8gcmVjYWxjdWxhdGUgaXRzIHtAbGluayBfaW52ZXJzZUNhY2hlfS5cbiAgICAgICAgICogV2lsbCBiZSBzZXQgYHRydWVgIHdoZW4gYGVsZW1lbnRzYCBhcmUgbXV0YXRlZCBhbmQgYmUgdXNlZCBpbiBgZ2V0SW52ZXJzZWAuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9zaG91bGRVcGRhdGVJbnZlcnNlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5tYXRyaXggPSBtYXRyaXg7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSB7XG4gICAgICAgICAgICBzZXQ6IChvYmosIHByb3AsIG5ld1ZhbCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFVwZGF0ZUludmVyc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG9ialtwcm9wXSA9IG5ld1ZhbDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX29yaWdpbmFsRWxlbWVudHMgPSBtYXRyaXguZWxlbWVudHM7XG4gICAgICAgIG1hdHJpeC5lbGVtZW50cyA9IG5ldyBQcm94eShtYXRyaXguZWxlbWVudHMsIGhhbmRsZXIpO1xuICAgIH1cbiAgICByZXZlcnQoKSB7XG4gICAgICAgIHRoaXMubWF0cml4LmVsZW1lbnRzID0gdGhpcy5fb3JpZ2luYWxFbGVtZW50cztcbiAgICB9XG59XG5cbi8vIGJhc2VkIG9uXG4vLyBodHRwOi8vcm9ja2V0anVtcC5za3IuanAvdW5pdHkzZC8xMDkvXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZHdhbmdvL1VuaVZSTS9ibG9iL21hc3Rlci9TY3JpcHRzL1NwcmluZ0JvbmUvVlJNU3ByaW5nQm9uZS5jc1xuY29uc3QgSURFTlRJVFlfTUFUUklYNCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XG4vLyDoqIjnrpfkuK3jga7kuIDmmYLkv53lrZjnlKjlpInmlbDvvIjkuIDluqbjgqTjg7Pjgrnjgr/jg7PjgrnjgpLkvZzjgaPjgZ/jgonjgYLjgajjga/kvb/jgYTlm57jgZnvvIlcbmNvbnN0IF92M0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuY29uc3QgX3YzQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5jb25zdCBfdjNDID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbi8qKlxuICogQSB0ZW1wb3JhcnkgdmFyaWFibGUgd2hpY2ggaXMgdXNlZCBpbiBgdXBkYXRlYFxuICovXG5jb25zdCBfd29ybGRTcGFjZVBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbi8qKlxuICogQSB0ZW1wb3JhcnkgdmFyaWFibGUgd2hpY2ggaXMgdXNlZCBpbiBgdXBkYXRlYFxuICovXG5jb25zdCBfY2VudGVyU3BhY2VQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4vKipcbiAqIEEgdGVtcG9yYXJ5IHZhcmlhYmxlIHdoaWNoIGlzIHVzZWQgaW4gYHVwZGF0ZWBcbiAqL1xuY29uc3QgX25leHRUYWlsID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbmNvbnN0IF9xdWF0QSA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XG5jb25zdCBfbWF0QSA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XG5jb25zdCBfbWF0QiA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XG4vKipcbiAqIEEgY2xhc3MgcmVwcmVzZW50cyBhIHNpbmdsZSBqb2ludCBvZiBhIHNwcmluZyBib25lLlxuICogSXQgc2hvdWxkIGJlIG1hbmFnZWQgYnkgYSBbW1ZSTVNwcmluZ0JvbmVNYW5hZ2VyXV0uXG4gKi9cbmNsYXNzIFZSTVNwcmluZ0JvbmVKb2ludCB7XG4gICAgZ2V0IGNlbnRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NlbnRlcjtcbiAgICB9XG4gICAgc2V0IGNlbnRlcihjZW50ZXIpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAvLyB1bmluc3RhbGwgaW52ZXJzZSBjYWNoZVxuICAgICAgICBpZiAoKF9hID0gdGhpcy5fY2VudGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudXNlckRhdGEuaW52ZXJzZUNhY2hlUHJveHkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NlbnRlci51c2VyRGF0YS5pbnZlcnNlQ2FjaGVQcm94eS5yZXZlcnQoKTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jZW50ZXIudXNlckRhdGEuaW52ZXJzZUNhY2hlUHJveHk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2hhbmdlIHRoZSBjZW50ZXJcbiAgICAgICAgdGhpcy5fY2VudGVyID0gY2VudGVyO1xuICAgICAgICAvLyBpbnN0YWxsIGludmVyc2UgY2FjaGVcbiAgICAgICAgaWYgKHRoaXMuX2NlbnRlcikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9jZW50ZXIudXNlckRhdGEuaW52ZXJzZUNhY2hlUHJveHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZW50ZXIudXNlckRhdGEuaW52ZXJzZUNhY2hlUHJveHkgPSBuZXcgTWF0cml4NEludmVyc2VDYWNoZSh0aGlzLl9jZW50ZXIubWF0cml4V29ybGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBpbml0aWFsTG9jYWxDaGlsZFBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbExvY2FsQ2hpbGRQb3NpdGlvbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgd29ybGQgbWF0cml4IG9mIGl0cyBwYXJlbnQgb2JqZWN0LlxuICAgICAqIE5vdGUgdGhhdCBpdCByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBtYXRyaXguIERvbid0IG11dGF0ZSB0aGlzIGRpcmVjdGx5IVxuICAgICAqL1xuICAgIGdldCBfcGFyZW50TWF0cml4V29ybGQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvbmUucGFyZW50ID8gdGhpcy5ib25lLnBhcmVudC5tYXRyaXhXb3JsZCA6IElERU5USVRZX01BVFJJWDQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBWUk1TcHJpbmdCb25lLlxuICAgICAqXG4gICAgICogQHBhcmFtIGJvbmUgQW4gT2JqZWN0M0QgdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoaXMgYm9uZVxuICAgICAqIEBwYXJhbSBjaGlsZCBBbiBPYmplY3QzRCB0aGF0IHdpbGwgYmUgdXNlZCBhcyBhIHRhaWwgb2YgdGhpcyBzcHJpbmcgYm9uZS4gSXQgY2FuIGJlIG51bGwgd2hlbiB0aGUgc3ByaW5nIGJvbmUgaXMgaW1wb3J0ZWQgZnJvbSBWUk0gMC4wXG4gICAgICogQHBhcmFtIHNldHRpbmdzIFNldmVyYWwgcGFyYW1ldGVycyByZWxhdGVkIHRvIGJlaGF2aW9yIG9mIHRoZSBzcHJpbmcgYm9uZVxuICAgICAqIEBwYXJhbSBjb2xsaWRlckdyb3VwcyBDb2xsaWRlciBncm91cHMgdGhhdCB3aWxsIGJlIGNvbGxpZGVkIHdpdGggdGhpcyBzcHJpbmcgYm9uZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGJvbmUsIGNoaWxkLCBzZXR0aW5ncyA9IHt9LCBjb2xsaWRlckdyb3VwcyA9IFtdKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICAvKipcbiAgICAgICAgICogQ3VycmVudCBwb3NpdGlvbiBvZiBjaGlsZCB0YWlsLCBpbiBjZW50ZXIgdW5pdC4gV2lsbCBiZSB1c2VkIGZvciB2ZXJsZXQgaW50ZWdyYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9jdXJyZW50VGFpbCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQcmV2aW91cyBwb3NpdGlvbiBvZiBjaGlsZCB0YWlsLCBpbiBjZW50ZXIgdW5pdC4gV2lsbCBiZSB1c2VkIGZvciB2ZXJsZXQgaW50ZWdyYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9wcmV2VGFpbCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbml0aWFsIGF4aXMgb2YgdGhlIGJvbmUsIGluIGxvY2FsIHVuaXQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9ib25lQXhpcyA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMZW5ndGggb2YgdGhlIGJvbmUgaW4gd29ybGQgdW5pdC5cbiAgICAgICAgICogV2lsbCBiZSB1c2VkIGZvciBub3JtYWxpemF0aW9uIGluIHVwZGF0ZSBsb29wLCB3aWxsIGJlIHVwZGF0ZWQgYnkge0BsaW5rIF9jYWxjV29ybGRTcGFjZUJvbmVMZW5ndGh9LlxuICAgICAgICAgKlxuICAgICAgICAgKiBJdCdzIHNhbWUgYXMgbG9jYWwgdW5pdCBsZW5ndGggdW5sZXNzIHRoZXJlIGFyZSBzY2FsZSB0cmFuc2Zvcm1hdGlvbnMgaW4gdGhlIHdvcmxkIHNwYWNlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fd29ybGRTcGFjZUJvbmVMZW5ndGggPSAwLjA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGlzIHNwcmluZ2JvbmUgd2lsbCBiZSBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBzcGFjZSByZWxhdGl2ZSBmcm9tIHRoaXMgb2JqZWN0LlxuICAgICAgICAgKiBJZiB0aGlzIGlzIGBudWxsYCwgc3ByaW5nYm9uZSB3aWxsIGJlIGNhbGN1bGF0ZWQgaW4gd29ybGQgc3BhY2UuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9jZW50ZXIgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW5pdGlhbCBzdGF0ZSBvZiB0aGUgbG9jYWwgbWF0cml4IG9mIHRoZSBib25lLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5faW5pdGlhbExvY2FsTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluaXRpYWwgc3RhdGUgb2YgdGhlIHJvdGF0aW9uIG9mIHRoZSBib25lLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5faW5pdGlhbExvY2FsUm90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW5pdGlhbCBzdGF0ZSBvZiB0aGUgcG9zaXRpb24gb2YgaXRzIGNoaWxkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5faW5pdGlhbExvY2FsQ2hpbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgIHRoaXMuYm9uZSA9IGJvbmU7IC8vIHVuaVZSTeOBp+OBriBwYXJlbnRcbiAgICAgICAgdGhpcy5ib25lLm1hdHJpeEF1dG9VcGRhdGUgPSBmYWxzZTsgLy8gdXBkYXRl44Gr44KI44KK6KiI566X44GV44KM44KL44Gu44GndGhyZWUuanPlhoXjgafjga7oh6rli5Xlh6bnkIbjga/kuI3opoFcbiAgICAgICAgdGhpcy5jaGlsZCA9IGNoaWxkO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0ge1xuICAgICAgICAgICAgaGl0UmFkaXVzOiAoX2EgPSBzZXR0aW5ncy5oaXRSYWRpdXMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDAuMCxcbiAgICAgICAgICAgIHN0aWZmbmVzczogKF9iID0gc2V0dGluZ3Muc3RpZmZuZXNzKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAxLjAsXG4gICAgICAgICAgICBncmF2aXR5UG93ZXI6IChfYyA9IHNldHRpbmdzLmdyYXZpdHlQb3dlcikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMC4wLFxuICAgICAgICAgICAgZ3Jhdml0eURpcjogKF9lID0gKF9kID0gc2V0dGluZ3MuZ3Jhdml0eURpcikgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmNsb25lKCkpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IG5ldyBUSFJFRS5WZWN0b3IzKDAuMCwgLTEuMCwgMC4wKSxcbiAgICAgICAgICAgIGRyYWdGb3JjZTogKF9mID0gc2V0dGluZ3MuZHJhZ0ZvcmNlKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwLjQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29sbGlkZXJHcm91cHMgPSBjb2xsaWRlckdyb3VwcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBpbml0aWFsIHN0YXRlIG9mIHRoaXMgc3ByaW5nIGJvbmUuXG4gICAgICogWW91IG1pZ2h0IHdhbnQgdG8gY2FsbCB7QGxpbmsgVlJNU3ByaW5nQm9uZU1hbmFnZXIuc2V0SW5pdFN0YXRlfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHNldEluaXRTdGF0ZSgpIHtcbiAgICAgICAgLy8gcmVtZW1iZXIgaW5pdGlhbCBwb3NpdGlvbiBvZiBpdHNlbGZcbiAgICAgICAgdGhpcy5faW5pdGlhbExvY2FsTWF0cml4LmNvcHkodGhpcy5ib25lLm1hdHJpeCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxMb2NhbFJvdGF0aW9uLmNvcHkodGhpcy5ib25lLnF1YXRlcm5pb24pO1xuICAgICAgICAvLyBzZWUgaW5pdGlhbCBwb3NpdGlvbiBvZiBpdHMgbG9jYWwgY2hpbGRcbiAgICAgICAgaWYgKHRoaXMuY2hpbGQpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxMb2NhbENoaWxkUG9zaXRpb24uY29weSh0aGlzLmNoaWxkLnBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIHZybTAgcmVxdWlyZXMgYSA3Y20gZml4ZWQgYm9uZSBsZW5ndGggZm9yIHRoZSBmaW5hbCBub2RlIGluIGEgY2hhaW5cbiAgICAgICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3ZybS1jL3ZybS1zcGVjaWZpY2F0aW9uL3RyZWUvbWFzdGVyL3NwZWNpZmljYXRpb24vVlJNQ19zcHJpbmdCb25lLTEuMCNhYm91dC1zcHJpbmctY29uZmlndXJhdGlvblxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbExvY2FsQ2hpbGRQb3NpdGlvbi5jb3B5KHRoaXMuYm9uZS5wb3NpdGlvbikubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIoMC4wNyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29weSB0aGUgY2hpbGQgcG9zaXRpb24gdG8gdGFpbHNcbiAgICAgICAgY29uc3QgbWF0cml4V29ybGRUb0NlbnRlciA9IHRoaXMuX2dldE1hdHJpeFdvcmxkVG9DZW50ZXIoX21hdEEpO1xuICAgICAgICB0aGlzLmJvbmUubG9jYWxUb1dvcmxkKHRoaXMuX2N1cnJlbnRUYWlsLmNvcHkodGhpcy5faW5pdGlhbExvY2FsQ2hpbGRQb3NpdGlvbikpLmFwcGx5TWF0cml4NChtYXRyaXhXb3JsZFRvQ2VudGVyKTtcbiAgICAgICAgdGhpcy5fcHJldlRhaWwuY29weSh0aGlzLl9jdXJyZW50VGFpbCk7XG4gICAgICAgIC8vIHNldCBpbml0aWFsIHN0YXRlcyB0aGF0IGFyZSByZWxhdGVkIHRvIGxvY2FsIGNoaWxkIHBvc2l0aW9uXG4gICAgICAgIHRoaXMuX2JvbmVBeGlzLmNvcHkodGhpcy5faW5pdGlhbExvY2FsQ2hpbGRQb3NpdGlvbikubm9ybWFsaXplKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlc2V0IHRoZSBzdGF0ZSBvZiB0aGlzIGJvbmUuXG4gICAgICogWW91IG1pZ2h0IHdhbnQgdG8gY2FsbCBbW1ZSTVNwcmluZ0JvbmVNYW5hZ2VyLnJlc2V0XV0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5ib25lLnF1YXRlcm5pb24uY29weSh0aGlzLl9pbml0aWFsTG9jYWxSb3RhdGlvbik7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gdXBkYXRlIGl0cyBtYXRyaXhXb3JsZCBtYW51YWxseSwgc2luY2Ugd2UgdHdlYWtlZCB0aGUgYm9uZSBieSBvdXIgaGFuZFxuICAgICAgICB0aGlzLmJvbmUudXBkYXRlTWF0cml4KCk7XG4gICAgICAgIHRoaXMuYm9uZS5tYXRyaXhXb3JsZC5tdWx0aXBseU1hdHJpY2VzKHRoaXMuX3BhcmVudE1hdHJpeFdvcmxkLCB0aGlzLmJvbmUubWF0cml4KTtcbiAgICAgICAgLy8gQXBwbHkgdXBkYXRlZCBwb3NpdGlvbiB0byB0YWlsIHN0YXRlc1xuICAgICAgICBjb25zdCBtYXRyaXhXb3JsZFRvQ2VudGVyID0gdGhpcy5fZ2V0TWF0cml4V29ybGRUb0NlbnRlcihfbWF0QSk7XG4gICAgICAgIHRoaXMuYm9uZS5sb2NhbFRvV29ybGQodGhpcy5fY3VycmVudFRhaWwuY29weSh0aGlzLl9pbml0aWFsTG9jYWxDaGlsZFBvc2l0aW9uKSkuYXBwbHlNYXRyaXg0KG1hdHJpeFdvcmxkVG9DZW50ZXIpO1xuICAgICAgICB0aGlzLl9wcmV2VGFpbC5jb3B5KHRoaXMuX2N1cnJlbnRUYWlsKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGlzIGJvbmUuXG4gICAgICogWW91IG1pZ2h0IHdhbnQgdG8gY2FsbCBbW1ZSTVNwcmluZ0JvbmVNYW5hZ2VyLnVwZGF0ZV1dIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVsdGEgZGVsdGFUaW1lXG4gICAgICovXG4gICAgdXBkYXRlKGRlbHRhKSB7XG4gICAgICAgIGlmIChkZWx0YSA8PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBVcGRhdGUgdGhlIF93b3JsZFNwYWNlQm9uZUxlbmd0aFxuICAgICAgICB0aGlzLl9jYWxjV29ybGRTcGFjZUJvbmVMZW5ndGgoKTtcbiAgICAgICAgLy8gR2V0IGJvbmUgcG9zaXRpb24gaW4gY2VudGVyIHNwYWNlXG4gICAgICAgIF93b3JsZFNwYWNlUG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKHRoaXMuYm9uZS5tYXRyaXhXb3JsZCk7XG4gICAgICAgIGxldCBtYXRyaXhXb3JsZFRvQ2VudGVyID0gdGhpcy5fZ2V0TWF0cml4V29ybGRUb0NlbnRlcihfbWF0QSk7XG4gICAgICAgIF9jZW50ZXJTcGFjZVBvc2l0aW9uLmNvcHkoX3dvcmxkU3BhY2VQb3NpdGlvbikuYXBwbHlNYXRyaXg0KG1hdHJpeFdvcmxkVG9DZW50ZXIpO1xuICAgICAgICBjb25zdCBxdWF0V29ybGRUb0NlbnRlciA9IF9xdWF0QS5zZXRGcm9tUm90YXRpb25NYXRyaXgobWF0cml4V29ybGRUb0NlbnRlcik7XG4gICAgICAgIC8vIEdldCBwYXJlbnQgbWF0cml4IGluIGNlbnRlciBzcGFjZVxuICAgICAgICBjb25zdCBjZW50ZXJTcGFjZVBhcmVudE1hdHJpeCA9IF9tYXRCLmNvcHkobWF0cml4V29ybGRUb0NlbnRlcikubXVsdGlwbHkodGhpcy5fcGFyZW50TWF0cml4V29ybGQpO1xuICAgICAgICAvLyBHZXQgYm9uZUF4aXMgaW4gY2VudGVyIHNwYWNlXG4gICAgICAgIGNvbnN0IGNlbnRlclNwYWNlQm9uZUF4aXMgPSBfdjNCXG4gICAgICAgICAgICAuY29weSh0aGlzLl9ib25lQXhpcylcbiAgICAgICAgICAgIC5hcHBseU1hdHJpeDQodGhpcy5faW5pdGlhbExvY2FsTWF0cml4KVxuICAgICAgICAgICAgLmFwcGx5TWF0cml4NChjZW50ZXJTcGFjZVBhcmVudE1hdHJpeClcbiAgICAgICAgICAgIC5zdWIoX2NlbnRlclNwYWNlUG9zaXRpb24pXG4gICAgICAgICAgICAubm9ybWFsaXplKCk7XG4gICAgICAgIC8vIGdyYXZpdHkgaW4gY2VudGVyIHNwYWNlXG4gICAgICAgIGNvbnN0IGNlbnRlclNwYWNlR3Jhdml0eSA9IF92M0MuY29weSh0aGlzLnNldHRpbmdzLmdyYXZpdHlEaXIpLmFwcGx5UXVhdGVybmlvbihxdWF0V29ybGRUb0NlbnRlcikubm9ybWFsaXplKCk7XG4gICAgICAgIGNvbnN0IG1hdHJpeENlbnRlclRvV29ybGQgPSB0aGlzLl9nZXRNYXRyaXhDZW50ZXJUb1dvcmxkKF9tYXRBKTtcbiAgICAgICAgLy8gdmVybGV056mN5YiG44Gn5qyh44Gu5L2N572u44KS6KiI566XXG4gICAgICAgIF9uZXh0VGFpbFxuICAgICAgICAgICAgLmNvcHkodGhpcy5fY3VycmVudFRhaWwpXG4gICAgICAgICAgICAuYWRkKF92M0FcbiAgICAgICAgICAgIC5jb3B5KHRoaXMuX2N1cnJlbnRUYWlsKVxuICAgICAgICAgICAgLnN1Yih0aGlzLl9wcmV2VGFpbClcbiAgICAgICAgICAgIC5tdWx0aXBseVNjYWxhcigxIC0gdGhpcy5zZXR0aW5ncy5kcmFnRm9yY2UpKSAvLyDliY3jg5Xjg6zjg7zjg6Djga7np7vli5XjgpLntpnntprjgZnjgoso5rib6KGw44KC44GC44KL44KIKVxuICAgICAgICAgICAgLmFkZChfdjNBLmNvcHkoY2VudGVyU3BhY2VCb25lQXhpcykubXVsdGlwbHlTY2FsYXIodGhpcy5zZXR0aW5ncy5zdGlmZm5lc3MgKiBkZWx0YSkpIC8vIOimquOBruWbnui7ouOBq+OCiOOCi+WtkOODnOODvOODs+OBruenu+WLleebruaomVxuICAgICAgICAgICAgLmFkZChfdjNBLmNvcHkoY2VudGVyU3BhY2VHcmF2aXR5KS5tdWx0aXBseVNjYWxhcih0aGlzLnNldHRpbmdzLmdyYXZpdHlQb3dlciAqIGRlbHRhKSkgLy8g5aSW5Yqb44Gr44KI44KL56e75YuV6YePXG4gICAgICAgICAgICAuYXBwbHlNYXRyaXg0KG1hdHJpeENlbnRlclRvV29ybGQpOyAvLyB0YWls44KSd29ybGQgc3BhY2XjgavmiLvjgZlcbiAgICAgICAgLy8gbm9ybWFsaXplIGJvbmUgbGVuZ3RoXG4gICAgICAgIF9uZXh0VGFpbC5zdWIoX3dvcmxkU3BhY2VQb3NpdGlvbikubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodGhpcy5fd29ybGRTcGFjZUJvbmVMZW5ndGgpLmFkZChfd29ybGRTcGFjZVBvc2l0aW9uKTtcbiAgICAgICAgLy8gQ29sbGlzaW9u44Gn56e75YuVXG4gICAgICAgIHRoaXMuX2NvbGxpc2lvbihfbmV4dFRhaWwpO1xuICAgICAgICAvLyB1cGRhdGUgcHJldlRhaWwgYW5kIGN1cnJlbnRUYWlsXG4gICAgICAgIG1hdHJpeFdvcmxkVG9DZW50ZXIgPSB0aGlzLl9nZXRNYXRyaXhXb3JsZFRvQ2VudGVyKF9tYXRBKTtcbiAgICAgICAgdGhpcy5fcHJldlRhaWwuY29weSh0aGlzLl9jdXJyZW50VGFpbCk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUYWlsLmNvcHkoX3YzQS5jb3B5KF9uZXh0VGFpbCkuYXBwbHlNYXRyaXg0KG1hdHJpeFdvcmxkVG9DZW50ZXIpKTtcbiAgICAgICAgLy8gQXBwbHkgcm90YXRpb24sIGNvbnZlcnQgdmVjdG9yMyB0aGluZyBpbnRvIGFjdHVhbCBxdWF0ZXJuaW9uXG4gICAgICAgIC8vIE9yaWdpbmFsIFVuaVZSTSBpcyBkb2luZyBjZW50ZXIgdW5pdCBjYWxjdWx1cyBhdCBoZXJlIGJ1dCB3ZSdyZSBnb25uYSBkbyB0aGlzIG9uIGxvY2FsIHVuaXRcbiAgICAgICAgY29uc3Qgd29ybGRTcGFjZUluaXRpYWxNYXRyaXhJbnYgPSBtYXQ0SW52ZXJ0Q29tcGF0KF9tYXRBLmNvcHkodGhpcy5fcGFyZW50TWF0cml4V29ybGQpLm11bHRpcGx5KHRoaXMuX2luaXRpYWxMb2NhbE1hdHJpeCkpO1xuICAgICAgICBjb25zdCBhcHBseVJvdGF0aW9uID0gX3F1YXRBLnNldEZyb21Vbml0VmVjdG9ycyh0aGlzLl9ib25lQXhpcywgX3YzQS5jb3B5KF9uZXh0VGFpbCkuYXBwbHlNYXRyaXg0KHdvcmxkU3BhY2VJbml0aWFsTWF0cml4SW52KS5ub3JtYWxpemUoKSk7XG4gICAgICAgIHRoaXMuYm9uZS5xdWF0ZXJuaW9uLmNvcHkodGhpcy5faW5pdGlhbExvY2FsUm90YXRpb24pLm11bHRpcGx5KGFwcGx5Um90YXRpb24pO1xuICAgICAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSBpdHMgbWF0cml4V29ybGQgbWFudWFsbHksIHNpbmNlIHdlIHR3ZWFrZWQgdGhlIGJvbmUgYnkgb3VyIGhhbmRcbiAgICAgICAgdGhpcy5ib25lLnVwZGF0ZU1hdHJpeCgpO1xuICAgICAgICB0aGlzLmJvbmUubWF0cml4V29ybGQubXVsdGlwbHlNYXRyaWNlcyh0aGlzLl9wYXJlbnRNYXRyaXhXb3JsZCwgdGhpcy5ib25lLm1hdHJpeCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERvIGNvbGxpc2lvbiBtYXRoIGFnYWluc3QgZXZlcnkgY29sbGlkZXJzIGF0dGFjaGVkIHRvIHRoaXMgYm9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YWlsIFRoZSB0YWlsIHlvdSB3YW50IHRvIHByb2Nlc3NcbiAgICAgKi9cbiAgICBfY29sbGlzaW9uKHRhaWwpIHtcbiAgICAgICAgdGhpcy5jb2xsaWRlckdyb3Vwcy5mb3JFYWNoKChjb2xsaWRlckdyb3VwKSA9PiB7XG4gICAgICAgICAgICBjb2xsaWRlckdyb3VwLmNvbGxpZGVycy5mb3JFYWNoKChjb2xsaWRlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3QgPSBjb2xsaWRlci5zaGFwZS5jYWxjdWxhdGVDb2xsaXNpb24oY29sbGlkZXIubWF0cml4V29ybGQsIHRhaWwsIHRoaXMuc2V0dGluZ3MuaGl0UmFkaXVzLCBfdjNBKTtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdCA8IDAuMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBoaXRcbiAgICAgICAgICAgICAgICAgICAgdGFpbC5hZGQoX3YzQS5tdWx0aXBseVNjYWxhcigtZGlzdCkpO1xuICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemUgYm9uZSBsZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgdGFpbC5zdWIoX3dvcmxkU3BhY2VQb3NpdGlvbikubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIodGhpcy5fd29ybGRTcGFjZUJvbmVMZW5ndGgpLmFkZChfd29ybGRTcGFjZVBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSB0aGUge0BsaW5rIF93b3JsZFNwYWNlQm9uZUxlbmd0aH0uXG4gICAgICogSW50ZW5kZWQgdG8gYmUgdXNlZCBpbiB7QGxpbmsgdXBkYXRlfS5cbiAgICAgKi9cbiAgICBfY2FsY1dvcmxkU3BhY2VCb25lTGVuZ3RoKCkge1xuICAgICAgICBfdjNBLnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLmJvbmUubWF0cml4V29ybGQpOyAvLyBnZXQgd29ybGQgcG9zaXRpb24gb2YgdGhpcy5ib25lXG4gICAgICAgIGlmICh0aGlzLmNoaWxkKSB7XG4gICAgICAgICAgICBfdjNCLnNldEZyb21NYXRyaXhQb3NpdGlvbih0aGlzLmNoaWxkLm1hdHJpeFdvcmxkKTsgLy8gZ2V0IHdvcmxkIHBvc2l0aW9uIG9mIHRoaXMuY2hpbGRcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIF92M0IuY29weSh0aGlzLl9pbml0aWFsTG9jYWxDaGlsZFBvc2l0aW9uKTtcbiAgICAgICAgICAgIF92M0IuYXBwbHlNYXRyaXg0KHRoaXMuYm9uZS5tYXRyaXhXb3JsZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fd29ybGRTcGFjZUJvbmVMZW5ndGggPSBfdjNBLnN1YihfdjNCKS5sZW5ndGgoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbWF0cml4IHRoYXQgY29udmVydHMgY2VudGVyIHNwYWNlIGludG8gd29ybGQgc3BhY2UuXG4gICAgICogQHBhcmFtIHRhcmdldCBUYXJnZXQgbWF0cml4XG4gICAgICovXG4gICAgX2dldE1hdHJpeENlbnRlclRvV29ybGQodGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9jZW50ZXIpIHtcbiAgICAgICAgICAgIHRhcmdldC5jb3B5KHRoaXMuX2NlbnRlci5tYXRyaXhXb3JsZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXQuaWRlbnRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBtYXRyaXggdGhhdCBjb252ZXJ0cyB3b3JsZCBzcGFjZSBpbnRvIGNlbnRlciBzcGFjZS5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0IFRhcmdldCBtYXRyaXhcbiAgICAgKi9cbiAgICBfZ2V0TWF0cml4V29ybGRUb0NlbnRlcih0YXJnZXQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NlbnRlcikge1xuICAgICAgICAgICAgdGFyZ2V0LmNvcHkodGhpcy5fY2VudGVyLnVzZXJEYXRhLmludmVyc2VDYWNoZVByb3h5LmludmVyc2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGFyZ2V0LmlkZW50aXR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG5cclxuZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxudHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbn07XG5cbmZ1bmN0aW9uIHRyYXZlcnNlQW5jZXN0b3JzRnJvbVJvb3Qob2JqZWN0LCBjYWxsYmFjaykge1xuICAgIGNvbnN0IGFuY2VzdG9ycyA9IFtdO1xuICAgIGxldCBoZWFkID0gb2JqZWN0O1xuICAgIHdoaWxlIChoZWFkICE9PSBudWxsKSB7XG4gICAgICAgIGFuY2VzdG9ycy51bnNoaWZ0KGhlYWQpO1xuICAgICAgICBoZWFkID0gaGVhZC5wYXJlbnQ7XG4gICAgfVxuICAgIGFuY2VzdG9ycy5mb3JFYWNoKChhbmNlc3RvcikgPT4ge1xuICAgICAgICBjYWxsYmFjayhhbmNlc3Rvcik7XG4gICAgfSk7XG59XG5cbi8qKlxuICogVHJhdmVyc2UgY2hpbGRyZW4gb2YgZ2l2ZW4gb2JqZWN0IGFuZCBleGVjdXRlIGdpdmVuIGNhbGxiYWNrLlxuICogVGhlIGdpdmVuIG9iamVjdCBpdHNlbGYgd29udCBiZSBnaXZlbiB0byB0aGUgY2FsbGJhY2suXG4gKiBJZiB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBjYWxsYmFjayBpcyBgdHJ1ZWAsIGl0IHdpbGwgaGFsdCB0aGUgdHJhdmVyc2FsIG9mIGl0cyBjaGlsZHJlbi5cbiAqIEBwYXJhbSBvYmplY3QgQSByb290IG9iamVjdFxuICogQHBhcmFtIGNhbGxiYWNrIEEgY2FsbGJhY2sgZnVuY3Rpb24gY2FsbGVkIGZvciBlYWNoIGNoaWxkcmVuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlQ2hpbGRyZW5VbnRpbENvbmRpdGlvbk1ldChvYmplY3QsIGNhbGxiYWNrKSB7XG4gICAgb2JqZWN0LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKGNoaWxkKTtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICAgIHRyYXZlcnNlQ2hpbGRyZW5VbnRpbENvbmRpdGlvbk1ldChjaGlsZCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbmNsYXNzIFZSTVNwcmluZ0JvbmVNYW5hZ2VyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fam9pbnRzID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9vYmplY3RTcHJpbmdCb25lc01hcCA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgZ2V0IGpvaW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2pvaW50cztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBqb2ludHN9IGluc3RlYWQuXG4gICAgICovXG4gICAgZ2V0IHNwcmluZ0JvbmVzKCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1ZSTVNwcmluZ0JvbmVNYW5hZ2VyOiBzcHJpbmdCb25lcyBpcyBkZXByZWNhdGVkLiB1c2Ugam9pbnRzIGluc3RlYWQuJyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9qb2ludHM7XG4gICAgfVxuICAgIGdldCBjb2xsaWRlckdyb3VwcygpIHtcbiAgICAgICAgY29uc3Qgc2V0ID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9qb2ludHMuZm9yRWFjaCgoc3ByaW5nQm9uZSkgPT4ge1xuICAgICAgICAgICAgc3ByaW5nQm9uZS5jb2xsaWRlckdyb3Vwcy5mb3JFYWNoKChjb2xsaWRlckdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0LmFkZChjb2xsaWRlckdyb3VwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc2V0KTtcbiAgICB9XG4gICAgZ2V0IGNvbGxpZGVycygpIHtcbiAgICAgICAgY29uc3Qgc2V0ID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLmNvbGxpZGVyR3JvdXBzLmZvckVhY2goKGNvbGxpZGVyR3JvdXApID0+IHtcbiAgICAgICAgICAgIGNvbGxpZGVyR3JvdXAuY29sbGlkZXJzLmZvckVhY2goKGNvbGxpZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0LmFkZChjb2xsaWRlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHNldCk7XG4gICAgfVxuICAgIGFkZEpvaW50KGpvaW50KSB7XG4gICAgICAgIHRoaXMuX2pvaW50cy5hZGQoam9pbnQpO1xuICAgICAgICBsZXQgb2JqZWN0U2V0ID0gdGhpcy5fb2JqZWN0U3ByaW5nQm9uZXNNYXAuZ2V0KGpvaW50LmJvbmUpO1xuICAgICAgICBpZiAob2JqZWN0U2V0ID09IG51bGwpIHtcbiAgICAgICAgICAgIG9iamVjdFNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIHRoaXMuX29iamVjdFNwcmluZ0JvbmVzTWFwLnNldChqb2ludC5ib25lLCBvYmplY3RTZXQpO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdFNldC5hZGQoam9pbnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIGFkZEpvaW50fSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGFkZFNwcmluZ0JvbmUoam9pbnQpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdWUk1TcHJpbmdCb25lTWFuYWdlcjogYWRkU3ByaW5nQm9uZSgpIGlzIGRlcHJlY2F0ZWQuIHVzZSBhZGRKb2ludCgpIGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuYWRkSm9pbnQoam9pbnQpO1xuICAgIH1cbiAgICBkZWxldGVKb2ludChqb2ludCkge1xuICAgICAgICB0aGlzLl9qb2ludHMuZGVsZXRlKGpvaW50KTtcbiAgICAgICAgY29uc3Qgb2JqZWN0U2V0ID0gdGhpcy5fb2JqZWN0U3ByaW5nQm9uZXNNYXAuZ2V0KGpvaW50LmJvbmUpO1xuICAgICAgICBvYmplY3RTZXQuZGVsZXRlKGpvaW50KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBkZWxldGVKb2ludH0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBkZWxldGVTcHJpbmdCb25lKGpvaW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignVlJNU3ByaW5nQm9uZU1hbmFnZXI6IGRlbGV0ZVNwcmluZ0JvbmUoKSBpcyBkZXByZWNhdGVkLiB1c2UgZGVsZXRlSm9pbnQoKSBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLmRlbGV0ZUpvaW50KGpvaW50KTtcbiAgICB9XG4gICAgc2V0SW5pdFN0YXRlKCkge1xuICAgICAgICBjb25zdCBzcHJpbmdCb25lc1RyaWVkID0gbmV3IFNldCgpO1xuICAgICAgICBjb25zdCBzcHJpbmdCb25lc0RvbmUgPSBuZXcgU2V0KCk7XG4gICAgICAgIGNvbnN0IG9iamVjdFVwZGF0ZWQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGZvciAoY29uc3Qgc3ByaW5nQm9uZSBvZiB0aGlzLl9qb2ludHMpIHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTcHJpbmdCb25lKHNwcmluZ0JvbmUsIHNwcmluZ0JvbmVzVHJpZWQsIHNwcmluZ0JvbmVzRG9uZSwgb2JqZWN0VXBkYXRlZCwgKHNwcmluZ0JvbmUpID0+IHNwcmluZ0JvbmUuc2V0SW5pdFN0YXRlKCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICBjb25zdCBzcHJpbmdCb25lc1RyaWVkID0gbmV3IFNldCgpO1xuICAgICAgICBjb25zdCBzcHJpbmdCb25lc0RvbmUgPSBuZXcgU2V0KCk7XG4gICAgICAgIGNvbnN0IG9iamVjdFVwZGF0ZWQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGZvciAoY29uc3Qgc3ByaW5nQm9uZSBvZiB0aGlzLl9qb2ludHMpIHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTcHJpbmdCb25lKHNwcmluZ0JvbmUsIHNwcmluZ0JvbmVzVHJpZWQsIHNwcmluZ0JvbmVzRG9uZSwgb2JqZWN0VXBkYXRlZCwgKHNwcmluZ0JvbmUpID0+IHNwcmluZ0JvbmUucmVzZXQoKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdXBkYXRlKGRlbHRhKSB7XG4gICAgICAgIGNvbnN0IHNwcmluZ0JvbmVzVHJpZWQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGNvbnN0IHNwcmluZ0JvbmVzRG9uZSA9IG5ldyBTZXQoKTtcbiAgICAgICAgY29uc3Qgb2JqZWN0VXBkYXRlZCA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChjb25zdCBzcHJpbmdCb25lIG9mIHRoaXMuX2pvaW50cykge1xuICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBzcHJpbmdib25lXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzU3ByaW5nQm9uZShzcHJpbmdCb25lLCBzcHJpbmdCb25lc1RyaWVkLCBzcHJpbmdCb25lc0RvbmUsIG9iamVjdFVwZGF0ZWQsIChzcHJpbmdCb25lKSA9PiBzcHJpbmdCb25lLnVwZGF0ZShkZWx0YSkpO1xuICAgICAgICAgICAgLy8gdXBkYXRlIGNoaWxkcmVuIHdvcmxkIG1hdHJpY2VzXG4gICAgICAgICAgICAvLyBpdCBpcyByZXF1aXJlZCB3aGVuIHRoZSBzcHJpbmcgYm9uZSBjaGFpbiBpcyBzcGFyc2VcbiAgICAgICAgICAgIHRyYXZlcnNlQ2hpbGRyZW5VbnRpbENvbmRpdGlvbk1ldChzcHJpbmdCb25lLmJvbmUsIChvYmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBvYmplY3QgaGFzIGF0dGFjaGVkIHNwcmluZ2JvbmUsIGhhbHQgdGhlIHRyYXZlcnNhbFxuICAgICAgICAgICAgICAgIGlmICgoKF9iID0gKF9hID0gdGhpcy5fb2JqZWN0U3ByaW5nQm9uZXNNYXAuZ2V0KG9iamVjdCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zaXplKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB1cGRhdGUgaXRzIHdvcmxkIG1hdHJpeFxuICAgICAgICAgICAgICAgIG9iamVjdC51cGRhdGVXb3JsZE1hdHJpeChmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhIHNwcmluZyBib25lLlxuICAgICAqIElmIHRoZXJlIGFyZSBvdGhlciBzcHJpbmcgYm9uZSB0aGF0IGFyZSBkZXBlbmRhbnQsIGl0IHdpbGwgdHJ5IHRvIHVwZGF0ZSB0aGVtIHJlY3Vyc2l2ZWx5LlxuICAgICAqIEl0IHVwZGF0ZXMgbWF0cml4V29ybGQgb2YgYWxsIGFuY2VzdG9ycyBhbmQgbXlzZWxmLlxuICAgICAqIEl0IG1pZ2h0IHRocm93IGFuIGVycm9yIGlmIHRoZXJlIGFyZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gICAgICpcbiAgICAgKiBJbnRlbmRlZCB0byBiZSB1c2VkIGluIHtAbGluayB1cGRhdGV9IGFuZCB7QGxpbmsgX3Byb2Nlc3NTcHJpbmdCb25lfSBpdHNlbGYgcmVjdXJzaXZlbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3ByaW5nQm9uZSBBIHNwcmluZ0JvbmUgeW91IHdhbnQgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIHNwcmluZ0JvbmVzVHJpZWQgU2V0IG9mIHNwcmluZ0JvbmVzIHRoYXQgYXJlIGFscmVhZHkgdHJpZWQgdG8gYmUgdXBkYXRlZFxuICAgICAqIEBwYXJhbSBzcHJpbmdCb25lc0RvbmUgU2V0IG9mIHNwcmluZ0JvbmVzIHRoYXQgYXJlIGFscmVhZHkgdXAgdG8gZGF0ZVxuICAgICAqIEBwYXJhbSBvYmplY3RVcGRhdGVkIFNldCBvZiBvYmplY3QzRCB3aG9zZSBtYXRyaXhXb3JsZCBpcyB1cGRhdGVkXG4gICAgICovXG4gICAgX3Byb2Nlc3NTcHJpbmdCb25lKHNwcmluZ0JvbmUsIHNwcmluZ0JvbmVzVHJpZWQsIHNwcmluZ0JvbmVzRG9uZSwgb2JqZWN0VXBkYXRlZCwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKHNwcmluZ0JvbmVzRG9uZS5oYXMoc3ByaW5nQm9uZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3ByaW5nQm9uZXNUcmllZC5oYXMoc3ByaW5nQm9uZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVlJNU3ByaW5nQm9uZU1hbmFnZXI6IENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWQgd2hpbGUgdXBkYXRpbmcgc3ByaW5nYm9uZXMnKTtcbiAgICAgICAgfVxuICAgICAgICBzcHJpbmdCb25lc1RyaWVkLmFkZChzcHJpbmdCb25lKTtcbiAgICAgICAgY29uc3QgZGVwT2JqZWN0cyA9IHRoaXMuX2dldERlcGVuZGVuY2llcyhzcHJpbmdCb25lKTtcbiAgICAgICAgZm9yIChjb25zdCBkZXBPYmplY3Qgb2YgZGVwT2JqZWN0cykge1xuICAgICAgICAgICAgdHJhdmVyc2VBbmNlc3RvcnNGcm9tUm9vdChkZXBPYmplY3QsIChkZXBPYmplY3RBbmNlc3RvcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9iamVjdFNldCA9IHRoaXMuX29iamVjdFNwcmluZ0JvbmVzTWFwLmdldChkZXBPYmplY3RBbmNlc3Rvcik7XG4gICAgICAgICAgICAgICAgaWYgKG9iamVjdFNldCkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGRlcFNwcmluZ0JvbmUgb2Ygb2JqZWN0U2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcm9jZXNzU3ByaW5nQm9uZShkZXBTcHJpbmdCb25lLCBzcHJpbmdCb25lc1RyaWVkLCBzcHJpbmdCb25lc0RvbmUsIG9iamVjdFVwZGF0ZWQsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICghb2JqZWN0VXBkYXRlZC5oYXMoZGVwT2JqZWN0QW5jZXN0b3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBtYXRyaXggb2Ygbm9uLXNwcmluZ2JvbmVcbiAgICAgICAgICAgICAgICAgICAgZGVwT2JqZWN0QW5jZXN0b3IudXBkYXRlV29ybGRNYXRyaXgoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0VXBkYXRlZC5hZGQoZGVwT2JqZWN0QW5jZXN0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIHVwZGF0ZSBteSBtYXRyaXhcbiAgICAgICAgc3ByaW5nQm9uZS5ib25lLnVwZGF0ZU1hdHJpeCgpO1xuICAgICAgICBzcHJpbmdCb25lLmJvbmUudXBkYXRlV29ybGRNYXRyaXgoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgY2FsbGJhY2soc3ByaW5nQm9uZSk7XG4gICAgICAgIG9iamVjdFVwZGF0ZWQuYWRkKHNwcmluZ0JvbmUuYm9uZSk7XG4gICAgICAgIHNwcmluZ0JvbmVzRG9uZS5hZGQoc3ByaW5nQm9uZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIHNldCBvZiBvYmplY3RzIHRoYXQgYXJlIGRlcGVuZGFudCBvZiBnaXZlbiBzcHJpbmcgYm9uZS5cbiAgICAgKiBAcGFyYW0gc3ByaW5nQm9uZSBBIHNwcmluZyBib25lXG4gICAgICogQHJldHVybiBBIHNldCBvZiBvYmplY3RzIHRoYXQgYXJlIGRlcGVuZGFudCBvZiBnaXZlbiBzcHJpbmcgYm9uZVxuICAgICAqL1xuICAgIF9nZXREZXBlbmRlbmNpZXMoc3ByaW5nQm9uZSkge1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHNwcmluZ0JvbmUuYm9uZS5wYXJlbnQ7XG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgIHNldC5hZGQocGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBzcHJpbmdCb25lLmNvbGxpZGVyR3JvdXBzLmZvckVhY2goKGNvbGxpZGVyR3JvdXApID0+IHtcbiAgICAgICAgICAgIGNvbGxpZGVyR3JvdXAuY29sbGlkZXJzLmZvckVhY2goKGNvbGxpZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0LmFkZChjb2xsaWRlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzZXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFBvc3NpYmxlIHNwZWMgdmVyc2lvbnMgaXQgcmVjb2duaXplcy5cbiAqL1xuY29uc3QgUE9TU0lCTEVfU1BFQ19WRVJTSU9OUyA9IG5ldyBTZXQoWycxLjAnLCAnMS4wLWJldGEnXSk7XG5jbGFzcyBWUk1TcHJpbmdCb25lTG9hZGVyUGx1Z2luIHtcbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIFZSTVNwcmluZ0JvbmVMb2FkZXJQbHVnaW4uRVhURU5TSU9OX05BTUU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcnNlciwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICAgICAgdGhpcy5qb2ludEhlbHBlclJvb3QgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMuam9pbnRIZWxwZXJSb290O1xuICAgICAgICB0aGlzLmNvbGxpZGVySGVscGVyUm9vdCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5jb2xsaWRlckhlbHBlclJvb3Q7XG4gICAgfVxuICAgIGFmdGVyUm9vdChnbHRmKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBnbHRmLnVzZXJEYXRhLnZybVNwcmluZ0JvbmVNYW5hZ2VyID0geWllbGQgdGhpcy5faW1wb3J0KGdsdGYpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW1wb3J0IHNwcmluZyBib25lcyBmcm9tIGEgR0xURiBhbmQgcmV0dXJuIGEge0BsaW5rIFZSTVNwcmluZ0JvbmVNYW5hZ2VyfS5cbiAgICAgKiBJdCBtaWdodCByZXR1cm4gYG51bGxgIGluc3RlYWQgd2hlbiBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGNyZWF0ZWQgb3Igc29tZXRoaW5nIGdvIHdyb25nLlxuICAgICAqXG4gICAgICogQHBhcmFtIGdsdGYgQSBwYXJzZWQgcmVzdWx0IG9mIEdMVEYgdGFrZW4gZnJvbSBHTFRGTG9hZGVyXG4gICAgICovXG4gICAgX2ltcG9ydChnbHRmKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCB2MVJlc3VsdCA9IHlpZWxkIHRoaXMuX3YxSW1wb3J0KGdsdGYpO1xuICAgICAgICAgICAgaWYgKHYxUmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjFSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2MFJlc3VsdCA9IHlpZWxkIHRoaXMuX3YwSW1wb3J0KGdsdGYpO1xuICAgICAgICAgICAgaWYgKHYwUmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdjBSZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MUltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBqc29uID0gZ2x0Zi5wYXJzZXIuanNvbjtcbiAgICAgICAgICAgIC8vIGVhcmx5IGFib3J0IGlmIGl0IGRvZXNuJ3QgdXNlIHNwcmluZyBib25lc1xuICAgICAgICAgICAgY29uc3QgaXNTcHJpbmdCb25lVXNlZCA9ICgoX2EgPSBqc29uLmV4dGVuc2lvbnNVc2VkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5kZXhPZihWUk1TcHJpbmdCb25lTG9hZGVyUGx1Z2luLkVYVEVOU0lPTl9OQU1FKSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKCFpc1NwcmluZ0JvbmVVc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtYW5hZ2VyID0gbmV3IFZSTVNwcmluZ0JvbmVNYW5hZ2VyKCk7XG4gICAgICAgICAgICBjb25zdCB0aHJlZU5vZGVzID0geWllbGQgZ2x0Zi5wYXJzZXIuZ2V0RGVwZW5kZW5jaWVzKCdub2RlJyk7XG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSAoX2IgPSBqc29uLmV4dGVuc2lvbnMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYltWUk1TcHJpbmdCb25lTG9hZGVyUGx1Z2luLkVYVEVOU0lPTl9OQU1FXTtcbiAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzcGVjVmVyc2lvbiA9IGV4dGVuc2lvbi5zcGVjVmVyc2lvbjtcbiAgICAgICAgICAgIGlmICghUE9TU0lCTEVfU1BFQ19WRVJTSU9OUy5oYXMoc3BlY1ZlcnNpb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBWUk1TcHJpbmdCb25lTG9hZGVyUGx1Z2luOiBVbmtub3duICR7VlJNU3ByaW5nQm9uZUxvYWRlclBsdWdpbi5FWFRFTlNJT05fTkFNRX0gc3BlY1ZlcnNpb24gXCIke3NwZWNWZXJzaW9ufVwiYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb2xsaWRlcnMgPSAoX2MgPSBleHRlbnNpb24uY29sbGlkZXJzKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubWFwKChzY2hlbWFDb2xsaWRlciwgaUNvbGxpZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhyZWVOb2Rlc1tzY2hlbWFDb2xsaWRlci5ub2RlXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzY2hlbWFTaGFwZSA9IHNjaGVtYUNvbGxpZGVyLnNoYXBlO1xuICAgICAgICAgICAgICAgIGlmIChzY2hlbWFTaGFwZS5zcGhlcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ltcG9ydFNwaGVyZUNvbGxpZGVyKG5vZGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogbmV3IFRIUkVFLlZlY3RvcjMoKS5mcm9tQXJyYXkoKF9hID0gc2NoZW1hU2hhcGUuc3BoZXJlLm9mZnNldCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogWzAuMCwgMC4wLCAwLjBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGl1czogKF9iID0gc2NoZW1hU2hhcGUuc3BoZXJlLnJhZGl1cykgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMC4wLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2NoZW1hU2hhcGUuY2Fwc3VsZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5faW1wb3J0Q2Fwc3VsZUNvbGxpZGVyKG5vZGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogbmV3IFRIUkVFLlZlY3RvcjMoKS5mcm9tQXJyYXkoKF9jID0gc2NoZW1hU2hhcGUuY2Fwc3VsZS5vZmZzZXQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IFswLjAsIDAuMCwgMC4wXSksXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IChfZCA9IHNjaGVtYVNoYXBlLmNhcHN1bGUucmFkaXVzKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwLjAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWlsOiBuZXcgVEhSRUUuVmVjdG9yMygpLmZyb21BcnJheSgoX2UgPSBzY2hlbWFTaGFwZS5jYXBzdWxlLnRhaWwpICE9PSBudWxsICYmIF9lICE9PSB2b2lkIDAgPyBfZSA6IFswLjAsIDAuMCwgMC4wXSksXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZSTVNwcmluZ0JvbmVMb2FkZXJQbHVnaW46IFRoZSBjb2xsaWRlciAjJHtpQ29sbGlkZXJ9IGhhcyBubyB2YWxpZCBzaGFwZWApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBjb2xsaWRlckdyb3VwcyA9IChfZCA9IGV4dGVuc2lvbi5jb2xsaWRlckdyb3VwcykgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLm1hcCgoc2NoZW1hQ29sbGlkZXJHcm91cCwgaUNvbGxpZGVyR3JvdXApID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgY29scyA9ICgoX2EgPSBzY2hlbWFDb2xsaWRlckdyb3VwLmNvbGxpZGVycykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW10pLm1hcCgoaUNvbGxpZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbCA9IGNvbGxpZGVycyA9PT0gbnVsbCB8fCBjb2xsaWRlcnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbGxpZGVyc1tpQ29sbGlkZXJdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVlJNU3ByaW5nQm9uZUxvYWRlclBsdWdpbjogVGhlIGNvbGxpZGVyR3JvdXAgIyR7aUNvbGxpZGVyR3JvdXB9IGF0dGVtcHRlZCB0byB1c2UgYSBjb2xsaWRlciAjJHtpQ29sbGlkZXJ9IGJ1dCBub3QgZm91bmRgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbGxpZGVyczogY29scyxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogc2NoZW1hQ29sbGlkZXJHcm91cC5uYW1lLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIChfZSA9IGV4dGVuc2lvbi5zcHJpbmdzKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UuZm9yRWFjaCgoc2NoZW1hU3ByaW5nLCBpU3ByaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVtYUpvaW50cyA9IHNjaGVtYVNwcmluZy5qb2ludHM7XG4gICAgICAgICAgICAgICAgLy8gcHJlcGFyZSBjb2xsaWRlcnNcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xsaWRlckdyb3Vwc0ZvclNwcmluZyA9IChfYSA9IHNjaGVtYVNwcmluZy5jb2xsaWRlckdyb3VwcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm1hcCgoaUNvbGxpZGVyR3JvdXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSBjb2xsaWRlckdyb3VwcyA9PT0gbnVsbCB8fCBjb2xsaWRlckdyb3VwcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29sbGlkZXJHcm91cHNbaUNvbGxpZGVyR3JvdXBdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBWUk1TcHJpbmdCb25lTG9hZGVyUGx1Z2luOiBUaGUgc3ByaW5nICMke2lTcHJpbmd9IGF0dGVtcHRlZCB0byB1c2UgYSBjb2xsaWRlckdyb3VwICR7aUNvbGxpZGVyR3JvdXB9IGJ1dCBub3QgZm91bmRgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VudGVyID0gc2NoZW1hU3ByaW5nLmNlbnRlciAhPSBudWxsID8gdGhyZWVOb2Rlc1tzY2hlbWFTcHJpbmcuY2VudGVyXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgcHJldlNjaGVtYUpvaW50O1xuICAgICAgICAgICAgICAgIHNjaGVtYUpvaW50cy5mb3JFYWNoKChzY2hlbWFKb2ludCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldlNjaGVtYUpvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmVwYXJlIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVJbmRleCA9IHByZXZTY2hlbWFKb2ludC5ub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRocmVlTm9kZXNbbm9kZUluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkSW5kZXggPSBzY2hlbWFKb2ludC5ub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSB0aHJlZU5vZGVzW2NoaWxkSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlcGFyZSBzZXR0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpdFJhZGl1czogcHJldlNjaGVtYUpvaW50LmhpdFJhZGl1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnRm9yY2U6IHByZXZTY2hlbWFKb2ludC5kcmFnRm9yY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Jhdml0eVBvd2VyOiBwcmV2U2NoZW1hSm9pbnQuZ3Jhdml0eVBvd2VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWZmbmVzczogcHJldlNjaGVtYUpvaW50LnN0aWZmbmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmF2aXR5RGlyOiBwcmV2U2NoZW1hSm9pbnQuZ3Jhdml0eURpciAhPSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IFRIUkVFLlZlY3RvcjMoKS5mcm9tQXJyYXkocHJldlNjaGVtYUpvaW50LmdyYXZpdHlEaXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBzcHJpbmcgYm9uZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvaW50ID0gdGhpcy5faW1wb3J0Sm9pbnQobm9kZSwgY2hpbGQsIHNldHRpbmcsIGNvbGxpZGVyR3JvdXBzRm9yU3ByaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2ludC5jZW50ZXIgPSBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyLmFkZEpvaW50KGpvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwcmV2U2NoZW1hSm9pbnQgPSBzY2hlbWFKb2ludDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gaW5pdCBzcHJpbmcgYm9uZXNcbiAgICAgICAgICAgIG1hbmFnZXIuc2V0SW5pdFN0YXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gbWFuYWdlcjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF92MEltcG9ydChnbHRmKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QganNvbiA9IGdsdGYucGFyc2VyLmpzb247XG4gICAgICAgICAgICAvLyBlYXJseSBhYm9ydCBpZiBpdCBkb2Vzbid0IHVzZSB2cm1cbiAgICAgICAgICAgIGNvbnN0IGlzVlJNVXNlZCA9ICgoX2EgPSBqc29uLmV4dGVuc2lvbnNVc2VkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5kZXhPZignVlJNJykpICE9PSAtMTtcbiAgICAgICAgICAgIGlmICghaXNWUk1Vc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlYXJseSBhYm9ydCBpZiBpdCBkb2Vzbid0IGhhdmUgYm9uZSBncm91cHNcbiAgICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IChfYiA9IGpzb24uZXh0ZW5zaW9ucykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWydWUk0nXTtcbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYVNlY29uZGFyeUFuaW1hdGlvbiA9IGV4dGVuc2lvbiA9PT0gbnVsbCB8fCBleHRlbnNpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4dGVuc2lvbi5zZWNvbmRhcnlBbmltYXRpb247XG4gICAgICAgICAgICBpZiAoIXNjaGVtYVNlY29uZGFyeUFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hQm9uZUdyb3VwcyA9IHNjaGVtYVNlY29uZGFyeUFuaW1hdGlvbiA9PT0gbnVsbCB8fCBzY2hlbWFTZWNvbmRhcnlBbmltYXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYVNlY29uZGFyeUFuaW1hdGlvbi5ib25lR3JvdXBzO1xuICAgICAgICAgICAgaWYgKCFzY2hlbWFCb25lR3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtYW5hZ2VyID0gbmV3IFZSTVNwcmluZ0JvbmVNYW5hZ2VyKCk7XG4gICAgICAgICAgICBjb25zdCB0aHJlZU5vZGVzID0geWllbGQgZ2x0Zi5wYXJzZXIuZ2V0RGVwZW5kZW5jaWVzKCdub2RlJyk7XG4gICAgICAgICAgICBjb25zdCBjb2xsaWRlckdyb3VwcyA9IChfYyA9IHNjaGVtYVNlY29uZGFyeUFuaW1hdGlvbi5jb2xsaWRlckdyb3VwcykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm1hcCgoc2NoZW1hQ29sbGlkZXJHcm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhyZWVOb2Rlc1tzY2hlbWFDb2xsaWRlckdyb3VwLm5vZGVdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbGxpZGVycyA9ICgoX2EgPSBzY2hlbWFDb2xsaWRlckdyb3VwLmNvbGxpZGVycykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW10pLm1hcCgoc2NoZW1hQ29sbGlkZXIsIGlDb2xsaWRlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoMC4wLCAwLjAsIDAuMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY2hlbWFDb2xsaWRlci5vZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldC5zZXQoKF9hID0gc2NoZW1hQ29sbGlkZXIub2Zmc2V0LngpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDAuMCwgKF9iID0gc2NoZW1hQ29sbGlkZXIub2Zmc2V0LnkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDAuMCwgc2NoZW1hQ29sbGlkZXIub2Zmc2V0LnogPyAtc2NoZW1hQ29sbGlkZXIub2Zmc2V0LnogOiAwLjApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbXBvcnRTcGhlcmVDb2xsaWRlcihub2RlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICByYWRpdXM6IChfYyA9IHNjaGVtYUNvbGxpZGVyLnJhZGl1cykgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMC4wLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb2xsaWRlcnMgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gaW1wb3J0IHNwcmluZyBib25lcyBmb3IgZWFjaCBzcHJpbmcgYm9uZSBncm91cHNcbiAgICAgICAgICAgIHNjaGVtYUJvbmVHcm91cHMgPT09IG51bGwgfHwgc2NoZW1hQm9uZUdyb3VwcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hQm9uZUdyb3Vwcy5mb3JFYWNoKChzY2hlbWFCb25lR3JvdXAsIGlCb25lR3JvdXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb290SW5kaWNlcyA9IHNjaGVtYUJvbmVHcm91cC5ib25lcztcbiAgICAgICAgICAgICAgICBpZiAoIXJvb3RJbmRpY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm9vdEluZGljZXMuZm9yRWFjaCgocm9vdEluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IHRocmVlTm9kZXNbcm9vdEluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJlcGFyZSBzZXR0aW5nXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyYXZpdHlEaXIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2NoZW1hQm9uZUdyb3VwLmdyYXZpdHlEaXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyYXZpdHlEaXIuc2V0KChfYSA9IHNjaGVtYUJvbmVHcm91cC5ncmF2aXR5RGlyLngpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDAuMCwgKF9iID0gc2NoZW1hQm9uZUdyb3VwLmdyYXZpdHlEaXIueSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMC4wLCAoX2MgPSBzY2hlbWFCb25lR3JvdXAuZ3Jhdml0eURpci56KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwLjApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3Jhdml0eURpci5zZXQoMC4wLCAtMS4wLCAwLjApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbnRlciA9IHNjaGVtYUJvbmVHcm91cC5jZW50ZXIgIT0gbnVsbCA/IHRocmVlTm9kZXNbc2NoZW1hQm9uZUdyb3VwLmNlbnRlcl0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaXRSYWRpdXM6IHNjaGVtYUJvbmVHcm91cC5oaXRSYWRpdXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnRm9yY2U6IHNjaGVtYUJvbmVHcm91cC5kcmFnRm9yY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBncmF2aXR5UG93ZXI6IHNjaGVtYUJvbmVHcm91cC5ncmF2aXR5UG93ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGlmZm5lc3M6IHNjaGVtYUJvbmVHcm91cC5zdGlmZmluZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3Jhdml0eURpcixcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJlcGFyZSBjb2xsaWRlcnNcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sbGlkZXJHcm91cHNGb3JTcHJpbmcgPSAoX2QgPSBzY2hlbWFCb25lR3JvdXAuY29sbGlkZXJHcm91cHMpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5tYXAoKGlDb2xsaWRlckdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGNvbGxpZGVyR3JvdXBzID09PSBudWxsIHx8IGNvbGxpZGVyR3JvdXBzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2xsaWRlckdyb3Vwc1tpQ29sbGlkZXJHcm91cF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXAgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVlJNU3ByaW5nQm9uZUxvYWRlclBsdWdpbjogVGhlIHNwcmluZyAjJHtpQm9uZUdyb3VwfSBhdHRlbXB0ZWQgdG8gdXNlIGEgY29sbGlkZXJHcm91cCAke2lDb2xsaWRlckdyb3VwfSBidXQgbm90IGZvdW5kYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgc3ByaW5nIGJvbmVzXG4gICAgICAgICAgICAgICAgICAgIHJvb3QudHJhdmVyc2UoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gKF9hID0gbm9kZS5jaGlsZHJlblswXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvaW50ID0gdGhpcy5faW1wb3J0Sm9pbnQobm9kZSwgY2hpbGQsIHNldHRpbmcsIGNvbGxpZGVyR3JvdXBzRm9yU3ByaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2ludC5jZW50ZXIgPSBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyLmFkZEpvaW50KGpvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGluaXQgc3ByaW5nIGJvbmVzXG4gICAgICAgICAgICBnbHRmLnNjZW5lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XG4gICAgICAgICAgICBtYW5hZ2VyLnNldEluaXRTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfaW1wb3J0Sm9pbnQobm9kZSwgY2hpbGQsIHNldHRpbmcsIGNvbGxpZGVyR3JvdXBzRm9yU3ByaW5nKSB7XG4gICAgICAgIGNvbnN0IHNwcmluZ0JvbmUgPSBuZXcgVlJNU3ByaW5nQm9uZUpvaW50KG5vZGUsIGNoaWxkLCBzZXR0aW5nLCBjb2xsaWRlckdyb3Vwc0ZvclNwcmluZyk7XG4gICAgICAgIGlmICh0aGlzLmpvaW50SGVscGVyUm9vdCkge1xuICAgICAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IFZSTVNwcmluZ0JvbmVKb2ludEhlbHBlcihzcHJpbmdCb25lKTtcbiAgICAgICAgICAgIHRoaXMuam9pbnRIZWxwZXJSb290LmFkZChoZWxwZXIpO1xuICAgICAgICAgICAgaGVscGVyLnJlbmRlck9yZGVyID0gdGhpcy5qb2ludEhlbHBlclJvb3QucmVuZGVyT3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNwcmluZ0JvbmU7XG4gICAgfVxuICAgIF9pbXBvcnRTcGhlcmVDb2xsaWRlcihkZXN0aW5hdGlvbiwgcGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0LCByYWRpdXMgfSA9IHBhcmFtcztcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBuZXcgVlJNU3ByaW5nQm9uZUNvbGxpZGVyU2hhcGVTcGhlcmUoeyBvZmZzZXQsIHJhZGl1cyB9KTtcbiAgICAgICAgY29uc3QgY29sbGlkZXIgPSBuZXcgVlJNU3ByaW5nQm9uZUNvbGxpZGVyKHNoYXBlKTtcbiAgICAgICAgZGVzdGluYXRpb24uYWRkKGNvbGxpZGVyKTtcbiAgICAgICAgaWYgKHRoaXMuY29sbGlkZXJIZWxwZXJSb290KSB7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXIgPSBuZXcgVlJNU3ByaW5nQm9uZUNvbGxpZGVySGVscGVyKGNvbGxpZGVyKTtcbiAgICAgICAgICAgIHRoaXMuY29sbGlkZXJIZWxwZXJSb290LmFkZChoZWxwZXIpO1xuICAgICAgICAgICAgaGVscGVyLnJlbmRlck9yZGVyID0gdGhpcy5jb2xsaWRlckhlbHBlclJvb3QucmVuZGVyT3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxpZGVyO1xuICAgIH1cbiAgICBfaW1wb3J0Q2Fwc3VsZUNvbGxpZGVyKGRlc3RpbmF0aW9uLCBwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgeyBvZmZzZXQsIHJhZGl1cywgdGFpbCB9ID0gcGFyYW1zO1xuICAgICAgICBjb25zdCBzaGFwZSA9IG5ldyBWUk1TcHJpbmdCb25lQ29sbGlkZXJTaGFwZUNhcHN1bGUoeyBvZmZzZXQsIHJhZGl1cywgdGFpbCB9KTtcbiAgICAgICAgY29uc3QgY29sbGlkZXIgPSBuZXcgVlJNU3ByaW5nQm9uZUNvbGxpZGVyKHNoYXBlKTtcbiAgICAgICAgZGVzdGluYXRpb24uYWRkKGNvbGxpZGVyKTtcbiAgICAgICAgaWYgKHRoaXMuY29sbGlkZXJIZWxwZXJSb290KSB7XG4gICAgICAgICAgICBjb25zdCBoZWxwZXIgPSBuZXcgVlJNU3ByaW5nQm9uZUNvbGxpZGVySGVscGVyKGNvbGxpZGVyKTtcbiAgICAgICAgICAgIHRoaXMuY29sbGlkZXJIZWxwZXJSb290LmFkZChoZWxwZXIpO1xuICAgICAgICAgICAgaGVscGVyLnJlbmRlck9yZGVyID0gdGhpcy5jb2xsaWRlckhlbHBlclJvb3QucmVuZGVyT3JkZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxpZGVyO1xuICAgIH1cbn1cblZSTVNwcmluZ0JvbmVMb2FkZXJQbHVnaW4uRVhURU5TSU9OX05BTUUgPSAnVlJNQ19zcHJpbmdCb25lJztcblxuZXhwb3J0IHsgVlJNU3ByaW5nQm9uZUNvbGxpZGVyLCBWUk1TcHJpbmdCb25lQ29sbGlkZXJIZWxwZXIsIFZSTVNwcmluZ0JvbmVDb2xsaWRlclNoYXBlLCBWUk1TcHJpbmdCb25lQ29sbGlkZXJTaGFwZUNhcHN1bGUsIFZSTVNwcmluZ0JvbmVDb2xsaWRlclNoYXBlU3BoZXJlLCBWUk1TcHJpbmdCb25lSm9pbnQsIFZSTVNwcmluZ0JvbmVKb2ludEhlbHBlciwgVlJNU3ByaW5nQm9uZUxvYWRlclBsdWdpbiwgVlJNU3ByaW5nQm9uZU1hbmFnZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEdoeVpXVXRkbkp0TFhOd2NtbHVaMkp2Ym1VdWJXOWtkV3hsTG1weklpd2ljMjkxY21ObGN5STZXeUl1TGk5emNtTXZWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5VTJoaGNHVXVkSE1pTENJdUxpOXpjbU12VmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVUyaGhjR1ZEWVhCemRXeGxMblJ6SWl3aUxpNHZjM0pqTDFaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNsTm9ZWEJsVTNCb1pYSmxMblJ6SWl3aUxpNHZjM0pqTDJobGJIQmxjbk12ZFhScGJITXZRMjlzYkdsa1pYSlRhR0Z3WlVOaGNITjFiR1ZDZFdabVpYSkhaVzl0WlhSeWVTNTBjeUlzSWk0dUwzTnlZeTlvWld4d1pYSnpMM1YwYVd4ekwwTnZiR3hwWkdWeVUyaGhjR1ZUY0dobGNtVkNkV1ptWlhKSFpXOXRaWFJ5ZVM1MGN5SXNJaTR1TDNOeVl5OW9aV3h3WlhKekwxWlNUVk53Y21sdVowSnZibVZEYjJ4c2FXUmxja2hsYkhCbGNpNTBjeUlzSWk0dUwzTnlZeTlvWld4d1pYSnpMM1YwYVd4ekwxTndjbWx1WjBKdmJtVkNkV1ptWlhKSFpXOXRaWFJ5ZVM1MGN5SXNJaTR1TDNOeVl5OW9aV3h3WlhKekwxWlNUVk53Y21sdVowSnZibVZLYjJsdWRFaGxiSEJsY2k1MGN5SXNJaTR1TDNOeVl5OVdVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWEl1ZEhNaUxDSXVMaTl6Y21NdmRYUnBiSE12YldGME5FbHVkbVZ5ZEVOdmJYQmhkQzUwY3lJc0lpNHVMM055WXk5MWRHbHNjeTlOWVhSeWFYZzBTVzUyWlhKelpVTmhZMmhsTG5Seklpd2lMaTR2YzNKakwxWlNUVk53Y21sdVowSnZibVZLYjJsdWRDNTBjeUlzSWk0dUx5NHVMeTR1TDI1dlpHVmZiVzlrZFd4bGN5OTBjMnhwWWk5MGMyeHBZaTVsY3pZdWFuTWlMQ0l1TGk5emNtTXZkWFJwYkhNdmRISmhkbVZ5YzJWQmJtTmxjM1J2Y25OR2NtOXRVbTl2ZEM1MGN5SXNJaTR1TDNOeVl5OTFkR2xzY3k5MGNtRjJaWEp6WlVOb2FXeGtjbVZ1Vlc1MGFXeERiMjVrYVhScGIyNU5aWFF1ZEhNaUxDSXVMaTl6Y21NdlZsSk5VM0J5YVc1blFtOXVaVTFoYm1GblpYSXVkSE1pTENJdUxpOXpjbU12VmxKTlUzQnlhVzVuUW05dVpVeHZZV1JsY2xCc2RXZHBiaTUwY3lKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2RIbHdaU0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibHh1THlvcVhHNGdLaUJTWlhCeVpYTmxiblJ6SUdFZ2MyaGhjR1VnYjJZZ1lTQmpiMnhzYVdSbGNpNWNiaUFxTDF4dVpYaHdiM0owSUdGaWMzUnlZV04wSUdOc1lYTnpJRlpTVFZOd2NtbHVaMEp2Ym1WRGIyeHNhV1JsY2xOb1lYQmxJSHRjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0IwZVhCbElHOW1JSFJvWlNCemFHRndaUzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJoWW5OMGNtRmpkQ0JuWlhRZ2RIbHdaU2dwT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU5oYkdOMWJHRjBaU0JoSUdScGMzUmhibU5sSUdGdVpDQmhJR1JwY21WamRHbHZiaUJtY205dElIUm9aU0JqYjJ4c2FXUmxjaUIwYnlCaElIUmhjbWRsZENCdlltcGxZM1F1WEc0Z0lDQXFJRWwwSjNNZ2FHbDBJR2xtSUhSb1pTQmthWE4wWVc1alpTQnBjeUJ1WldkaGRHbDJaUzVjYmlBZ0lDb2dWR2hsSUdScGNtVmpkR2x2YmlCM2FXeHNJR0psSUdOdmJuUmhhVzVsWkNCcGJpQjBhR1VnWjJsMlpXNGdkR0Z5WjJWMElIWmxZM1J2Y2k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElHTnZiR3hwWkdWeVRXRjBjbWw0SUVFZ2JXRjBjbWw0SUhKbGNISmxjMlZ1ZEhNZ2RHaGxJSFJ5WVc1elptOXliU0J2WmlCMGFHVWdZMjlzYkdsa1pYSmNiaUFnSUNvZ1FIQmhjbUZ0SUc5aWFtVmpkRkJ2YzJsMGFXOXVJRUVnZG1WamRHOXlJSEpsY0hKbGMyVnVkSE1nZEdobElIQnZjMmwwYVc5dUlHOW1JSFJvWlNCMFlYSm5aWFFnYjJKcVpXTjBYRzRnSUNBcUlFQndZWEpoYlNCdlltcGxZM1JTWVdScGRYTWdWR2hsSUhKaFpHbDFjeUJ2WmlCMGFHVWdiMkpxWldOMFhHNGdJQ0FxSUVCd1lYSmhiU0IwWVhKblpYUWdWR2hsSUhKbGMzVnNkQ0JrYVhKbFkzUnBiMjRnZDJsc2JDQmlaU0JqYjI1MFlXbHVaV1FnYVc0Z2RHaHBjeUIyWldOMGIzSmNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmhZbk4wY21GamRDQmpZV3hqZFd4aGRHVkRiMnhzYVhOcGIyNG9YRzRnSUNBZ1kyOXNiR2xrWlhKTllYUnlhWGc2SUZSSVVrVkZMazFoZEhKcGVEUXNYRzRnSUNBZ2IySnFaV04wVUc5emFYUnBiMjQ2SUZSSVVrVkZMbFpsWTNSdmNqTXNYRzRnSUNBZ2IySnFaV04wVW1Ga2FYVnpPaUJ1ZFcxaVpYSXNYRzRnSUNBZ2RHRnlaMlYwT2lCVVNGSkZSUzVXWldOMGIzSXpMRnh1SUNBcE9pQnVkVzFpWlhJN1hHNTlYRzRpTENKcGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdleUJXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhKVGFHRndaU0I5SUdaeWIyMGdKeTR2VmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVUyaGhjR1VuTzF4dVhHNWpiMjV6ZENCZmRqTkJJRDBnYm1WM0lGUklVa1ZGTGxabFkzUnZjak1vS1R0Y2JtTnZibk4wSUY5Mk0wSWdQU0J1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWdwTzF4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVUyaGhjR1ZEWVhCemRXeGxJR1Y0ZEdWdVpITWdWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5VTJoaGNHVWdlMXh1SUNCd2RXSnNhV01nWjJWMElIUjVjR1VvS1RvZ0oyTmhjSE4xYkdVbklIdGNiaUFnSUNCeVpYUjFjbTRnSjJOaGNITjFiR1VuTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGUm9aU0J2Wm1aelpYUWdiMllnZEdobElHaGxZV1FnWm5KdmJTQjBhR1VnYjNKcFoybHVMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJRzltWm5ObGREb2dWRWhTUlVVdVZtVmpkRzl5TXp0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVkdobElHOW1abk5sZENCdlppQjBhR1VnZEdGcGJDQm1jbTl0SUhSb1pTQnZjbWxuYVc0dVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2RHRnBiRG9nVkVoU1JVVXVWbVZqZEc5eU16dGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSEpoWkdsMWN5NWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlZV1JwZFhNNklHNTFiV0psY2p0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvY0dGeVlXMXpQem9nZXlCeVlXUnBkWE0vT2lCdWRXMWlaWEk3SUc5bVpuTmxkRDg2SUZSSVVrVkZMbFpsWTNSdmNqTTdJSFJoYVd3L09pQlVTRkpGUlM1V1pXTjBiM0l6SUgwcElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dVhHNGdJQ0FnZEdocGN5NXZabVp6WlhRZ1BTQndZWEpoYlhNL0xtOW1abk5sZENBL1B5QnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3dMakFzSURBdU1Dd2dNQzR3S1R0Y2JpQWdJQ0IwYUdsekxuUmhhV3dnUFNCd1lYSmhiWE0vTG5SaGFXd2dQejhnYm1WM0lGUklVa1ZGTGxabFkzUnZjak1vTUM0d0xDQXdMakFzSURBdU1DazdYRzRnSUNBZ2RHaHBjeTV5WVdScGRYTWdQU0J3WVhKaGJYTS9MbkpoWkdsMWN5QS9QeUF3TGpBN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyRnNZM1ZzWVhSbFEyOXNiR2x6YVc5dUtGeHVJQ0FnSUdOdmJHeHBaR1Z5VFdGMGNtbDRPaUJVU0ZKRlJTNU5ZWFJ5YVhnMExGeHVJQ0FnSUc5aWFtVmpkRkJ2YzJsMGFXOXVPaUJVU0ZKRlJTNVdaV04wYjNJekxGeHVJQ0FnSUc5aWFtVmpkRkpoWkdsMWN6b2diblZ0WW1WeUxGeHVJQ0FnSUhSaGNtZGxkRG9nVkVoU1JVVXVWbVZqZEc5eU15eGNiaUFnS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0JmZGpOQkxtTnZjSGtvZEdocGN5NXZabVp6WlhRcExtRndjR3g1VFdGMGNtbDROQ2hqYjJ4c2FXUmxjazFoZEhKcGVDazdJQzh2SUhSeVlXNXpabTl5YldWa0lHaGxZV1JjYmlBZ0lDQmZkak5DTG1OdmNIa29kR2hwY3k1MFlXbHNLUzVoY0hCc2VVMWhkSEpwZURRb1kyOXNiR2xrWlhKTllYUnlhWGdwT3lBdkx5QjBjbUZ1YzJadmNtMWxaQ0IwWVdsc1hHNGdJQ0FnWDNZelFpNXpkV0lvWDNZelFTazdJQzh2SUdaeWIyMGdhR1ZoWkNCMGJ5QjBZV2xzWEc0Z0lDQWdZMjl1YzNRZ2JHVnVaM1JvVTNGRFlYQnpkV3hsSUQwZ1gzWXpRaTVzWlc1bmRHaFRjU2dwTzF4dVhHNGdJQ0FnZEdGeVoyVjBMbU52Y0hrb2IySnFaV04wVUc5emFYUnBiMjRwTG5OMVlpaGZkak5CS1RzZ0x5OGdabkp2YlNCb1pXRmtJSFJ2SUc5aWFtVmpkRnh1SUNBZ0lHTnZibk4wSUdSdmRDQTlJRjkyTTBJdVpHOTBLSFJoY21kbGRDazdJQzh2SUdSdmRDQndjbTlrZFdOMElHOW1JRzltWm5ObGRGUnZWR0ZwYkNCaGJtUWdiMlptYzJWMFZHOVBZbXBsWTNSY2JseHVJQ0FnSUdsbUlDaGtiM1FnUEQwZ01DNHdLU0I3WEc0Z0lDQWdJQ0F2THlCcFppQnZZbXBsWTNRZ2FYTWdibVZoY2lCbWNtOXRJSFJvWlNCb1pXRmtYRzRnSUNBZ0lDQXZMeUJrYnlCdWIzUm9hVzVuTENCMWMyVWdkR2hsSUdOMWNuSmxiblFnZG1Gc2RXVWdaR2x5WldOMGJIbGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHeGxibWQwYUZOeFEyRndjM1ZzWlNBOFBTQmtiM1FwSUh0Y2JpQWdJQ0FnSUM4dklHbG1JRzlpYW1WamRDQnBjeUJ1WldGeUlHWnliMjBnZEdobElIUmhhV3hjYmlBZ0lDQWdJSFJoY21kbGRDNXpkV0lvWDNZelFpazdJQzh2SUdaeWIyMGdkR0ZwYkNCMGJ5QnZZbXBsWTNSY2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdMeThnYVdZZ2IySnFaV04wSUdseklHSmxkSGRsWlc0Z2RIZHZJR1Z1WkhOY2JpQWdJQ0FnSUY5Mk0wSXViWFZzZEdsd2JIbFRZMkZzWVhJb1pHOTBJQzhnYkdWdVozUm9VM0ZEWVhCemRXeGxLVHNnTHk4Z1puSnZiU0JvWldGa0lIUnZJSFJvWlNCdVpXRnlaWE4wSUhCdmFXNTBJRzltSUhSb1pTQnphR0ZtZEZ4dUlDQWdJQ0FnZEdGeVoyVjBMbk4xWWloZmRqTkNLVHNnTHk4Z1puSnZiU0IwYUdVZ2MyaGhablFnY0c5cGJuUWdkRzhnYjJKcVpXTjBYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnY21Ga2FYVnpJRDBnYjJKcVpXTjBVbUZrYVhWeklDc2dkR2hwY3k1eVlXUnBkWE03WEc0Z0lDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJVZ1BTQjBZWEpuWlhRdWJHVnVaM1JvS0NrZ0xTQnlZV1JwZFhNN1hHNGdJQ0FnZEdGeVoyVjBMbTV2Y20xaGJHbDZaU2dwTzF4dUlDQWdJSEpsZEhWeWJpQmthWE4wWVc1alpUdGNiaUFnZlZ4dWZWeHVJaXdpYVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIc2dWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5VTJoaGNHVWdmU0JtY205dElDY3VMMVpTVFZOd2NtbHVaMEp2Ym1WRGIyeHNhV1JsY2xOb1lYQmxKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRlpTVFZOd2NtbHVaMEp2Ym1WRGIyeHNhV1JsY2xOb1lYQmxVM0JvWlhKbElHVjRkR1Z1WkhNZ1ZsSk5VM0J5YVc1blFtOXVaVU52Ykd4cFpHVnlVMmhoY0dVZ2UxeHVJQ0J3ZFdKc2FXTWdaMlYwSUhSNWNHVW9LVG9nSjNOd2FHVnlaU2NnZTF4dUlDQWdJSEpsZEhWeWJpQW5jM0JvWlhKbEp6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdVZ2IyWm1jMlYwSUdaeWIyMGdkR2hsSUc5eWFXZHBiaTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ2Wm1aelpYUTZJRlJJVWtWRkxsWmxZM1J2Y2pNN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb1pTQnlZV1JwZFhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2NtRmthWFZ6T2lCdWRXMWlaWEk3WEc1Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSEJoY21GdGN6ODZJSHNnY21Ga2FYVnpQem9nYm5WdFltVnlPeUJ2Wm1aelpYUS9PaUJVU0ZKRlJTNVdaV04wYjNJeklIMHBJSHRjYmlBZ0lDQnpkWEJsY2lncE8xeHVYRzRnSUNBZ2RHaHBjeTV2Wm1aelpYUWdQU0J3WVhKaGJYTS9MbTltWm5ObGRDQS9QeUJ1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWd3TGpBc0lEQXVNQ3dnTUM0d0tUdGNiaUFnSUNCMGFHbHpMbkpoWkdsMWN5QTlJSEJoY21GdGN6OHVjbUZrYVhWeklEOC9JREF1TUR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCallXeGpkV3hoZEdWRGIyeHNhWE5wYjI0b1hHNGdJQ0FnWTI5c2JHbGtaWEpOWVhSeWFYZzZJRlJJVWtWRkxrMWhkSEpwZURRc1hHNGdJQ0FnYjJKcVpXTjBVRzl6YVhScGIyNDZJRlJJVWtWRkxsWmxZM1J2Y2pNc1hHNGdJQ0FnYjJKcVpXTjBVbUZrYVhWek9pQnVkVzFpWlhJc1hHNGdJQ0FnZEdGeVoyVjBPaUJVU0ZKRlJTNVdaV04wYjNJekxGeHVJQ0FwT2lCdWRXMWlaWElnZTF4dUlDQWdJSFJoY21kbGRDNWpiM0I1S0hSb2FYTXViMlptYzJWMEtTNWhjSEJzZVUxaGRISnBlRFFvWTI5c2JHbGtaWEpOWVhSeWFYZ3BPeUF2THlCMGNtRnVjMlp2Y20xbFpDQnZabVp6WlhSY2JpQWdJQ0IwWVhKblpYUXVibVZuWVhSbEtDa3VZV1JrS0c5aWFtVmpkRkJ2YzJsMGFXOXVLVHNnTHk4Z1lTQjJaV04wYjNJZ1puSnZiU0JqYjJ4c2FXUmxjaUJqWlc1MFpYSWdkRzhnYjJKcVpXTjBJSEJ2YzJsMGFXOXVYRzRnSUNBZ1kyOXVjM1FnY21Ga2FYVnpJRDBnYjJKcVpXTjBVbUZrYVhWeklDc2dkR2hwY3k1eVlXUnBkWE03WEc0Z0lDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJVZ1BTQjBZWEpuWlhRdWJHVnVaM1JvS0NrZ0xTQnlZV1JwZFhNN1hHNGdJQ0FnZEdGeVoyVjBMbTV2Y20xaGJHbDZaU2dwTzF4dUlDQWdJSEpsZEhWeWJpQmthWE4wWVc1alpUdGNiaUFnZlZ4dWZWeHVJaXdpYVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIc2dWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5VTJoaGNHVkRZWEJ6ZFd4bElIMGdabkp2YlNBbkxpNHZMaTR2VmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVUyaGhjR1ZEWVhCemRXeGxKenRjYm1sdGNHOXlkQ0I3SUVOdmJHeHBaR1Z5VTJoaGNHVkNkV1ptWlhKSFpXOXRaWFJ5ZVNCOUlHWnliMjBnSnk0dlEyOXNiR2xrWlhKVGFHRndaVUoxWm1abGNrZGxiMjFsZEhKNUp6dGNibHh1WTI5dWMzUWdYM1l6UVNBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkRiMnhzYVdSbGNsTm9ZWEJsUTJGd2MzVnNaVUoxWm1abGNrZGxiMjFsZEhKNUlHVjRkR1Z1WkhNZ1ZFaFNSVVV1UW5WbVptVnlSMlZ2YldWMGNua2dhVzF3YkdWdFpXNTBjeUJEYjJ4c2FXUmxjbE5vWVhCbFFuVm1abVZ5UjJWdmJXVjBjbmtnZTF4dUlDQndkV0pzYVdNZ2QyOXliR1JUWTJGc1pTQTlJREV1TUR0Y2JseHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJRjloZEhSeVVHOXpPaUJVU0ZKRlJTNUNkV1ptWlhKQmRIUnlhV0oxZEdVN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYMkYwZEhKSmJtUmxlRG9nVkVoU1JVVXVRblZtWm1WeVFYUjBjbWxpZFhSbE8xeHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJRjl6YUdGd1pUb2dWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5VTJoaGNHVkRZWEJ6ZFd4bE8xeHVJQ0J3Y21sMllYUmxJRjlqZFhKeVpXNTBVbUZrYVhWeklEMGdNRHRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCZlkzVnljbVZ1ZEU5bVpuTmxkQ0E5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYMk4xY25KbGJuUlVZV2xzSUQwZ2JtVjNJRlJJVWtWRkxsWmxZM1J2Y2pNb0tUdGNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2MyaGhjR1U2SUZaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNsTm9ZWEJsUTJGd2MzVnNaU2tnZTF4dUlDQWdJSE4xY0dWeUtDazdYRzVjYmlBZ0lDQjBhR2x6TGw5emFHRndaU0E5SUhOb1lYQmxPMXh1WEc0Z0lDQWdkR2hwY3k1ZllYUjBjbEJ2Y3lBOUlHNWxkeUJVU0ZKRlJTNUNkV1ptWlhKQmRIUnlhV0oxZEdVb2JtVjNJRVpzYjJGME16SkJjbkpoZVNnek9UWXBMQ0F6S1R0Y2JpQWdJQ0IwYUdsekxuTmxkRUYwZEhKcFluVjBaU2duY0c5emFYUnBiMjRuTENCMGFHbHpMbDloZEhSeVVHOXpLVHRjYmx4dUlDQWdJSFJvYVhNdVgyRjBkSEpKYm1SbGVDQTlJRzVsZHlCVVNGSkZSUzVDZFdabVpYSkJkSFJ5YVdKMWRHVW9ibVYzSUZWcGJuUXhOa0Z5Y21GNUtESTJOQ2tzSURFcE8xeHVJQ0FnSUhSb2FYTXVjMlYwU1c1a1pYZ29kR2hwY3k1ZllYUjBja2x1WkdWNEtUdGNibHh1SUNBZ0lIUm9hWE11WDJKMWFXeGtTVzVrWlhnb0tUdGNiaUFnSUNCMGFHbHpMblZ3WkdGMFpTZ3BPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSFZ3WkdGMFpTZ3BPaUIyYjJsa0lIdGNiaUFnSUNCc1pYUWdjMmh2ZFd4a1ZYQmtZWFJsUjJWdmJXVjBjbmtnUFNCbVlXeHpaVHRjYmx4dUlDQWdJR052Ym5OMElISmhaR2wxY3lBOUlIUm9hWE11WDNOb1lYQmxMbkpoWkdsMWN5QXZJSFJvYVhNdWQyOXliR1JUWTJGc1pUdGNiaUFnSUNCcFppQW9kR2hwY3k1ZlkzVnljbVZ1ZEZKaFpHbDFjeUFoUFQwZ2NtRmthWFZ6S1NCN1hHNGdJQ0FnSUNCMGFHbHpMbDlqZFhKeVpXNTBVbUZrYVhWeklEMGdjbUZrYVhWek8xeHVJQ0FnSUNBZ2MyaHZkV3hrVlhCa1lYUmxSMlZ2YldWMGNua2dQU0IwY25WbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1ZlkzVnljbVZ1ZEU5bVpuTmxkQzVsY1hWaGJITW9kR2hwY3k1ZmMyaGhjR1V1YjJabWMyVjBLU2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZZM1Z5Y21WdWRFOW1abk5sZEM1amIzQjVLSFJvYVhNdVgzTm9ZWEJsTG05bVpuTmxkQ2s3WEc0Z0lDQWdJQ0J6YUc5MWJHUlZjR1JoZEdWSFpXOXRaWFJ5ZVNBOUlIUnlkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2RHRnBiQ0E5SUY5Mk0wRXVZMjl3ZVNoMGFHbHpMbDl6YUdGd1pTNTBZV2xzS1M1a2FYWnBaR1ZUWTJGc1lYSW9kR2hwY3k1M2IzSnNaRk5qWVd4bEtUdGNiaUFnSUNCcFppQW9kR2hwY3k1ZlkzVnljbVZ1ZEZSaGFXd3VaR2x6ZEdGdVkyVlViMU54ZFdGeVpXUW9kR0ZwYkNrZ1BpQXhaUzB4TUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWTNWeWNtVnVkRlJoYVd3dVkyOXdlU2gwWVdsc0tUdGNiaUFnSUNBZ0lITm9iM1ZzWkZWd1pHRjBaVWRsYjIxbGRISjVJRDBnZEhKMVpUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9jMmh2ZFd4a1ZYQmtZWFJsUjJWdmJXVjBjbmtwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYMkoxYVd4a1VHOXphWFJwYjI0b0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOWlkV2xzWkZCdmMybDBhVzl1S0NrNklIWnZhV1FnZTF4dUlDQWdJRjkyTTBFdVkyOXdlU2gwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQ2t1YzNWaUtIUm9hWE11WDJOMWNuSmxiblJQWm1aelpYUXBPMXh1SUNBZ0lHTnZibk4wSUd3Z1BTQmZkak5CTG14bGJtZDBhQ2dwSUM4Z2RHaHBjeTVmWTNWeWNtVnVkRkpoWkdsMWN6dGNibHh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEdzlJREUyT3lCcEt5c3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIUWdQU0FvYVNBdklERTJMakFwSUNvZ1RXRjBhQzVRU1R0Y2JseHVJQ0FnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjeTV6WlhSWVdWb29hU3dnTFUxaGRHZ3VjMmx1S0hRcExDQXRUV0YwYUM1amIzTW9kQ2tzSURBdU1DazdYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlVRzl6TG5ObGRGaFpXaWd4TnlBcklHa3NJR3dnS3lCTllYUm9Mbk5wYmloMEtTd2dUV0YwYUM1amIzTW9kQ2tzSURBdU1DazdYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlVRzl6TG5ObGRGaFpXaWd6TkNBcklHa3NJQzFOWVhSb0xuTnBiaWgwS1N3Z01DNHdMQ0F0VFdGMGFDNWpiM01vZENrcE8xeHVJQ0FnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjeTV6WlhSWVdWb29OVEVnS3lCcExDQnNJQ3NnVFdGMGFDNXphVzRvZENrc0lEQXVNQ3dnVFdGMGFDNWpiM01vZENrcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z016STdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZENBOUlDaHBJQzhnTVRZdU1Da2dLaUJOWVhSb0xsQkpPMXh1SUNBZ0lDQWdkR2hwY3k1ZllYUjBjbEJ2Y3k1elpYUllXVm9vTmpnZ0t5QnBMQ0F3TGpBc0lFMWhkR2d1YzJsdUtIUXBMQ0JOWVhSb0xtTnZjeWgwS1NrN1hHNGdJQ0FnSUNCMGFHbHpMbDloZEhSeVVHOXpMbk5sZEZoWldpZ3hNREFnS3lCcExDQnNMQ0JOWVhSb0xuTnBiaWgwS1N3Z1RXRjBhQzVqYjNNb2RDa3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhSb1pYUmhJRDBnVFdGMGFDNWhkR0Z1TWloZmRqTkJMbmtzSUUxaGRHZ3VjM0Z5ZENoZmRqTkJMbmdnS2lCZmRqTkJMbmdnS3lCZmRqTkJMbm9nS2lCZmRqTkJMbm9wS1R0Y2JpQWdJQ0JqYjI1emRDQndhR2tnUFNBdFRXRjBhQzVoZEdGdU1paGZkak5CTG5vc0lGOTJNMEV1ZUNrN1hHNWNiaUFnSUNCMGFHbHpMbkp2ZEdGMFpWb29kR2hsZEdFcE8xeHVJQ0FnSUhSb2FYTXVjbTkwWVhSbFdTaHdhR2twTzF4dUlDQWdJSFJvYVhNdWMyTmhiR1VvZEdocGN5NWZZM1Z5Y21WdWRGSmhaR2wxY3l3Z2RHaHBjeTVmWTNWeWNtVnVkRkpoWkdsMWN5d2dkR2hwY3k1ZlkzVnljbVZ1ZEZKaFpHbDFjeWs3WEc0Z0lDQWdkR2hwY3k1MGNtRnVjMnhoZEdVb2RHaHBjeTVmWTNWeWNtVnVkRTltWm5ObGRDNTRMQ0IwYUdsekxsOWpkWEp5Wlc1MFQyWm1jMlYwTG5rc0lIUm9hWE11WDJOMWNuSmxiblJQWm1aelpYUXVlaWs3WEc1Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5VUc5ekxtNWxaV1J6VlhCa1lYUmxJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMkoxYVd4a1NXNWtaWGdvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0F6TkRzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnBNU0E5SUNocElDc2dNU2tnSlNBek5EdGNibHh1SUNBZ0lDQWdkR2hwY3k1ZllYUjBja2x1WkdWNExuTmxkRmhaS0drZ0tpQXlMQ0JwTENCcE1TazdYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlTVzVrWlhndWMyVjBXRmtvTmpnZ0t5QnBJQ29nTWl3Z016UWdLeUJwTENBek5DQXJJR2t4S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SURNeU95QnBLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2t4SUQwZ0tHa2dLeUF4S1NBbElETXlPMXh1WEc0Z0lDQWdJQ0IwYUdsekxsOWhkSFJ5U1c1a1pYZ3VjMlYwV0Zrb01UTTJJQ3NnYVNBcUlESXNJRFk0SUNzZ2FTd2dOamdnS3lCcE1TazdYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlTVzVrWlhndWMyVjBXRmtvTWpBd0lDc2dhU0FxSURJc0lERXdNQ0FySUdrc0lERXdNQ0FySUdreEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbDloZEhSeVNXNWtaWGd1Ym1WbFpITlZjR1JoZEdVZ1BTQjBjblZsTzF4dUlDQjlYRzU5WEc0aUxDSnBiWEJ2Y25RZ0tpQmhjeUJVU0ZKRlJTQm1jbTl0SUNkMGFISmxaU2M3WEc1cGJYQnZjblFnZXlCV1VrMVRjSEpwYm1kQ2IyNWxRMjlzYkdsa1pYSlRhR0Z3WlZOd2FHVnlaU0I5SUdaeWIyMGdKeTR1THk0dUwxWlNUVk53Y21sdVowSnZibVZEYjJ4c2FXUmxjbE5vWVhCbFUzQm9aWEpsSnp0Y2JtbHRjRzl5ZENCN0lFTnZiR3hwWkdWeVUyaGhjR1ZDZFdabVpYSkhaVzl0WlhSeWVTQjlJR1p5YjIwZ0p5NHZRMjlzYkdsa1pYSlRhR0Z3WlVKMVptWmxja2RsYjIxbGRISjVKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRU52Ykd4cFpHVnlVMmhoY0dWVGNHaGxjbVZDZFdabVpYSkhaVzl0WlhSeWVTQmxlSFJsYm1SeklGUklVa1ZGTGtKMVptWmxja2RsYjIxbGRISjVJR2x0Y0d4bGJXVnVkSE1nUTI5c2JHbGtaWEpUYUdGd1pVSjFabVpsY2tkbGIyMWxkSEo1SUh0Y2JpQWdjSFZpYkdsaklIZHZjbXhrVTJOaGJHVWdQU0F4TGpBN1hHNWNiaUFnY0hKcGRtRjBaU0J5WldGa2IyNXNlU0JmWVhSMGNsQnZjem9nVkVoU1JVVXVRblZtWm1WeVFYUjBjbWxpZFhSbE8xeHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJRjloZEhSeVNXNWtaWGc2SUZSSVVrVkZMa0oxWm1abGNrRjBkSEpwWW5WMFpUdGNiaUFnY0hKcGRtRjBaU0J5WldGa2IyNXNlU0JmYzJoaGNHVTZJRlpTVFZOd2NtbHVaMEp2Ym1WRGIyeHNhV1JsY2xOb1lYQmxVM0JvWlhKbE8xeHVJQ0J3Y21sMllYUmxJRjlqZFhKeVpXNTBVbUZrYVhWeklEMGdNRHRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCZlkzVnljbVZ1ZEU5bVpuTmxkQ0E5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0hOb1lYQmxPaUJXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhKVGFHRndaVk53YUdWeVpTa2dlMXh1SUNBZ0lITjFjR1Z5S0NrN1hHNWNiaUFnSUNCMGFHbHpMbDl6YUdGd1pTQTlJSE5vWVhCbE8xeHVYRzRnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjeUE5SUc1bGR5QlVTRkpGUlM1Q2RXWm1aWEpCZEhSeWFXSjFkR1VvYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2d6TWlBcUlETWdLaUF6S1N3Z015azdYRzRnSUNBZ2RHaHBjeTV6WlhSQmRIUnlhV0oxZEdVb0ozQnZjMmwwYVc5dUp5d2dkR2hwY3k1ZllYUjBjbEJ2Y3lrN1hHNWNiaUFnSUNCMGFHbHpMbDloZEhSeVNXNWtaWGdnUFNCdVpYY2dWRWhTUlVVdVFuVm1abVZ5UVhSMGNtbGlkWFJsS0c1bGR5QlZhVzUwTVRaQmNuSmhlU2cyTkNBcUlETXBMQ0F4S1R0Y2JpQWdJQ0IwYUdsekxuTmxkRWx1WkdWNEtIUm9hWE11WDJGMGRISkpibVJsZUNrN1hHNWNiaUFnSUNCMGFHbHpMbDlpZFdsc1pFbHVaR1Y0S0NrN1hHNGdJQ0FnZEdocGN5NTFjR1JoZEdVb0tUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QjFjR1JoZEdVb0tUb2dkbTlwWkNCN1hHNGdJQ0FnYkdWMElITm9iM1ZzWkZWd1pHRjBaVWRsYjIxbGRISjVJRDBnWm1Gc2MyVTdYRzVjYmlBZ0lDQmpiMjV6ZENCeVlXUnBkWE1nUFNCMGFHbHpMbDl6YUdGd1pTNXlZV1JwZFhNZ0x5QjBhR2x6TG5kdmNteGtVMk5oYkdVN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WDJOMWNuSmxiblJTWVdScGRYTWdJVDA5SUhKaFpHbDFjeWtnZTF4dUlDQWdJQ0FnZEdocGN5NWZZM1Z5Y21WdWRGSmhaR2wxY3lBOUlISmhaR2wxY3p0Y2JpQWdJQ0FnSUhOb2IzVnNaRlZ3WkdGMFpVZGxiMjFsZEhKNUlEMGdkSEoxWlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WDJOMWNuSmxiblJQWm1aelpYUXVaWEYxWVd4ektIUm9hWE11WDNOb1lYQmxMbTltWm5ObGRDa3BJSHRjYmlBZ0lDQWdJSFJvYVhNdVgyTjFjbkpsYm5SUFptWnpaWFF1WTI5d2VTaDBhR2x6TGw5emFHRndaUzV2Wm1aelpYUXBPMXh1SUNBZ0lDQWdjMmh2ZFd4a1ZYQmtZWFJsUjJWdmJXVjBjbmtnUFNCMGNuVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h6YUc5MWJHUlZjR1JoZEdWSFpXOXRaWFJ5ZVNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWW5WcGJHUlFiM05wZEdsdmJpZ3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMkoxYVd4a1VHOXphWFJwYjI0b0tUb2dkbTlwWkNCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENBek1qc2dhU3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwSUQwZ0tHa2dMeUF4Tmk0d0tTQXFJRTFoZEdndVVFazdYRzVjYmlBZ0lDQWdJSFJvYVhNdVgyRjBkSEpRYjNNdWMyVjBXRmxhS0drc0lFMWhkR2d1WTI5ektIUXBMQ0JOWVhSb0xuTnBiaWgwS1N3Z01DNHdLVHRjYmlBZ0lDQWdJSFJvYVhNdVgyRjBkSEpRYjNNdWMyVjBXRmxhS0RNeUlDc2dhU3dnTUM0d0xDQk5ZWFJvTG1OdmN5aDBLU3dnVFdGMGFDNXphVzRvZENrcE8xeHVJQ0FnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjeTV6WlhSWVdWb29OalFnS3lCcExDQk5ZWFJvTG5OcGJpaDBLU3dnTUM0d0xDQk5ZWFJvTG1OdmN5aDBLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1elkyRnNaU2gwYUdsekxsOWpkWEp5Wlc1MFVtRmthWFZ6TENCMGFHbHpMbDlqZFhKeVpXNTBVbUZrYVhWekxDQjBhR2x6TGw5amRYSnlaVzUwVW1Ga2FYVnpLVHRjYmlBZ0lDQjBhR2x6TG5SeVlXNXpiR0YwWlNoMGFHbHpMbDlqZFhKeVpXNTBUMlptYzJWMExuZ3NJSFJvYVhNdVgyTjFjbkpsYm5SUFptWnpaWFF1ZVN3Z2RHaHBjeTVmWTNWeWNtVnVkRTltWm5ObGRDNTZLVHRjYmx4dUlDQWdJSFJvYVhNdVgyRjBkSEpRYjNNdWJtVmxaSE5WY0dSaGRHVWdQU0IwY25WbE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmZZblZwYkdSSmJtUmxlQ2dwT2lCMmIybGtJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRE15T3lCcEt5c3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHa3hJRDBnS0drZ0t5QXhLU0FsSURNeU8xeHVYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlTVzVrWlhndWMyVjBXRmtvYVNBcUlESXNJR2tzSUdreEtUdGNiaUFnSUNBZ0lIUm9hWE11WDJGMGRISkpibVJsZUM1elpYUllXU2cyTkNBcklHa2dLaUF5TENBek1pQXJJR2tzSURNeUlDc2dhVEVwTzF4dUlDQWdJQ0FnZEdocGN5NWZZWFIwY2tsdVpHVjRMbk5sZEZoWktERXlPQ0FySUdrZ0tpQXlMQ0EyTkNBcklHa3NJRFkwSUNzZ2FURXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUm9hWE11WDJGMGRISkpibVJsZUM1dVpXVmtjMVZ3WkdGMFpTQTlJSFJ5ZFdVN1hHNGdJSDFjYm4xY2JpSXNJbWx0Y0c5eWRDQXFJR0Z6SUZSSVVrVkZJR1p5YjIwZ0ozUm9jbVZsSnp0Y2JtbHRjRzl5ZENCN0lGWlNUVk53Y21sdVowSnZibVZEYjJ4c2FXUmxjaUI5SUdaeWIyMGdKeTR1TDFaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNpYzdYRzVwYlhCdmNuUWdleUJXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhKVGFHRndaVU5oY0hOMWJHVWdmU0JtY205dElDY3VMaTlXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhKVGFHRndaVU5oY0hOMWJHVW5PMXh1YVcxd2IzSjBJSHNnVmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVUyaGhjR1ZUY0dobGNtVWdmU0JtY205dElDY3VMaTlXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhKVGFHRndaVk53YUdWeVpTYzdYRzVwYlhCdmNuUWdleUJEYjJ4c2FXUmxjbE5vWVhCbFFuVm1abVZ5UjJWdmJXVjBjbmtnZlNCbWNtOXRJQ2N1TDNWMGFXeHpMME52Ykd4cFpHVnlVMmhoY0dWQ2RXWm1aWEpIWlc5dFpYUnllU2M3WEc1cGJYQnZjblFnZXlCRGIyeHNhV1JsY2xOb1lYQmxRMkZ3YzNWc1pVSjFabVpsY2tkbGIyMWxkSEo1SUgwZ1puSnZiU0FuTGk5MWRHbHNjeTlEYjJ4c2FXUmxjbE5vWVhCbFEyRndjM1ZzWlVKMVptWmxja2RsYjIxbGRISjVKenRjYm1sdGNHOXlkQ0I3SUVOdmJHeHBaR1Z5VTJoaGNHVlRjR2hsY21WQ2RXWm1aWEpIWlc5dFpYUnllU0I5SUdaeWIyMGdKeTR2ZFhScGJITXZRMjlzYkdsa1pYSlRhR0Z3WlZOd2FHVnlaVUoxWm1abGNrZGxiMjFsZEhKNUp6dGNibHh1WTI5dWMzUWdYM1l6UVNBOUlHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDazdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QldVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWEpJWld4d1pYSWdaWGgwWlc1a2N5QlVTRkpGUlM1SGNtOTFjQ0I3WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCamIyeHNhV1JsY2pvZ1ZsSk5VM0J5YVc1blFtOXVaVU52Ykd4cFpHVnlPMXh1SUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUY5blpXOXRaWFJ5ZVRvZ1EyOXNiR2xrWlhKVGFHRndaVUoxWm1abGNrZGxiMjFsZEhKNU8xeHVJQ0J3Y21sMllYUmxJSEpsWVdSdmJteDVJRjlzYVc1bE9pQlVTRkpGUlM1TWFXNWxVMlZuYldWdWRITTdYRzVjYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtHTnZiR3hwWkdWeU9pQldVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWElwSUh0Y2JpQWdJQ0J6ZFhCbGNpZ3BPMXh1SUNBZ0lIUm9hWE11YldGMGNtbDRRWFYwYjFWd1pHRjBaU0E5SUdaaGJITmxPMXh1WEc0Z0lDQWdkR2hwY3k1amIyeHNhV1JsY2lBOUlHTnZiR3hwWkdWeU8xeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdVkyOXNiR2xrWlhJdWMyaGhjR1VnYVc1emRHRnVZMlZ2WmlCV1VrMVRjSEpwYm1kQ2IyNWxRMjlzYkdsa1pYSlRhR0Z3WlZOd2FHVnlaU2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZaMlZ2YldWMGNua2dQU0J1WlhjZ1EyOXNiR2xrWlhKVGFHRndaVk53YUdWeVpVSjFabVpsY2tkbGIyMWxkSEo1S0hSb2FYTXVZMjlzYkdsa1pYSXVjMmhoY0dVcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RHaHBjeTVqYjJ4c2FXUmxjaTV6YUdGd1pTQnBibk4wWVc1alpXOW1JRlpTVFZOd2NtbHVaMEp2Ym1WRGIyeHNhV1JsY2xOb1lYQmxRMkZ3YzNWc1pTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZloyVnZiV1YwY25rZ1BTQnVaWGNnUTI5c2JHbGtaWEpUYUdGd1pVTmhjSE4xYkdWQ2RXWm1aWEpIWlc5dFpYUnllU2gwYUdsekxtTnZiR3hwWkdWeUxuTm9ZWEJsS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFdVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWEpJWld4d1pYSTZJRlZ1YTI1dmQyNGdZMjlzYkdsa1pYSWdjMmhoY0dVZ2RIbHdaU0JrWlhSbFkzUmxaQ2NwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHMWhkR1Z5YVdGc0lEMGdibVYzSUZSSVVrVkZMa3hwYm1WQ1lYTnBZMDFoZEdWeWFXRnNLSHRjYmlBZ0lDQWdJR052Ykc5eU9pQXdlR1ptTURCbVppeGNiaUFnSUNBZ0lHUmxjSFJvVkdWemREb2dabUZzYzJVc1hHNGdJQ0FnSUNCa1pYQjBhRmR5YVhSbE9pQm1ZV3h6WlN4Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUhSb2FYTXVYMnhwYm1VZ1BTQnVaWGNnVkVoU1JVVXVUR2x1WlZObFoyMWxiblJ6S0hSb2FYTXVYMmRsYjIxbGRISjVMQ0J0WVhSbGNtbGhiQ2s3WEc0Z0lDQWdkR2hwY3k1aFpHUW9kR2hwY3k1ZmJHbHVaU2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWkdsemNHOXpaU2dwT2lCMmIybGtJSHRjYmlBZ0lDQjBhR2x6TGw5blpXOXRaWFJ5ZVM1a2FYTndiM05sS0NrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2RYQmtZWFJsVFdGMGNtbDRWMjl5YkdRb1ptOXlZMlU2SUdKdmIyeGxZVzRwT2lCMmIybGtJSHRjYmlBZ0lDQjBhR2x6TG1OdmJHeHBaR1Z5TG5Wd1pHRjBaVmR2Y214a1RXRjBjbWw0S0hSeWRXVXNJR1poYkhObEtUdGNibHh1SUNBZ0lIUm9hWE11YldGMGNtbDRMbU52Y0hrb2RHaHBjeTVqYjJ4c2FXUmxjaTV0WVhSeWFYaFhiM0pzWkNrN1hHNWNiaUFnSUNCamIyNXpkQ0J0WVhSeWFYaFhiM0pzWkVWc1pXMWxiblJ6SUQwZ2RHaHBjeTV0WVhSeWFYZ3VaV3hsYldWdWRITTdYRzRnSUNBZ2RHaHBjeTVmWjJWdmJXVjBjbmt1ZDI5eWJHUlRZMkZzWlNBOUlGOTJNMEZjYmlBZ0lDQWdJQzV6WlhRb2JXRjBjbWw0VjI5eWJHUkZiR1Z0Wlc1MGMxc3dYU3dnYldGMGNtbDRWMjl5YkdSRmJHVnRaVzUwYzFzeFhTd2diV0YwY21sNFYyOXliR1JGYkdWdFpXNTBjMXN5WFNsY2JpQWdJQ0FnSUM1c1pXNW5kR2dvS1RzZ0x5OGdZMkZzWTNWc1lYUmxJSE5qWVd4bElHOW1JSGdnWTI5dGNHOXVaVzUwWEc1Y2JpQWdJQ0IwYUdsekxsOW5aVzl0WlhSeWVTNTFjR1JoZEdVb0tUdGNibHh1SUNBZ0lITjFjR1Z5TG5Wd1pHRjBaVTFoZEhKcGVGZHZjbXhrS0dadmNtTmxLVHRjYmlBZ2ZWeHVmVnh1SWl3aWFXMXdiM0owSUNvZ1lYTWdWRWhTUlVVZ1puSnZiU0FuZEdoeVpXVW5PMXh1YVcxd2IzSjBJSHNnVmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwSUgwZ1puSnZiU0FuTGk0dkxpNHZWbEpOVTNCeWFXNW5RbTl1WlVwdmFXNTBKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRk53Y21sdVowSnZibVZDZFdabVpYSkhaVzl0WlhSeWVTQmxlSFJsYm1SeklGUklVa1ZGTGtKMVptWmxja2RsYjIxbGRISjVJSHRjYmlBZ2NIVmliR2xqSUhkdmNteGtVMk5oYkdVZ1BTQXhMakE3WEc1Y2JpQWdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQmZZWFIwY2xCdmN6b2dWRWhTUlVVdVFuVm1abVZ5UVhSMGNtbGlkWFJsTzF4dUlDQndjbWwyWVhSbElISmxZV1J2Ym14NUlGOWhkSFJ5U1c1a1pYZzZJRlJJVWtWRkxrSjFabVpsY2tGMGRISnBZblYwWlR0Y2JpQWdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQmZjM0J5YVc1blFtOXVaVG9nVmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwTzF4dUlDQndjbWwyWVhSbElGOWpkWEp5Wlc1MFVtRmthWFZ6SUQwZ01EdGNiaUFnY0hKcGRtRjBaU0J5WldGa2IyNXNlU0JmWTNWeWNtVnVkRlJoYVd3Z1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaHpjSEpwYm1kQ2IyNWxPaUJXVWsxVGNISnBibWRDYjI1bFNtOXBiblFwSUh0Y2JpQWdJQ0J6ZFhCbGNpZ3BPMXh1WEc0Z0lDQWdkR2hwY3k1ZmMzQnlhVzVuUW05dVpTQTlJSE53Y21sdVowSnZibVU3WEc1Y2JpQWdJQ0IwYUdsekxsOWhkSFJ5VUc5eklEMGdibVYzSUZSSVVrVkZMa0oxWm1abGNrRjBkSEpwWW5WMFpTaHVaWGNnUm14dllYUXpNa0Z5Y21GNUtESTVOQ2tzSURNcE8xeHVJQ0FnSUhSb2FYTXVjMlYwUVhSMGNtbGlkWFJsS0Nkd2IzTnBkR2x2Ymljc0lIUm9hWE11WDJGMGRISlFiM01wTzF4dVhHNGdJQ0FnZEdocGN5NWZZWFIwY2tsdVpHVjRJRDBnYm1WM0lGUklVa1ZGTGtKMVptWmxja0YwZEhKcFluVjBaU2h1WlhjZ1ZXbHVkREUyUVhKeVlYa29NVGswS1N3Z01TazdYRzRnSUNBZ2RHaHBjeTV6WlhSSmJtUmxlQ2gwYUdsekxsOWhkSFJ5U1c1a1pYZ3BPMXh1WEc0Z0lDQWdkR2hwY3k1ZlluVnBiR1JKYm1SbGVDZ3BPMXh1SUNBZ0lIUm9hWE11ZFhCa1lYUmxLQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nZFhCa1lYUmxLQ2s2SUhadmFXUWdlMXh1SUNBZ0lHeGxkQ0J6YUc5MWJHUlZjR1JoZEdWSFpXOXRaWFJ5ZVNBOUlHWmhiSE5sTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbUZrYVhWeklEMGdkR2hwY3k1ZmMzQnlhVzVuUW05dVpTNXpaWFIwYVc1bmN5NW9hWFJTWVdScGRYTWdMeUIwYUdsekxuZHZjbXhrVTJOaGJHVTdYRzRnSUNBZ2FXWWdLSFJvYVhNdVgyTjFjbkpsYm5SU1lXUnBkWE1nSVQwOUlISmhaR2wxY3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmWTNWeWNtVnVkRkpoWkdsMWN5QTlJSEpoWkdsMWN6dGNiaUFnSUNBZ0lITm9iM1ZzWkZWd1pHRjBaVWRsYjIxbGRISjVJRDBnZEhKMVpUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9JWFJvYVhNdVgyTjFjbkpsYm5SVVlXbHNMbVZ4ZFdGc2N5aDBhR2x6TGw5emNISnBibWRDYjI1bExtbHVhWFJwWVd4TWIyTmhiRU5vYVd4a1VHOXphWFJwYjI0cEtTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5amRYSnlaVzUwVkdGcGJDNWpiM0I1S0hSb2FYTXVYM053Y21sdVowSnZibVV1YVc1cGRHbGhiRXh2WTJGc1EyaHBiR1JRYjNOcGRHbHZiaWs3WEc0Z0lDQWdJQ0J6YUc5MWJHUlZjR1JoZEdWSFpXOXRaWFJ5ZVNBOUlIUnlkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hOb2IzVnNaRlZ3WkdGMFpVZGxiMjFsZEhKNUtTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5aWRXbHNaRkJ2YzJsMGFXOXVLQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JmWW5WcGJHUlFiM05wZEdsdmJpZ3BPaUIyYjJsa0lIdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElETXlPeUJwS3lzcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhRZ1BTQW9hU0F2SURFMkxqQXBJQ29nVFdGMGFDNVFTVHRjYmx4dUlDQWdJQ0FnZEdocGN5NWZZWFIwY2xCdmN5NXpaWFJZV1Zvb2FTd2dUV0YwYUM1amIzTW9kQ2tzSUUxaGRHZ3VjMmx1S0hRcExDQXdMakFwTzF4dUlDQWdJQ0FnZEdocGN5NWZZWFIwY2xCdmN5NXpaWFJZV1Zvb016SWdLeUJwTENBd0xqQXNJRTFoZEdndVkyOXpLSFFwTENCTllYUm9Mbk5wYmloMEtTazdYRzRnSUNBZ0lDQjBhR2x6TGw5aGRIUnlVRzl6TG5ObGRGaFpXaWcyTkNBcklHa3NJRTFoZEdndWMybHVLSFFwTENBd0xqQXNJRTFoZEdndVkyOXpLSFFwS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxuTmpZV3hsS0hSb2FYTXVYMk4xY25KbGJuUlNZV1JwZFhNc0lIUm9hWE11WDJOMWNuSmxiblJTWVdScGRYTXNJSFJvYVhNdVgyTjFjbkpsYm5SU1lXUnBkWE1wTzF4dUlDQWdJSFJvYVhNdWRISmhibk5zWVhSbEtIUm9hWE11WDJOMWNuSmxiblJVWVdsc0xuZ3NJSFJvYVhNdVgyTjFjbkpsYm5SVVlXbHNMbmtzSUhSb2FYTXVYMk4xY25KbGJuUlVZV2xzTG5vcE8xeHVYRzRnSUNBZ2RHaHBjeTVmWVhSMGNsQnZjeTV6WlhSWVdWb29PVFlzSURBc0lEQXNJREFwTzF4dUlDQWdJSFJvYVhNdVgyRjBkSEpRYjNNdWMyVjBXRmxhS0RrM0xDQjBhR2x6TGw5amRYSnlaVzUwVkdGcGJDNTRMQ0IwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQzU1TENCMGFHbHpMbDlqZFhKeVpXNTBWR0ZwYkM1NktUdGNibHh1SUNBZ0lIUm9hWE11WDJGMGRISlFiM011Ym1WbFpITlZjR1JoZEdVZ1BTQjBjblZsTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCZlluVnBiR1JKYm1SbGVDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElETXlPeUJwS3lzcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdreElEMGdLR2tnS3lBeEtTQWxJRE15TzF4dVhHNGdJQ0FnSUNCMGFHbHpMbDloZEhSeVNXNWtaWGd1YzJWMFdGa29hU0FxSURJc0lHa3NJR2t4S1R0Y2JpQWdJQ0FnSUhSb2FYTXVYMkYwZEhKSmJtUmxlQzV6WlhSWVdTZzJOQ0FySUdrZ0tpQXlMQ0F6TWlBcklHa3NJRE15SUNzZ2FURXBPMXh1SUNBZ0lDQWdkR2hwY3k1ZllYUjBja2x1WkdWNExuTmxkRmhaS0RFeU9DQXJJR2tnS2lBeUxDQTJOQ0FySUdrc0lEWTBJQ3NnYVRFcE8xeHVJQ0FnSUgxY2JpQWdJQ0IwYUdsekxsOWhkSFJ5U1c1a1pYZ3VjMlYwV0Zrb01Ua3lMQ0E1Tml3Z09UY3BPMXh1WEc0Z0lDQWdkR2hwY3k1ZllYUjBja2x1WkdWNExtNWxaV1J6VlhCa1lYUmxJRDBnZEhKMVpUdGNiaUFnZlZ4dWZWeHVJaXdpYVcxd2IzSjBJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVhVzF3YjNKMElIc2dWbEpOVTNCeWFXNW5RbTl1WlVwdmFXNTBJSDBnWm5KdmJTQW5MaTR2VmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwSnp0Y2JtbHRjRzl5ZENCN0lGTndjbWx1WjBKdmJtVkNkV1ptWlhKSFpXOXRaWFJ5ZVNCOUlHWnliMjBnSnk0dmRYUnBiSE12VTNCeWFXNW5RbTl1WlVKMVptWmxja2RsYjIxbGRISjVKenRjYmx4dVkyOXVjM1FnWDNZelFTQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLQ2s3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJXVWsxVGNISnBibWRDYjI1bFNtOXBiblJJWld4d1pYSWdaWGgwWlc1a2N5QlVTRkpGUlM1SGNtOTFjQ0I3WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCemNISnBibWRDYjI1bE9pQldVazFUY0hKcGJtZENiMjVsU205cGJuUTdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWDJkbGIyMWxkSEo1T2lCVGNISnBibWRDYjI1bFFuVm1abVZ5UjJWdmJXVjBjbms3WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1gyeHBibVU2SUZSSVVrVkZMa3hwYm1WVFpXZHRaVzUwY3p0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvYzNCeWFXNW5RbTl1WlRvZ1ZsSk5VM0J5YVc1blFtOXVaVXB2YVc1MEtTQjdYRzRnSUNBZ2MzVndaWElvS1R0Y2JpQWdJQ0IwYUdsekxtMWhkSEpwZUVGMWRHOVZjR1JoZEdVZ1BTQm1ZV3h6WlR0Y2JseHVJQ0FnSUhSb2FYTXVjM0J5YVc1blFtOXVaU0E5SUhOd2NtbHVaMEp2Ym1VN1hHNWNiaUFnSUNCMGFHbHpMbDluWlc5dFpYUnllU0E5SUc1bGR5QlRjSEpwYm1kQ2IyNWxRblZtWm1WeVIyVnZiV1YwY25rb2RHaHBjeTV6Y0hKcGJtZENiMjVsS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzFoZEdWeWFXRnNJRDBnYm1WM0lGUklVa1ZGTGt4cGJtVkNZWE5wWTAxaGRHVnlhV0ZzS0h0Y2JpQWdJQ0FnSUdOdmJHOXlPaUF3ZUdabVptWXdNQ3hjYmlBZ0lDQWdJR1JsY0hSb1ZHVnpkRG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQmtaWEIwYUZkeWFYUmxPaUJtWVd4elpTeGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lIUm9hWE11WDJ4cGJtVWdQU0J1WlhjZ1ZFaFNSVVV1VEdsdVpWTmxaMjFsYm5SektIUm9hWE11WDJkbGIyMWxkSEo1TENCdFlYUmxjbWxoYkNrN1hHNGdJQ0FnZEdocGN5NWhaR1FvZEdocGN5NWZiR2x1WlNrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1pHbHpjRzl6WlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxsOW5aVzl0WlhSeWVTNWthWE53YjNObEtDazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdkWEJrWVhSbFRXRjBjbWw0VjI5eWJHUW9abTl5WTJVNklHSnZiMnhsWVc0cE9pQjJiMmxrSUh0Y2JpQWdJQ0IwYUdsekxuTndjbWx1WjBKdmJtVXVZbTl1WlM1MWNHUmhkR1ZYYjNKc1pFMWhkSEpwZUNoMGNuVmxMQ0JtWVd4elpTazdYRzVjYmlBZ0lDQjBhR2x6TG0xaGRISnBlQzVqYjNCNUtIUm9hWE11YzNCeWFXNW5RbTl1WlM1aWIyNWxMbTFoZEhKcGVGZHZjbXhrS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzFoZEhKcGVGZHZjbXhrUld4bGJXVnVkSE1nUFNCMGFHbHpMbTFoZEhKcGVDNWxiR1Z0Wlc1MGN6dGNiaUFnSUNCMGFHbHpMbDluWlc5dFpYUnllUzUzYjNKc1pGTmpZV3hsSUQwZ1gzWXpRVnh1SUNBZ0lDQWdMbk5sZENodFlYUnlhWGhYYjNKc1pFVnNaVzFsYm5Seld6QmRMQ0J0WVhSeWFYaFhiM0pzWkVWc1pXMWxiblJ6V3pGZExDQnRZWFJ5YVhoWGIzSnNaRVZzWlcxbGJuUnpXekpkS1Z4dUlDQWdJQ0FnTG14bGJtZDBhQ2dwT3lBdkx5QmpZV3hqZFd4aGRHVWdjMk5oYkdVZ2IyWWdlQ0JqYjIxd2IyNWxiblJjYmx4dUlDQWdJSFJvYVhNdVgyZGxiMjFsZEhKNUxuVndaR0YwWlNncE8xeHVYRzRnSUNBZ2MzVndaWEl1ZFhCa1lYUmxUV0YwY21sNFYyOXliR1FvWm05eVkyVXBPMXh1SUNCOVhHNTlYRzRpTENKcGJYQnZjblFnS2lCaGN5QlVTRkpGUlNCbWNtOXRJQ2QwYUhKbFpTYzdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGWlNUVk53Y21sdVowSnZibVZEYjJ4c2FXUmxjbE5vWVhCbElIMGdabkp2YlNBbkxpOVdVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWEpUYUdGd1pTYzdYRzVjYmk4cUtseHVJQ29nVW1Wd2NtVnpaVzUwY3lCaElHTnZiR3hwWkdWeUlHOW1JR0VnVmxKTkxseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5SUdWNGRHVnVaSE1nVkVoU1JVVXVUMkpxWldOME0wUWdlMXh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJSE5vWVhCbElHOW1JSFJvWlNCamIyeHNhV1JsY2k1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCeVpXRmtiMjVzZVNCemFHRndaVG9nVmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVUyaGhjR1U3WEc1Y2JpQWdjSFZpYkdsaklHTnZibk4wY25WamRHOXlLSE5vWVhCbE9pQldVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWEpUYUdGd1pTa2dlMXh1SUNBZ0lITjFjR1Z5S0NrN1hHNWNiaUFnSUNCMGFHbHpMbk5vWVhCbElEMGdjMmhoY0dVN1hHNGdJSDFjYm4xY2JpSXNJbWx0Y0c5eWRDQXFJR0Z6SUZSSVVrVkZJR1p5YjIwZ0ozUm9jbVZsSnp0Y2JseHVZMjl1YzNRZ1gyMWhkRUVnUFNCdVpYY2dWRWhTUlVVdVRXRjBjbWw0TkNncE8xeHVYRzR2S2lwY2JpQXFJRUVnWTI5dGNHRjBJR1oxYm1OMGFXOXVJR1p2Y2lCZ1RXRjBjbWw0TkM1cGJuWmxjblFvS1dBZ0x5QmdUV0YwY21sNE5DNW5aWFJKYm5abGNuTmxLQ2xnTGx4dUlDb2dZRTFoZEhKcGVEUXVhVzUyWlhKMEtDbGdJR2x6SUdsdWRISnZaSFZqWldRZ2FXNGdjakV5TXlCaGJtUWdZRTFoZEhKcGVEUXVaMlYwU1c1MlpYSnpaU2dwWUNCbGJXbDBjeUJoSUhkaGNtNXBibWN1WEc0Z0tpQlhaU0JoY21VZ1oyOXBibWNnZEc4Z2RYTmxJSFJvYVhNZ1kyOXRjR0YwSUdadmNpQmhJSGRvYVd4bExseHVJQ29nUUhCaGNtRnRJSFJoY21kbGRDQkJJSFJoY21kbGRDQnRZWFJ5YVhoY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzFoZERSSmJuWmxjblJEYjIxd1lYUThWQ0JsZUhSbGJtUnpJRlJJVWtWRkxrMWhkSEpwZURRK0tIUmhjbWRsZERvZ1ZDazZJRlFnZTF4dUlDQnBaaUFvS0hSaGNtZGxkQ0JoY3lCaGJua3BMbWx1ZG1WeWRDa2dlMXh1SUNBZ0lIUmhjbWRsZEM1cGJuWmxjblFvS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNBb2RHRnlaMlYwSUdGeklHRnVlU2t1WjJWMFNXNTJaWEp6WlNoZmJXRjBRUzVqYjNCNUtIUmhjbWRsZENrcE8xeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlIUmhjbWRsZER0Y2JuMWNiaUlzSW1sdGNHOXlkQ0FxSUdGeklGUklVa1ZGSUdaeWIyMGdKM1JvY21WbEp6dGNibWx0Y0c5eWRDQjdJRzFoZERSSmJuWmxjblJEYjIxd1lYUWdmU0JtY205dElDY3VMMjFoZERSSmJuWmxjblJEYjIxd1lYUW5PMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdUV0YwY21sNE5FbHVkbVZ5YzJWRFlXTm9aU0I3WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR1VnZEdGeVoyVjBJRzFoZEhKcGVDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQnRZWFJ5YVhnNklGUklVa1ZGTGsxaGRISnBlRFE3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnWTJGamFHVWdiMllnYVc1MlpYSnpaU0J2WmlCamRYSnlaVzUwSUcxaGRISnBlQzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWDJsdWRtVnljMlZEWVdOb1pTQTlJRzVsZHlCVVNGSkZSUzVOWVhSeWFYZzBLQ2s3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUVnWm14aFp5QjBhR0YwSUcxaGEyVnpJR2wwSUhkaGJuUWdkRzhnY21WallXeGpkV3hoZEdVZ2FYUnpJSHRBYkdsdWF5QmZhVzUyWlhKelpVTmhZMmhsZlM1Y2JpQWdJQ29nVjJsc2JDQmlaU0J6WlhRZ1lIUnlkV1ZnSUhkb1pXNGdZR1ZzWlcxbGJuUnpZQ0JoY21VZ2JYVjBZWFJsWkNCaGJtUWdZbVVnZFhObFpDQnBiaUJnWjJWMFNXNTJaWEp6WldBdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOXphRzkxYkdSVmNHUmhkR1ZKYm5abGNuTmxJRDBnZEhKMVpUdGNibHh1SUNBdktpcGNiaUFnSUNvZ1ZHaGxJRzl5YVdkcGJtRnNJRzltSUdCdFlYUnlhWGd1Wld4bGJXVnVkSE5nWEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUY5dmNtbG5hVzVoYkVWc1pXMWxiblJ6T2lCdWRXMWlaWEpiWFR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nU1c1MlpYSnpaU0J2WmlCbmFYWmxiaUJ0WVhSeWFYZ3VYRzRnSUNBcUlFNXZkR1VnZEdoaGRDQnBkQ0IzYVd4c0lISmxkSFZ5YmlCcGRITWdhVzUwWlhKdVlXd2djSEpwZG1GMFpTQnBibk4wWVc1alpTNWNiaUFnSUNvZ1RXRnJaU0J6ZFhKbElHTnZjSGxwYm1jZ2RHaHBjeUJpWldadmNtVWdiWFYwWVhSbElIUm9hWE11WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMElHbHVkbVZ5YzJVb0tUb2dWRWhTUlVVdVRXRjBjbWw0TkNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WDNOb2IzVnNaRlZ3WkdGMFpVbHVkbVZ5YzJVcElIdGNiaUFnSUNBZ0lIUm9hWE11WDJsdWRtVnljMlZEWVdOb1pTNWpiM0I1S0hSb2FYTXViV0YwY21sNEtUdGNiaUFnSUNBZ0lHMWhkRFJKYm5abGNuUkRiMjF3WVhRb2RHaHBjeTVmYVc1MlpYSnpaVU5oWTJobEtUdGNiaUFnSUNBZ0lIUm9hWE11WDNOb2IzVnNaRlZ3WkdGMFpVbHVkbVZ5YzJVZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmFXNTJaWEp6WlVOaFkyaGxPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR052Ym5OMGNuVmpkRzl5S0cxaGRISnBlRG9nVkVoU1JVVXVUV0YwY21sNE5Da2dlMXh1SUNBZ0lIUm9hWE11YldGMGNtbDRJRDBnYldGMGNtbDRPMXh1WEc0Z0lDQWdZMjl1YzNRZ2FHRnVaR3hsY2pvZ1VISnZlSGxJWVc1a2JHVnlQRzUxYldKbGNsdGRQaUE5SUh0Y2JpQWdJQ0FnSUhObGREb2dLRzlpYWl3Z2NISnZjRG9nWVc1NUxDQnVaWGRXWVd3cElEMCtJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZjMmh2ZFd4a1ZYQmtZWFJsU1c1MlpYSnpaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJRzlpYWx0d2NtOXdYU0E5SUc1bGQxWmhiRHRjYmx4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lIUm9hWE11WDI5eWFXZHBibUZzUld4bGJXVnVkSE1nUFNCdFlYUnlhWGd1Wld4bGJXVnVkSE03WEc0Z0lDQWdiV0YwY21sNExtVnNaVzFsYm5SeklEMGdibVYzSUZCeWIzaDVLRzFoZEhKcGVDNWxiR1Z0Wlc1MGN5d2dhR0Z1Wkd4bGNpazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdjbVYyWlhKMEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUhSb2FYTXViV0YwY21sNExtVnNaVzFsYm5SeklEMGdkR2hwY3k1ZmIzSnBaMmx1WVd4RmJHVnRaVzUwY3p0Y2JpQWdmVnh1ZlZ4dUlpd2lhVzF3YjNKMElDb2dZWE1nVkVoU1JVVWdabkp2YlNBbmRHaHlaV1VuTzF4dWFXMXdiM0owSUhzZ2JXRjBORWx1ZG1WeWRFTnZiWEJoZENCOUlHWnliMjBnSnk0dmRYUnBiSE12YldGME5FbHVkbVZ5ZEVOdmJYQmhkQ2M3WEc1cGJYQnZjblFnZXlCTllYUnlhWGcwU1c1MlpYSnpaVU5oWTJobElIMGdabkp2YlNBbkxpOTFkR2xzY3k5TllYUnlhWGcwU1c1MlpYSnpaVU5oWTJobEp6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5VM0J5YVc1blFtOXVaVU52Ykd4cFpHVnlSM0p2ZFhBZ2ZTQm1jbTl0SUNjdUwxWlNUVk53Y21sdVowSnZibVZEYjJ4c2FXUmxja2R5YjNWd0p6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5VM0J5YVc1blFtOXVaVXB2YVc1MFUyVjBkR2x1WjNNZ2ZTQm1jbTl0SUNjdUwxWlNUVk53Y21sdVowSnZibVZLYjJsdWRGTmxkSFJwYm1kekp6dGNibHh1THk4Z1ltRnpaV1FnYjI1Y2JpOHZJR2gwZEhBNkx5OXliMk5yWlhScWRXMXdMbk5yY2k1cWNDOTFibWwwZVROa0x6RXdPUzljYmk4dklHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOWtkMkZ1WjI4dlZXNXBWbEpOTDJKc2IySXZiV0Z6ZEdWeUwxTmpjbWx3ZEhNdlUzQnlhVzVuUW05dVpTOVdVazFUY0hKcGJtZENiMjVsTG1OelhHNWNibU52Ym5OMElFbEVSVTVVU1ZSWlgwMUJWRkpKV0RRZ1BTQnVaWGNnVkVoU1JVVXVUV0YwY21sNE5DZ3BPMXh1WEc0dkx5RG9xSWpucnBma3VLM2pnYTdrdUlEbW1ZTGt2NTNsclpqbmxLamxwSW5tbGJEdnZJamt1SURsdXFiamdxVGpnN1BqZ3JuamdyL2pnN1BqZ3JuamdwTGt2WnpqZ2FQamdaL2pnb25qZ1lMamdhampnYS9rdmIvamdZVGxtNTdqZ1pudnZJbGNibU52Ym5OMElGOTJNMEVnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVZMjl1YzNRZ1gzWXpRaUE5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNWpiMjV6ZENCZmRqTkRJRDBnYm1WM0lGUklVa1ZGTGxabFkzUnZjak1vS1R0Y2JseHVMeW9xWEc0Z0tpQkJJSFJsYlhCdmNtRnllU0IyWVhKcFlXSnNaU0IzYUdsamFDQnBjeUIxYzJWa0lHbHVJR0IxY0dSaGRHVmdYRzRnS2k5Y2JtTnZibk4wSUY5M2IzSnNaRk53WVdObFVHOXphWFJwYjI0Z1BTQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BPMXh1WEc0dktpcGNiaUFxSUVFZ2RHVnRjRzl5WVhKNUlIWmhjbWxoWW14bElIZG9hV05vSUdseklIVnpaV1FnYVc0Z1lIVndaR0YwWldCY2JpQXFMMXh1WTI5dWMzUWdYMk5sYm5SbGNsTndZV05sVUc5emFYUnBiMjRnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVYRzR2S2lwY2JpQXFJRUVnZEdWdGNHOXlZWEo1SUhaaGNtbGhZbXhsSUhkb2FXTm9JR2x6SUhWelpXUWdhVzRnWUhWd1pHRjBaV0JjYmlBcUwxeHVZMjl1YzNRZ1gyNWxlSFJVWVdsc0lEMGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqTW9LVHRjYmx4dVkyOXVjM1FnWDNGMVlYUkJJRDBnYm1WM0lGUklVa1ZGTGxGMVlYUmxjbTVwYjI0b0tUdGNibU52Ym5OMElGOXRZWFJCSUQwZ2JtVjNJRlJJVWtWRkxrMWhkSEpwZURRb0tUdGNibU52Ym5OMElGOXRZWFJDSUQwZ2JtVjNJRlJJVWtWRkxrMWhkSEpwZURRb0tUdGNibHh1THlvcVhHNGdLaUJCSUdOc1lYTnpJSEpsY0hKbGMyVnVkSE1nWVNCemFXNW5iR1VnYW05cGJuUWdiMllnWVNCemNISnBibWNnWW05dVpTNWNiaUFxSUVsMElITm9iM1ZzWkNCaVpTQnRZVzVoWjJWa0lHSjVJR0VnVzF0V1VrMVRjSEpwYm1kQ2IyNWxUV0Z1WVdkbGNsMWRMbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRk5sZEhScGJtZHpJRzltSUhSb1pTQmliMjVsTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhObGRIUnBibWR6T2lCV1VrMVRjSEpwYm1kQ2IyNWxTbTlwYm5SVFpYUjBhVzVuY3p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTI5c2JHbGtaWElnWjNKdmRYQnpJR0YwZEdGamFHVmtJSFJ2SUhSb2FYTWdZbTl1WlM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCamIyeHNhV1JsY2tkeWIzVndjem9nVmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVIzSnZkWEJiWFR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUVc0Z1QySnFaV04wTTBRZ1lYUjBZV05vWldRZ2RHOGdkR2hwY3lCaWIyNWxMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJR0p2Ym1VNklGUklVa1ZGTGs5aWFtVmpkRE5FTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJCYmlCUFltcGxZM1F6UkNCMGFHRjBJSGRwYkd3Z1ltVWdkWE5sWkNCaGN5QmhJSFJoYVd3Z2IyWWdkR2hwY3lCemNISnBibWNnWW05dVpTNWNiaUFnSUNvZ1NYUWdZMkZ1SUdKbElHNTFiR3dnZDJobGJpQjBhR1VnYzNCeWFXNW5JR0p2Ym1VZ2FYTWdhVzF3YjNKMFpXUWdabkp2YlNCV1VrMGdNQzR3TGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUdOb2FXeGtPaUJVU0ZKRlJTNVBZbXBsWTNRelJDQjhJRzUxYkd3N1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOMWNuSmxiblFnY0c5emFYUnBiMjRnYjJZZ1kyaHBiR1FnZEdGcGJDd2dhVzRnWTJWdWRHVnlJSFZ1YVhRdUlGZHBiR3dnWW1VZ2RYTmxaQ0JtYjNJZ2RtVnliR1YwSUdsdWRHVm5jbUYwYVc5dUxseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmZZM1Z5Y21WdWRGUmhhV3dnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCUWNtVjJhVzkxY3lCd2IzTnBkR2x2YmlCdlppQmphR2xzWkNCMFlXbHNMQ0JwYmlCalpXNTBaWElnZFc1cGRDNGdWMmxzYkNCaVpTQjFjMlZrSUdadmNpQjJaWEpzWlhRZ2FXNTBaV2R5WVhScGIyNHVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjl3Y21WMlZHRnBiQ0E5SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVsdWFYUnBZV3dnWVhocGN5QnZaaUIwYUdVZ1ltOXVaU3dnYVc0Z2JHOWpZV3dnZFc1cGRDNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdYMkp2Ym1WQmVHbHpJRDBnYm1WM0lGUklVa1ZGTGxabFkzUnZjak1vS1R0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVEdWdVozUm9JRzltSUhSb1pTQmliMjVsSUdsdUlIZHZjbXhrSUhWdWFYUXVYRzRnSUNBcUlGZHBiR3dnWW1VZ2RYTmxaQ0JtYjNJZ2JtOXliV0ZzYVhwaGRHbHZiaUJwYmlCMWNHUmhkR1VnYkc5dmNDd2dkMmxzYkNCaVpTQjFjR1JoZEdWa0lHSjVJSHRBYkdsdWF5QmZZMkZzWTFkdmNteGtVM0JoWTJWQ2IyNWxUR1Z1WjNSb2ZTNWNiaUFnSUNwY2JpQWdJQ29nU1hRbmN5QnpZVzFsSUdGeklHeHZZMkZzSUhWdWFYUWdiR1Z1WjNSb0lIVnViR1Z6Y3lCMGFHVnlaU0JoY21VZ2MyTmhiR1VnZEhKaGJuTm1iM0p0WVhScGIyNXpJR2x1SUhSb1pTQjNiM0pzWkNCemNHRmpaUzVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDNkdmNteGtVM0JoWTJWQ2IyNWxUR1Z1WjNSb0lEMGdNQzR3TzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJVYUdseklITndjbWx1WjJKdmJtVWdkMmxzYkNCaVpTQmpZV3hqZFd4aGRHVmtJR0poYzJWa0lHOXVJSFJvWlNCemNHRmpaU0J5Wld4aGRHbDJaU0JtY205dElIUm9hWE1nYjJKcVpXTjBMbHh1SUNBZ0tpQkpaaUIwYUdseklHbHpJR0J1ZFd4c1lDd2djM0J5YVc1blltOXVaU0IzYVd4c0lHSmxJR05oYkdOMWJHRjBaV1FnYVc0Z2QyOXliR1FnYzNCaFkyVXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjlqWlc1MFpYSTZJRlJJVWtWRkxrOWlhbVZqZERORUlId2diblZzYkNBOUlHNTFiR3c3WEc0Z0lIQjFZbXhwWXlCblpYUWdZMlZ1ZEdWeUtDazZJRlJJVWtWRkxrOWlhbVZqZERORUlId2diblZzYkNCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyTmxiblJsY2p0Y2JpQWdmVnh1SUNCd2RXSnNhV01nYzJWMElHTmxiblJsY2loalpXNTBaWEk2SUZSSVVrVkZMazlpYW1WamRETkVJSHdnYm5Wc2JDa2dlMXh1SUNBZ0lDOHZJSFZ1YVc1emRHRnNiQ0JwYm5abGNuTmxJR05oWTJobFhHNGdJQ0FnYVdZZ0tIUm9hWE11WDJObGJuUmxjajh1ZFhObGNrUmhkR0V1YVc1MlpYSnpaVU5oWTJobFVISnZlSGtwSUh0Y2JpQWdJQ0FnSUNoMGFHbHpMbDlqWlc1MFpYSXVkWE5sY2tSaGRHRXVhVzUyWlhKelpVTmhZMmhsVUhKdmVIa2dZWE1nVFdGMGNtbDRORWx1ZG1WeWMyVkRZV05vWlNrdWNtVjJaWEowS0NrN1hHNGdJQ0FnSUNCa1pXeGxkR1VnZEdocGN5NWZZMlZ1ZEdWeUxuVnpaWEpFWVhSaExtbHVkbVZ5YzJWRFlXTm9aVkJ5YjNoNU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklHTm9ZVzVuWlNCMGFHVWdZMlZ1ZEdWeVhHNGdJQ0FnZEdocGN5NWZZMlZ1ZEdWeUlEMGdZMlZ1ZEdWeU8xeHVYRzRnSUNBZ0x5OGdhVzV6ZEdGc2JDQnBiblpsY25ObElHTmhZMmhsWEc0Z0lDQWdhV1lnS0hSb2FYTXVYMk5sYm5SbGNpa2dlMXh1SUNBZ0lDQWdhV1lnS0NGMGFHbHpMbDlqWlc1MFpYSXVkWE5sY2tSaGRHRXVhVzUyWlhKelpVTmhZMmhsVUhKdmVIa3BJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZZMlZ1ZEdWeUxuVnpaWEpFWVhSaExtbHVkbVZ5YzJWRFlXTm9aVkJ5YjNoNUlEMGdibVYzSUUxaGRISnBlRFJKYm5abGNuTmxRMkZqYUdVb2RHaHBjeTVmWTJWdWRHVnlMbTFoZEhKcGVGZHZjbXhrS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1NXNXBkR2xoYkNCemRHRjBaU0J2WmlCMGFHVWdiRzlqWVd3Z2JXRjBjbWw0SUc5bUlIUm9aU0JpYjI1bExseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmZhVzVwZEdsaGJFeHZZMkZzVFdGMGNtbDRJRDBnYm1WM0lGUklVa1ZGTGsxaGRISnBlRFFvS1R0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nU1c1cGRHbGhiQ0J6ZEdGMFpTQnZaaUIwYUdVZ2NtOTBZWFJwYjI0Z2IyWWdkR2hsSUdKdmJtVXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRjlwYm1sMGFXRnNURzlqWVd4U2IzUmhkR2x2YmlBOUlHNWxkeUJVU0ZKRlJTNVJkV0YwWlhKdWFXOXVLQ2s3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWx1YVhScFlXd2djM1JoZEdVZ2IyWWdkR2hsSUhCdmMybDBhVzl1SUc5bUlHbDBjeUJqYUdsc1pDNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdYMmx1YVhScFlXeE1iMk5oYkVOb2FXeGtVRzl6YVhScGIyNGdQU0J1WlhjZ1ZFaFNSVVV1Vm1WamRHOXlNeWdwTzF4dUlDQndkV0pzYVdNZ1oyVjBJR2x1YVhScFlXeE1iMk5oYkVOb2FXeGtVRzl6YVhScGIyNG9LVG9nVkVoU1JVVXVWbVZqZEc5eU15QjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMmx1YVhScFlXeE1iMk5oYkVOb2FXeGtVRzl6YVhScGIyNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUIwYUdVZ2QyOXliR1FnYldGMGNtbDRJRzltSUdsMGN5QndZWEpsYm5RZ2IySnFaV04wTGx4dUlDQWdLaUJPYjNSbElIUm9ZWFFnYVhRZ2NtVjBkWEp1Y3lCaElISmxabVZ5Wlc1alpTQjBieUIwYUdVZ2JXRjBjbWw0TGlCRWIyNG5kQ0J0ZFhSaGRHVWdkR2hwY3lCa2FYSmxZM1JzZVNGY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1oyVjBJRjl3WVhKbGJuUk5ZWFJ5YVhoWGIzSnNaQ2dwT2lCVVNGSkZSUzVOWVhSeWFYZzBJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVpYjI1bExuQmhjbVZ1ZENBL0lIUm9hWE11WW05dVpTNXdZWEpsYm5RdWJXRjBjbWw0VjI5eWJHUWdPaUJKUkVWT1ZFbFVXVjlOUVZSU1NWZzBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaU0JoSUc1bGR5QldVazFUY0hKcGJtZENiMjVsTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ1ltOXVaU0JCYmlCUFltcGxZM1F6UkNCMGFHRjBJSGRwYkd3Z1ltVWdZWFIwWVdOb1pXUWdkRzhnZEdocGN5QmliMjVsWEc0Z0lDQXFJRUJ3WVhKaGJTQmphR2xzWkNCQmJpQlBZbXBsWTNRelJDQjBhR0YwSUhkcGJHd2dZbVVnZFhObFpDQmhjeUJoSUhSaGFXd2diMllnZEdocGN5QnpjSEpwYm1jZ1ltOXVaUzRnU1hRZ1kyRnVJR0psSUc1MWJHd2dkMmhsYmlCMGFHVWdjM0J5YVc1bklHSnZibVVnYVhNZ2FXMXdiM0owWldRZ1puSnZiU0JXVWswZ01DNHdYRzRnSUNBcUlFQndZWEpoYlNCelpYUjBhVzVuY3lCVFpYWmxjbUZzSUhCaGNtRnRaWFJsY25NZ2NtVnNZWFJsWkNCMGJ5QmlaV2hoZG1sdmNpQnZaaUIwYUdVZ2MzQnlhVzVuSUdKdmJtVmNiaUFnSUNvZ1FIQmhjbUZ0SUdOdmJHeHBaR1Z5UjNKdmRYQnpJRU52Ykd4cFpHVnlJR2R5YjNWd2N5QjBhR0YwSUhkcGJHd2dZbVVnWTI5c2JHbGtaV1FnZDJsMGFDQjBhR2x6SUhOd2NtbHVaeUJpYjI1bFhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhjYmlBZ0lDQmliMjVsT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ3hjYmlBZ0lDQmphR2xzWkRvZ1ZFaFNSVVV1VDJKcVpXTjBNMFFnZkNCdWRXeHNMRnh1SUNBZ0lITmxkSFJwYm1kek9pQlFZWEowYVdGc1BGWlNUVk53Y21sdVowSnZibVZLYjJsdWRGTmxkSFJwYm1kelBpQTlJSHQ5TEZ4dUlDQWdJR052Ykd4cFpHVnlSM0p2ZFhCek9pQldVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWEpIY205MWNGdGRJRDBnVzEwc1hHNGdJQ2tnZTF4dUlDQWdJSFJvYVhNdVltOXVaU0E5SUdKdmJtVTdJQzh2SUhWdWFWWlNUZU9CcCtPQnJpQndZWEpsYm5SY2JpQWdJQ0IwYUdsekxtSnZibVV1YldGMGNtbDRRWFYwYjFWd1pHRjBaU0E5SUdaaGJITmxPeUF2THlCMWNHUmhkR1hqZ2F2amdvampnb3JvcUlqbnJwZmpnWlhqZ296amdvdmpnYTdqZ2FkMGFISmxaUzVxYytXR2hlT0JwK09CcnVpSHF1V0xsZVdIcHVlUWh1T0JyK1M0amVpbWdWeHVYRzRnSUNBZ2RHaHBjeTVqYUdsc1pDQTlJR05vYVd4a08xeHVYRzRnSUNBZ2RHaHBjeTV6WlhSMGFXNW5jeUE5SUh0Y2JpQWdJQ0FnSUdocGRGSmhaR2wxY3pvZ2MyVjBkR2x1WjNNdWFHbDBVbUZrYVhWeklEOC9JREF1TUN4Y2JpQWdJQ0FnSUhOMGFXWm1ibVZ6Y3pvZ2MyVjBkR2x1WjNNdWMzUnBabVp1WlhOeklEOC9JREV1TUN4Y2JpQWdJQ0FnSUdkeVlYWnBkSGxRYjNkbGNqb2djMlYwZEdsdVozTXVaM0poZG1sMGVWQnZkMlZ5SUQ4L0lEQXVNQ3hjYmlBZ0lDQWdJR2R5WVhacGRIbEVhWEk2SUhObGRIUnBibWR6TG1keVlYWnBkSGxFYVhJL0xtTnNiMjVsS0NrZ1B6OGdibVYzSUZSSVVrVkZMbFpsWTNSdmNqTW9NQzR3TENBdE1TNHdMQ0F3TGpBcExGeHVJQ0FnSUNBZ1pISmhaMFp2Y21ObE9pQnpaWFIwYVc1bmN5NWtjbUZuUm05eVkyVWdQejhnTUM0MExGeHVJQ0FnSUgwN1hHNWNiaUFnSUNCMGFHbHpMbU52Ykd4cFpHVnlSM0p2ZFhCeklEMGdZMjlzYkdsa1pYSkhjbTkxY0hNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVMlYwSUhSb1pTQnBibWwwYVdGc0lITjBZWFJsSUc5bUlIUm9hWE1nYzNCeWFXNW5JR0p2Ym1VdVhHNGdJQ0FxSUZsdmRTQnRhV2RvZENCM1lXNTBJSFJ2SUdOaGJHd2dlMEJzYVc1cklGWlNUVk53Y21sdVowSnZibVZOWVc1aFoyVnlMbk5sZEVsdWFYUlRkR0YwWlgwZ2FXNXpkR1ZoWkM1Y2JpQWdJQ292WEc0Z0lIQjFZbXhwWXlCelpYUkpibWwwVTNSaGRHVW9LVG9nZG05cFpDQjdYRzRnSUNBZ0x5OGdjbVZ0WlcxaVpYSWdhVzVwZEdsaGJDQndiM05wZEdsdmJpQnZaaUJwZEhObGJHWmNiaUFnSUNCMGFHbHpMbDlwYm1sMGFXRnNURzlqWVd4TllYUnlhWGd1WTI5d2VTaDBhR2x6TG1KdmJtVXViV0YwY21sNEtUdGNiaUFnSUNCMGFHbHpMbDlwYm1sMGFXRnNURzlqWVd4U2IzUmhkR2x2Ymk1amIzQjVLSFJvYVhNdVltOXVaUzV4ZFdGMFpYSnVhVzl1S1R0Y2JseHVJQ0FnSUM4dklITmxaU0JwYm1sMGFXRnNJSEJ2YzJsMGFXOXVJRzltSUdsMGN5QnNiMk5oYkNCamFHbHNaRnh1SUNBZ0lHbG1JQ2gwYUdsekxtTm9hV3hrS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbDlwYm1sMGFXRnNURzlqWVd4RGFHbHNaRkJ2YzJsMGFXOXVMbU52Y0hrb2RHaHBjeTVqYUdsc1pDNXdiM05wZEdsdmJpazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUM4dklIWnliVEFnY21WeGRXbHlaWE1nWVNBM1kyMGdabWw0WldRZ1ltOXVaU0JzWlc1bmRHZ2dabTl5SUhSb1pTQm1hVzVoYkNCdWIyUmxJR2x1SUdFZ1kyaGhhVzVjYmlBZ0lDQWdJQzh2SUZObFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMM1p5YlMxakwzWnliUzF6Y0dWamFXWnBZMkYwYVc5dUwzUnlaV1V2YldGemRHVnlMM053WldOcFptbGpZWFJwYjI0dlZsSk5RMTl6Y0hKcGJtZENiMjVsTFRFdU1DTmhZbTkxZEMxemNISnBibWN0WTI5dVptbG5kWEpoZEdsdmJseHVJQ0FnSUNBZ2RHaHBjeTVmYVc1cGRHbGhiRXh2WTJGc1EyaHBiR1JRYjNOcGRHbHZiaTVqYjNCNUtIUm9hWE11WW05dVpTNXdiM05wZEdsdmJpa3VibTl5YldGc2FYcGxLQ2t1YlhWc2RHbHdiSGxUWTJGc1lYSW9NQzR3TnlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1kyOXdlU0IwYUdVZ1kyaHBiR1FnY0c5emFYUnBiMjRnZEc4Z2RHRnBiSE5jYmlBZ0lDQmpiMjV6ZENCdFlYUnlhWGhYYjNKc1pGUnZRMlZ1ZEdWeUlEMGdkR2hwY3k1ZloyVjBUV0YwY21sNFYyOXliR1JVYjBObGJuUmxjaWhmYldGMFFTazdYRzRnSUNBZ2RHaHBjeTVpYjI1bExteHZZMkZzVkc5WGIzSnNaQ2gwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQzVqYjNCNUtIUm9hWE11WDJsdWFYUnBZV3hNYjJOaGJFTm9hV3hrVUc5emFYUnBiMjRwS1M1aGNIQnNlVTFoZEhKcGVEUW9iV0YwY21sNFYyOXliR1JVYjBObGJuUmxjaWs3WEc0Z0lDQWdkR2hwY3k1ZmNISmxkbFJoYVd3dVkyOXdlU2gwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQ2s3WEc1Y2JpQWdJQ0F2THlCelpYUWdhVzVwZEdsaGJDQnpkR0YwWlhNZ2RHaGhkQ0JoY21VZ2NtVnNZWFJsWkNCMGJ5QnNiMk5oYkNCamFHbHNaQ0J3YjNOcGRHbHZibHh1SUNBZ0lIUm9hWE11WDJKdmJtVkJlR2x6TG1OdmNIa29kR2hwY3k1ZmFXNXBkR2xoYkV4dlkyRnNRMmhwYkdSUWIzTnBkR2x2YmlrdWJtOXliV0ZzYVhwbEtDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WelpYUWdkR2hsSUhOMFlYUmxJRzltSUhSb2FYTWdZbTl1WlM1Y2JpQWdJQ29nV1c5MUlHMXBaMmgwSUhkaGJuUWdkRzhnWTJGc2JDQmJXMVpTVFZOd2NtbHVaMEp2Ym1WTllXNWhaMlZ5TG5KbGMyVjBYVjBnYVc1emRHVmhaQzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ5WlhObGRDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCMGFHbHpMbUp2Ym1VdWNYVmhkR1Z5Ym1sdmJpNWpiM0I1S0hSb2FYTXVYMmx1YVhScFlXeE1iMk5oYkZKdmRHRjBhVzl1S1R0Y2JseHVJQ0FnSUM4dklGZGxJRzVsWldRZ2RHOGdkWEJrWVhSbElHbDBjeUJ0WVhSeWFYaFhiM0pzWkNCdFlXNTFZV3hzZVN3Z2MybHVZMlVnZDJVZ2RIZGxZV3RsWkNCMGFHVWdZbTl1WlNCaWVTQnZkWElnYUdGdVpGeHVJQ0FnSUhSb2FYTXVZbTl1WlM1MWNHUmhkR1ZOWVhSeWFYZ29LVHRjYmlBZ0lDQjBhR2x6TG1KdmJtVXViV0YwY21sNFYyOXliR1F1YlhWc2RHbHdiSGxOWVhSeWFXTmxjeWgwYUdsekxsOXdZWEpsYm5STllYUnlhWGhYYjNKc1pDd2dkR2hwY3k1aWIyNWxMbTFoZEhKcGVDazdYRzVjYmlBZ0lDQXZMeUJCY0hCc2VTQjFjR1JoZEdWa0lIQnZjMmwwYVc5dUlIUnZJSFJoYVd3Z2MzUmhkR1Z6WEc0Z0lDQWdZMjl1YzNRZ2JXRjBjbWw0VjI5eWJHUlViME5sYm5SbGNpQTlJSFJvYVhNdVgyZGxkRTFoZEhKcGVGZHZjbXhrVkc5RFpXNTBaWElvWDIxaGRFRXBPMXh1SUNBZ0lIUm9hWE11WW05dVpTNXNiMk5oYkZSdlYyOXliR1FvZEdocGN5NWZZM1Z5Y21WdWRGUmhhV3d1WTI5d2VTaDBhR2x6TGw5cGJtbDBhV0ZzVEc5allXeERhR2xzWkZCdmMybDBhVzl1S1NrdVlYQndiSGxOWVhSeWFYZzBLRzFoZEhKcGVGZHZjbXhrVkc5RFpXNTBaWElwTzF4dUlDQWdJSFJvYVhNdVgzQnlaWFpVWVdsc0xtTnZjSGtvZEdocGN5NWZZM1Z5Y21WdWRGUmhhV3dwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGVndaR0YwWlNCMGFHVWdjM1JoZEdVZ2IyWWdkR2hwY3lCaWIyNWxMbHh1SUNBZ0tpQlpiM1VnYldsbmFIUWdkMkZ1ZENCMGJ5QmpZV3hzSUZ0YlZsSk5VM0J5YVc1blFtOXVaVTFoYm1GblpYSXVkWEJrWVhSbFhWMGdhVzV6ZEdWaFpDNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJR1JsYkhSaElHUmxiSFJoVkdsdFpWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklIVndaR0YwWlNoa1pXeDBZVG9nYm5WdFltVnlLVG9nZG05cFpDQjdYRzRnSUNBZ2FXWWdLR1JsYkhSaElEdzlJREFwSUhKbGRIVnlianRjYmx4dUlDQWdJQzh2SUZWd1pHRjBaU0IwYUdVZ1gzZHZjbXhrVTNCaFkyVkNiMjVsVEdWdVozUm9YRzRnSUNBZ2RHaHBjeTVmWTJGc1kxZHZjbXhrVTNCaFkyVkNiMjVsVEdWdVozUm9LQ2s3WEc1Y2JpQWdJQ0F2THlCSFpYUWdZbTl1WlNCd2IzTnBkR2x2YmlCcGJpQmpaVzUwWlhJZ2MzQmhZMlZjYmlBZ0lDQmZkMjl5YkdSVGNHRmpaVkJ2YzJsMGFXOXVMbk5sZEVaeWIyMU5ZWFJ5YVhoUWIzTnBkR2x2YmloMGFHbHpMbUp2Ym1VdWJXRjBjbWw0VjI5eWJHUXBPMXh1SUNBZ0lHeGxkQ0J0WVhSeWFYaFhiM0pzWkZSdlEyVnVkR1Z5SUQwZ2RHaHBjeTVmWjJWMFRXRjBjbWw0VjI5eWJHUlViME5sYm5SbGNpaGZiV0YwUVNrN1hHNGdJQ0FnWDJObGJuUmxjbE53WVdObFVHOXphWFJwYjI0dVkyOXdlU2hmZDI5eWJHUlRjR0ZqWlZCdmMybDBhVzl1S1M1aGNIQnNlVTFoZEhKcGVEUW9iV0YwY21sNFYyOXliR1JVYjBObGJuUmxjaWs3WEc0Z0lDQWdZMjl1YzNRZ2NYVmhkRmR2Y214a1ZHOURaVzUwWlhJZ1BTQmZjWFZoZEVFdWMyVjBSbkp2YlZKdmRHRjBhVzl1VFdGMGNtbDRLRzFoZEhKcGVGZHZjbXhrVkc5RFpXNTBaWElwTzF4dVhHNGdJQ0FnTHk4Z1IyVjBJSEJoY21WdWRDQnRZWFJ5YVhnZ2FXNGdZMlZ1ZEdWeUlITndZV05sWEc0Z0lDQWdZMjl1YzNRZ1kyVnVkR1Z5VTNCaFkyVlFZWEpsYm5STllYUnlhWGdnUFNCZmJXRjBRaTVqYjNCNUtHMWhkSEpwZUZkdmNteGtWRzlEWlc1MFpYSXBMbTExYkhScGNHeDVLSFJvYVhNdVgzQmhjbVZ1ZEUxaGRISnBlRmR2Y214a0tUdGNibHh1SUNBZ0lDOHZJRWRsZENCaWIyNWxRWGhwY3lCcGJpQmpaVzUwWlhJZ2MzQmhZMlZjYmlBZ0lDQmpiMjV6ZENCalpXNTBaWEpUY0dGalpVSnZibVZCZUdseklEMGdYM1l6UWx4dUlDQWdJQ0FnTG1OdmNIa29kR2hwY3k1ZlltOXVaVUY0YVhNcFhHNGdJQ0FnSUNBdVlYQndiSGxOWVhSeWFYZzBLSFJvYVhNdVgybHVhWFJwWVd4TWIyTmhiRTFoZEhKcGVDbGNiaUFnSUNBZ0lDNWhjSEJzZVUxaGRISnBlRFFvWTJWdWRHVnlVM0JoWTJWUVlYSmxiblJOWVhSeWFYZ3BYRzRnSUNBZ0lDQXVjM1ZpS0Y5alpXNTBaWEpUY0dGalpWQnZjMmwwYVc5dUtWeHVJQ0FnSUNBZ0xtNXZjbTFoYkdsNlpTZ3BPMXh1WEc0Z0lDQWdMeThnWjNKaGRtbDBlU0JwYmlCalpXNTBaWElnYzNCaFkyVmNiaUFnSUNCamIyNXpkQ0JqWlc1MFpYSlRjR0ZqWlVkeVlYWnBkSGtnUFNCZmRqTkRMbU52Y0hrb2RHaHBjeTV6WlhSMGFXNW5jeTVuY21GMmFYUjVSR2x5S1M1aGNIQnNlVkYxWVhSbGNtNXBiMjRvY1hWaGRGZHZjbXhrVkc5RFpXNTBaWElwTG01dmNtMWhiR2w2WlNncE8xeHVYRzRnSUNBZ1kyOXVjM1FnYldGMGNtbDRRMlZ1ZEdWeVZHOVhiM0pzWkNBOUlIUm9hWE11WDJkbGRFMWhkSEpwZUVObGJuUmxjbFJ2VjI5eWJHUW9YMjFoZEVFcE8xeHVYRzRnSUNBZ0x5OGdkbVZ5YkdWMDU2bU41WWlHNDRHbjVxeWg0NEd1NUwyTjU3MnU0NEtTNktpSTU2NlhYRzRnSUNBZ1gyNWxlSFJVWVdsc1hHNGdJQ0FnSUNBdVkyOXdlU2gwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQ2xjYmlBZ0lDQWdJQzVoWkdRb1hHNGdJQ0FnSUNBZ0lGOTJNMEZjYmlBZ0lDQWdJQ0FnSUNBdVkyOXdlU2gwYUdsekxsOWpkWEp5Wlc1MFZHRnBiQ2xjYmlBZ0lDQWdJQ0FnSUNBdWMzVmlLSFJvYVhNdVgzQnlaWFpVWVdsc0tWeHVJQ0FnSUNBZ0lDQWdJQzV0ZFd4MGFYQnNlVk5qWVd4aGNpZ3hJQzBnZEdocGN5NXpaWFIwYVc1bmN5NWtjbUZuUm05eVkyVXBMRnh1SUNBZ0lDQWdLU0F2THlEbGlZM2pnNVhqZzZ6amc3empnNkRqZ2E3bnA3dmxpNVhqZ3BMbnRwbm50cHJqZ1puamdvc281cmliNktHdzQ0S0M0NEdDNDRLTDQ0S0lLVnh1SUNBZ0lDQWdMbUZrWkNoZmRqTkJMbU52Y0hrb1kyVnVkR1Z5VTNCaFkyVkNiMjVsUVhocGN5a3ViWFZzZEdsd2JIbFRZMkZzWVhJb2RHaHBjeTV6WlhSMGFXNW5jeTV6ZEdsbVptNWxjM01nS2lCa1pXeDBZU2twSUM4dklPaW1xdU9CcnVXYm51aTdvdU9CcStPQ2lPT0NpK1d0a09PRG5PT0R2T09EcytPQnJ1ZW51K1dMbGVlYnJ1YW9tVnh1SUNBZ0lDQWdMbUZrWkNoZmRqTkJMbU52Y0hrb1kyVnVkR1Z5VTNCaFkyVkhjbUYyYVhSNUtTNXRkV3gwYVhCc2VWTmpZV3hoY2loMGFHbHpMbk5sZEhScGJtZHpMbWR5WVhacGRIbFFiM2RsY2lBcUlHUmxiSFJoS1NrZ0x5OGc1YVNXNVlxYjQ0R3I0NEtJNDRLTDU2ZTc1WXVWNlllUFhHNGdJQ0FnSUNBdVlYQndiSGxOWVhSeWFYZzBLRzFoZEhKcGVFTmxiblJsY2xSdlYyOXliR1FwT3lBdkx5QjBZV2xzNDRLU2QyOXliR1FnYzNCaFkyWGpnYXZtaUx2amdabGNibHh1SUNBZ0lDOHZJRzV2Y20xaGJHbDZaU0JpYjI1bElHeGxibWQwYUZ4dUlDQWdJRjl1WlhoMFZHRnBiQzV6ZFdJb1gzZHZjbXhrVTNCaFkyVlFiM05wZEdsdmJpa3VibTl5YldGc2FYcGxLQ2t1YlhWc2RHbHdiSGxUWTJGc1lYSW9kR2hwY3k1ZmQyOXliR1JUY0dGalpVSnZibVZNWlc1bmRHZ3BMbUZrWkNoZmQyOXliR1JUY0dGalpWQnZjMmwwYVc5dUtUdGNibHh1SUNBZ0lDOHZJRU52Ykd4cGMybHZidU9CcCtlbnUrV0xsVnh1SUNBZ0lIUm9hWE11WDJOdmJHeHBjMmx2YmloZmJtVjRkRlJoYVd3cE8xeHVYRzRnSUNBZ0x5OGdkWEJrWVhSbElIQnlaWFpVWVdsc0lHRnVaQ0JqZFhKeVpXNTBWR0ZwYkZ4dUlDQWdJRzFoZEhKcGVGZHZjbXhrVkc5RFpXNTBaWElnUFNCMGFHbHpMbDluWlhSTllYUnlhWGhYYjNKc1pGUnZRMlZ1ZEdWeUtGOXRZWFJCS1R0Y2JseHVJQ0FnSUhSb2FYTXVYM0J5WlhaVVlXbHNMbU52Y0hrb2RHaHBjeTVmWTNWeWNtVnVkRlJoYVd3cE8xeHVJQ0FnSUhSb2FYTXVYMk4xY25KbGJuUlVZV2xzTG1OdmNIa29YM1l6UVM1amIzQjVLRjl1WlhoMFZHRnBiQ2t1WVhCd2JIbE5ZWFJ5YVhnMEtHMWhkSEpwZUZkdmNteGtWRzlEWlc1MFpYSXBLVHRjYmx4dUlDQWdJQzh2SUVGd2NHeDVJSEp2ZEdGMGFXOXVMQ0JqYjI1MlpYSjBJSFpsWTNSdmNqTWdkR2hwYm1jZ2FXNTBieUJoWTNSMVlXd2djWFZoZEdWeWJtbHZibHh1SUNBZ0lDOHZJRTl5YVdkcGJtRnNJRlZ1YVZaU1RTQnBjeUJrYjJsdVp5QmpaVzUwWlhJZ2RXNXBkQ0JqWVd4amRXeDFjeUJoZENCb1pYSmxJR0oxZENCM1pTZHlaU0JuYjI1dVlTQmtieUIwYUdseklHOXVJR3h2WTJGc0lIVnVhWFJjYmlBZ0lDQmpiMjV6ZENCM2IzSnNaRk53WVdObFNXNXBkR2xoYkUxaGRISnBlRWx1ZGlBOUlHMWhkRFJKYm5abGNuUkRiMjF3WVhRb1hHNGdJQ0FnSUNCZmJXRjBRUzVqYjNCNUtIUm9hWE11WDNCaGNtVnVkRTFoZEhKcGVGZHZjbXhrS1M1dGRXeDBhWEJzZVNoMGFHbHpMbDlwYm1sMGFXRnNURzlqWVd4TllYUnlhWGdwTEZ4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1lYQndiSGxTYjNSaGRHbHZiaUE5SUY5eGRXRjBRUzV6WlhSR2NtOXRWVzVwZEZabFkzUnZjbk1vWEc0Z0lDQWdJQ0IwYUdsekxsOWliMjVsUVhocGN5eGNiaUFnSUNBZ0lGOTJNMEV1WTI5d2VTaGZibVY0ZEZSaGFXd3BMbUZ3Y0d4NVRXRjBjbWw0TkNoM2IzSnNaRk53WVdObFNXNXBkR2xoYkUxaGRISnBlRWx1ZGlrdWJtOXliV0ZzYVhwbEtDa3NYRzRnSUNBZ0tUdGNibHh1SUNBZ0lIUm9hWE11WW05dVpTNXhkV0YwWlhKdWFXOXVMbU52Y0hrb2RHaHBjeTVmYVc1cGRHbGhiRXh2WTJGc1VtOTBZWFJwYjI0cExtMTFiSFJwY0d4NUtHRndjR3g1VW05MFlYUnBiMjRwTzF4dVhHNGdJQ0FnTHk4Z1YyVWdibVZsWkNCMGJ5QjFjR1JoZEdVZ2FYUnpJRzFoZEhKcGVGZHZjbXhrSUcxaGJuVmhiR3g1TENCemFXNWpaU0IzWlNCMGQyVmhhMlZrSUhSb1pTQmliMjVsSUdKNUlHOTFjaUJvWVc1a1hHNGdJQ0FnZEdocGN5NWliMjVsTG5Wd1pHRjBaVTFoZEhKcGVDZ3BPMXh1SUNBZ0lIUm9hWE11WW05dVpTNXRZWFJ5YVhoWGIzSnNaQzV0ZFd4MGFYQnNlVTFoZEhKcFkyVnpLSFJvYVhNdVgzQmhjbVZ1ZEUxaGRISnBlRmR2Y214a0xDQjBhR2x6TG1KdmJtVXViV0YwY21sNEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJFYnlCamIyeHNhWE5wYjI0Z2JXRjBhQ0JoWjJGcGJuTjBJR1YyWlhKNUlHTnZiR3hwWkdWeWN5QmhkSFJoWTJobFpDQjBieUIwYUdseklHSnZibVV1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCMFlXbHNJRlJvWlNCMFlXbHNJSGx2ZFNCM1lXNTBJSFJ2SUhCeWIyTmxjM05jYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJOdmJHeHBjMmx2YmloMFlXbHNPaUJVU0ZKRlJTNVdaV04wYjNJektUb2dkbTlwWkNCN1hHNGdJQ0FnZEdocGN5NWpiMnhzYVdSbGNrZHliM1Z3Y3k1bWIzSkZZV05vS0NoamIyeHNhV1JsY2tkeWIzVndLU0E5UGlCN1hHNGdJQ0FnSUNCamIyeHNhV1JsY2tkeWIzVndMbU52Ykd4cFpHVnljeTVtYjNKRllXTm9LQ2hqYjJ4c2FXUmxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa2FYTjBJRDBnWTI5c2JHbGtaWEl1YzJoaGNHVXVZMkZzWTNWc1lYUmxRMjlzYkdsemFXOXVLR052Ykd4cFpHVnlMbTFoZEhKcGVGZHZjbXhrTENCMFlXbHNMQ0IwYUdsekxuTmxkSFJwYm1kekxtaHBkRkpoWkdsMWN5d2dYM1l6UVNrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0dScGMzUWdQQ0F3TGpBcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCb2FYUmNiaUFnSUNBZ0lDQWdJQ0IwWVdsc0xtRmtaQ2hmZGpOQkxtMTFiSFJwY0d4NVUyTmhiR0Z5S0Mxa2FYTjBLU2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJ1YjNKdFlXeHBlbVVnWW05dVpTQnNaVzVuZEdoY2JpQWdJQ0FnSUNBZ0lDQjBZV2xzTG5OMVlpaGZkMjl5YkdSVGNHRmpaVkJ2YzJsMGFXOXVLUzV1YjNKdFlXeHBlbVVvS1M1dGRXeDBhWEJzZVZOallXeGhjaWgwYUdsekxsOTNiM0pzWkZOd1lXTmxRbTl1WlV4bGJtZDBhQ2t1WVdSa0tGOTNiM0pzWkZOd1lXTmxVRzl6YVhScGIyNHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRZV3hqZFd4aGRHVWdkR2hsSUh0QWJHbHVheUJmZDI5eWJHUlRjR0ZqWlVKdmJtVk1aVzVuZEdoOUxseHVJQ0FnS2lCSmJuUmxibVJsWkNCMGJ5QmlaU0IxYzJWa0lHbHVJSHRBYkdsdWF5QjFjR1JoZEdWOUxseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQmZZMkZzWTFkdmNteGtVM0JoWTJWQ2IyNWxUR1Z1WjNSb0tDazZJSFp2YVdRZ2UxeHVJQ0FnSUY5Mk0wRXVjMlYwUm5KdmJVMWhkSEpwZUZCdmMybDBhVzl1S0hSb2FYTXVZbTl1WlM1dFlYUnlhWGhYYjNKc1pDazdJQzh2SUdkbGRDQjNiM0pzWkNCd2IzTnBkR2x2YmlCdlppQjBhR2x6TG1KdmJtVmNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtTm9hV3hrS1NCN1hHNGdJQ0FnSUNCZmRqTkNMbk5sZEVaeWIyMU5ZWFJ5YVhoUWIzTnBkR2x2YmloMGFHbHpMbU5vYVd4a0xtMWhkSEpwZUZkdmNteGtLVHNnTHk4Z1oyVjBJSGR2Y214a0lIQnZjMmwwYVc5dUlHOW1JSFJvYVhNdVkyaHBiR1JjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ1gzWXpRaTVqYjNCNUtIUm9hWE11WDJsdWFYUnBZV3hNYjJOaGJFTm9hV3hrVUc5emFYUnBiMjRwTzF4dUlDQWdJQ0FnWDNZelFpNWhjSEJzZVUxaGRISnBlRFFvZEdocGN5NWliMjVsTG0xaGRISnBlRmR2Y214a0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbDkzYjNKc1pGTndZV05sUW05dVpVeGxibWQwYUNBOUlGOTJNMEV1YzNWaUtGOTJNMElwTG14bGJtZDBhQ2dwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnlaV0YwWlNCaElHMWhkSEpwZUNCMGFHRjBJR052Ym5abGNuUnpJR05sYm5SbGNpQnpjR0ZqWlNCcGJuUnZJSGR2Y214a0lITndZV05sTGx4dUlDQWdLaUJBY0dGeVlXMGdkR0Z5WjJWMElGUmhjbWRsZENCdFlYUnlhWGhjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWDJkbGRFMWhkSEpwZUVObGJuUmxjbFJ2VjI5eWJHUW9kR0Z5WjJWME9pQlVTRkpGUlM1TllYUnlhWGcwS1RvZ1ZFaFNSVVV1VFdGMGNtbDROQ0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVYMk5sYm5SbGNpa2dlMXh1SUNBZ0lDQWdkR0Z5WjJWMExtTnZjSGtvZEdocGN5NWZZMlZ1ZEdWeUxtMWhkSEpwZUZkdmNteGtLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHRnlaMlYwTG1sa1pXNTBhWFI1S0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFJoY21kbGREdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEY21WaGRHVWdZU0J0WVhSeWFYZ2dkR2hoZENCamIyNTJaWEowY3lCM2IzSnNaQ0J6Y0dGalpTQnBiblJ2SUdObGJuUmxjaUJ6Y0dGalpTNWNiaUFnSUNvZ1FIQmhjbUZ0SUhSaGNtZGxkQ0JVWVhKblpYUWdiV0YwY21sNFhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElGOW5aWFJOWVhSeWFYaFhiM0pzWkZSdlEyVnVkR1Z5S0hSaGNtZGxkRG9nVkVoU1JVVXVUV0YwY21sNE5DazZJRlJJVWtWRkxrMWhkSEpwZURRZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TGw5alpXNTBaWElwSUh0Y2JpQWdJQ0FnSUhSaGNtZGxkQzVqYjNCNUtDaDBhR2x6TGw5alpXNTBaWEl1ZFhObGNrUmhkR0V1YVc1MlpYSnpaVU5oWTJobFVISnZlSGtnWVhNZ1RXRjBjbWw0TkVsdWRtVnljMlZEWVdOb1pTa3VhVzUyWlhKelpTazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhSaGNtZGxkQzVwWkdWdWRHbDBlU2dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjBZWEpuWlhRN1hHNGdJSDFjYm4xY2JpSXNJaThxS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpcGNjbHh1UTI5d2VYSnBaMmgwSUNoaktTQk5hV055YjNOdlpuUWdRMjl5Y0c5eVlYUnBiMjR1WEhKY2JseHlYRzVRWlhKdGFYTnphVzl1SUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQmhibVF2YjNJZ1pHbHpkSEpwWW5WMFpTQjBhR2x6SUhOdlpuUjNZWEpsSUdadmNpQmhibmxjY2x4dWNIVnljRzl6WlNCM2FYUm9JRzl5SUhkcGRHaHZkWFFnWm1WbElHbHpJR2hsY21WaWVTQm5jbUZ1ZEdWa0xseHlYRzVjY2x4dVZFaEZJRk5QUmxSWFFWSkZJRWxUSUZCU1QxWkpSRVZFSUZ3aVFWTWdTVk5jSWlCQlRrUWdWRWhGSUVGVlZFaFBVaUJFU1ZORFRFRkpUVk1nUVV4TUlGZEJVbEpCVGxSSlJWTWdWMGxVU0Z4eVhHNVNSVWRCVWtRZ1ZFOGdWRWhKVXlCVFQwWlVWMEZTUlNCSlRrTk1WVVJKVGtjZ1FVeE1JRWxOVUV4SlJVUWdWMEZTVWtGT1ZFbEZVeUJQUmlCTlJWSkRTRUZPVkVGQ1NVeEpWRmxjY2x4dVFVNUVJRVpKVkU1RlUxTXVJRWxPSUU1UElFVldSVTVVSUZOSVFVeE1JRlJJUlNCQlZWUklUMUlnUWtVZ1RFbEJRa3hGSUVaUFVpQkJUbGtnVTFCRlEwbEJUQ3dnUkVsU1JVTlVMRnh5WEc1SlRrUkpVa1ZEVkN3Z1QxSWdRMDlPVTBWUlZVVk9WRWxCVENCRVFVMUJSMFZUSUU5U0lFRk9XU0JFUVUxQlIwVlRJRmRJUVZSVFQwVldSVklnVWtWVFZVeFVTVTVISUVaU1QwMWNjbHh1VEU5VFV5QlBSaUJWVTBVc0lFUkJWRUVnVDFJZ1VGSlBSa2xVVXl3Z1YwaEZWRWhGVWlCSlRpQkJUaUJCUTFSSlQwNGdUMFlnUTA5T1ZGSkJRMVFzSUU1RlIweEpSMFZPUTBVZ1QxSmNjbHh1VDFSSVJWSWdWRTlTVkVsUFZWTWdRVU5VU1U5T0xDQkJVa2xUU1U1SElFOVZWQ0JQUmlCUFVpQkpUaUJEVDA1T1JVTlVTVTlPSUZkSlZFZ2dWRWhGSUZWVFJTQlBVbHh5WEc1UVJWSkdUMUpOUVU1RFJTQlBSaUJVU0VsVElGTlBSbFJYUVZKRkxseHlYRzRxS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpb3FLaW9xS2lvcUtpQXFMMXh5WEc0dktpQm5iRzlpWVd3Z1VtVm1iR1ZqZEN3Z1VISnZiV2x6WlN3Z1UzVndjSEpsYzNObFpFVnljbTl5TENCVGVXMWliMndnS2k5Y2NseHVYSEpjYm5aaGNpQmxlSFJsYm1SVGRHRjBhV056SUQwZ1puVnVZM1JwYjI0b1pDd2dZaWtnZTF4eVhHNGdJQ0FnWlhoMFpXNWtVM1JoZEdsamN5QTlJRTlpYW1WamRDNXpaWFJRY205MGIzUjVjR1ZQWmlCOGZGeHlYRzRnSUNBZ0lDQWdJQ2g3SUY5ZmNISnZkRzlmWHpvZ1cxMGdmU0JwYm5OMFlXNWpaVzltSUVGeWNtRjVJQ1ltSUdaMWJtTjBhVzl1SUNoa0xDQmlLU0I3SUdRdVgxOXdjbTkwYjE5ZklEMGdZanNnZlNrZ2ZIeGNjbHh1SUNBZ0lDQWdJQ0JtZFc1amRHbHZiaUFvWkN3Z1lpa2dleUJtYjNJZ0tIWmhjaUJ3SUdsdUlHSXBJR2xtSUNoUFltcGxZM1F1Y0hKdmRHOTBlWEJsTG1oaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b1lpd2djQ2twSUdSYmNGMGdQU0JpVzNCZE95QjlPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHVjRkR1Z1WkZOMFlYUnBZM01vWkN3Z1lpazdYSEpjYm4wN1hISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5bGVIUmxibVJ6S0dRc0lHSXBJSHRjY2x4dUlDQWdJR2xtSUNoMGVYQmxiMllnWWlBaFBUMGdYQ0ptZFc1amRHbHZibHdpSUNZbUlHSWdJVDA5SUc1MWJHd3BYSEpjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lrTnNZWE56SUdWNGRHVnVaSE1nZG1Gc2RXVWdYQ0lnS3lCVGRISnBibWNvWWlrZ0t5QmNJaUJwY3lCdWIzUWdZU0JqYjI1emRISjFZM1J2Y2lCdmNpQnVkV3hzWENJcE8xeHlYRzRnSUNBZ1pYaDBaVzVrVTNSaGRHbGpjeWhrTENCaUtUdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlGOWZLQ2tnZXlCMGFHbHpMbU52Ym5OMGNuVmpkRzl5SUQwZ1pEc2dmVnh5WEc0Z0lDQWdaQzV3Y205MGIzUjVjR1VnUFNCaUlEMDlQU0J1ZFd4c0lEOGdUMkpxWldOMExtTnlaV0YwWlNoaUtTQTZJQ2hmWHk1d2NtOTBiM1I1Y0dVZ1BTQmlMbkJ5YjNSdmRIbHdaU3dnYm1WM0lGOWZLQ2twTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ2RtRnlJRjlmWVhOemFXZHVJRDBnWm5WdVkzUnBiMjRvS1NCN1hISmNiaUFnSUNCZlgyRnpjMmxuYmlBOUlFOWlhbVZqZEM1aGMzTnBaMjRnZkh3Z1puVnVZM1JwYjI0Z1gxOWhjM05wWjI0b2RDa2dlMXh5WEc0Z0lDQWdJQ0FnSUdadmNpQW9kbUZ5SUhNc0lHa2dQU0F4TENCdUlEMGdZWEpuZFcxbGJuUnpMbXhsYm1kMGFEc2dhU0E4SUc0N0lHa3JLeWtnZTF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0J6SUQwZ1lYSm5kVzFsYm5SelcybGRPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0haaGNpQndJR2x1SUhNcElHbG1JQ2hQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMbWhoYzA5M2JsQnliM0JsY25SNUxtTmhiR3dvY3l3Z2NDa3BJSFJiY0YwZ1BTQnpXM0JkTzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkRHRjY2x4dUlDQWdJSDFjY2x4dUlDQWdJSEpsZEhWeWJpQmZYMkZ6YzJsbmJpNWhjSEJzZVNoMGFHbHpMQ0JoY21kMWJXVnVkSE1wTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOXlaWE4wS0hNc0lHVXBJSHRjY2x4dUlDQWdJSFpoY2lCMElEMGdlMzA3WEhKY2JpQWdJQ0JtYjNJZ0tIWmhjaUJ3SUdsdUlITXBJR2xtSUNoUFltcGxZM1F1Y0hKdmRHOTBlWEJsTG1oaGMwOTNibEJ5YjNCbGNuUjVMbU5oYkd3b2N5d2djQ2tnSmlZZ1pTNXBibVJsZUU5bUtIQXBJRHdnTUNsY2NseHVJQ0FnSUNBZ0lDQjBXM0JkSUQwZ2MxdHdYVHRjY2x4dUlDQWdJR2xtSUNoeklDRTlJRzUxYkd3Z0ppWWdkSGx3Wlc5bUlFOWlhbVZqZEM1blpYUlBkMjVRY205d1pYSjBlVk41YldKdmJITWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpbGNjbHh1SUNBZ0lDQWdJQ0JtYjNJZ0tIWmhjaUJwSUQwZ01Dd2djQ0E5SUU5aWFtVmpkQzVuWlhSUGQyNVFjbTl3WlhKMGVWTjViV0p2YkhNb2N5azdJR2tnUENCd0xteGxibWQwYURzZ2FTc3JLU0I3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobExtbHVaR1Y0VDJZb2NGdHBYU2tnUENBd0lDWW1JRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVjSEp2Y0dWeWRIbEpjMFZ1ZFcxbGNtRmliR1V1WTJGc2JDaHpMQ0J3VzJsZEtTbGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJiY0Z0cFhWMGdQU0J6VzNCYmFWMWRPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUhKbGRIVnliaUIwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWtaV052Y21GMFpTaGtaV052Y21GMGIzSnpMQ0IwWVhKblpYUXNJR3RsZVN3Z1pHVnpZeWtnZTF4eVhHNGdJQ0FnZG1GeUlHTWdQU0JoY21kMWJXVnVkSE11YkdWdVozUm9MQ0J5SUQwZ1l5QThJRE1nUHlCMFlYSm5aWFFnT2lCa1pYTmpJRDA5UFNCdWRXeHNJRDhnWkdWell5QTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVVSbGMyTnlhWEIwYjNJb2RHRnlaMlYwTENCclpYa3BJRG9nWkdWell5d2daRHRjY2x4dUlDQWdJR2xtSUNoMGVYQmxiMllnVW1WbWJHVmpkQ0E5UFQwZ1hDSnZZbXBsWTNSY0lpQW1KaUIwZVhCbGIyWWdVbVZtYkdWamRDNWtaV052Y21GMFpTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtTQnlJRDBnVW1WbWJHVmpkQzVrWldOdmNtRjBaU2hrWldOdmNtRjBiM0p6TENCMFlYSm5aWFFzSUd0bGVTd2daR1Z6WXlrN1hISmNiaUFnSUNCbGJITmxJR1p2Y2lBb2RtRnlJR2tnUFNCa1pXTnZjbUYwYjNKekxteGxibWQwYUNBdElERTdJR2tnUGowZ01Ec2dhUzB0S1NCcFppQW9aQ0E5SUdSbFkyOXlZWFJ2Y25OYmFWMHBJSElnUFNBb1l5QThJRE1nUHlCa0tISXBJRG9nWXlBK0lETWdQeUJrS0hSaGNtZGxkQ3dnYTJWNUxDQnlLU0E2SUdRb2RHRnlaMlYwTENCclpYa3BLU0I4ZkNCeU8xeHlYRzRnSUNBZ2NtVjBkWEp1SUdNZ1BpQXpJQ1ltSUhJZ0ppWWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hSaGNtZGxkQ3dnYTJWNUxDQnlLU3dnY2p0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZjR0Z5WVcwb2NHRnlZVzFKYm1SbGVDd2daR1ZqYjNKaGRHOXlLU0I3WEhKY2JpQWdJQ0J5WlhSMWNtNGdablZ1WTNScGIyNGdLSFJoY21kbGRDd2dhMlY1S1NCN0lHUmxZMjl5WVhSdmNpaDBZWEpuWlhRc0lHdGxlU3dnY0dGeVlXMUpibVJsZUNrN0lIMWNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWlhORVpXTnZjbUYwWlNoamRHOXlMQ0JrWlhOamNtbHdkRzl5U1c0c0lHUmxZMjl5WVhSdmNuTXNJR052Ym5SbGVIUkpiaXdnYVc1cGRHbGhiR2w2WlhKekxDQmxlSFJ5WVVsdWFYUnBZV3hwZW1WeWN5a2dlMXh5WEc0Z0lDQWdablZ1WTNScGIyNGdZV05qWlhCMEtHWXBJSHNnYVdZZ0tHWWdJVDA5SUhadmFXUWdNQ0FtSmlCMGVYQmxiMllnWmlBaFBUMGdYQ0ptZFc1amRHbHZibHdpS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lSblZ1WTNScGIyNGdaWGh3WldOMFpXUmNJaWs3SUhKbGRIVnliaUJtT3lCOVhISmNiaUFnSUNCMllYSWdhMmx1WkNBOUlHTnZiblJsZUhSSmJpNXJhVzVrTENCclpYa2dQU0JyYVc1a0lEMDlQU0JjSW1kbGRIUmxjbHdpSUQ4Z1hDSm5aWFJjSWlBNklHdHBibVFnUFQwOUlGd2ljMlYwZEdWeVhDSWdQeUJjSW5ObGRGd2lJRG9nWENKMllXeDFaVndpTzF4eVhHNGdJQ0FnZG1GeUlIUmhjbWRsZENBOUlDRmtaWE5qY21sd2RHOXlTVzRnSmlZZ1kzUnZjaUEvSUdOdmJuUmxlSFJKYmx0Y0luTjBZWFJwWTF3aVhTQS9JR04wYjNJZ09pQmpkRzl5TG5CeWIzUnZkSGx3WlNBNklHNTFiR3c3WEhKY2JpQWdJQ0IyWVhJZ1pHVnpZM0pwY0hSdmNpQTlJR1JsYzJOeWFYQjBiM0pKYmlCOGZDQW9kR0Z5WjJWMElEOGdUMkpxWldOMExtZGxkRTkzYmxCeWIzQmxjblI1UkdWelkzSnBjSFJ2Y2loMFlYSm5aWFFzSUdOdmJuUmxlSFJKYmk1dVlXMWxLU0E2SUh0OUtUdGNjbHh1SUNBZ0lIWmhjaUJmTENCa2IyNWxJRDBnWm1Gc2MyVTdYSEpjYmlBZ0lDQm1iM0lnS0haaGNpQnBJRDBnWkdWamIzSmhkRzl5Y3k1c1pXNW5kR2dnTFNBeE95QnBJRDQ5SURBN0lHa3RMU2tnZTF4eVhHNGdJQ0FnSUNBZ0lIWmhjaUJqYjI1MFpYaDBJRDBnZTMwN1hISmNiaUFnSUNBZ0lDQWdabTl5SUNoMllYSWdjQ0JwYmlCamIyNTBaWGgwU1c0cElHTnZiblJsZUhSYmNGMGdQU0J3SUQwOVBTQmNJbUZqWTJWemMxd2lJRDhnZTMwZ09pQmpiMjUwWlhoMFNXNWJjRjA3WEhKY2JpQWdJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2NDQnBiaUJqYjI1MFpYaDBTVzR1WVdOalpYTnpLU0JqYjI1MFpYaDBMbUZqWTJWemMxdHdYU0E5SUdOdmJuUmxlSFJKYmk1aFkyTmxjM05iY0YwN1hISmNiaUFnSUNBZ0lDQWdZMjl1ZEdWNGRDNWhaR1JKYm1sMGFXRnNhWHBsY2lBOUlHWjFibU4wYVc5dUlDaG1LU0I3SUdsbUlDaGtiMjVsS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lRMkZ1Ym05MElHRmtaQ0JwYm1sMGFXRnNhWHBsY25NZ1lXWjBaWElnWkdWamIzSmhkR2x2YmlCb1lYTWdZMjl0Y0d4bGRHVmtYQ0lwT3lCbGVIUnlZVWx1YVhScFlXeHBlbVZ5Y3k1d2RYTm9LR0ZqWTJWd2RDaG1JSHg4SUc1MWJHd3BLVHNnZlR0Y2NseHVJQ0FnSUNBZ0lDQjJZWElnY21WemRXeDBJRDBnS0RBc0lHUmxZMjl5WVhSdmNuTmJhVjBwS0d0cGJtUWdQVDA5SUZ3aVlXTmpaWE56YjNKY0lpQS9JSHNnWjJWME9pQmtaWE5qY21sd2RHOXlMbWRsZEN3Z2MyVjBPaUJrWlhOamNtbHdkRzl5TG5ObGRDQjlJRG9nWkdWelkzSnBjSFJ2Y2x0clpYbGRMQ0JqYjI1MFpYaDBLVHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9hMmx1WkNBOVBUMGdYQ0poWTJObGMzTnZjbHdpS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHlaWE4xYkhRZ1BUMDlJSFp2YVdRZ01Da2dZMjl1ZEdsdWRXVTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h5WlhOMWJIUWdQVDA5SUc1MWJHd2dmSHdnZEhsd1pXOW1JSEpsYzNWc2RDQWhQVDBnWENKdlltcGxZM1JjSWlrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJazlpYW1WamRDQmxlSEJsWTNSbFpGd2lLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0Y4Z1BTQmhZMk5sY0hRb2NtVnpkV3gwTG1kbGRDa3BJR1JsYzJOeWFYQjBiM0l1WjJWMElEMGdYenRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0Y4Z1BTQmhZMk5sY0hRb2NtVnpkV3gwTG5ObGRDa3BJR1JsYzJOeWFYQjBiM0l1YzJWMElEMGdYenRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0Y4Z1BTQmhZMk5sY0hRb2NtVnpkV3gwTG1sdWFYUXBLU0JwYm1sMGFXRnNhWHBsY25NdWRXNXphR2xtZENoZktUdGNjbHh1SUNBZ0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1h5QTlJR0ZqWTJWd2RDaHlaWE4xYkhRcEtTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hyYVc1a0lEMDlQU0JjSW1acFpXeGtYQ0lwSUdsdWFYUnBZV3hwZW1WeWN5NTFibk5vYVdaMEtGOHBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdSbGMyTnlhWEIwYjNKYmEyVjVYU0E5SUY4N1hISmNiaUFnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdmVnh5WEc0Z0lDQWdhV1lnS0hSaGNtZGxkQ2tnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtIUmhjbWRsZEN3Z1kyOXVkR1Y0ZEVsdUxtNWhiV1VzSUdSbGMyTnlhWEIwYjNJcE8xeHlYRzRnSUNBZ1pHOXVaU0E5SUhSeWRXVTdYSEpjYm4wN1hISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5eWRXNUpibWwwYVdGc2FYcGxjbk1vZEdocGMwRnlaeXdnYVc1cGRHbGhiR2w2WlhKekxDQjJZV3gxWlNrZ2UxeHlYRzRnSUNBZ2RtRnlJSFZ6WlZaaGJIVmxJRDBnWVhKbmRXMWxiblJ6TG14bGJtZDBhQ0ErSURJN1hISmNiaUFnSUNCbWIzSWdLSFpoY2lCcElEMGdNRHNnYVNBOElHbHVhWFJwWVd4cGVtVnljeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHlYRzRnSUNBZ0lDQWdJSFpoYkhWbElEMGdkWE5sVm1Gc2RXVWdQeUJwYm1sMGFXRnNhWHBsY25OYmFWMHVZMkZzYkNoMGFHbHpRWEpuTENCMllXeDFaU2tnT2lCcGJtbDBhV0ZzYVhwbGNuTmJhVjB1WTJGc2JDaDBhR2x6UVhKbktUdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lISmxkSFZ5YmlCMWMyVldZV3gxWlNBL0lIWmhiSFZsSURvZ2RtOXBaQ0F3TzF4eVhHNTlPMXh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZjSEp2Y0V0bGVTaDRLU0I3WEhKY2JpQWdJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlIZ2dQVDA5SUZ3aWMzbHRZbTlzWENJZ1B5QjRJRG9nWENKY0lpNWpiMjVqWVhRb2VDazdYSEpjYm4wN1hISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5elpYUkdkVzVqZEdsdmJrNWhiV1VvWml3Z2JtRnRaU3dnY0hKbFptbDRLU0I3WEhKY2JpQWdJQ0JwWmlBb2RIbHdaVzltSUc1aGJXVWdQVDA5SUZ3aWMzbHRZbTlzWENJcElHNWhiV1VnUFNCdVlXMWxMbVJsYzJOeWFYQjBhVzl1SUQ4Z1hDSmJYQ0l1WTI5dVkyRjBLRzVoYldVdVpHVnpZM0pwY0hScGIyNHNJRndpWFZ3aUtTQTZJRndpWENJN1hISmNiaUFnSUNCeVpYUjFjbTRnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHWXNJRndpYm1GdFpWd2lMQ0I3SUdOdmJtWnBaM1Z5WVdKc1pUb2dkSEoxWlN3Z2RtRnNkV1U2SUhCeVpXWnBlQ0EvSUZ3aVhDSXVZMjl1WTJGMEtIQnlaV1pwZUN3Z1hDSWdYQ0lzSUc1aGJXVXBJRG9nYm1GdFpTQjlLVHRjY2x4dWZUdGNjbHh1WEhKY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCZlgyMWxkR0ZrWVhSaEtHMWxkR0ZrWVhSaFMyVjVMQ0J0WlhSaFpHRjBZVlpoYkhWbEtTQjdYSEpjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JRkpsWm14bFkzUWdQVDA5SUZ3aWIySnFaV04wWENJZ0ppWWdkSGx3Wlc5bUlGSmxabXhsWTNRdWJXVjBZV1JoZEdFZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlrZ2NtVjBkWEp1SUZKbFpteGxZM1F1YldWMFlXUmhkR0VvYldWMFlXUmhkR0ZMWlhrc0lHMWxkR0ZrWVhSaFZtRnNkV1VwTzF4eVhHNTlYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWhkMkZwZEdWeUtIUm9hWE5CY21jc0lGOWhjbWQxYldWdWRITXNJRkFzSUdkbGJtVnlZWFJ2Y2lrZ2UxeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z1lXUnZjSFFvZG1Gc2RXVXBJSHNnY21WMGRYSnVJSFpoYkhWbElHbHVjM1JoYm1ObGIyWWdVQ0EvSUhaaGJIVmxJRG9nYm1WM0lGQW9ablZ1WTNScGIyNGdLSEpsYzI5c2RtVXBJSHNnY21WemIyeDJaU2gyWVd4MVpTazdJSDBwT3lCOVhISmNiaUFnSUNCeVpYUjFjbTRnYm1WM0lDaFFJSHg4SUNoUUlEMGdVSEp2YldselpTa3BLR1oxYm1OMGFXOXVJQ2h5WlhOdmJIWmxMQ0J5WldwbFkzUXBJSHRjY2x4dUlDQWdJQ0FnSUNCbWRXNWpkR2x2YmlCbWRXeG1hV3hzWldRb2RtRnNkV1VwSUhzZ2RISjVJSHNnYzNSbGNDaG5aVzVsY21GMGIzSXVibVY0ZENoMllXeDFaU2twT3lCOUlHTmhkR05vSUNobEtTQjdJSEpsYW1WamRDaGxLVHNnZlNCOVhISmNiaUFnSUNBZ0lDQWdablZ1WTNScGIyNGdjbVZxWldOMFpXUW9kbUZzZFdVcElIc2dkSEo1SUhzZ2MzUmxjQ2huWlc1bGNtRjBiM0piWENKMGFISnZkMXdpWFNoMllXeDFaU2twT3lCOUlHTmhkR05vSUNobEtTQjdJSEpsYW1WamRDaGxLVHNnZlNCOVhISmNiaUFnSUNBZ0lDQWdablZ1WTNScGIyNGdjM1JsY0NoeVpYTjFiSFFwSUhzZ2NtVnpkV3gwTG1SdmJtVWdQeUJ5WlhOdmJIWmxLSEpsYzNWc2RDNTJZV3gxWlNrZ09pQmhaRzl3ZENoeVpYTjFiSFF1ZG1Gc2RXVXBMblJvWlc0b1puVnNabWxzYkdWa0xDQnlaV3BsWTNSbFpDazdJSDFjY2x4dUlDQWdJQ0FnSUNCemRHVndLQ2huWlc1bGNtRjBiM0lnUFNCblpXNWxjbUYwYjNJdVlYQndiSGtvZEdocGMwRnlaeXdnWDJGeVozVnRaVzUwY3lCOGZDQmJYU2twTG01bGVIUW9LU2s3WEhKY2JpQWdJQ0I5S1R0Y2NseHVmVnh5WEc1Y2NseHVaWGh3YjNKMElHWjFibU4wYVc5dUlGOWZaMlZ1WlhKaGRHOXlLSFJvYVhOQmNtY3NJR0p2WkhrcElIdGNjbHh1SUNBZ0lIWmhjaUJmSUQwZ2V5QnNZV0psYkRvZ01Dd2djMlZ1ZERvZ1puVnVZM1JwYjI0b0tTQjdJR2xtSUNoMFd6QmRJQ1lnTVNrZ2RHaHliM2NnZEZzeFhUc2djbVYwZFhKdUlIUmJNVjA3SUgwc0lIUnllWE02SUZ0ZExDQnZjSE02SUZ0ZElIMHNJR1lzSUhrc0lIUXNJR2M3WEhKY2JpQWdJQ0J5WlhSMWNtNGdaeUE5SUhzZ2JtVjRkRG9nZG1WeVlpZ3dLU3dnWENKMGFISnZkMXdpT2lCMlpYSmlLREVwTENCY0luSmxkSFZ5Ymx3aU9pQjJaWEppS0RJcElIMHNJSFI1Y0dWdlppQlRlVzFpYjJ3Z1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBbUppQW9aMXRUZVcxaWIyd3VhWFJsY21GMGIzSmRJRDBnWm5WdVkzUnBiMjRvS1NCN0lISmxkSFZ5YmlCMGFHbHpPeUI5S1N3Z1p6dGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlIWmxjbUlvYmlrZ2V5QnlaWFIxY200Z1puVnVZM1JwYjI0Z0tIWXBJSHNnY21WMGRYSnVJSE4wWlhBb1cyNHNJSFpkS1RzZ2ZUc2dmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdjM1JsY0NodmNDa2dlMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaG1LU0IwYUhKdmR5QnVaWGNnVkhsd1pVVnljbTl5S0Z3aVIyVnVaWEpoZEc5eUlHbHpJR0ZzY21WaFpIa2daWGhsWTNWMGFXNW5MbHdpS1R0Y2NseHVJQ0FnSUNBZ0lDQjNhR2xzWlNBb1p5QW1KaUFvWnlBOUlEQXNJRzl3V3pCZElDWW1JQ2hmSUQwZ01Da3BMQ0JmS1NCMGNua2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWmlBOUlERXNJSGtnSmlZZ0tIUWdQU0J2Y0Zzd1hTQW1JRElnUHlCNVcxd2ljbVYwZFhKdVhDSmRJRG9nYjNCYk1GMGdQeUI1VzF3aWRHaHliM2RjSWwwZ2ZId2dLQ2gwSUQwZ2VWdGNJbkpsZEhWeWJsd2lYU2tnSmlZZ2RDNWpZV3hzS0hrcExDQXdLU0E2SUhrdWJtVjRkQ2tnSmlZZ0lTaDBJRDBnZEM1allXeHNLSGtzSUc5d1d6RmRLU2t1Wkc5dVpTa2djbVYwZFhKdUlIUTdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2g1SUQwZ01Dd2dkQ2tnYjNBZ1BTQmJiM0JiTUYwZ0ppQXlMQ0IwTG5aaGJIVmxYVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjM2RwZEdOb0lDaHZjRnN3WFNrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBd09pQmpZWE5sSURFNklIUWdQU0J2Y0RzZ1luSmxZV3M3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRFE2SUY4dWJHRmlaV3dyS3pzZ2NtVjBkWEp1SUhzZ2RtRnNkV1U2SUc5d1d6RmRMQ0JrYjI1bE9pQm1ZV3h6WlNCOU8xeHlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBMU9pQmZMbXhoWW1Wc0t5czdJSGtnUFNCdmNGc3hYVHNnYjNBZ1BTQmJNRjA3SUdOdmJuUnBiblZsTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0EzT2lCdmNDQTlJRjh1YjNCekxuQnZjQ2dwT3lCZkxuUnllWE11Y0c5d0tDazdJR052Ym5ScGJuVmxPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWbVlYVnNkRHBjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVNoMElEMGdYeTUwY25sekxDQjBJRDBnZEM1c1pXNW5kR2dnUGlBd0lDWW1JSFJiZEM1c1pXNW5kR2dnTFNBeFhTa2dKaVlnS0c5d1d6QmRJRDA5UFNBMklIeDhJRzl3V3pCZElEMDlQU0F5S1NrZ2V5QmZJRDBnTURzZ1kyOXVkR2x1ZFdVN0lIMWNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iM0JiTUYwZ1BUMDlJRE1nSmlZZ0tDRjBJSHg4SUNodmNGc3hYU0ErSUhSYk1GMGdKaVlnYjNCYk1WMGdQQ0IwV3pOZEtTa3BJSHNnWHk1c1lXSmxiQ0E5SUc5d1d6RmRPeUJpY21WaGF6c2dmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h2Y0Zzd1hTQTlQVDBnTmlBbUppQmZMbXhoWW1Wc0lEd2dkRnN4WFNrZ2V5QmZMbXhoWW1Wc0lEMGdkRnN4WFRzZ2RDQTlJRzl3T3lCaWNtVmhhenNnZlZ4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMElDWW1JRjh1YkdGaVpXd2dQQ0IwV3pKZEtTQjdJRjh1YkdGaVpXd2dQU0IwV3pKZE95QmZMbTl3Y3k1d2RYTm9LRzl3S1RzZ1luSmxZV3M3SUgxY2NseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RGc3lYU2tnWHk1dmNITXVjRzl3S0NrN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWHk1MGNubHpMbkJ2Y0NncE95QmpiMjUwYVc1MVpUdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNDQTlJR0p2WkhrdVkyRnNiQ2gwYUdselFYSm5MQ0JmS1R0Y2NseHVJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaGxLU0I3SUc5d0lEMGdXellzSUdWZE95QjVJRDBnTURzZ2ZTQm1hVzVoYkd4NUlIc2daaUE5SUhRZ1BTQXdPeUI5WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLRzl3V3pCZElDWWdOU2tnZEdoeWIzY2diM0JiTVYwN0lISmxkSFZ5YmlCN0lIWmhiSFZsT2lCdmNGc3dYU0EvSUc5d1d6RmRJRG9nZG05cFpDQXdMQ0JrYjI1bE9pQjBjblZsSUgwN1hISmNiaUFnSUNCOVhISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQjJZWElnWDE5amNtVmhkR1ZDYVc1a2FXNW5JRDBnVDJKcVpXTjBMbU55WldGMFpTQS9JQ2htZFc1amRHbHZiaWh2TENCdExDQnJMQ0JyTWlrZ2UxeHlYRzRnSUNBZ2FXWWdLR3N5SUQwOVBTQjFibVJsWm1sdVpXUXBJR3N5SUQwZ2F6dGNjbHh1SUNBZ0lIWmhjaUJrWlhOaklEMGdUMkpxWldOMExtZGxkRTkzYmxCeWIzQmxjblI1UkdWelkzSnBjSFJ2Y2lodExDQnJLVHRjY2x4dUlDQWdJR2xtSUNnaFpHVnpZeUI4ZkNBb1hDSm5aWFJjSWlCcGJpQmtaWE5qSUQ4Z0lXMHVYMTlsYzAxdlpIVnNaU0E2SUdSbGMyTXVkM0pwZEdGaWJHVWdmSHdnWkdWell5NWpiMjVtYVdkMWNtRmliR1VwS1NCN1hISmNiaUFnSUNBZ0lDQWdaR1Z6WXlBOUlIc2daVzUxYldWeVlXSnNaVG9nZEhKMVpTd2daMlYwT2lCbWRXNWpkR2x2YmlncElIc2djbVYwZFhKdUlHMWJhMTA3SUgwZ2ZUdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2h2TENCck1pd2daR1Z6WXlrN1hISmNibjBwSURvZ0tHWjFibU4wYVc5dUtHOHNJRzBzSUdzc0lHc3lLU0I3WEhKY2JpQWdJQ0JwWmlBb2F6SWdQVDA5SUhWdVpHVm1hVzVsWkNrZ2F6SWdQU0JyTzF4eVhHNGdJQ0FnYjF0ck1sMGdQU0J0VzJ0ZE8xeHlYRzU5S1R0Y2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJWNGNHOXlkRk4wWVhJb2JTd2dieWtnZTF4eVhHNGdJQ0FnWm05eUlDaDJZWElnY0NCcGJpQnRLU0JwWmlBb2NDQWhQVDBnWENKa1pXWmhkV3gwWENJZ0ppWWdJVTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2h2TENCd0tTa2dYMTlqY21WaGRHVkNhVzVrYVc1bktHOHNJRzBzSUhBcE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTkyWVd4MVpYTW9ieWtnZTF4eVhHNGdJQ0FnZG1GeUlITWdQU0IwZVhCbGIyWWdVM2x0WW05c0lEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ0ppWWdVM2x0WW05c0xtbDBaWEpoZEc5eUxDQnRJRDBnY3lBbUppQnZXM05kTENCcElEMGdNRHRjY2x4dUlDQWdJR2xtSUNodEtTQnlaWFIxY200Z2JTNWpZV3hzS0c4cE8xeHlYRzRnSUNBZ2FXWWdLRzhnSmlZZ2RIbHdaVzltSUc4dWJHVnVaM1JvSUQwOVBTQmNJbTUxYldKbGNsd2lLU0J5WlhSMWNtNGdlMXh5WEc0Z0lDQWdJQ0FnSUc1bGVIUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHOGdKaVlnYVNBK1BTQnZMbXhsYm1kMGFDa2dieUE5SUhadmFXUWdNRHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIc2dkbUZzZFdVNklHOGdKaVlnYjF0cEt5dGRMQ0JrYjI1bE9pQWhieUI5TzF4eVhHNGdJQ0FnSUNBZ0lIMWNjbHh1SUNBZ0lIMDdYSEpjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLSE1nUHlCY0lrOWlhbVZqZENCcGN5QnViM1FnYVhSbGNtRmliR1V1WENJZ09pQmNJbE41YldKdmJDNXBkR1Z5WVhSdmNpQnBjeUJ1YjNRZ1pHVm1hVzVsWkM1Y0lpazdYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDNKbFlXUW9ieXdnYmlrZ2UxeHlYRzRnSUNBZ2RtRnlJRzBnUFNCMGVYQmxiMllnVTNsdFltOXNJRDA5UFNCY0ltWjFibU4wYVc5dVhDSWdKaVlnYjF0VGVXMWliMnd1YVhSbGNtRjBiM0pkTzF4eVhHNGdJQ0FnYVdZZ0tDRnRLU0J5WlhSMWNtNGdienRjY2x4dUlDQWdJSFpoY2lCcElEMGdiUzVqWVd4c0tHOHBMQ0J5TENCaGNpQTlJRnRkTENCbE8xeHlYRzRnSUNBZ2RISjVJSHRjY2x4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvS0c0Z1BUMDlJSFp2YVdRZ01DQjhmQ0J1TFMwZ1BpQXdLU0FtSmlBaEtISWdQU0JwTG01bGVIUW9LU2t1Wkc5dVpTa2dZWEl1Y0hWemFDaHlMblpoYkhWbEtUdGNjbHh1SUNBZ0lIMWNjbHh1SUNBZ0lHTmhkR05vSUNobGNuSnZjaWtnZXlCbElEMGdleUJsY25KdmNqb2daWEp5YjNJZ2ZUc2dmVnh5WEc0Z0lDQWdabWx1WVd4c2VTQjdYSEpjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSElnSmlZZ0lYSXVaRzl1WlNBbUppQW9iU0E5SUdsYlhDSnlaWFIxY201Y0lsMHBLU0J0TG1OaGJHd29hU2s3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR1pwYm1Gc2JIa2dleUJwWmlBb1pTa2dkR2h5YjNjZ1pTNWxjbkp2Y2pzZ2ZWeHlYRzRnSUNBZ2ZWeHlYRzRnSUNBZ2NtVjBkWEp1SUdGeU8xeHlYRzU5WEhKY2JseHlYRzR2S2lvZ1FHUmxjSEpsWTJGMFpXUWdLaTljY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmMzQnlaV0ZrS0NrZ2UxeHlYRzRnSUNBZ1ptOXlJQ2gyWVhJZ1lYSWdQU0JiWFN3Z2FTQTlJREE3SUdrZ1BDQmhjbWQxYldWdWRITXViR1Z1WjNSb095QnBLeXNwWEhKY2JpQWdJQ0FnSUNBZ1lYSWdQU0JoY2k1amIyNWpZWFFvWDE5eVpXRmtLR0Z5WjNWdFpXNTBjMXRwWFNrcE8xeHlYRzRnSUNBZ2NtVjBkWEp1SUdGeU8xeHlYRzU5WEhKY2JseHlYRzR2S2lvZ1FHUmxjSEpsWTJGMFpXUWdLaTljY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZmMzQnlaV0ZrUVhKeVlYbHpLQ2tnZTF4eVhHNGdJQ0FnWm05eUlDaDJZWElnY3lBOUlEQXNJR2tnUFNBd0xDQnBiQ0E5SUdGeVozVnRaVzUwY3k1c1pXNW5kR2c3SUdrZ1BDQnBiRHNnYVNzcktTQnpJQ3M5SUdGeVozVnRaVzUwYzF0cFhTNXNaVzVuZEdnN1hISmNiaUFnSUNCbWIzSWdLSFpoY2lCeUlEMGdRWEp5WVhrb2N5a3NJR3NnUFNBd0xDQnBJRDBnTURzZ2FTQThJR2xzT3lCcEt5c3BYSEpjYmlBZ0lDQWdJQ0FnWm05eUlDaDJZWElnWVNBOUlHRnlaM1Z0Wlc1MGMxdHBYU3dnYWlBOUlEQXNJR3BzSUQwZ1lTNXNaVzVuZEdnN0lHb2dQQ0JxYkRzZ2Fpc3JMQ0JyS3lzcFhISmNiaUFnSUNBZ0lDQWdJQ0FnSUhKYmExMGdQU0JoVzJwZE8xeHlYRzRnSUNBZ2NtVjBkWEp1SUhJN1hISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYM053Y21WaFpFRnljbUY1S0hSdkxDQm1jbTl0TENCd1lXTnJLU0I3WEhKY2JpQWdJQ0JwWmlBb2NHRmpheUI4ZkNCaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvSUQwOVBTQXlLU0JtYjNJZ0tIWmhjaUJwSUQwZ01Dd2diQ0E5SUdaeWIyMHViR1Z1WjNSb0xDQmhjanNnYVNBOElHdzdJR2tyS3lrZ2UxeHlYRzRnSUNBZ0lDQWdJR2xtSUNoaGNpQjhmQ0FoS0drZ2FXNGdabkp2YlNrcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZoY2lrZ1lYSWdQU0JCY25KaGVTNXdjbTkwYjNSNWNHVXVjMnhwWTJVdVkyRnNiQ2htY205dExDQXdMQ0JwS1R0Y2NseHVJQ0FnSUNBZ0lDQWdJQ0FnWVhKYmFWMGdQU0JtY205dFcybGRPMXh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUgxY2NseHVJQ0FnSUhKbGRIVnliaUIwYnk1amIyNWpZWFFvWVhJZ2ZId2dRWEp5WVhrdWNISnZkRzkwZVhCbExuTnNhV05sTG1OaGJHd29abkp2YlNrcE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTloZDJGcGRDaDJLU0I3WEhKY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3lCcGJuTjBZVzVqWlc5bUlGOWZZWGRoYVhRZ1B5QW9kR2hwY3k1MklEMGdkaXdnZEdocGN5a2dPaUJ1WlhjZ1gxOWhkMkZwZENoMktUdGNjbHh1ZlZ4eVhHNWNjbHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRjlmWVhONWJtTkhaVzVsY21GMGIzSW9kR2hwYzBGeVp5d2dYMkZ5WjNWdFpXNTBjeXdnWjJWdVpYSmhkRzl5S1NCN1hISmNiaUFnSUNCcFppQW9JVk41YldKdmJDNWhjM2x1WTBsMFpYSmhkRzl5S1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lVM2x0WW05c0xtRnplVzVqU1hSbGNtRjBiM0lnYVhNZ2JtOTBJR1JsWm1sdVpXUXVYQ0lwTzF4eVhHNGdJQ0FnZG1GeUlHY2dQU0JuWlc1bGNtRjBiM0l1WVhCd2JIa29kR2hwYzBGeVp5d2dYMkZ5WjNWdFpXNTBjeUI4ZkNCYlhTa3NJR2tzSUhFZ1BTQmJYVHRjY2x4dUlDQWdJSEpsZEhWeWJpQnBJRDBnZTMwc0lIWmxjbUlvWENKdVpYaDBYQ0lwTENCMlpYSmlLRndpZEdoeWIzZGNJaWtzSUhabGNtSW9YQ0p5WlhSMWNtNWNJaWtzSUdsYlUzbHRZbTlzTG1GemVXNWpTWFJsY21GMGIzSmRJRDBnWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RHaHBjenNnZlN3Z2FUdGNjbHh1SUNBZ0lHWjFibU4wYVc5dUlIWmxjbUlvYmlrZ2V5QnBaaUFvWjF0dVhTa2dhVnR1WFNBOUlHWjFibU4wYVc5dUlDaDJLU0I3SUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNobWRXNWpkR2x2YmlBb1lTd2dZaWtnZXlCeExuQjFjMmdvVzI0c0lIWXNJR0VzSUdKZEtTQStJREVnZkh3Z2NtVnpkVzFsS0c0c0lIWXBPeUI5S1RzZ2ZUc2dmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdjbVZ6ZFcxbEtHNHNJSFlwSUhzZ2RISjVJSHNnYzNSbGNDaG5XMjVkS0hZcEtUc2dmU0JqWVhSamFDQW9aU2tnZXlCelpYUjBiR1VvY1Zzd1hWc3pYU3dnWlNrN0lIMGdmVnh5WEc0Z0lDQWdablZ1WTNScGIyNGdjM1JsY0NoeUtTQjdJSEl1ZG1Gc2RXVWdhVzV6ZEdGdVkyVnZaaUJmWDJGM1lXbDBJRDhnVUhKdmJXbHpaUzV5WlhOdmJIWmxLSEl1ZG1Gc2RXVXVkaWt1ZEdobGJpaG1kV3htYVd4c0xDQnlaV3BsWTNRcElEb2djMlYwZEd4bEtIRmJNRjFiTWwwc0lISXBPeUI5WEhKY2JpQWdJQ0JtZFc1amRHbHZiaUJtZFd4bWFXeHNLSFpoYkhWbEtTQjdJSEpsYzNWdFpTaGNJbTVsZUhSY0lpd2dkbUZzZFdVcE95QjlYSEpjYmlBZ0lDQm1kVzVqZEdsdmJpQnlaV3BsWTNRb2RtRnNkV1VwSUhzZ2NtVnpkVzFsS0Z3aWRHaHliM2RjSWl3Z2RtRnNkV1VwT3lCOVhISmNiaUFnSUNCbWRXNWpkR2x2YmlCelpYUjBiR1VvWml3Z2Rpa2dleUJwWmlBb1ppaDJLU3dnY1M1emFHbG1kQ2dwTENCeExteGxibWQwYUNrZ2NtVnpkVzFsS0hGYk1GMWJNRjBzSUhGYk1GMWJNVjBwT3lCOVhISmNibjFjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMkZ6ZVc1alJHVnNaV2RoZEc5eUtHOHBJSHRjY2x4dUlDQWdJSFpoY2lCcExDQndPMXh5WEc0Z0lDQWdjbVYwZFhKdUlHa2dQU0I3ZlN3Z2RtVnlZaWhjSW01bGVIUmNJaWtzSUhabGNtSW9YQ0owYUhKdmQxd2lMQ0JtZFc1amRHbHZiaUFvWlNrZ2V5QjBhSEp2ZHlCbE95QjlLU3dnZG1WeVlpaGNJbkpsZEhWeWJsd2lLU3dnYVZ0VGVXMWliMnd1YVhSbGNtRjBiM0pkSUQwZ1puVnVZM1JwYjI0Z0tDa2dleUJ5WlhSMWNtNGdkR2hwY3pzZ2ZTd2dhVHRjY2x4dUlDQWdJR1oxYm1OMGFXOXVJSFpsY21Jb2Jpd2daaWtnZXlCcFcyNWRJRDBnYjF0dVhTQS9JR1oxYm1OMGFXOXVJQ2gyS1NCN0lISmxkSFZ5YmlBb2NDQTlJQ0Z3S1NBL0lIc2dkbUZzZFdVNklGOWZZWGRoYVhRb2IxdHVYU2gyS1Nrc0lHUnZibVU2SUdaaGJITmxJSDBnT2lCbUlEOGdaaWgyS1NBNklIWTdJSDBnT2lCbU95QjlYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJGemVXNWpWbUZzZFdWektHOHBJSHRjY2x4dUlDQWdJR2xtSUNnaFUzbHRZbTlzTG1GemVXNWpTWFJsY21GMGIzSXBJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKVGVXMWliMnd1WVhONWJtTkpkR1Z5WVhSdmNpQnBjeUJ1YjNRZ1pHVm1hVzVsWkM1Y0lpazdYSEpjYmlBZ0lDQjJZWElnYlNBOUlHOWJVM2x0WW05c0xtRnplVzVqU1hSbGNtRjBiM0pkTENCcE8xeHlYRzRnSUNBZ2NtVjBkWEp1SUcwZ1B5QnRMbU5oYkd3b2J5a2dPaUFvYnlBOUlIUjVjR1Z2WmlCZlgzWmhiSFZsY3lBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUQ4Z1gxOTJZV3gxWlhNb2J5a2dPaUJ2VzFONWJXSnZiQzVwZEdWeVlYUnZjbDBvS1N3Z2FTQTlJSHQ5TENCMlpYSmlLRndpYm1WNGRGd2lLU3dnZG1WeVlpaGNJblJvY205M1hDSXBMQ0IyWlhKaUtGd2ljbVYwZFhKdVhDSXBMQ0JwVzFONWJXSnZiQzVoYzNsdVkwbDBaWEpoZEc5eVhTQTlJR1oxYm1OMGFXOXVJQ2dwSUhzZ2NtVjBkWEp1SUhSb2FYTTdJSDBzSUdrcE8xeHlYRzRnSUNBZ1puVnVZM1JwYjI0Z2RtVnlZaWh1S1NCN0lHbGJibDBnUFNCdlcyNWRJQ1ltSUdaMWJtTjBhVzl1SUNoMktTQjdJSEpsZEhWeWJpQnVaWGNnVUhKdmJXbHpaU2htZFc1amRHbHZiaUFvY21WemIyeDJaU3dnY21WcVpXTjBLU0I3SUhZZ1BTQnZXMjVkS0hZcExDQnpaWFIwYkdVb2NtVnpiMngyWlN3Z2NtVnFaV04wTENCMkxtUnZibVVzSUhZdWRtRnNkV1VwT3lCOUtUc2dmVHNnZlZ4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnYzJWMGRHeGxLSEpsYzI5c2RtVXNJSEpsYW1WamRDd2daQ3dnZGlrZ2V5QlFjbTl0YVhObExuSmxjMjlzZG1Vb2Rpa3VkR2hsYmlobWRXNWpkR2x2YmloMktTQjdJSEpsYzI5c2RtVW9leUIyWVd4MVpUb2dkaXdnWkc5dVpUb2daQ0I5S1RzZ2ZTd2djbVZxWldOMEtUc2dmVnh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWDE5dFlXdGxWR1Z0Y0d4aGRHVlBZbXBsWTNRb1kyOXZhMlZrTENCeVlYY3BJSHRjY2x4dUlDQWdJR2xtSUNoUFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa3BJSHNnVDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHTnZiMnRsWkN3Z1hDSnlZWGRjSWl3Z2V5QjJZV3gxWlRvZ2NtRjNJSDBwT3lCOUlHVnNjMlVnZXlCamIyOXJaV1F1Y21GM0lEMGdjbUYzT3lCOVhISmNiaUFnSUNCeVpYUjFjbTRnWTI5dmEyVmtPMXh5WEc1OU8xeHlYRzVjY2x4dWRtRnlJRjlmYzJWMFRXOWtkV3hsUkdWbVlYVnNkQ0E5SUU5aWFtVmpkQzVqY21WaGRHVWdQeUFvWm5WdVkzUnBiMjRvYnl3Z2Rpa2dlMXh5WEc0Z0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0c4c0lGd2laR1ZtWVhWc2RGd2lMQ0I3SUdWdWRXMWxjbUZpYkdVNklIUnlkV1VzSUhaaGJIVmxPaUIySUgwcE8xeHlYRzU5S1NBNklHWjFibU4wYVc5dUtHOHNJSFlwSUh0Y2NseHVJQ0FnSUc5YlhDSmtaV1poZFd4MFhDSmRJRDBnZGp0Y2NseHVmVHRjY2x4dVhISmNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmZYMmx0Y0c5eWRGTjBZWElvYlc5a0tTQjdYSEpjYmlBZ0lDQnBaaUFvYlc5a0lDWW1JRzF2WkM1ZlgyVnpUVzlrZFd4bEtTQnlaWFIxY200Z2JXOWtPMXh5WEc0Z0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUh0OU8xeHlYRzRnSUNBZ2FXWWdLRzF2WkNBaFBTQnVkV3hzS1NCbWIzSWdLSFpoY2lCcklHbHVJRzF2WkNrZ2FXWWdLR3NnSVQwOUlGd2laR1ZtWVhWc2RGd2lJQ1ltSUU5aWFtVmpkQzV3Y205MGIzUjVjR1V1YUdGelQzZHVVSEp2Y0dWeWRIa3VZMkZzYkNodGIyUXNJR3NwS1NCZlgyTnlaV0YwWlVKcGJtUnBibWNvY21WemRXeDBMQ0J0YjJRc0lHc3BPMXh5WEc0Z0lDQWdYMTl6WlhSTmIyUjFiR1ZFWldaaGRXeDBLSEpsYzNWc2RDd2diVzlrS1R0Y2NseHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYSEpjYm4xY2NseHVYSEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJmWDJsdGNHOXlkRVJsWm1GMWJIUW9iVzlrS1NCN1hISmNiaUFnSUNCeVpYUjFjbTRnS0cxdlpDQW1KaUJ0YjJRdVgxOWxjMDF2WkhWc1pTa2dQeUJ0YjJRZ09pQjdJR1JsWm1GMWJIUTZJRzF2WkNCOU8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTlqYkdGemMxQnlhWFpoZEdWR2FXVnNaRWRsZENoeVpXTmxhWFpsY2l3Z2MzUmhkR1VzSUd0cGJtUXNJR1lwSUh0Y2NseHVJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQmNJbUZjSWlBbUppQWhaaWtnZEdoeWIzY2dibVYzSUZSNWNHVkZjbkp2Y2loY0lsQnlhWFpoZEdVZ1lXTmpaWE56YjNJZ2QyRnpJR1JsWm1sdVpXUWdkMmwwYUc5MWRDQmhJR2RsZEhSbGNsd2lLVHRjY2x4dUlDQWdJR2xtSUNoMGVYQmxiMllnYzNSaGRHVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JSEpsWTJWcGRtVnlJQ0U5UFNCemRHRjBaU0I4ZkNBaFppQTZJQ0Z6ZEdGMFpTNW9ZWE1vY21WalpXbDJaWElwS1NCMGFISnZkeUJ1WlhjZ1ZIbHdaVVZ5Y205eUtGd2lRMkZ1Ym05MElISmxZV1FnY0hKcGRtRjBaU0J0WlcxaVpYSWdabkp2YlNCaGJpQnZZbXBsWTNRZ2QyaHZjMlVnWTJ4aGMzTWdaR2xrSUc1dmRDQmtaV05zWVhKbElHbDBYQ0lwTzF4eVhHNGdJQ0FnY21WMGRYSnVJR3RwYm1RZ1BUMDlJRndpYlZ3aUlEOGdaaUE2SUd0cGJtUWdQVDA5SUZ3aVlWd2lJRDhnWmk1allXeHNLSEpsWTJWcGRtVnlLU0E2SUdZZ1B5Qm1MblpoYkhWbElEb2djM1JoZEdVdVoyVjBLSEpsWTJWcGRtVnlLVHRjY2x4dWZWeHlYRzVjY2x4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUY5ZlkyeGhjM05RY21sMllYUmxSbWxsYkdSVFpYUW9jbVZqWldsMlpYSXNJSE4wWVhSbExDQjJZV3gxWlN3Z2EybHVaQ3dnWmlrZ2UxeHlYRzRnSUNBZ2FXWWdLR3RwYm1RZ1BUMDlJRndpYlZ3aUtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpVUhKcGRtRjBaU0J0WlhSb2IyUWdhWE1nYm05MElIZHlhWFJoWW14bFhDSXBPMXh5WEc0Z0lDQWdhV1lnS0d0cGJtUWdQVDA5SUZ3aVlWd2lJQ1ltSUNGbUtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpVUhKcGRtRjBaU0JoWTJObGMzTnZjaUIzWVhNZ1pHVm1hVzVsWkNCM2FYUm9iM1YwSUdFZ2MyVjBkR1Z5WENJcE8xeHlYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQnpkR0YwWlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUQ4Z2NtVmpaV2wyWlhJZ0lUMDlJSE4wWVhSbElIeDhJQ0ZtSURvZ0lYTjBZWFJsTG1oaGN5aHlaV05sYVhabGNpa3BJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKRFlXNXViM1FnZDNKcGRHVWdjSEpwZG1GMFpTQnRaVzFpWlhJZ2RHOGdZVzRnYjJKcVpXTjBJSGRvYjNObElHTnNZWE56SUdScFpDQnViM1FnWkdWamJHRnlaU0JwZEZ3aUtUdGNjbHh1SUNBZ0lISmxkSFZ5YmlBb2EybHVaQ0E5UFQwZ1hDSmhYQ0lnUHlCbUxtTmhiR3dvY21WalpXbDJaWElzSUhaaGJIVmxLU0E2SUdZZ1B5Qm1MblpoYkhWbElEMGdkbUZzZFdVZ09pQnpkR0YwWlM1elpYUW9jbVZqWldsMlpYSXNJSFpoYkhWbEtTa3NJSFpoYkhWbE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTlqYkdGemMxQnlhWFpoZEdWR2FXVnNaRWx1S0hOMFlYUmxMQ0J5WldObGFYWmxjaWtnZTF4eVhHNGdJQ0FnYVdZZ0tISmxZMlZwZG1WeUlEMDlQU0J1ZFd4c0lIeDhJQ2gwZVhCbGIyWWdjbVZqWldsMlpYSWdJVDA5SUZ3aWIySnFaV04wWENJZ0ppWWdkSGx3Wlc5bUlISmxZMlZwZG1WeUlDRTlQU0JjSW1aMWJtTjBhVzl1WENJcEtTQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpUTJGdWJtOTBJSFZ6WlNBbmFXNG5JRzl3WlhKaGRHOXlJRzl1SUc1dmJpMXZZbXBsWTNSY0lpazdYSEpjYmlBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhOMFlYUmxJRDA5UFNCY0ltWjFibU4wYVc5dVhDSWdQeUJ5WldObGFYWmxjaUE5UFQwZ2MzUmhkR1VnT2lCemRHRjBaUzVvWVhNb2NtVmpaV2wyWlhJcE8xeHlYRzU5WEhKY2JseHlYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdYMTloWkdSRWFYTndiM05oWW14bFVtVnpiM1Z5WTJVb1pXNTJMQ0IyWVd4MVpTd2dZWE41Ym1NcElIdGNjbHh1SUNBZ0lHbG1JQ2gyWVd4MVpTQWhQVDBnYm5Wc2JDQW1KaUIyWVd4MVpTQWhQVDBnZG05cFpDQXdLU0I3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQjJZV3gxWlNBaFBUMGdYQ0p2WW1wbFkzUmNJaUFtSmlCMGVYQmxiMllnZG1Gc2RXVWdJVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWs5aWFtVmpkQ0JsZUhCbFkzUmxaQzVjSWlrN1hISmNiaUFnSUNBZ0lDQWdkbUZ5SUdScGMzQnZjMlU3WEhKY2JpQWdJQ0FnSUNBZ2FXWWdLR0Z6ZVc1aktTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doVTNsdFltOXNMbUZ6ZVc1alJHbHpjRzl6WlNrZ2RHaHliM2NnYm1WM0lGUjVjR1ZGY25KdmNpaGNJbE41YldKdmJDNWhjM2x1WTBScGMzQnZjMlVnYVhNZ2JtOTBJR1JsWm1sdVpXUXVYQ0lwTzF4eVhHNGdJQ0FnSUNBZ0lDQWdJQ0JrYVhOd2IzTmxJRDBnZG1Gc2RXVmJVM2x0WW05c0xtRnplVzVqUkdsemNHOXpaVjA3WEhKY2JpQWdJQ0FnSUNBZ2ZWeHlYRzRnSUNBZ0lDQWdJR2xtSUNoa2FYTndiM05sSUQwOVBTQjJiMmxrSURBcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZUZVcxaWIyd3VaR2x6Y0c5elpTa2dkR2h5YjNjZ2JtVjNJRlI1Y0dWRmNuSnZjaWhjSWxONWJXSnZiQzVrYVhOd2IzTmxJR2x6SUc1dmRDQmtaV1pwYm1Wa0xsd2lLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdaR2x6Y0c5elpTQTlJSFpoYkhWbFcxTjViV0p2YkM1a2FYTndiM05sWFR0Y2NseHVJQ0FnSUNBZ0lDQjlYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCa2FYTndiM05sSUNFOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUhSb2NtOTNJRzVsZHlCVWVYQmxSWEp5YjNJb1hDSlBZbXBsWTNRZ2JtOTBJR1JwYzNCdmMyRmliR1V1WENJcE8xeHlYRzRnSUNBZ0lDQWdJR1Z1ZGk1emRHRmpheTV3ZFhOb0tIc2dkbUZzZFdVNklIWmhiSFZsTENCa2FYTndiM05sT2lCa2FYTndiM05sTENCaGMzbHVZem9nWVhONWJtTWdmU2s3WEhKY2JpQWdJQ0I5WEhKY2JpQWdJQ0JsYkhObElHbG1JQ2hoYzNsdVl5a2dlMXh5WEc0Z0lDQWdJQ0FnSUdWdWRpNXpkR0ZqYXk1d2RYTm9LSHNnWVhONWJtTTZJSFJ5ZFdVZ2ZTazdYSEpjYmlBZ0lDQjlYSEpjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1U3WEhKY2JuMWNjbHh1WEhKY2JuWmhjaUJmVTNWd2NISmxjM05sWkVWeWNtOXlJRDBnZEhsd1pXOW1JRk4xY0hCeVpYTnpaV1JGY25KdmNpQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUlEOGdVM1Z3Y0hKbGMzTmxaRVZ5Y205eUlEb2dablZ1WTNScGIyNGdLR1Z5Y205eUxDQnpkWEJ3Y21WemMyVmtMQ0J0WlhOellXZGxLU0I3WEhKY2JpQWdJQ0IyWVhJZ1pTQTlJRzVsZHlCRmNuSnZjaWh0WlhOellXZGxLVHRjY2x4dUlDQWdJSEpsZEhWeWJpQmxMbTVoYldVZ1BTQmNJbE4xY0hCeVpYTnpaV1JGY25KdmNsd2lMQ0JsTG1WeWNtOXlJRDBnWlhKeWIzSXNJR1V1YzNWd2NISmxjM05sWkNBOUlITjFjSEJ5WlhOelpXUXNJR1U3WEhKY2JuMDdYSEpjYmx4eVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1gxOWthWE53YjNObFVtVnpiM1Z5WTJWektHVnVkaWtnZTF4eVhHNGdJQ0FnWm5WdVkzUnBiMjRnWm1GcGJDaGxLU0I3WEhKY2JpQWdJQ0FnSUNBZ1pXNTJMbVZ5Y205eUlEMGdaVzUyTG1oaGMwVnljbTl5SUQ4Z2JtVjNJRjlUZFhCd2NtVnpjMlZrUlhKeWIzSW9aU3dnWlc1MkxtVnljbTl5TENCY0lrRnVJR1Z5Y205eUlIZGhjeUJ6ZFhCd2NtVnpjMlZrSUdSMWNtbHVaeUJrYVhOd2IzTmhiQzVjSWlrZ09pQmxPMXh5WEc0Z0lDQWdJQ0FnSUdWdWRpNW9ZWE5GY25KdmNpQTlJSFJ5ZFdVN1hISmNiaUFnSUNCOVhISmNiaUFnSUNCbWRXNWpkR2x2YmlCdVpYaDBLQ2tnZTF4eVhHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNobGJuWXVjM1JoWTJzdWJHVnVaM1JvS1NCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaV01nUFNCbGJuWXVjM1JoWTJzdWNHOXdLQ2s3WEhKY2JpQWdJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hISmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZWElnY21WemRXeDBJRDBnY21WakxtUnBjM0J2YzJVZ0ppWWdjbVZqTG1ScGMzQnZjMlV1WTJGc2JDaHlaV011ZG1Gc2RXVXBPMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tISmxZeTVoYzNsdVl5a2djbVYwZFhKdUlGQnliMjFwYzJVdWNtVnpiMngyWlNoeVpYTjFiSFFwTG5Sb1pXNG9ibVY0ZEN3Z1puVnVZM1JwYjI0b1pTa2dleUJtWVdsc0tHVXBPeUJ5WlhSMWNtNGdibVY0ZENncE95QjlLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWFJqYUNBb1pTa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1GcGJDaGxLVHRjY2x4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnBaaUFvWlc1MkxtaGhjMFZ5Y205eUtTQjBhSEp2ZHlCbGJuWXVaWEp5YjNJN1hISmNiaUFnSUNCOVhISmNiaUFnSUNCeVpYUjFjbTRnYm1WNGRDZ3BPMXh5WEc1OVhISmNibHh5WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0I3WEhKY2JpQWdJQ0JmWDJWNGRHVnVaSE02SUY5ZlpYaDBaVzVrY3l4Y2NseHVJQ0FnSUY5ZllYTnphV2R1T2lCZlgyRnpjMmxuYml4Y2NseHVJQ0FnSUY5ZmNtVnpkRG9nWDE5eVpYTjBMRnh5WEc0Z0lDQWdYMTlrWldOdmNtRjBaVG9nWDE5a1pXTnZjbUYwWlN4Y2NseHVJQ0FnSUY5ZmNHRnlZVzA2SUY5ZmNHRnlZVzBzWEhKY2JpQWdJQ0JmWDIxbGRHRmtZWFJoT2lCZlgyMWxkR0ZrWVhSaExGeHlYRzRnSUNBZ1gxOWhkMkZwZEdWeU9pQmZYMkYzWVdsMFpYSXNYSEpjYmlBZ0lDQmZYMmRsYm1WeVlYUnZjam9nWDE5blpXNWxjbUYwYjNJc1hISmNiaUFnSUNCZlgyTnlaV0YwWlVKcGJtUnBibWM2SUY5ZlkzSmxZWFJsUW1sdVpHbHVaeXhjY2x4dUlDQWdJRjlmWlhod2IzSjBVM1JoY2pvZ1gxOWxlSEJ2Y25SVGRHRnlMRnh5WEc0Z0lDQWdYMTkyWVd4MVpYTTZJRjlmZG1Gc2RXVnpMRnh5WEc0Z0lDQWdYMTl5WldGa09pQmZYM0psWVdRc1hISmNiaUFnSUNCZlgzTndjbVZoWkRvZ1gxOXpjSEpsWVdRc1hISmNiaUFnSUNCZlgzTndjbVZoWkVGeWNtRjVjem9nWDE5emNISmxZV1JCY25KaGVYTXNYSEpjYmlBZ0lDQmZYM053Y21WaFpFRnljbUY1T2lCZlgzTndjbVZoWkVGeWNtRjVMRnh5WEc0Z0lDQWdYMTloZDJGcGREb2dYMTloZDJGcGRDeGNjbHh1SUNBZ0lGOWZZWE41Ym1OSFpXNWxjbUYwYjNJNklGOWZZWE41Ym1OSFpXNWxjbUYwYjNJc1hISmNiaUFnSUNCZlgyRnplVzVqUkdWc1pXZGhkRzl5T2lCZlgyRnplVzVqUkdWc1pXZGhkRzl5TEZ4eVhHNGdJQ0FnWDE5aGMzbHVZMVpoYkhWbGN6b2dYMTloYzNsdVkxWmhiSFZsY3l4Y2NseHVJQ0FnSUY5ZmJXRnJaVlJsYlhCc1lYUmxUMkpxWldOME9pQmZYMjFoYTJWVVpXMXdiR0YwWlU5aWFtVmpkQ3hjY2x4dUlDQWdJRjlmYVcxd2IzSjBVM1JoY2pvZ1gxOXBiWEJ2Y25SVGRHRnlMRnh5WEc0Z0lDQWdYMTlwYlhCdmNuUkVaV1poZFd4ME9pQmZYMmx0Y0c5eWRFUmxabUYxYkhRc1hISmNiaUFnSUNCZlgyTnNZWE56VUhKcGRtRjBaVVpwWld4a1IyVjBPaUJmWDJOc1lYTnpVSEpwZG1GMFpVWnBaV3hrUjJWMExGeHlYRzRnSUNBZ1gxOWpiR0Z6YzFCeWFYWmhkR1ZHYVdWc1pGTmxkRG9nWDE5amJHRnpjMUJ5YVhaaGRHVkdhV1ZzWkZObGRDeGNjbHh1SUNBZ0lGOWZZMnhoYzNOUWNtbDJZWFJsUm1sbGJHUkpiam9nWDE5amJHRnpjMUJ5YVhaaGRHVkdhV1ZzWkVsdUxGeHlYRzRnSUNBZ1gxOWhaR1JFYVhOd2IzTmhZbXhsVW1WemIzVnlZMlU2SUY5ZllXUmtSR2x6Y0c5ellXSnNaVkpsYzI5MWNtTmxMRnh5WEc0Z0lDQWdYMTlrYVhOd2IzTmxVbVZ6YjNWeVkyVnpPaUJmWDJScGMzQnZjMlZTWlhOdmRYSmpaWE1zWEhKY2JuMDdYSEpjYmlJc0ltbHRjRzl5ZENCMGVYQmxJQ29nWVhNZ1ZFaFNSVVVnWm5KdmJTQW5kR2h5WldVbk8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkSEpoZG1WeWMyVkJibU5sYzNSdmNuTkdjbTl0VW05dmRDaHZZbXBsWTNRNklGUklVa1ZGTGs5aWFtVmpkRE5FTENCallXeHNZbUZqYXpvZ0tHOWlhbVZqZERvZ1ZFaFNSVVV1VDJKcVpXTjBNMFFwSUQwK0lIWnZhV1FwT2lCMmIybGtJSHRjYmlBZ1kyOXVjM1FnWVc1alpYTjBiM0p6T2lCVVNGSkZSUzVQWW1wbFkzUXpSRnRkSUQwZ1cxMDdYRzVjYmlBZ2JHVjBJR2hsWVdRNklGUklVa1ZGTGs5aWFtVmpkRE5FSUh3Z2JuVnNiQ0E5SUc5aWFtVmpkRHRjYmlBZ2QyaHBiR1VnS0dobFlXUWdJVDA5SUc1MWJHd3BJSHRjYmlBZ0lDQmhibU5sYzNSdmNuTXVkVzV6YUdsbWRDaG9aV0ZrS1R0Y2JpQWdJQ0JvWldGa0lEMGdhR1ZoWkM1d1lYSmxiblE3WEc0Z0lIMWNibHh1SUNCaGJtTmxjM1J2Y25NdVptOXlSV0ZqYUNnb1lXNWpaWE4wYjNJcElEMCtJSHRjYmlBZ0lDQmpZV3hzWW1GamF5aGhibU5sYzNSdmNpazdYRzRnSUgwcE8xeHVmVnh1SWl3aWFXMXdiM0owSUhSNWNHVWdLaUJoY3lCVVNGSkZSU0JtY205dElDZDBhSEpsWlNjN1hHNWNiaThxS2x4dUlDb2dWSEpoZG1WeWMyVWdZMmhwYkdSeVpXNGdiMllnWjJsMlpXNGdiMkpxWldOMElHRnVaQ0JsZUdWamRYUmxJR2RwZG1WdUlHTmhiR3hpWVdOckxseHVJQ29nVkdobElHZHBkbVZ1SUc5aWFtVmpkQ0JwZEhObGJHWWdkMjl1ZENCaVpTQm5hWFpsYmlCMGJ5QjBhR1VnWTJGc2JHSmhZMnN1WEc0Z0tpQkpaaUIwYUdVZ2NtVjBkWEp1SUhaaGJIVmxJRzltSUhSb1pTQmpZV3hzWW1GamF5QnBjeUJnZEhKMVpXQXNJR2wwSUhkcGJHd2dhR0ZzZENCMGFHVWdkSEpoZG1WeWMyRnNJRzltSUdsMGN5QmphR2xzWkhKbGJpNWNiaUFxSUVCd1lYSmhiU0J2WW1wbFkzUWdRU0J5YjI5MElHOWlhbVZqZEZ4dUlDb2dRSEJoY21GdElHTmhiR3hpWVdOcklFRWdZMkZzYkdKaFkyc2dablZ1WTNScGIyNGdZMkZzYkdWa0lHWnZjaUJsWVdOb0lHTm9hV3hrY21WdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIwY21GMlpYSnpaVU5vYVd4a2NtVnVWVzUwYVd4RGIyNWthWFJwYjI1TlpYUW9YRzRnSUc5aWFtVmpkRG9nVkVoU1JVVXVUMkpxWldOME0wUXNYRzRnSUdOaGJHeGlZV05yT2lBb2IySnFaV04wT2lCVVNGSkZSUzVQWW1wbFkzUXpSQ2tnUFQ0Z1ltOXZiR1ZoYml4Y2JpazZJSFp2YVdRZ2UxeHVJQ0J2WW1wbFkzUXVZMmhwYkdSeVpXNHVabTl5UldGamFDZ29ZMmhwYkdRcElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCallXeHNZbUZqYXloamFHbHNaQ2s3WEc0Z0lDQWdhV1lnS0NGeVpYTjFiSFFwSUh0Y2JpQWdJQ0FnSUhSeVlYWmxjbk5sUTJocGJHUnlaVzVWYm5ScGJFTnZibVJwZEdsdmJrMWxkQ2hqYUdsc1pDd2dZMkZzYkdKaFkyc3BPMXh1SUNBZ0lIMWNiaUFnZlNrN1hHNTlYRzRpTENKcGJYQnZjblFnZEhsd1pTQXFJR0Z6SUZSSVVrVkZJR1p5YjIwZ0ozUm9jbVZsSnp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwSUgwZ1puSnZiU0FuTGk5V1VrMVRjSEpwYm1kQ2IyNWxTbTlwYm5Rbk8xeHVhVzF3YjNKMElIc2dkSEpoZG1WeWMyVkJibU5sYzNSdmNuTkdjbTl0VW05dmRDQjlJR1p5YjIwZ0p5NHZkWFJwYkhNdmRISmhkbVZ5YzJWQmJtTmxjM1J2Y25OR2NtOXRVbTl2ZENjN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUZaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNpQjlJR1p5YjIwZ0p5NHZWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5Snp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVIzSnZkWEFnZlNCbWNtOXRJQ2N1TDFaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNrZHliM1Z3Snp0Y2JtbHRjRzl5ZENCN0lIUnlZWFpsY25ObFEyaHBiR1J5Wlc1VmJuUnBiRU52Ym1ScGRHbHZiazFsZENCOUlHWnliMjBnSnk0dmRYUnBiSE12ZEhKaGRtVnljMlZEYUdsc1pISmxibFZ1ZEdsc1EyOXVaR2wwYVc5dVRXVjBKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRlpTVFZOd2NtbHVaMEp2Ym1WTllXNWhaMlZ5SUh0Y2JpQWdjSEpwZG1GMFpTQmZhbTlwYm5SeklEMGdibVYzSUZObGREeFdVazFUY0hKcGJtZENiMjVsU205cGJuUStLQ2s3WEc0Z0lIQjFZbXhwWXlCblpYUWdhbTlwYm5SektDazZJRk5sZER4V1VrMVRjSEpwYm1kQ2IyNWxTbTlwYm5RK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWZhbTlwYm5Sek8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhCeVpXTmhkR1ZrSUZWelpTQjdRR3hwYm1zZ2FtOXBiblJ6ZlNCcGJuTjBaV0ZrTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdkbGRDQnpjSEpwYm1kQ2IyNWxjeWdwT2lCVFpYUThWbEpOVTNCeWFXNW5RbTl1WlVwdmFXNTBQaUI3WEc0Z0lDQWdZMjl1YzI5c1pTNTNZWEp1S0NkV1VrMVRjSEpwYm1kQ2IyNWxUV0Z1WVdkbGNqb2djM0J5YVc1blFtOXVaWE1nYVhNZ1pHVndjbVZqWVhSbFpDNGdkWE5sSUdwdmFXNTBjeUJwYm5OMFpXRmtMaWNwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgycHZhVzUwY3p0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdZMjlzYkdsa1pYSkhjbTkxY0hNb0tUb2dWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5UjNKdmRYQmJYU0I3WEc0Z0lDQWdZMjl1YzNRZ2MyVjBJRDBnYm1WM0lGTmxkRHhXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhKSGNtOTFjRDRvS1R0Y2JpQWdJQ0IwYUdsekxsOXFiMmx1ZEhNdVptOXlSV0ZqYUNnb2MzQnlhVzVuUW05dVpTa2dQVDRnZTF4dUlDQWdJQ0FnYzNCeWFXNW5RbTl1WlM1amIyeHNhV1JsY2tkeWIzVndjeTVtYjNKRllXTm9LQ2hqYjJ4c2FXUmxja2R5YjNWd0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhObGRDNWhaR1FvWTI5c2JHbGtaWEpIY205MWNDazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z1FYSnlZWGt1Wm5KdmJTaHpaWFFwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQmpiMnhzYVdSbGNuTW9LVG9nVmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVcxMGdlMXh1SUNBZ0lHTnZibk4wSUhObGRDQTlJRzVsZHlCVFpYUThWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5UGlncE8xeHVJQ0FnSUhSb2FYTXVZMjlzYkdsa1pYSkhjbTkxY0hNdVptOXlSV0ZqYUNnb1kyOXNiR2xrWlhKSGNtOTFjQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXNiR2xrWlhKSGNtOTFjQzVqYjJ4c2FXUmxjbk11Wm05eVJXRmphQ2dvWTI5c2JHbGtaWElwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjMlYwTG1Ga1pDaGpiMnhzYVdSbGNpazdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z1FYSnlZWGt1Wm5KdmJTaHpaWFFwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCZmIySnFaV04wVTNCeWFXNW5RbTl1WlhOTllYQWdQU0J1WlhjZ1RXRndQRlJJVWtWRkxrOWlhbVZqZERORUxDQlRaWFE4VmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwUGo0b0tUdGNibHh1SUNCd2RXSnNhV01nWVdSa1NtOXBiblFvYW05cGJuUTZJRlpTVFZOd2NtbHVaMEp2Ym1WS2IybHVkQ2s2SUhadmFXUWdlMXh1SUNBZ0lIUm9hWE11WDJwdmFXNTBjeTVoWkdRb2FtOXBiblFwTzF4dVhHNGdJQ0FnYkdWMElHOWlhbVZqZEZObGRDQTlJSFJvYVhNdVgyOWlhbVZqZEZOd2NtbHVaMEp2Ym1WelRXRndMbWRsZENocWIybHVkQzVpYjI1bEtUdGNiaUFnSUNCcFppQW9iMkpxWldOMFUyVjBJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJRzlpYW1WamRGTmxkQ0E5SUc1bGR5QlRaWFE4VmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwUGlncE8xeHVJQ0FnSUNBZ2RHaHBjeTVmYjJKcVpXTjBVM0J5YVc1blFtOXVaWE5OWVhBdWMyVjBLR3B2YVc1MExtSnZibVVzSUc5aWFtVmpkRk5sZENrN1hHNGdJQ0FnZlZ4dUlDQWdJRzlpYW1WamRGTmxkQzVoWkdRb2FtOXBiblFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWEJ5WldOaGRHVmtJRlZ6WlNCN1FHeHBibXNnWVdSa1NtOXBiblI5SUdsdWMzUmxZV1F1WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWVdSa1UzQnlhVzVuUW05dVpTaHFiMmx1ZERvZ1ZsSk5VM0J5YVc1blFtOXVaVXB2YVc1MEtUb2dkbTlwWkNCN1hHNGdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtDZFdVazFUY0hKcGJtZENiMjVsVFdGdVlXZGxjam9nWVdSa1UzQnlhVzVuUW05dVpTZ3BJR2x6SUdSbGNISmxZMkYwWldRdUlIVnpaU0JoWkdSS2IybHVkQ2dwSUdsdWMzUmxZV1F1SnlrN1hHNWNiaUFnSUNCMGFHbHpMbUZrWkVwdmFXNTBLR3B2YVc1MEtUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmtaV3hsZEdWS2IybHVkQ2hxYjJsdWREb2dWbEpOVTNCeWFXNW5RbTl1WlVwdmFXNTBLVG9nZG05cFpDQjdYRzRnSUNBZ2RHaHBjeTVmYW05cGJuUnpMbVJsYkdWMFpTaHFiMmx1ZENrN1hHNWNiaUFnSUNCamIyNXpkQ0J2WW1wbFkzUlRaWFFnUFNCMGFHbHpMbDl2WW1wbFkzUlRjSEpwYm1kQ2IyNWxjMDFoY0M1blpYUW9hbTlwYm5RdVltOXVaU2toTzF4dUlDQWdJRzlpYW1WamRGTmxkQzVrWld4bGRHVW9hbTlwYm5RcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhCeVpXTmhkR1ZrSUZWelpTQjdRR3hwYm1zZ1pHVnNaWFJsU205cGJuUjlJR2x1YzNSbFlXUXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaR1ZzWlhSbFUzQnlhVzVuUW05dVpTaHFiMmx1ZERvZ1ZsSk5VM0J5YVc1blFtOXVaVXB2YVc1MEtUb2dkbTlwWkNCN1hHNGdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtDZFdVazFUY0hKcGJtZENiMjVsVFdGdVlXZGxjam9nWkdWc1pYUmxVM0J5YVc1blFtOXVaU2dwSUdseklHUmxjSEpsWTJGMFpXUXVJSFZ6WlNCa1pXeGxkR1ZLYjJsdWRDZ3BJR2x1YzNSbFlXUXVKeWs3WEc1Y2JpQWdJQ0IwYUdsekxtUmxiR1YwWlVwdmFXNTBLR3B2YVc1MEtUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QnpaWFJKYm1sMFUzUmhkR1VvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2MzQnlhVzVuUW05dVpYTlVjbWxsWkNBOUlHNWxkeUJUWlhROFZsSk5VM0J5YVc1blFtOXVaVXB2YVc1MFBpZ3BPMXh1SUNBZ0lHTnZibk4wSUhOd2NtbHVaMEp2Ym1WelJHOXVaU0E5SUc1bGR5QlRaWFE4VmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwUGlncE8xeHVJQ0FnSUdOdmJuTjBJRzlpYW1WamRGVndaR0YwWldRZ1BTQnVaWGNnVTJWMFBGUklVa1ZGTGs5aWFtVmpkRE5FUGlncE8xeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQnpjSEpwYm1kQ2IyNWxJRzltSUhSb2FYTXVYMnB2YVc1MGN5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZmNISnZZMlZ6YzFOd2NtbHVaMEp2Ym1Vb2MzQnlhVzVuUW05dVpTd2djM0J5YVc1blFtOXVaWE5VY21sbFpDd2djM0J5YVc1blFtOXVaWE5FYjI1bExDQnZZbXBsWTNSVmNHUmhkR1ZrTENBb2MzQnlhVzVuUW05dVpTa2dQVDVjYmlBZ0lDQWdJQ0FnYzNCeWFXNW5RbTl1WlM1elpYUkpibWwwVTNSaGRHVW9LU3hjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSEpsYzJWMEtDazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTjBJSE53Y21sdVowSnZibVZ6VkhKcFpXUWdQU0J1WlhjZ1UyVjBQRlpTVFZOd2NtbHVaMEp2Ym1WS2IybHVkRDRvS1R0Y2JpQWdJQ0JqYjI1emRDQnpjSEpwYm1kQ2IyNWxjMFJ2Ym1VZ1BTQnVaWGNnVTJWMFBGWlNUVk53Y21sdVowSnZibVZLYjJsdWRENG9LVHRjYmlBZ0lDQmpiMjV6ZENCdlltcGxZM1JWY0dSaGRHVmtJRDBnYm1WM0lGTmxkRHhVU0ZKRlJTNVBZbXBsWTNRelJENG9LVHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYzNCeWFXNW5RbTl1WlNCdlppQjBhR2x6TGw5cWIybHVkSE1wSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYM0J5YjJObGMzTlRjSEpwYm1kQ2IyNWxLSE53Y21sdVowSnZibVVzSUhOd2NtbHVaMEp2Ym1WelZISnBaV1FzSUhOd2NtbHVaMEp2Ym1WelJHOXVaU3dnYjJKcVpXTjBWWEJrWVhSbFpDd2dLSE53Y21sdVowSnZibVVwSUQwK1hHNGdJQ0FnSUNBZ0lITndjbWx1WjBKdmJtVXVjbVZ6WlhRb0tTeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklIVndaR0YwWlNoa1pXeDBZVG9nYm5WdFltVnlLVG9nZG05cFpDQjdYRzRnSUNBZ1kyOXVjM1FnYzNCeWFXNW5RbTl1WlhOVWNtbGxaQ0E5SUc1bGR5QlRaWFE4VmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwUGlncE8xeHVJQ0FnSUdOdmJuTjBJSE53Y21sdVowSnZibVZ6Ukc5dVpTQTlJRzVsZHlCVFpYUThWbEpOVTNCeWFXNW5RbTl1WlVwdmFXNTBQaWdwTzF4dUlDQWdJR052Ym5OMElHOWlhbVZqZEZWd1pHRjBaV1FnUFNCdVpYY2dVMlYwUEZSSVVrVkZMazlpYW1WamRETkVQaWdwTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCemNISnBibWRDYjI1bElHOW1JSFJvYVhNdVgycHZhVzUwY3lrZ2UxeHVJQ0FnSUNBZ0x5OGdkWEJrWVhSbElIUm9aU0J6Y0hKcGJtZGliMjVsWEc0Z0lDQWdJQ0IwYUdsekxsOXdjbTlqWlhOelUzQnlhVzVuUW05dVpTaHpjSEpwYm1kQ2IyNWxMQ0J6Y0hKcGJtZENiMjVsYzFSeWFXVmtMQ0J6Y0hKcGJtZENiMjVsYzBSdmJtVXNJRzlpYW1WamRGVndaR0YwWldRc0lDaHpjSEpwYm1kQ2IyNWxLU0E5UGx4dUlDQWdJQ0FnSUNCemNISnBibWRDYjI1bExuVndaR0YwWlNoa1pXeDBZU2tzWEc0Z0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBdkx5QjFjR1JoZEdVZ1kyaHBiR1J5Wlc0Z2QyOXliR1FnYldGMGNtbGpaWE5jYmlBZ0lDQWdJQzh2SUdsMElHbHpJSEpsY1hWcGNtVmtJSGRvWlc0Z2RHaGxJSE53Y21sdVp5QmliMjVsSUdOb1lXbHVJR2x6SUhOd1lYSnpaVnh1SUNBZ0lDQWdkSEpoZG1WeWMyVkRhR2xzWkhKbGJsVnVkR2xzUTI5dVpHbDBhVzl1VFdWMEtITndjbWx1WjBKdmJtVXVZbTl1WlN3Z0tHOWlhbVZqZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0F2THlCcFppQjBhR1VnYjJKcVpXTjBJR2hoY3lCaGRIUmhZMmhsWkNCemNISnBibWRpYjI1bExDQm9ZV3gwSUhSb1pTQjBjbUYyWlhKellXeGNiaUFnSUNBZ0lDQWdhV1lnS0NoMGFHbHpMbDl2WW1wbFkzUlRjSEpwYm1kQ2IyNWxjMDFoY0M1blpYUW9iMkpxWldOMEtUOHVjMmw2WlNBL1B5QXdLU0ErSURBcElIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQzh2SUc5MGFHVnlkMmx6WlNCMWNHUmhkR1VnYVhSeklIZHZjbXhrSUcxaGRISnBlRnh1SUNBZ0lDQWdJQ0J2WW1wbFkzUXVkWEJrWVhSbFYyOXliR1JOWVhSeWFYZ29abUZzYzJVc0lHWmhiSE5sS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZWd1pHRjBaU0JoSUhOd2NtbHVaeUJpYjI1bExseHVJQ0FnS2lCSlppQjBhR1Z5WlNCaGNtVWdiM1JvWlhJZ2MzQnlhVzVuSUdKdmJtVWdkR2hoZENCaGNtVWdaR1Z3Wlc1a1lXNTBMQ0JwZENCM2FXeHNJSFJ5ZVNCMGJ5QjFjR1JoZEdVZ2RHaGxiU0J5WldOMWNuTnBkbVZzZVM1Y2JpQWdJQ29nU1hRZ2RYQmtZWFJsY3lCdFlYUnlhWGhYYjNKc1pDQnZaaUJoYkd3Z1lXNWpaWE4wYjNKeklHRnVaQ0J0ZVhObGJHWXVYRzRnSUNBcUlFbDBJRzFwWjJoMElIUm9jbTkzSUdGdUlHVnljbTl5SUdsbUlIUm9aWEpsSUdGeVpTQmphWEpqZFd4aGNpQmtaWEJsYm1SbGJtTnBaWE11WEc0Z0lDQXFYRzRnSUNBcUlFbHVkR1Z1WkdWa0lIUnZJR0psSUhWelpXUWdhVzRnZTBCc2FXNXJJSFZ3WkdGMFpYMGdZVzVrSUh0QWJHbHVheUJmY0hKdlkyVnpjMU53Y21sdVowSnZibVY5SUdsMGMyVnNaaUJ5WldOMWNuTnBkbVZzZVM1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElITndjbWx1WjBKdmJtVWdRU0J6Y0hKcGJtZENiMjVsSUhsdmRTQjNZVzUwSUhSdklIVndaR0YwWlZ4dUlDQWdLaUJBY0dGeVlXMGdjM0J5YVc1blFtOXVaWE5VY21sbFpDQlRaWFFnYjJZZ2MzQnlhVzVuUW05dVpYTWdkR2hoZENCaGNtVWdZV3h5WldGa2VTQjBjbWxsWkNCMGJ5QmlaU0IxY0dSaGRHVmtYRzRnSUNBcUlFQndZWEpoYlNCemNISnBibWRDYjI1bGMwUnZibVVnVTJWMElHOW1JSE53Y21sdVowSnZibVZ6SUhSb1lYUWdZWEpsSUdGc2NtVmhaSGtnZFhBZ2RHOGdaR0YwWlZ4dUlDQWdLaUJBY0dGeVlXMGdiMkpxWldOMFZYQmtZWFJsWkNCVFpYUWdiMllnYjJKcVpXTjBNMFFnZDJodmMyVWdiV0YwY21sNFYyOXliR1FnYVhNZ2RYQmtZWFJsWkZ4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCZmNISnZZMlZ6YzFOd2NtbHVaMEp2Ym1Vb1hHNGdJQ0FnYzNCeWFXNW5RbTl1WlRvZ1ZsSk5VM0J5YVc1blFtOXVaVXB2YVc1MExGeHVJQ0FnSUhOd2NtbHVaMEp2Ym1WelZISnBaV1E2SUZObGREeFdVazFUY0hKcGJtZENiMjVsU205cGJuUStMRnh1SUNBZ0lITndjbWx1WjBKdmJtVnpSRzl1WlRvZ1UyVjBQRlpTVFZOd2NtbHVaMEp2Ym1WS2IybHVkRDRzWEc0Z0lDQWdiMkpxWldOMFZYQmtZWFJsWkRvZ1UyVjBQRlJJVWtWRkxrOWlhbVZqZERORVBpeGNiaUFnSUNCallXeHNZbUZqYXpvZ0tITndjbWx1WjBKdmJtVTZJRlpTVFZOd2NtbHVaMEp2Ym1WS2IybHVkQ2tnUFQ0Z2RtOXBaQ3hjYmlBZ0tUb2dkbTlwWkNCN1hHNGdJQ0FnYVdZZ0tITndjbWx1WjBKdmJtVnpSRzl1WlM1b1lYTW9jM0J5YVc1blFtOXVaU2twSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYzNCeWFXNW5RbTl1WlhOVWNtbGxaQzVvWVhNb2MzQnlhVzVuUW05dVpTa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25WbEpOVTNCeWFXNW5RbTl1WlUxaGJtRm5aWEk2SUVOcGNtTjFiR0Z5SUdSbGNHVnVaR1Z1WTNrZ1pHVjBaV04wWldRZ2QyaHBiR1VnZFhCa1lYUnBibWNnYzNCeWFXNW5ZbTl1WlhNbktUdGNiaUFnSUNCOVhHNGdJQ0FnYzNCeWFXNW5RbTl1WlhOVWNtbGxaQzVoWkdRb2MzQnlhVzVuUW05dVpTazdYRzVjYmlBZ0lDQmpiMjV6ZENCa1pYQlBZbXBsWTNSeklEMGdkR2hwY3k1ZloyVjBSR1Z3Wlc1a1pXNWphV1Z6S0hOd2NtbHVaMEp2Ym1VcE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1pHVndUMkpxWldOMElHOW1JR1JsY0U5aWFtVmpkSE1wSUh0Y2JpQWdJQ0FnSUhSeVlYWmxjbk5sUVc1alpYTjBiM0p6Um5KdmJWSnZiM1FvWkdWd1QySnFaV04wTENBb1pHVndUMkpxWldOMFFXNWpaWE4wYjNJcElEMCtJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdiMkpxWldOMFUyVjBJRDBnZEdocGN5NWZiMkpxWldOMFUzQnlhVzVuUW05dVpYTk5ZWEF1WjJWMEtHUmxjRTlpYW1WamRFRnVZMlZ6ZEc5eUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0c5aWFtVmpkRk5sZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWkdWd1UzQnlhVzVuUW05dVpTQnZaaUJ2WW1wbFkzUlRaWFFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVgzQnliMk5sYzNOVGNISnBibWRDYjI1bEtHUmxjRk53Y21sdVowSnZibVVzSUhOd2NtbHVaMEp2Ym1WelZISnBaV1FzSUhOd2NtbHVaMEp2Ym1WelJHOXVaU3dnYjJKcVpXTjBWWEJrWVhSbFpDd2dZMkZzYkdKaFkyc3BPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hiMkpxWldOMFZYQmtZWFJsWkM1b1lYTW9aR1Z3VDJKcVpXTjBRVzVqWlhOMGIzSXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdkWEJrWVhSbElHMWhkSEpwZUNCdlppQnViMjR0YzNCeWFXNW5ZbTl1WlZ4dUlDQWdJQ0FnSUNBZ0lHUmxjRTlpYW1WamRFRnVZMlZ6ZEc5eUxuVndaR0YwWlZkdmNteGtUV0YwY21sNEtHWmhiSE5sTENCbVlXeHpaU2s3WEc0Z0lDQWdJQ0FnSUNBZ2IySnFaV04wVlhCa1lYUmxaQzVoWkdRb1pHVndUMkpxWldOMFFXNWpaWE4wYjNJcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUIxY0dSaGRHVWdiWGtnYldGMGNtbDRYRzRnSUNBZ2MzQnlhVzVuUW05dVpTNWliMjVsTG5Wd1pHRjBaVTFoZEhKcGVDZ3BPMXh1SUNBZ0lITndjbWx1WjBKdmJtVXVZbTl1WlM1MWNHUmhkR1ZYYjNKc1pFMWhkSEpwZUNobVlXeHpaU3dnWm1Gc2MyVXBPMXh1WEc0Z0lDQWdZMkZzYkdKaFkyc29jM0J5YVc1blFtOXVaU2s3WEc1Y2JpQWdJQ0J2WW1wbFkzUlZjR1JoZEdWa0xtRmtaQ2h6Y0hKcGJtZENiMjVsTG1KdmJtVXBPMXh1WEc0Z0lDQWdjM0J5YVc1blFtOXVaWE5FYjI1bExtRmtaQ2h6Y0hKcGJtZENiMjVsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNaWFIxY200Z1lTQnpaWFFnYjJZZ2IySnFaV04wY3lCMGFHRjBJR0Z5WlNCa1pYQmxibVJoYm5RZ2IyWWdaMmwyWlc0Z2MzQnlhVzVuSUdKdmJtVXVYRzRnSUNBcUlFQndZWEpoYlNCemNISnBibWRDYjI1bElFRWdjM0J5YVc1bklHSnZibVZjYmlBZ0lDb2dRSEpsZEhWeWJpQkJJSE5sZENCdlppQnZZbXBsWTNSeklIUm9ZWFFnWVhKbElHUmxjR1Z1WkdGdWRDQnZaaUJuYVhabGJpQnpjSEpwYm1jZ1ltOXVaVnh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0JmWjJWMFJHVndaVzVrWlc1amFXVnpLSE53Y21sdVowSnZibVU2SUZaU1RWTndjbWx1WjBKdmJtVktiMmx1ZENrNklGTmxkRHhVU0ZKRlJTNVBZbXBsWTNRelJENGdlMXh1SUNBZ0lHTnZibk4wSUhObGRDQTlJRzVsZHlCVFpYUThWRWhTUlVVdVQySnFaV04wTTBRK0tDazdYRzVjYmlBZ0lDQmpiMjV6ZENCd1lYSmxiblFnUFNCemNISnBibWRDYjI1bExtSnZibVV1Y0dGeVpXNTBPMXh1SUNBZ0lHbG1JQ2h3WVhKbGJuUXBJSHRjYmlBZ0lDQWdJSE5sZEM1aFpHUW9jR0Z5Wlc1MEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCemNISnBibWRDYjI1bExtTnZiR3hwWkdWeVIzSnZkWEJ6TG1admNrVmhZMmdvS0dOdmJHeHBaR1Z5UjNKdmRYQXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJHeHBaR1Z5UjNKdmRYQXVZMjlzYkdsa1pYSnpMbVp2Y2tWaFkyZ29LR052Ykd4cFpHVnlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lITmxkQzVoWkdRb1kyOXNiR2xrWlhJcE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnlaWFIxY200Z2MyVjBPMXh1SUNCOVhHNTlYRzRpTENKcGJYQnZjblFnZEhsd1pTQXFJR0Z6SUZZd1ZsSk5JR1p5YjIwZ0owQndhWGhwZGk5MGVYQmxjeTEyY20wdE1DNHdKenRjYm1sdGNHOXlkQ0IwZVhCbElDb2dZWE1nVmpGVGNISnBibWRDYjI1bFUyTm9aVzFoSUdaeWIyMGdKMEJ3YVhocGRpOTBlWEJsY3kxMmNtMWpMWE53Y21sdVoySnZibVV0TVM0d0p6dGNibWx0Y0c5eWRDQXFJR0Z6SUZSSVVrVkZJR1p5YjIwZ0ozUm9jbVZsSnp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnUjB4VVJpd2dSMHhVUmt4dllXUmxjbEJzZFdkcGJpd2dSMHhVUmxCaGNuTmxjaUI5SUdaeWIyMGdKM1JvY21WbEwyVjRZVzF3YkdWekwycHpiUzlzYjJGa1pYSnpMMGRNVkVaTWIyRmtaWEl1YW5Nbk8xeHVhVzF3YjNKMElIc2dWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5U0dWc2NHVnlMQ0JXVWsxVGNISnBibWRDYjI1bFNtOXBiblJJWld4d1pYSWdmU0JtY205dElDY3VMMmhsYkhCbGNuTW5PMXh1YVcxd2IzSjBJSHNnVmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeUlIMGdabkp2YlNBbkxpOVdVazFUY0hKcGJtZENiMjVsUTI5c2JHbGtaWEluTzF4dWFXMXdiM0owSUhSNWNHVWdleUJXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhKSGNtOTFjQ0I5SUdaeWIyMGdKeTR2VmxKTlUzQnlhVzVuUW05dVpVTnZiR3hwWkdWeVIzSnZkWEFuTzF4dWFXMXdiM0owSUhzZ1ZsSk5VM0J5YVc1blFtOXVaVU52Ykd4cFpHVnlVMmhoY0dWRFlYQnpkV3hsSUgwZ1puSnZiU0FuTGk5V1VrMVRjSEpwYm1kQ2IyNWxRMjlzYkdsa1pYSlRhR0Z3WlVOaGNITjFiR1VuTzF4dWFXMXdiM0owSUhzZ1ZsSk5VM0J5YVc1blFtOXVaVU52Ykd4cFpHVnlVMmhoY0dWVGNHaGxjbVVnZlNCbWNtOXRJQ2N1TDFaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNsTm9ZWEJsVTNCb1pYSmxKenRjYm1sdGNHOXlkQ0I3SUZaU1RWTndjbWx1WjBKdmJtVktiMmx1ZENCOUlHWnliMjBnSnk0dlZsSk5VM0J5YVc1blFtOXVaVXB2YVc1MEp6dGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1ZsSk5VM0J5YVc1blFtOXVaVXh2WVdSbGNsQnNkV2RwYms5d2RHbHZibk1nZlNCbWNtOXRJQ2N1TDFaU1RWTndjbWx1WjBKdmJtVk1iMkZrWlhKUWJIVm5hVzVQY0hScGIyNXpKenRjYm1sdGNHOXlkQ0I3SUZaU1RWTndjbWx1WjBKdmJtVk5ZVzVoWjJWeUlIMGdabkp2YlNBbkxpOVdVazFUY0hKcGJtZENiMjVsVFdGdVlXZGxjaWM3WEc1cGJYQnZjblFnZEhsd1pTQjdJRlpTVFZOd2NtbHVaMEp2Ym1WS2IybHVkRk5sZEhScGJtZHpJSDBnWm5KdmJTQW5MaTlXVWsxVGNISnBibWRDYjI1bFNtOXBiblJUWlhSMGFXNW5jeWM3WEc1cGJYQnZjblFnZXlCSFRGUkdJR0Z6SUVkTVZFWlRZMmhsYldFZ2ZTQm1jbTl0SUNkQVoyeDBaaTEwY21GdWMyWnZjbTB2WTI5eVpTYzdYRzVjYmk4cUtseHVJQ29nVUc5emMybGliR1VnYzNCbFl5QjJaWEp6YVc5dWN5QnBkQ0J5WldOdloyNXBlbVZ6TGx4dUlDb3ZYRzVqYjI1emRDQlFUMU5UU1VKTVJWOVRVRVZEWDFaRlVsTkpUMDVUSUQwZ2JtVjNJRk5sZENoYkp6RXVNQ2NzSUNjeExqQXRZbVYwWVNkZEtUdGNibHh1Wlhod2IzSjBJR05zWVhOeklGWlNUVk53Y21sdVowSnZibVZNYjJGa1pYSlFiSFZuYVc0Z2FXMXdiR1Z0Wlc1MGN5QkhURlJHVEc5aFpHVnlVR3gxWjJsdUlIdGNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQkZXRlJGVGxOSlQwNWZUa0ZOUlNBOUlDZFdVazFEWDNOd2NtbHVaMEp2Ym1Vbk8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCVGNHVmphV1o1SUdGdUlFOWlhbVZqZERORUlIUnZJR0ZrWkNCN1FHeHBibXNnVmxKTlUzQnlhVzVuUW05dVpVcHZhVzUwU0dWc2NHVnlmU0J6TGx4dUlDQWdLaUJKWmlCdWIzUWdjM0JsWTJsbWFXVmtMQ0JvWld4d1pYSWdkMmxzYkNCdWIzUWdZbVVnWTNKbFlYUmxaQzVjYmlBZ0lDb2dTV1lnWUhKbGJtUmxjazl5WkdWeVlDQnBjeUJ6WlhRZ2RHOGdkR2hsSUhKdmIzUXNJR2hsYkhCbGNuTWdkMmxzYkNCamIzQjVJSFJvWlNCellXMWxJR0J5Wlc1a1pYSlBjbVJsY21BZ0xseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHcHZhVzUwU0dWc2NHVnlVbTl2ZEQ4NklGUklVa1ZGTGs5aWFtVmpkRE5FTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJUY0dWamFXWjVJR0Z1SUU5aWFtVmpkRE5FSUhSdklHRmtaQ0I3UUd4cGJtc2dWbEpOVTNCeWFXNW5RbTl1WlVwdmFXNTBTR1ZzY0dWeWZTQnpMbHh1SUNBZ0tpQkpaaUJ1YjNRZ2MzQmxZMmxtYVdWa0xDQm9aV3h3WlhJZ2QybHNiQ0J1YjNRZ1ltVWdZM0psWVhSbFpDNWNiaUFnSUNvZ1NXWWdZSEpsYm1SbGNrOXlaR1Z5WUNCcGN5QnpaWFFnZEc4Z2RHaGxJSEp2YjNRc0lHaGxiSEJsY25NZ2QybHNiQ0JqYjNCNUlIUm9aU0J6WVcxbElHQnlaVzVrWlhKUGNtUmxjbUFnTGx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmJHeHBaR1Z5U0dWc2NHVnlVbTl2ZEQ4NklGUklVa1ZGTGs5aWFtVmpkRE5FTzF4dVhHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQndZWEp6WlhJNklFZE1WRVpRWVhKelpYSTdYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQnVZVzFsS0NrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJRlpTVFZOd2NtbHVaMEp2Ym1WTWIyRmtaWEpRYkhWbmFXNHVSVmhVUlU1VFNVOU9YMDVCVFVVN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9jR0Z5YzJWeU9pQkhURlJHVUdGeWMyVnlMQ0J2Y0hScGIyNXpQem9nVmxKTlUzQnlhVzVuUW05dVpVeHZZV1JsY2xCc2RXZHBiazl3ZEdsdmJuTXBJSHRjYmlBZ0lDQjBhR2x6TG5CaGNuTmxjaUE5SUhCaGNuTmxjanRjYmx4dUlDQWdJSFJvYVhNdWFtOXBiblJJWld4d1pYSlNiMjkwSUQwZ2IzQjBhVzl1Y3o4dWFtOXBiblJJWld4d1pYSlNiMjkwTzF4dUlDQWdJSFJvYVhNdVkyOXNiR2xrWlhKSVpXeHdaWEpTYjI5MElEMGdiM0IwYVc5dWN6OHVZMjlzYkdsa1pYSklaV3h3WlhKU2IyOTBPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklHRm1kR1Z5VW05dmRDaG5iSFJtT2lCSFRGUkdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1oyeDBaaTUxYzJWeVJHRjBZUzUyY20xVGNISnBibWRDYjI1bFRXRnVZV2RsY2lBOUlHRjNZV2wwSUhSb2FYTXVYMmx0Y0c5eWRDaG5iSFJtS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkpiWEJ2Y25RZ2MzQnlhVzVuSUdKdmJtVnpJR1p5YjIwZ1lTQkhURlJHSUdGdVpDQnlaWFIxY200Z1lTQjdRR3hwYm1zZ1ZsSk5VM0J5YVc1blFtOXVaVTFoYm1GblpYSjlMbHh1SUNBZ0tpQkpkQ0J0YVdkb2RDQnlaWFIxY200Z1lHNTFiR3hnSUdsdWMzUmxZV1FnZDJobGJpQnBkQ0JrYjJWeklHNXZkQ0J1WldWa0lIUnZJR0psSUdOeVpXRjBaV1FnYjNJZ2MyOXRaWFJvYVc1bklHZHZJSGR5YjI1bkxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdaMngwWmlCQklIQmhjbk5sWkNCeVpYTjFiSFFnYjJZZ1IweFVSaUIwWVd0bGJpQm1jbTl0SUVkTVZFWk1iMkZrWlhKY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDJsdGNHOXlkQ2huYkhSbU9pQkhURlJHS1RvZ1VISnZiV2x6WlR4V1VrMVRjSEpwYm1kQ2IyNWxUV0Z1WVdkbGNpQjhJRzUxYkd3K0lIdGNiaUFnSUNCamIyNXpkQ0IyTVZKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdVgzWXhTVzF3YjNKMEtHZHNkR1lwTzF4dUlDQWdJR2xtSUNoMk1WSmxjM1ZzZENBaFBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZGpGU1pYTjFiSFE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2RqQlNaWE4xYkhRZ1BTQmhkMkZwZENCMGFHbHpMbDkyTUVsdGNHOXlkQ2huYkhSbUtUdGNiaUFnSUNCcFppQW9kakJTWlhOMWJIUWdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIWXdVbVZ6ZFd4ME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCZmRqRkpiWEJ2Y25Rb1oyeDBaam9nUjB4VVJpazZJRkJ5YjIxcGMyVThWbEpOVTNCeWFXNW5RbTl1WlUxaGJtRm5aWElnZkNCdWRXeHNQaUI3WEc0Z0lDQWdZMjl1YzNRZ2FuTnZiaUE5SUdkc2RHWXVjR0Z5YzJWeUxtcHpiMjRnWVhNZ1IweFVSbE5qYUdWdFlTNUpSMHhVUmp0Y2JseHVJQ0FnSUM4dklHVmhjbXg1SUdGaWIzSjBJR2xtSUdsMElHUnZaWE51SjNRZ2RYTmxJSE53Y21sdVp5QmliMjVsYzF4dUlDQWdJR052Ym5OMElHbHpVM0J5YVc1blFtOXVaVlZ6WldRZ1BTQnFjMjl1TG1WNGRHVnVjMmx2Ym5OVmMyVmtQeTVwYm1SbGVFOW1LRlpTVFZOd2NtbHVaMEp2Ym1WTWIyRmtaWEpRYkhWbmFXNHVSVmhVUlU1VFNVOU9YMDVCVFVVcElDRTlQU0F0TVR0Y2JpQWdJQ0JwWmlBb0lXbHpVM0J5YVc1blFtOXVaVlZ6WldRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUcxaGJtRm5aWElnUFNCdVpYY2dWbEpOVTNCeWFXNW5RbTl1WlUxaGJtRm5aWElvS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSFJvY21WbFRtOWtaWE02SUZSSVVrVkZMazlpYW1WamRETkVXMTBnUFNCaGQyRnBkQ0JuYkhSbUxuQmhjbk5sY2k1blpYUkVaWEJsYm1SbGJtTnBaWE1vSjI1dlpHVW5LVHRjYmx4dUlDQWdJR052Ym5OMElHVjRkR1Z1YzJsdmJpQTlJR3B6YjI0dVpYaDBaVzV6YVc5dWN6OHVXMVpTVFZOd2NtbHVaMEp2Ym1WTWIyRmtaWEpRYkhWbmFXNHVSVmhVUlU1VFNVOU9YMDVCVFVWZElHRnpYRzRnSUNBZ0lDQjhJRll4VTNCeWFXNW5RbTl1WlZOamFHVnRZUzVXVWsxRFUzQnlhVzVuUW05dVpWeHVJQ0FnSUNBZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLQ0ZsZUhSbGJuTnBiMjRwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE53WldOV1pYSnphVzl1SUQwZ1pYaDBaVzV6YVc5dUxuTndaV05XWlhKemFXOXVPMXh1SUNBZ0lHbG1JQ2doVUU5VFUwbENURVZmVTFCRlExOVdSVkpUU1U5T1V5NW9ZWE1vYzNCbFkxWmxjbk5wYjI0cEtTQjdYRzRnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWEc0Z0lDQWdJQ0FnSUdCV1VrMVRjSEpwYm1kQ2IyNWxURzloWkdWeVVHeDFaMmx1T2lCVmJtdHViM2R1SUNSN1ZsSk5VM0J5YVc1blFtOXVaVXh2WVdSbGNsQnNkV2RwYmk1RldGUkZUbE5KVDA1ZlRrRk5SWDBnYzNCbFkxWmxjbk5wYjI0Z1hDSWtlM053WldOV1pYSnphVzl1ZlZ3aVlDeGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCamIyeHNhV1JsY25NZ1BTQmxlSFJsYm5OcGIyNHVZMjlzYkdsa1pYSnpQeTV0WVhBb0tITmphR1Z0WVVOdmJHeHBaR1Z5TENCcFEyOXNiR2xrWlhJcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElHNXZaR1VnUFNCMGFISmxaVTV2WkdWelczTmphR1Z0WVVOdmJHeHBaR1Z5TG01dlpHVWhYVHRjYmlBZ0lDQWdJR052Ym5OMElITmphR1Z0WVZOb1lYQmxJRDBnYzJOb1pXMWhRMjlzYkdsa1pYSXVjMmhoY0dVaE8xeHVYRzRnSUNBZ0lDQnBaaUFvYzJOb1pXMWhVMmhoY0dVdWMzQm9aWEpsS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDlwYlhCdmNuUlRjR2hsY21WRGIyeHNhV1JsY2lodWIyUmxMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2IyWm1jMlYwT2lCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncExtWnliMjFCY25KaGVTaHpZMmhsYldGVGFHRndaUzV6Y0dobGNtVXViMlptYzJWMElEOC9JRnN3TGpBc0lEQXVNQ3dnTUM0d1hTa3NYRzRnSUNBZ0lDQWdJQ0FnY21Ga2FYVnpPaUJ6WTJobGJXRlRhR0Z3WlM1emNHaGxjbVV1Y21Ga2FYVnpJRDgvSURBdU1DeGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hOamFHVnRZVk5vWVhCbExtTmhjSE4xYkdVcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WDJsdGNHOXlkRU5oY0hOMWJHVkRiMnhzYVdSbGNpaHViMlJsTENCN1hHNGdJQ0FnSUNBZ0lDQWdiMlptYzJWME9pQnVaWGNnVkVoU1JVVXVWbVZqZEc5eU15Z3BMbVp5YjIxQmNuSmhlU2h6WTJobGJXRlRhR0Z3WlM1allYQnpkV3hsTG05bVpuTmxkQ0EvUHlCYk1DNHdMQ0F3TGpBc0lEQXVNRjBwTEZ4dUlDQWdJQ0FnSUNBZ0lISmhaR2wxY3pvZ2MyTm9aVzFoVTJoaGNHVXVZMkZ3YzNWc1pTNXlZV1JwZFhNZ1B6OGdNQzR3TEZ4dUlDQWdJQ0FnSUNBZ0lIUmhhV3c2SUc1bGR5QlVTRkpGUlM1V1pXTjBiM0l6S0NrdVpuSnZiVUZ5Y21GNUtITmphR1Z0WVZOb1lYQmxMbU5oY0hOMWJHVXVkR0ZwYkNBL1B5QmJNQzR3TENBd0xqQXNJREF1TUYwcExGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JXVWsxVGNISnBibWRDYjI1bFRHOWhaR1Z5VUd4MVoybHVPaUJVYUdVZ1kyOXNiR2xrWlhJZ0l5UjdhVU52Ykd4cFpHVnlmU0JvWVhNZ2JtOGdkbUZzYVdRZ2MyaGhjR1ZnS1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUdOdmJuTjBJR052Ykd4cFpHVnlSM0p2ZFhCeklEMGdaWGgwWlc1emFXOXVMbU52Ykd4cFpHVnlSM0p2ZFhCelB5NXRZWEFvWEc0Z0lDQWdJQ0FvYzJOb1pXMWhRMjlzYkdsa1pYSkhjbTkxY0N3Z2FVTnZiR3hwWkdWeVIzSnZkWEFwT2lCV1VrMVRjSEpwYm1kQ2IyNWxRMjlzYkdsa1pYSkhjbTkxY0NBOVBpQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTnZiSE1nUFNBb2MyTm9aVzFoUTI5c2JHbGtaWEpIY205MWNDNWpiMnhzYVdSbGNuTWdQejhnVzEwcExtMWhjQ2dvYVVOdmJHeHBaR1Z5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZMjlzSUQwZ1kyOXNiR2xrWlhKelB5NWJhVU52Ykd4cFpHVnlYVHRjYmx4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hqYjJ3Z1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmdWbEpOVTNCeWFXNW5RbTl1WlV4dllXUmxjbEJzZFdkcGJqb2dWR2hsSUdOdmJHeHBaR1Z5UjNKdmRYQWdJeVI3YVVOdmJHeHBaR1Z5UjNKdmRYQjlJR0YwZEdWdGNIUmxaQ0IwYnlCMWMyVWdZU0JqYjJ4c2FXUmxjaUFqSkh0cFEyOXNiR2xrWlhKOUlHSjFkQ0J1YjNRZ1ptOTFibVJnTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMjlzTzF4dUlDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJHeHBaR1Z5Y3pvZ1kyOXNjeXhjYmlBZ0lDQWdJQ0FnSUNCdVlXMWxPaUJ6WTJobGJXRkRiMnhzYVdSbGNrZHliM1Z3TG01aGJXVXNYRzRnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JsZUhSbGJuTnBiMjR1YzNCeWFXNW5jejh1Wm05eVJXRmphQ2dvYzJOb1pXMWhVM0J5YVc1bkxDQnBVM0J5YVc1bktTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnpZMmhsYldGS2IybHVkSE1nUFNCelkyaGxiV0ZUY0hKcGJtY3VhbTlwYm5Sek8xeHVYRzRnSUNBZ0lDQXZMeUJ3Y21Wd1lYSmxJR052Ykd4cFpHVnljMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyOXNiR2xrWlhKSGNtOTFjSE5HYjNKVGNISnBibWNnUFNCelkyaGxiV0ZUY0hKcGJtY3VZMjlzYkdsa1pYSkhjbTkxY0hNL0xtMWhjQ2dvYVVOdmJHeHBaR1Z5UjNKdmRYQXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWjNKdmRYQWdQU0JqYjJ4c2FXUmxja2R5YjNWd2N6OHVXMmxEYjJ4c2FXUmxja2R5YjNWd1hUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1ozSnZkWEFnUFQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loY2JpQWdJQ0FnSUNBZ0lDQWdJR0JXVWsxVGNISnBibWRDYjI1bFRHOWhaR1Z5VUd4MVoybHVPaUJVYUdVZ2MzQnlhVzVuSUNNa2UybFRjSEpwYm1kOUlHRjBkR1Z0Y0hSbFpDQjBieUIxYzJVZ1lTQmpiMnhzYVdSbGNrZHliM1Z3SUNSN2FVTnZiR3hwWkdWeVIzSnZkWEI5SUdKMWRDQnViM1FnWm05MWJtUmdMRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaM0p2ZFhBN1hHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ1kyVnVkR1Z5SUQwZ2MyTm9aVzFoVTNCeWFXNW5MbU5sYm5SbGNpQWhQU0J1ZFd4c0lEOGdkR2h5WldWT2IyUmxjMXR6WTJobGJXRlRjSEpwYm1jdVkyVnVkR1Z5WFNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lDQWdiR1YwSUhCeVpYWlRZMmhsYldGS2IybHVkRG9nVmpGVGNISnBibWRDYjI1bFUyTm9aVzFoTGxOd2NtbHVaMEp2Ym1WS2IybHVkQ0I4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUhOamFHVnRZVXB2YVc1MGN5NW1iM0pGWVdOb0tDaHpZMmhsYldGS2IybHVkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvY0hKbGRsTmphR1Z0WVVwdmFXNTBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdjSEpsY0dGeVpTQnViMlJsWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYm05a1pVbHVaR1Y0SUQwZ2NISmxkbE5qYUdWdFlVcHZhVzUwTG01dlpHVTdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdibTlrWlNBOUlIUm9jbVZsVG05a1pYTmJibTlrWlVsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqYUdsc1pFbHVaR1Y0SUQwZ2MyTm9aVzFoU205cGJuUXVibTlrWlR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCamFHbHNaQ0E5SUhSb2NtVmxUbTlrWlhOYlkyaHBiR1JKYm1SbGVGMDdYRzVjYmlBZ0lDQWdJQ0FnSUNBdkx5QndjbVZ3WVhKbElITmxkSFJwYm1kY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCelpYUjBhVzVuT2lCUVlYSjBhV0ZzUEZaU1RWTndjbWx1WjBKdmJtVktiMmx1ZEZObGRIUnBibWR6UGlBOUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdocGRGSmhaR2wxY3pvZ2NISmxkbE5qYUdWdFlVcHZhVzUwTG1ocGRGSmhaR2wxY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1J5WVdkR2IzSmpaVG9nY0hKbGRsTmphR1Z0WVVwdmFXNTBMbVJ5WVdkR2IzSmpaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHZHlZWFpwZEhsUWIzZGxjam9nY0hKbGRsTmphR1Z0WVVwdmFXNTBMbWR5WVhacGRIbFFiM2RsY2l4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wYVdabWJtVnpjem9nY0hKbGRsTmphR1Z0WVVwdmFXNTBMbk4wYVdabWJtVnpjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHZHlZWFpwZEhsRWFYSTZYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIQnlaWFpUWTJobGJXRktiMmx1ZEM1bmNtRjJhWFI1UkdseUlDRTlJRzUxYkd4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lHNWxkeUJVU0ZKRlJTNVdaV04wYjNJektDa3Vabkp2YlVGeWNtRjVLSEJ5WlhaVFkyaGxiV0ZLYjJsdWRDNW5jbUYyYVhSNVJHbHlLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJQ0FnSUNBdkx5QmpjbVZoZEdVZ2MzQnlhVzVuSUdKdmJtVnpYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhbTlwYm5RZ1BTQjBhR2x6TGw5cGJYQnZjblJLYjJsdWRDaHViMlJsTENCamFHbHNaQ3dnYzJWMGRHbHVaeXdnWTI5c2JHbGtaWEpIY205MWNITkdiM0pUY0hKcGJtY3BPMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGpaVzUwWlhJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdwdmFXNTBMbU5sYm5SbGNpQTlJR05sYm5SbGNqdGNiaUFnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQnRZVzVoWjJWeUxtRmtaRXB2YVc1MEtHcHZhVzUwS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSEJ5WlhaVFkyaGxiV0ZLYjJsdWRDQTlJSE5qYUdWdFlVcHZhVzUwTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdkx5QnBibWwwSUhOd2NtbHVaeUJpYjI1bGMxeHVJQ0FnSUcxaGJtRm5aWEl1YzJWMFNXNXBkRk4wWVhSbEtDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2JXRnVZV2RsY2p0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nWDNZd1NXMXdiM0owS0dkc2RHWTZJRWRNVkVZcE9pQlFjbTl0YVhObFBGWlNUVk53Y21sdVowSnZibVZOWVc1aFoyVnlJSHdnYm5Wc2JENGdlMXh1SUNBZ0lHTnZibk4wSUdwemIyNGdQU0JuYkhSbUxuQmhjbk5sY2k1cWMyOXVJR0Z6SUVkTVZFWlRZMmhsYldFdVNVZE1WRVk3WEc1Y2JpQWdJQ0F2THlCbFlYSnNlU0JoWW05eWRDQnBaaUJwZENCa2IyVnpiaWQwSUhWelpTQjJjbTFjYmlBZ0lDQmpiMjV6ZENCcGMxWlNUVlZ6WldRZ1BTQnFjMjl1TG1WNGRHVnVjMmx2Ym5OVmMyVmtQeTVwYm1SbGVFOW1LQ2RXVWswbktTQWhQVDBnTFRFN1hHNGdJQ0FnYVdZZ0tDRnBjMVpTVFZWelpXUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUdWaGNteDVJR0ZpYjNKMElHbG1JR2wwSUdSdlpYTnVKM1FnYUdGMlpTQmliMjVsSUdkeWIzVndjMXh1SUNBZ0lHTnZibk4wSUdWNGRHVnVjMmx2YmlBOUlHcHpiMjR1WlhoMFpXNXphVzl1Y3o4dVd5ZFdVazBuWFNCaGN5QldNRlpTVFM1V1VrMGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdZMjl1YzNRZ2MyTm9aVzFoVTJWamIyNWtZWEo1UVc1cGJXRjBhVzl1SUQwZ1pYaDBaVzV6YVc5dVB5NXpaV052Ym1SaGNubEJibWx0WVhScGIyNDdYRzRnSUNBZ2FXWWdLQ0Z6WTJobGJXRlRaV052Ym1SaGNubEJibWx0WVhScGIyNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVkV3hzTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElITmphR1Z0WVVKdmJtVkhjbTkxY0hNZ1BTQnpZMmhsYldGVFpXTnZibVJoY25sQmJtbHRZWFJwYjI0L0xtSnZibVZIY205MWNITTdYRzRnSUNBZ2FXWWdLQ0Z6WTJobGJXRkNiMjVsUjNKdmRYQnpLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiblZzYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnRZVzVoWjJWeUlEMGdibVYzSUZaU1RWTndjbWx1WjBKdmJtVk5ZVzVoWjJWeUtDazdYRzVjYmlBZ0lDQmpiMjV6ZENCMGFISmxaVTV2WkdWek9pQlVTRkpGUlM1UFltcGxZM1F6UkZ0ZElEMGdZWGRoYVhRZ1oyeDBaaTV3WVhKelpYSXVaMlYwUkdWd1pXNWtaVzVqYVdWektDZHViMlJsSnlrN1hHNWNiaUFnSUNCamIyNXpkQ0JqYjJ4c2FXUmxja2R5YjNWd2N5QTlJSE5qYUdWdFlWTmxZMjl1WkdGeWVVRnVhVzFoZEdsdmJpNWpiMnhzYVdSbGNrZHliM1Z3Y3o4dWJXRndLRnh1SUNBZ0lDQWdLSE5qYUdWdFlVTnZiR3hwWkdWeVIzSnZkWEFwT2lCV1VrMVRjSEpwYm1kQ2IyNWxRMjlzYkdsa1pYSkhjbTkxY0NBOVBpQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHNXZaR1VnUFNCMGFISmxaVTV2WkdWelczTmphR1Z0WVVOdmJHeHBaR1Z5UjNKdmRYQXVibTlrWlNGZE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamIyeHNhV1JsY25NZ1BTQW9jMk5vWlcxaFEyOXNiR2xrWlhKSGNtOTFjQzVqYjJ4c2FXUmxjbk1nUHo4Z1cxMHBMbTFoY0Nnb2MyTm9aVzFoUTI5c2JHbGtaWElzSUdsRGIyeHNhV1JsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzltWm5ObGRDQTlJRzVsZHlCVVNGSkZSUzVXWldOMGIzSXpLREF1TUN3Z01DNHdMQ0F3TGpBcE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNoelkyaGxiV0ZEYjJ4c2FXUmxjaTV2Wm1aelpYUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOW1abk5sZEM1elpYUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITmphR1Z0WVVOdmJHeHBaR1Z5TG05bVpuTmxkQzU0SUQ4L0lEQXVNQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjMk5vWlcxaFEyOXNiR2xrWlhJdWIyWm1jMlYwTG5rZ1B6OGdNQzR3TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6WTJobGJXRkRiMnhzYVdSbGNpNXZabVp6WlhRdWVpQS9JQzF6WTJobGJXRkRiMnhzYVdSbGNpNXZabVp6WlhRdWVpQTZJREF1TUN3Z0x5OGdlaUJwY3lCdmNIQnZjMmwwWlNCcGJpQldVazB3TGpCY2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgybHRjRzl5ZEZOd2FHVnlaVU52Ykd4cFpHVnlLRzV2WkdVc0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5bVpuTmxkQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lISmhaR2wxY3pvZ2MyTm9aVzFoUTI5c2JHbGtaWEl1Y21Ga2FYVnpJRDgvSURBdU1DeGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnWTI5c2JHbGtaWEp6SUgwN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNrN1hHNWNiaUFnSUNBdkx5QnBiWEJ2Y25RZ2MzQnlhVzVuSUdKdmJtVnpJR1p2Y2lCbFlXTm9JSE53Y21sdVp5QmliMjVsSUdkeWIzVndjMXh1SUNBZ0lITmphR1Z0WVVKdmJtVkhjbTkxY0hNL0xtWnZja1ZoWTJnb0tITmphR1Z0WVVKdmJtVkhjbTkxY0N3Z2FVSnZibVZIY205MWNDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbTl2ZEVsdVpHbGpaWE1nUFNCelkyaGxiV0ZDYjI1bFIzSnZkWEF1WW05dVpYTTdYRzRnSUNBZ0lDQnBaaUFvSVhKdmIzUkpibVJwWTJWektTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdjbTl2ZEVsdVpHbGpaWE11Wm05eVJXRmphQ2dvY205dmRFbHVaR1Y0S1NBOVBpQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElISnZiM1FnUFNCMGFISmxaVTV2WkdWelczSnZiM1JKYm1SbGVGMDdYRzVjYmlBZ0lDQWdJQ0FnTHk4Z2NISmxjR0Z5WlNCelpYUjBhVzVuWEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2R5WVhacGRIbEVhWElnUFNCdVpYY2dWRWhTUlVVdVZtVmpkRzl5TXlncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYzJOb1pXMWhRbTl1WlVkeWIzVndMbWR5WVhacGRIbEVhWElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm5jbUYyYVhSNVJHbHlMbk5sZENoY2JpQWdJQ0FnSUNBZ0lDQWdJSE5qYUdWdFlVSnZibVZIY205MWNDNW5jbUYyYVhSNVJHbHlMbmdnUHo4Z01DNHdMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyTm9aVzFoUW05dVpVZHliM1Z3TG1keVlYWnBkSGxFYVhJdWVTQS9QeUF3TGpBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WTJobGJXRkNiMjVsUjNKdmRYQXVaM0poZG1sMGVVUnBjaTU2SUQ4L0lEQXVNQ3hjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJR2R5WVhacGRIbEVhWEl1YzJWMEtEQXVNQ3dnTFRFdU1Dd2dNQzR3S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJR052Ym5OMElHTmxiblJsY2lBOUlITmphR1Z0WVVKdmJtVkhjbTkxY0M1alpXNTBaWElnSVQwZ2JuVnNiQ0EvSUhSb2NtVmxUbTlrWlhOYmMyTm9aVzFoUW05dVpVZHliM1Z3TG1ObGJuUmxjbDBnT2lCMWJtUmxabWx1WldRN1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyVjBkR2x1WnpvZ1VHRnlkR2xoYkR4V1VrMVRjSEpwYm1kQ2IyNWxTbTlwYm5SVFpYUjBhVzVuY3o0Z1BTQjdYRzRnSUNBZ0lDQWdJQ0FnYUdsMFVtRmthWFZ6T2lCelkyaGxiV0ZDYjI1bFIzSnZkWEF1YUdsMFVtRmthWFZ6TEZ4dUlDQWdJQ0FnSUNBZ0lHUnlZV2RHYjNKalpUb2djMk5vWlcxaFFtOXVaVWR5YjNWd0xtUnlZV2RHYjNKalpTeGNiaUFnSUNBZ0lDQWdJQ0JuY21GMmFYUjVVRzkzWlhJNklITmphR1Z0WVVKdmJtVkhjbTkxY0M1bmNtRjJhWFI1VUc5M1pYSXNYRzRnSUNBZ0lDQWdJQ0FnYzNScFptWnVaWE56T2lCelkyaGxiV0ZDYjI1bFIzSnZkWEF1YzNScFptWnBibVZ6Y3l4Y2JpQWdJQ0FnSUNBZ0lDQm5jbUYyYVhSNVJHbHlMRnh1SUNBZ0lDQWdJQ0I5TzF4dVhHNGdJQ0FnSUNBZ0lDOHZJSEJ5WlhCaGNtVWdZMjlzYkdsa1pYSnpYRzRnSUNBZ0lDQWdJR052Ym5OMElHTnZiR3hwWkdWeVIzSnZkWEJ6Um05eVUzQnlhVzVuSUQwZ2MyTm9aVzFoUW05dVpVZHliM1Z3TG1OdmJHeHBaR1Z5UjNKdmRYQnpQeTV0WVhBb0tHbERiMnhzYVdSbGNrZHliM1Z3S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaM0p2ZFhBZ1BTQmpiMnhzYVdSbGNrZHliM1Z3Y3o4dVcybERiMnhzYVdSbGNrZHliM1Z3WFR0Y2JseHVJQ0FnSUNBZ0lDQWdJR2xtSUNobmNtOTFjQ0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdCV1VrMVRjSEpwYm1kQ2IyNWxURzloWkdWeVVHeDFaMmx1T2lCVWFHVWdjM0J5YVc1bklDTWtlMmxDYjI1bFIzSnZkWEI5SUdGMGRHVnRjSFJsWkNCMGJ5QjFjMlVnWVNCamIyeHNhV1JsY2tkeWIzVndJQ1I3YVVOdmJHeHBaR1Z5UjNKdmRYQjlJR0oxZENCdWIzUWdabTkxYm1SZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWjNKdmRYQTdYRzRnSUNBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNBZ0lDOHZJR055WldGMFpTQnpjSEpwYm1jZ1ltOXVaWE5jYmlBZ0lDQWdJQ0FnY205dmRDNTBjbUYyWlhKelpTZ29ibTlrWlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR05vYVd4a09pQlVTRkpGUlM1UFltcGxZM1F6UkNCOElHNTFiR3dnUFNCdWIyUmxMbU5vYVd4a2NtVnVXekJkSUQ4L0lHNTFiR3c3WEc1Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCcWIybHVkQ0E5SUhSb2FYTXVYMmx0Y0c5eWRFcHZhVzUwS0c1dlpHVXNJR05vYVd4a0xDQnpaWFIwYVc1bkxDQmpiMnhzYVdSbGNrZHliM1Z3YzBadmNsTndjbWx1WnlrN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dObGJuUmxjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhbTlwYm5RdVkyVnVkR1Z5SUQwZ1kyVnVkR1Z5TzF4dUlDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUcxaGJtRm5aWEl1WVdSa1NtOXBiblFvYW05cGJuUXBPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ0x5OGdhVzVwZENCemNISnBibWNnWW05dVpYTmNiaUFnSUNCbmJIUm1Mbk5qWlc1bExuVndaR0YwWlUxaGRISnBlRmR2Y214a0tDazdYRzRnSUNBZ2JXRnVZV2RsY2k1elpYUkpibWwwVTNSaGRHVW9LVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnRZVzVoWjJWeU8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmZhVzF3YjNKMFNtOXBiblFvWEc0Z0lDQWdibTlrWlRvZ1ZFaFNSVVV1VDJKcVpXTjBNMFFzWEc0Z0lDQWdZMmhwYkdRNklGUklVa1ZGTGs5aWFtVmpkRE5FTEZ4dUlDQWdJSE5sZEhScGJtYy9PaUJRWVhKMGFXRnNQRlpTVFZOd2NtbHVaMEp2Ym1WS2IybHVkRk5sZEhScGJtZHpQaXhjYmlBZ0lDQmpiMnhzYVdSbGNrZHliM1Z3YzBadmNsTndjbWx1Wno4NklGWlNUVk53Y21sdVowSnZibVZEYjJ4c2FXUmxja2R5YjNWd1cxMHNYRzRnSUNrNklGWlNUVk53Y21sdVowSnZibVZLYjJsdWRDQjdYRzRnSUNBZ1kyOXVjM1FnYzNCeWFXNW5RbTl1WlNBOUlHNWxkeUJXVWsxVGNISnBibWRDYjI1bFNtOXBiblFvYm05a1pTd2dZMmhwYkdRc0lITmxkSFJwYm1jc0lHTnZiR3hwWkdWeVIzSnZkWEJ6Um05eVUzQnlhVzVuS1R0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG1wdmFXNTBTR1ZzY0dWeVVtOXZkQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhR1ZzY0dWeUlEMGdibVYzSUZaU1RWTndjbWx1WjBKdmJtVktiMmx1ZEVobGJIQmxjaWh6Y0hKcGJtZENiMjVsS1R0Y2JpQWdJQ0FnSUhSb2FYTXVhbTlwYm5SSVpXeHdaWEpTYjI5MExtRmtaQ2hvWld4d1pYSXBPMXh1SUNBZ0lDQWdhR1ZzY0dWeUxuSmxibVJsY2s5eVpHVnlJRDBnZEdocGN5NXFiMmx1ZEVobGJIQmxjbEp2YjNRdWNtVnVaR1Z5VDNKa1pYSTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhOd2NtbHVaMEp2Ym1VN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElGOXBiWEJ2Y25SVGNHaGxjbVZEYjJ4c2FXUmxjaWhjYmlBZ0lDQmtaWE4wYVc1aGRHbHZiam9nVkVoU1JVVXVUMkpxWldOME0wUXNYRzRnSUNBZ2NHRnlZVzF6T2lCN1hHNGdJQ0FnSUNCdlptWnpaWFE2SUZSSVVrVkZMbFpsWTNSdmNqTTdYRzRnSUNBZ0lDQnlZV1JwZFhNNklHNTFiV0psY2p0Y2JpQWdJQ0I5TEZ4dUlDQXBPaUJXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhJZ2UxeHVJQ0FnSUdOdmJuTjBJSHNnYjJabWMyVjBMQ0J5WVdScGRYTWdmU0E5SUhCaGNtRnRjenRjYmx4dUlDQWdJR052Ym5OMElITm9ZWEJsSUQwZ2JtVjNJRlpTVFZOd2NtbHVaMEp2Ym1WRGIyeHNhV1JsY2xOb1lYQmxVM0JvWlhKbEtIc2diMlptYzJWMExDQnlZV1JwZFhNZ2ZTazdYRzVjYmlBZ0lDQmpiMjV6ZENCamIyeHNhV1JsY2lBOUlHNWxkeUJXVWsxVGNISnBibWRDYjI1bFEyOXNiR2xrWlhJb2MyaGhjR1VwTzF4dVhHNGdJQ0FnWkdWemRHbHVZWFJwYjI0dVlXUmtLR052Ykd4cFpHVnlLVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbU52Ykd4cFpHVnlTR1ZzY0dWeVVtOXZkQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhR1ZzY0dWeUlEMGdibVYzSUZaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNraGxiSEJsY2loamIyeHNhV1JsY2lrN1hHNGdJQ0FnSUNCMGFHbHpMbU52Ykd4cFpHVnlTR1ZzY0dWeVVtOXZkQzVoWkdRb2FHVnNjR1Z5S1R0Y2JpQWdJQ0FnSUdobGJIQmxjaTV5Wlc1a1pYSlBjbVJsY2lBOUlIUm9hWE11WTI5c2JHbGtaWEpJWld4d1pYSlNiMjkwTG5KbGJtUmxjazl5WkdWeU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJqYjJ4c2FXUmxjanRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWDJsdGNHOXlkRU5oY0hOMWJHVkRiMnhzYVdSbGNpaGNiaUFnSUNCa1pYTjBhVzVoZEdsdmJqb2dWRWhTUlVVdVQySnFaV04wTTBRc1hHNGdJQ0FnY0dGeVlXMXpPaUI3WEc0Z0lDQWdJQ0J2Wm1aelpYUTZJRlJJVWtWRkxsWmxZM1J2Y2pNN1hHNGdJQ0FnSUNCeVlXUnBkWE02SUc1MWJXSmxjanRjYmlBZ0lDQWdJSFJoYVd3NklGUklVa1ZGTGxabFkzUnZjak03WEc0Z0lDQWdmU3hjYmlBZ0tUb2dWbEpOVTNCeWFXNW5RbTl1WlVOdmJHeHBaR1Z5SUh0Y2JpQWdJQ0JqYjI1emRDQjdJRzltWm5ObGRDd2djbUZrYVhWekxDQjBZV2xzSUgwZ1BTQndZWEpoYlhNN1hHNWNiaUFnSUNCamIyNXpkQ0J6YUdGd1pTQTlJRzVsZHlCV1VrMVRjSEpwYm1kQ2IyNWxRMjlzYkdsa1pYSlRhR0Z3WlVOaGNITjFiR1VvZXlCdlptWnpaWFFzSUhKaFpHbDFjeXdnZEdGcGJDQjlLVHRjYmx4dUlDQWdJR052Ym5OMElHTnZiR3hwWkdWeUlEMGdibVYzSUZaU1RWTndjbWx1WjBKdmJtVkRiMnhzYVdSbGNpaHphR0Z3WlNrN1hHNWNiaUFnSUNCa1pYTjBhVzVoZEdsdmJpNWhaR1FvWTI5c2JHbGtaWElwTzF4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11WTI5c2JHbGtaWEpJWld4d1pYSlNiMjkwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JvWld4d1pYSWdQU0J1WlhjZ1ZsSk5VM0J5YVc1blFtOXVaVU52Ykd4cFpHVnlTR1ZzY0dWeUtHTnZiR3hwWkdWeUtUdGNiaUFnSUNBZ0lIUm9hWE11WTI5c2JHbGtaWEpJWld4d1pYSlNiMjkwTG1Ga1pDaG9aV3h3WlhJcE8xeHVJQ0FnSUNBZ2FHVnNjR1Z5TG5KbGJtUmxjazl5WkdWeUlEMGdkR2hwY3k1amIyeHNhV1JsY2tobGJIQmxjbEp2YjNRdWNtVnVaR1Z5VDNKa1pYSTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUdOdmJHeHBaR1Z5TzF4dUlDQjlYRzU5WEc0aVhTd2libUZ0WlhNaU9sc2lYM1l6UVNJc0lsOTJNMElpTENKZmJXRjBRU0pkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096dEJRVVZCT3p0QlFVVkhPMDFCUTIxQ0xEQkNRVUV3UWl4RFFVRkJPMEZCYzBJdlF6czdRVU40UWtRc1RVRkJUVUVzVFVGQlNTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMnBETEUxQlFVMURMRTFCUVVrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVVXpRaXhOUVVGUExHbERRVUZyUXl4VFFVRlJMREJDUVVFd1FpeERRVUZCTzBGQlF5OUZMRWxCUVVFc1NVRkJWeXhKUVVGSkxFZEJRVUU3UVVGRFlpeFJRVUZCTEU5QlFVOHNVMEZCVXl4RFFVRkRPMHRCUTJ4Q08wRkJhVUpFTEVsQlFVRXNWMEZCUVN4RFFVRnRRaXhOUVVFd1JTeEZRVUZCT3p0QlFVTXpSaXhSUVVGQkxFdEJRVXNzUlVGQlJTeERRVUZETzFGQlJWSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeE5RVUZOTEV0QlFVNHNTVUZCUVN4SlFVRkJMRTFCUVUwc1MwRkJUaXhMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TlFVRk5MRU5CUVVVc1RVRkJUU3h0UTBGQlNTeEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnFSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRTFCUVUwc1MwRkJUaXhKUVVGQkxFbEJRVUVzVFVGQlRTeExRVUZPTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFMUJRVTBzUTBGQlJTeEpRVUZKTEcxRFFVRkpMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRemRFTEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGQkxFVkJRVUVzUjBGQlFTeE5RVUZOTEV0QlFVRXNTVUZCUVN4SlFVRk9MRTFCUVUwc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCVGl4TlFVRk5MRU5CUVVVc1RVRkJUU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGSkxFZEJRVWNzUTBGQlF6dExRVU55UXp0QlFVVk5MRWxCUVVFc2EwSkJRV3RDTEVOQlEzWkNMR05CUVRaQ0xFVkJRemRDTEdOQlFUWkNMRVZCUXpkQ0xGbEJRVzlDTEVWQlEzQkNMRTFCUVhGQ0xFVkJRVUU3UVVGRmNrSXNVVUZCUVVRc1RVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBGQlEzQkVMRkZCUVVGRExFMUJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0QlFVTnNSQ3hSUVVGQlFTeE5RVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRSQ3hOUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU5tTEZGQlFVRXNUVUZCVFN4bFFVRmxMRWRCUVVkRExFMUJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0QlFVVjRReXhSUVVGQkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRFJDeE5RVUZKTEVOQlFVTXNRMEZCUXp0UlFVTjBReXhOUVVGTkxFZEJRVWNzUjBGQlIwTXNUVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVUzUWl4SlFVRkpMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGSFpqdGhRVUZOTEVsQlFVa3NaVUZCWlN4SlFVRkpMRWRCUVVjc1JVRkJSVHM3UVVGRmFrTXNXVUZCUVN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRFFTeE5RVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnNRaXhUUVVGQk8wRkJRVTBzWVVGQlFUczdXVUZGVEVFc1RVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eEhRVUZITEVkQlFVY3NaVUZCWlN4RFFVRkRMRU5CUVVNN1FVRkRNME1zV1VGQlFTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRRU3hOUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU5zUWl4VFFVRkJPMEZCUlVRc1VVRkJRU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVNeFF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzVFVGQlRTeERRVUZETzFGQlF6RkRMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEJRVU51UWl4UlFVRkJMRTlCUVU4c1VVRkJVU3hEUVVGRE8wdEJRMnBDTzBGQlEwWTdPMEZET1VSTExFMUJRVThzWjBOQlFXbERMRk5CUVZFc01FSkJRVEJDTEVOQlFVRTdRVUZET1VVc1NVRkJRU3hKUVVGWExFbEJRVWtzUjBGQlFUdEJRVU5pTEZGQlFVRXNUMEZCVHl4UlFVRlJMRU5CUVVNN1MwRkRha0k3UVVGWlJDeEpRVUZCTEZkQlFVRXNRMEZCYlVJc1RVRkJiMFFzUlVGQlFUczdRVUZEY2tVc1VVRkJRU3hMUVVGTExFVkJRVVVzUTBGQlF6dFJRVVZTTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzVFVGQlRTeExRVUZPTEVsQlFVRXNTVUZCUVN4TlFVRk5MRXRCUVU0c1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNUVUZCVFN4RFFVRkZMRTFCUVUwc2JVTkJRVWtzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEYWtVc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVRXNSVUZCUVN4SFFVRkJMRTFCUVUwc1MwRkJRU3hKUVVGQkxFbEJRVTRzVFVGQlRTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGT0xFMUJRVTBzUTBGQlJTeE5RVUZOTEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVa3NSMEZCUnl4RFFVRkRPMHRCUTNKRE8wRkJSVTBzU1VGQlFTeHJRa0ZCYTBJc1EwRkRka0lzWTBGQk5rSXNSVUZETjBJc1kwRkJOa0lzUlVGRE4wSXNXVUZCYjBJc1JVRkRjRUlzVFVGQmNVSXNSVUZCUVR0QlFVVnlRaXhSUVVGQkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8wRkJRM0JETEZGQlFVRXNUVUZCVFN4TlFVRk5MRWRCUVVjc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETVVNc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVNeFF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1FVRkRia0lzVVVGQlFTeFBRVUZQTEZGQlFWRXNRMEZCUXp0TFFVTnFRanRCUVVOR096dEJRMnhEUkN4TlFVRk5SQ3hOUVVGSkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1FVRkZjRUlzVFVGQlFTeHJRMEZCYlVNc1UwRkJVU3hMUVVGTExFTkJRVU1zWTBGQll5eERRVUZCTzBGQlZURkZMRWxCUVVFc1YwRkJRU3hEUVVGdFFpeExRVUYzUXl4RlFVRkJPMEZCUTNwRUxGRkJRVUVzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZXU0N4SlFVRlZMRU5CUVVFc1ZVRkJRU3hIUVVGSExFZEJRVWNzUTBGQlF6dFJRVXRvUWl4SlFVRmpMRU5CUVVFc1kwRkJRU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5XTEZGQlFVRXNTVUZCUVN4RFFVRkJMR05CUVdNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVTnlReXhSUVVGQkxFbEJRVUVzUTBGQlFTeFpRVUZaTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGTGJFUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF6dEJRVVZ3UWl4UlFVRkJMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNCRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVVUzUXl4UlFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKRkxGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRkwwSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRMUVVObU8wbEJSVTBzVFVGQlRTeEhRVUZCTzFGQlExZ3NTVUZCU1N4dlFrRkJiMElzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZGYWtNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF6dEJRVU53UkN4UlFVRkJMRWxCUVVrc1NVRkJTU3hEUVVGRExHTkJRV01zUzBGQlN5eE5RVUZOTEVWQlFVVTdRVUZEYkVNc1dVRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEUxQlFVMHNRMEZCUXp0WlFVTTNRaXh2UWtGQmIwSXNSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkROMElzVTBGQlFUdEJRVVZFTEZGQlFVRXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVU3V1VGRGJrUXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRaUVVNM1F5eHZRa0ZCYjBJc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRE4wSXNVMEZCUVR0QlFVVkVMRkZCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWRCTEUxQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkZMRWxCUVVrc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVWQlFVVTdRVUZEY2tRc1dVRkJRU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNM1FpeHZRa0ZCYjBJc1IwRkJSeXhKUVVGSkxFTkJRVU03UVVGRE4wSXNVMEZCUVR0QlFVVkVMRkZCUVVFc1NVRkJTU3h2UWtGQmIwSXNSVUZCUlR0WlFVTjRRaXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdRVUZEZGtJc1UwRkJRVHRMUVVOR08wbEJSVThzWTBGQll5eEhRVUZCTzBGQlEzQkNMRkZCUVVGQkxFMUJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRkRVFzVFVGQlRTeERRVUZETEVkQlFVZEJMRTFCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRPMUZCUlRsRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZETlVJc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRkwwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEZWtRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMmhGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTTVSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGFrVXNVMEZCUVR0UlFVVkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE0wSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRMMElzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRE5VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETlVRc1UwRkJRVHRCUVVWRUxGRkJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRMEVzVFVGQlNTeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRFFTeE5RVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhRU3hOUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZIUVN4TlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSFFTeE5RVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNdlJTeFJRVUZCTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlEwRXNUVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSVUVzVFVGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlhoRExGRkJRVUVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVOd1FpeFJRVUZCTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRGJFSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVVUZETVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlJYQkdMRkZCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRPMHRCUTJ4RE8wbEJSVThzVjBGQlZ5eEhRVUZCTzFGQlEycENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE0wSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0QlFVVjRRaXhaUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNCRExGbEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEY0VRc1UwRkJRVHRSUVVWRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZETTBJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRCUVVWNFFpeFpRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNCRUxGbEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEZGtRc1UwRkJRVHRCUVVWRUxGRkJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRE8wdEJRM0JETzBGQlEwWTdPMEZEYmtkWkxFMUJRVUVzYVVOQlFXdERMRk5CUVZFc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlFUdEJRVk42UlN4SlFVRkJMRmRCUVVFc1EwRkJiVUlzUzBGQmRVTXNSVUZCUVR0QlFVTjRSQ3hSUVVGQkxFdEJRVXNzUlVGQlJTeERRVUZETzFGQlZFZ3NTVUZCVlN4RFFVRkJMRlZCUVVFc1IwRkJSeXhIUVVGSExFTkJRVU03VVVGTGFFSXNTVUZCWXl4RFFVRkJMR05CUVVFc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRFZpeFJRVUZCTEVsQlFVRXNRMEZCUVN4alFVRmpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZMY0VRc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVVndRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6TkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVVM1F5eFJRVUZCTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NWMEZCVnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjRSU3hSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJSUzlDTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOdVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1MwRkRaanRKUVVWTkxFMUJRVTBzUjBGQlFUdFJRVU5ZTEVsQlFVa3NiMEpCUVc5Q0xFZEJRVWNzUzBGQlN5eERRVUZETzFGQlJXcERMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU03UVVGRGNFUXNVVUZCUVN4SlFVRkpMRWxCUVVrc1EwRkJReXhqUVVGakxFdEJRVXNzVFVGQlRTeEZRVUZGTzBGQlEyeERMRmxCUVVFc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eE5RVUZOTEVOQlFVTTdXVUZETjBJc2IwSkJRVzlDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUXpkQ0xGTkJRVUU3UVVGRlJDeFJRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRk8xbEJRMjVFTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkROME1zYjBKQlFXOUNMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJRemRDTEZOQlFVRTdRVUZGUkN4UlFVRkJMRWxCUVVrc2IwSkJRVzlDTEVWQlFVVTdXVUZEZUVJc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzBGQlEzWkNMRk5CUVVFN1MwRkRSanRKUVVWUExHTkJRV01zUjBGQlFUdFJRVU53UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRek5DTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUlM5Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRka1FzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRE5VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETjBRc1UwRkJRVHRCUVVWRUxGRkJRVUVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xRkJRekZGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVWd1JpeFJRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dExRVU5zUXp0SlFVVlBMRmRCUVZjc1IwRkJRVHRSUVVOcVFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpOQ0xFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03UVVGRmVFSXNXVUZCUVN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU53UXl4WlFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMjVFTEZsQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRja1FzVTBGQlFUdEJRVVZFTEZGQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzQkRPMEZCUTBZN08wRkRha1ZFTEUxQlFVMUJMRTFCUVVrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVVndRaXhOUVVGQkxESkNRVUUwUWl4VFFVRlJMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVUU3UVVGTE1VUXNTVUZCUVN4WFFVRkJMRU5CUVcxQ0xGRkJRU3RDTEVWQlFVRTdRVUZEYUVRc1VVRkJRU3hMUVVGTExFVkJRVVVzUTBGQlF6dEJRVU5TTEZGQlFVRXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVVTVRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRPMEZCUlhwQ0xGRkJRVUVzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1dVRkJXU3huUTBGQlowTXNSVUZCUlR0QlFVTnVSU3haUVVGQkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4cFEwRkJhVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRemRGTEZOQlFVRTdRVUZCVFN4aFFVRkJMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEZsQlFWa3NhVU5CUVdsRExFVkJRVVU3UVVGRE0wVXNXVUZCUVN4SlFVRkpMRU5CUVVNc1UwRkJVeXhIUVVGSExFbEJRVWtzYTBOQlFXdERMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTTVSU3hUUVVGQk8wRkJRVTBzWVVGQlFUdEJRVU5NTEZsQlFVRXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh0UlVGQmJVVXNRMEZCUXl4RFFVRkRPMEZCUTNSR0xGTkJRVUU3UVVGRlJDeFJRVUZCTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVRkRPMEZCUXpORExGbEJRVUVzUzBGQlN5eEZRVUZGTEZGQlFWRTdRVUZEWml4WlFVRkJMRk5CUVZNc1JVRkJSU3hMUVVGTE8wRkJRMmhDTEZsQlFVRXNWVUZCVlN4RlFVRkZMRXRCUVVzN1FVRkRiRUlzVTBGQlFTeERRVUZETEVOQlFVTTdRVUZGU0N4UlFVRkJMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTTdRVUZET1VRc1VVRkJRU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRMUVVOMFFqdEpRVVZOTEU5QlFVOHNSMEZCUVR0QlFVTmFMRkZCUVVFc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0TFFVTXhRanRCUVVWTkxFbEJRVUVzYVVKQlFXbENMRU5CUVVNc1MwRkJZeXhGUVVGQk8xRkJRM0pETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSVGRETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1FVRkZOVU1zVVVGQlFTeE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRPMEZCUTJwRUxGRkJRVUVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4VlFVRlZMRWRCUVVkQkxFMUJRVWs3UVVGRE4wSXNZVUZCUVN4SFFVRkhMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRNMFVzVFVGQlRTeEZRVUZGTEVOQlFVTTdRVUZGV2l4UlFVRkJMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdRVUZGZUVJc1VVRkJRU3hMUVVGTExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGFFTTdRVUZEUmpzN1FVTjBSRmtzVFVGQlFTeDNRa0ZCZVVJc1UwRkJVU3hMUVVGTExFTkJRVU1zWTBGQll5eERRVUZCTzBGQlUyaEZMRWxCUVVFc1YwRkJRU3hEUVVGdFFpeFZRVUU0UWl4RlFVRkJPMEZCUXk5RExGRkJRVUVzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZVU0N4SlFVRlZMRU5CUVVFc1ZVRkJRU3hIUVVGSExFZEJRVWNzUTBGQlF6dFJRVXRvUWl4SlFVRmpMRU5CUVVFc1kwRkJRU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5XTEZGQlFVRXNTVUZCUVN4RFFVRkJMRmxCUVZrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVdHNSQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NWVUZCVlN4RFFVRkRPMEZCUlRsQ0xGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUlRkRExGRkJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGNrVXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVVXZRaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdVVUZEYmtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzB0QlEyWTdTVUZGVFN4TlFVRk5MRWRCUVVFN1VVRkRXQ3hKUVVGSkxHOUNRVUZ2UWl4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVWcVF5eFJRVUZCTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wRkJRM0pGTEZGQlFVRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhMUVVGTExFMUJRVTBzUlVGQlJUdEJRVU5zUXl4WlFVRkJMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzVFVGQlRTeERRVUZETzFsQlF6ZENMRzlDUVVGdlFpeEhRVUZITEVsQlFVa3NRMEZCUXp0QlFVTTNRaXhUUVVGQk8wRkJSVVFzVVVGQlFTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEZRVUZGTzFsQlEzcEZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNRMEZCUXp0WlFVTnVSU3h2UWtGQmIwSXNSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkROMElzVTBGQlFUdEJRVVZFTEZGQlFVRXNTVUZCU1N4dlFrRkJiMElzUlVGQlJUdFpRVU40UWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU03UVVGRGRrSXNVMEZCUVR0TFFVTkdPMGxCUlU4c1kwRkJZeXhIUVVGQk8xRkJRM0JDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRNMElzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZGTDBJc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTjJSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNMVJDeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUkN4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRVZCUVVVc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRNVVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlRsRkxGRkJRVUVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRiRU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRmVFWXNVVUZCUVN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTMEZEYkVNN1NVRkZUeXhYUVVGWExFZEJRVUU3VVVGRGFrSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVNelFpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzBGQlJYaENMRmxCUVVFc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEY0VNc1dVRkJRU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU51UkN4WlFVRkJMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pFTEZOQlFVRTdVVUZEUkN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJSVzVETEZGQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzQkRPMEZCUTBZN08wRkRlRVZFTEUxQlFVMUJMRTFCUVVrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVVndRaXhOUVVGQkxIZENRVUY1UWl4VFFVRlJMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVUU3UVVGTGRrUXNTVUZCUVN4WFFVRkJMRU5CUVcxQ0xGVkJRVGhDTEVWQlFVRTdRVUZETDBNc1VVRkJRU3hMUVVGTExFVkJRVVVzUTBGQlF6dEJRVU5TTEZGQlFVRXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVVTVRaXhSUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NWVUZCVlN4RFFVRkRPMUZCUlRkQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4M1FrRkJkMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkZMMFFzVVVGQlFTeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0QlFVTXpReXhaUVVGQkxFdEJRVXNzUlVGQlJTeFJRVUZSTzBGQlEyWXNXVUZCUVN4VFFVRlRMRVZCUVVVc1MwRkJTenRCUVVOb1FpeFpRVUZCTEZWQlFWVXNSVUZCUlN4TFFVRkxPMEZCUTJ4Q0xGTkJRVUVzUTBGQlF5eERRVUZETzBGQlJVZ3NVVUZCUVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzBGQlF6bEVMRkZCUVVFc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRkRUk3U1VGRlRTeFBRVUZQTEVkQlFVRTdRVUZEV2l4UlFVRkJMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdTMEZETVVJN1FVRkZUU3hKUVVGQkxHbENRVUZwUWl4RFFVRkRMRXRCUVdNc1JVRkJRVHRSUVVOeVF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRmNFUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dEJRVVZ1UkN4UlFVRkJMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU03UVVGRGFrUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGVkJRVlVzUjBGQlIwRXNUVUZCU1R0QlFVTTNRaXhoUVVGQkxFZEJRVWNzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU16UlN4TlFVRk5MRVZCUVVVc1EwRkJRenRCUVVWYUxGRkJRVUVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRCUVVWNFFpeFJRVUZCTEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0TFFVTm9RenRCUVVOR096dEJRelZEUkRzN1FVRkZSenRCUVVOVkxFMUJRVUVzY1VKQlFYTkNMRk5CUVZFc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlFUdEJRVTEyUkN4SlFVRkJMRmRCUVVFc1EwRkJiVUlzUzBGQmFVTXNSVUZCUVR0QlFVTnNSQ3hSUVVGQkxFdEJRVXNzUlVGQlJTeERRVUZETzBGQlJWSXNVVUZCUVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dExRVU53UWp0QlFVTkdPenRCUTJaRUxFMUJRVTFGTEU5QlFVc3NSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVVZzUXpzN096czdRVUZMUnp0QlFVTkhMRk5CUVZVc1owSkJRV2RDTEVOQlFUQkNMRTFCUVZNc1JVRkJRVHRKUVVOcVJTeEpRVUZMTEUxQlFXTXNRMEZCUXl4TlFVRk5MRVZCUVVVN1VVRkRNVUlzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMEZCUTJwQ0xFdEJRVUU3UVVGQlRTeFRRVUZCTzFGQlEwb3NUVUZCWXl4RFFVRkRMRlZCUVZVc1EwRkJRMEVzVDBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMmhFTEV0QlFVRTdRVUZGUkN4SlFVRkJMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDT3p0TlEyWmhMRzFDUVVGdFFpeERRVUZCTzBGQmMwSTVRanM3T3p0QlFVbEhPMEZCUTBnc1NVRkJRU3hKUVVGWExFOUJRVThzUjBGQlFUdFJRVU5vUWl4SlFVRkpMRWxCUVVrc1EwRkJReXh2UWtGQmIwSXNSVUZCUlR0WlFVTTNRaXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGNrTXNXVUZCUVN4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1FVRkRja01zV1VGQlFTeEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFZEJRVWNzUzBGQlN5eERRVUZETzBGQlEyNURMRk5CUVVFN1VVRkZSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTTdTMEZETTBJN1FVRkZSQ3hKUVVGQkxGZEJRVUVzUTBGQmJVSXNUVUZCY1VJc1JVRkJRVHRCUVM5Q2VFTTdPMEZCUlVjN1FVRkRZeXhSUVVGQkxFbEJRVUVzUTBGQlFTeGhRVUZoTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRmNrUTdPenRCUVVkSE8xRkJRMHNzU1VGQmIwSXNRMEZCUVN4dlFrRkJRU3hIUVVGSExFbEJRVWtzUTBGQlF6dEJRWFZDYkVNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0QlFVVnlRaXhSUVVGQkxFMUJRVTBzVDBGQlR5eEhRVUV5UWp0WlFVTjBReXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNTVUZCVXl4RlFVRkZMRTFCUVUwc1MwRkJTVHRCUVVNNVFpeG5Ra0ZCUVN4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUTJwRExHZENRVUZCTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU03UVVGRmJrSXNaMEpCUVVFc1QwRkJUeXhKUVVGSkxFTkJRVU03WVVGRFlqdFRRVU5HTEVOQlFVTTdRVUZGUml4UlFVRkJMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRE8wRkJRM3BETEZGQlFVRXNUVUZCVFN4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8wdEJRM1pFTzBsQlJVMHNUVUZCVFN4SFFVRkJPMUZCUTFnc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETzB0QlF5OURPMEZCUTBZN08wRkRja1JFTzBGQlEwRTdRVUZEUVR0QlFVVkJMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRk4wTTdRVUZEUVN4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVTnFReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVOcVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVVZxUXpzN1FVRkZSenRCUVVOSUxFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZGYUVRN08wRkJSVWM3UVVGRFNDeE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMEZCUldwRU96dEJRVVZITzBGQlEwZ3NUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZGZEVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1FVRkRkRU1zVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGJFTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZGYkVNN096dEJRVWRITzAxQlExVXNhMEpCUVd0Q0xFTkJRVUU3UVVGclJEZENMRWxCUVVFc1NVRkJWeXhOUVVGTkxFZEJRVUU3VVVGRFppeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNN1MwRkRja0k3U1VGRFJDeEpRVUZYTEUxQlFVMHNRMEZCUXl4TlFVRTJRaXhGUVVGQk96czdVVUZGTjBNc1NVRkJTU3hEUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZKTEVOQlFVTXNUMEZCVHl3d1EwRkJSU3hSUVVGUkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVN1dVRkRNME1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc2FVSkJRWGxETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1FVRkRNVVVzV1VGQlFTeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJVU3hEUVVGRExHbENRVUZwUWl4RFFVRkRPMEZCUTJoRUxGTkJRVUU3TzBGQlIwUXNVVUZCUVN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6czdVVUZIZEVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTzFsQlEyaENMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJUdEJRVU0xUXl4blFrRkJRU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eEpRVUZKTEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1FVRkROMFlzWVVGQlFUdEJRVU5HTEZOQlFVRTdTMEZEUmp0QlFXZENSQ3hKUVVGQkxFbEJRVmNzZVVKQlFYbENMRWRCUVVFN1VVRkRiRU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU03UzBGRGVFTTdRVUZGUkRzN08wRkJSMGM3UVVGRFNDeEpRVUZCTEVsQlFWa3NhMEpCUVd0Q0xFZEJRVUU3UVVGRE5VSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRMUVVNelJUdEJRVVZFT3pzN096czdPMEZCVDBjN1NVRkRTQ3hYUVVORkxFTkJRVUVzU1VGQmIwSXNSVUZEY0VJc1MwRkJORUlzUlVGRE5VSXNWMEZCWjBRc1JVRkJSU3hGUVVOc1JDeHBRa0ZCSzBNc1JVRkJSU3hGUVVGQk96dEJRWFpHYmtRN08wRkJSVWM3UVVGRFN5eFJRVUZCTEVsQlFVRXNRMEZCUVN4WlFVRlpMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZGTTBNN08wRkJSVWM3UVVGRFN5eFJRVUZCTEVsQlFVRXNRMEZCUVN4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZGZUVNN08wRkJSVWM3UVVGRFN5eFJRVUZCTEVsQlFVRXNRMEZCUVN4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZGZUVNN096czdPMEZCUzBjN1VVRkRTeXhKUVVGeFFpeERRVUZCTEhGQ1FVRkJMRWRCUVVjc1IwRkJSeXhEUVVGRE8wRkJSWEJET3pzN1FVRkhSenRSUVVOTExFbEJRVThzUTBGQlFTeFBRVUZCTEVkQlFUQkNMRWxCUVVrc1EwRkJRenRCUVhOQ09VTTdPMEZCUlVjN1FVRkRTeXhSUVVGQkxFbEJRVUVzUTBGQlFTeHRRa0ZCYlVJc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVVnNSRHM3UVVGRlJ6dEJRVU5MTEZGQlFVRXNTVUZCUVN4RFFVRkJMSEZDUVVGeFFpeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8wRkJSWFpFT3p0QlFVVkhPMEZCUTBzc1VVRkJRU3hKUVVGQkxFTkJRVUVzTUVKQlFUQkNMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUV5UW5aRUxGRkJRVUVzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRha0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZGYmtNc1VVRkJRU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVVnVRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITzBGQlEyUXNXVUZCUVN4VFFVRlRMRVZCUVVVc1EwRkJRU3hGUVVGQkxFZEJRVUVzVVVGQlVTeERRVUZETEZOQlFWTXNiVU5CUVVrc1IwRkJSenRCUVVOd1F5eFpRVUZCTEZOQlFWTXNSVUZCUlN4RFFVRkJMRVZCUVVFc1IwRkJRU3hSUVVGUkxFTkJRVU1zVTBGQlV5eHRRMEZCU1N4SFFVRkhPMEZCUTNCRExGbEJRVUVzV1VGQldTeEZRVUZGTEVOQlFVRXNSVUZCUVN4SFFVRkJMRkZCUVZFc1EwRkJReXhaUVVGWkxHMURRVUZKTEVkQlFVYzdXVUZETVVNc1ZVRkJWU3hGUVVGRkxFMUJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNVVUZCVVN4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJTeExRVUZMTEVWQlFVVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCU1N4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJRenRCUVVNM1JTeFpRVUZCTEZOQlFWTXNSVUZCUlN4RFFVRkJMRVZCUVVFc1IwRkJRU3hSUVVGUkxFTkJRVU1zVTBGQlV5eHRRMEZCU1N4SFFVRkhPMU5CUTNKRExFTkJRVU03UVVGRlJpeFJRVUZCTEVsQlFVa3NRMEZCUXl4alFVRmpMRWRCUVVjc1kwRkJZeXhEUVVGRE8wdEJRM1JETzBGQlJVUTdPenRCUVVkSE8wbEJRMGtzV1VGQldTeEhRVUZCT3p0UlFVVnFRaXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRhRVFzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE96dFJRVWQwUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVU3V1VGRFpDeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UVVGRE0wUXNVMEZCUVR0QlFVRk5MR0ZCUVVFN096dEJRVWRNTEZsQlFVRXNTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU16Uml4VFFVRkJPenRSUVVkRUxFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXd3UWtGQk1FSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1VVRkRiRWdzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZET3p0QlFVZDJReXhSUVVGQkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXd3UWtGQk1FSXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wdEJRMnhGTzBGQlJVUTdPenRCUVVkSE8wbEJRMGtzUzBGQlN5eEhRVUZCTzFGQlExWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZET3p0QlFVZDBSQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRkRla0lzVVVGQlFTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6czdVVUZIYkVZc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRhRVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0UlFVTnNTQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03UzBGRGVFTTdRVUZGUkRzN096czdRVUZMUnp0QlFVTkpMRWxCUVVFc1RVRkJUU3hEUVVGRExFdEJRV0VzUlVGQlFUdFJRVU42UWl4SlFVRkpMRXRCUVVzc1NVRkJTU3hEUVVGRE8xbEJRVVVzVDBGQlR6czdVVUZIZGtJc1NVRkJTU3hEUVVGRExIbENRVUY1UWl4RlFVRkZMRU5CUVVNN08xRkJSMnBETEcxQ1FVRnRRaXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdVVUZEYWtVc1NVRkJTU3h0UWtGQmJVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRPVVFzYjBKQlFXOUNMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1VVRkRha1lzVFVGQlRTeHBRa0ZCYVVJc1IwRkJSeXhOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXpzN1FVRkhOVVVzVVVGQlFTeE5RVUZOTEhWQ1FVRjFRaXhIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdPMUZCUjJ4SExFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1NVRkJTVHRCUVVNM1FpeGhRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRE8wRkJRM0JDTEdGQlFVRXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXp0aFFVTjBReXhaUVVGWkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNN1lVRkRja01zUjBGQlJ5eERRVUZETEc5Q1FVRnZRaXhEUVVGRE8wRkJRM3BDTEdGQlFVRXNVMEZCVXl4RlFVRkZMRU5CUVVNN08xRkJSMllzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zWlVGQlpTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdVVUZGT1Vjc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN08xRkJSMmhGTEZOQlFWTTdRVUZEVGl4aFFVRkJMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETzBGQlEzWkNMR0ZCUVVFc1IwRkJSeXhEUVVOR0xFbEJRVWs3UVVGRFJDeGhRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8wRkJRM1pDTEdGQlFVRXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU03WVVGRGJrSXNZMEZCWXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVTXZRenRoUVVOQkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRPMkZCUTI1R0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zV1VGQldTeEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNKR0xHRkJRVUVzV1VGQldTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03TzFGQlIzSkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdPMEZCUjI1SUxGRkJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenM3UVVGSE0wSXNVVUZCUVN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZGTVVRc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8wRkJRM1pETEZGQlFVRXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhEUVVGRE96czdVVUZKTDBVc1RVRkJUU3d3UWtGQk1FSXNSMEZCUnl4blFrRkJaMElzUTBGRGFrUXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRM1pGTEVOQlFVTTdVVUZEUml4TlFVRk5MR0ZCUVdFc1IwRkJSeXhOUVVGTkxFTkJRVU1zYTBKQlFXdENMRU5CUXpkRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlEyUXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZETVVVc1EwRkJRenRCUVVWR0xGRkJRVUVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXpzN1FVRkhPVVVzVVVGQlFTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wRkJRM3BDTEZGQlFVRXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTMEZEYmtZN1FVRkZSRHM3T3p0QlFVbEhPMEZCUTBzc1NVRkJRU3hWUVVGVkxFTkJRVU1zU1VGQmJVSXNSVUZCUVR0UlFVTndReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMR0ZCUVdFc1MwRkJTVHRaUVVNMVF5eGhRVUZoTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExGRkJRVkVzUzBGQlNUdG5Ra0ZETTBNc1RVRkJUU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRk1VY3NTVUZCU1N4SlFVRkpMRWRCUVVjc1IwRkJSeXhGUVVGRk96dHZRa0ZGWkN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE96dHZRa0ZIY2tNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0QlFVTXZSeXhwUWtGQlFUdEJRVU5JTEdGQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1UwRkJReXhEUVVGRExFTkJRVU03UzBGRFNqdEJRVVZFT3pzN1FVRkhSenRKUVVOTExIbENRVUY1UWl4SFFVRkJPMUZCUXk5Q0xFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUld4RUxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlR0WlFVTmtMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzBGQlEzQkVMRk5CUVVFN1FVRkJUU3hoUVVGQk8wRkJRMHdzV1VGQlFTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXd3UWtGQk1FSXNRMEZCUXl4RFFVRkRPMWxCUXpORExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dEJRVU14UXl4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRMUVVOMFJEdEJRVVZFT3pzN1FVRkhSenRCUVVOTExFbEJRVUVzZFVKQlFYVkNMRU5CUVVNc1RVRkJjVUlzUlVGQlFUdFJRVU51UkN4SlFVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVU3V1VGRGFFSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMEZCUTNaRExGTkJRVUU3UVVGQlRTeGhRVUZCTzFsQlEwd3NUVUZCVFN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8wRkJRMjVDTEZOQlFVRTdRVUZGUkN4UlFVRkJMRTlCUVU4c1RVRkJUU3hEUVVGRE8wdEJRMlk3UVVGRlJEczdPMEZCUjBjN1FVRkRTeXhKUVVGQkxIVkNRVUYxUWl4RFFVRkRMRTFCUVhGQ0xFVkJRVUU3VVVGRGJrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRk8wRkJRMmhDTEZsQlFVRXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4cFFrRkJlVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTjJSaXhUUVVGQk8wRkJRVTBzWVVGQlFUdFpRVU5NTEUxQlFVMHNRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRCUVVOdVFpeFRRVUZCTzBGQlJVUXNVVUZCUVN4UFFVRlBMRTFCUVUwc1EwRkJRenRMUVVObU8wRkJRMFk3TzBGRGFGZEVPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGdlIwRTdRVUZEVHl4VFFVRlRMRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVVzVlVGQlZTeEZRVUZGTEVOQlFVTXNSVUZCUlN4VFFVRlRMRVZCUVVVN1FVRkROMFFzU1VGQlNTeFRRVUZUTEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hQUVVGUExFdEJRVXNzV1VGQldTeERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExGVkJRVlVzVDBGQlR5eEZRVUZGTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVTdRVUZEYUVnc1NVRkJTU3hQUVVGUExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1JVRkJSU3hWUVVGVkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVTdRVUZETDBRc1VVRkJVU3hUUVVGVExGTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTzBGQlEyNUhMRkZCUVZFc1UwRkJVeXhSUVVGUkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTzBGQlEzUkhMRkZCUVZFc1UwRkJVeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTzBGQlEzUklMRkZCUVZFc1NVRkJTU3hEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxGVkJRVlVzU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRemxGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTFBc1EwRkJRenRCUVdkTlJEdEJRVU4xUWl4UFFVRlBMR1ZCUVdVc1MwRkJTeXhWUVVGVkxFZEJRVWNzWlVGQlpTeEhRVUZITEZWQlFWVXNTMEZCU3l4RlFVRkZMRlZCUVZVc1JVRkJSU3hQUVVGUExFVkJRVVU3UVVGRGRrZ3NTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTXZRaXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4cFFrRkJhVUlzUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zVlVGQlZTeEhRVUZITEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRja1k3TzBGRE5WUm5RaXhUUVVGQkxIbENRVUY1UWl4RFFVRkRMRTFCUVhOQ0xFVkJRVVVzVVVGQk1FTXNSVUZCUVR0SlFVTXhSeXhOUVVGTkxGTkJRVk1zUjBGQmNVSXNSVUZCUlN4RFFVRkRPMGxCUlhaRExFbEJRVWtzU1VGQlNTeEhRVUV3UWl4TlFVRk5MRU5CUVVNN1NVRkRla01zVDBGQlR5eEpRVUZKTEV0QlFVc3NTVUZCU1N4RlFVRkZPMEZCUTNCQ0xGRkJRVUVzVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVONFFpeFJRVUZCTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRM0JDTEV0QlFVRTdRVUZGUkN4SlFVRkJMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFJRVUZSTEV0QlFVazdVVUZETjBJc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEzSkNMRXRCUVVNc1EwRkJReXhEUVVGRE8wRkJRMHc3TzBGRFdrRTdPenM3T3p0QlFVMUhPMEZCUTJFc1UwRkJRU3hwUTBGQmFVTXNRMEZETDBNc1RVRkJjMElzUlVGRGRFSXNVVUZCTmtNc1JVRkJRVHRKUVVVM1F5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFdEJRVXNzUzBGQlNUdEJRVU5vUXl4UlFVRkJMRTFCUVUwc1RVRkJUU3hIUVVGSExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXZRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlExZ3NXVUZCUVN4cFEwRkJhVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRjRVFzVTBGQlFUdEJRVU5JTEV0QlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3N08wMURXbUVzYjBKQlFXOUNMRU5CUVVFN1FVRkJha01zU1VGQlFTeFhRVUZCTEVkQlFVRTdRVUZEVlN4UlFVRkJMRWxCUVVFc1EwRkJRU3hQUVVGUExFZEJRVWNzU1VGQlNTeEhRVUZITEVWQlFYTkNMRU5CUVVNN1FVRnJRM2hETEZGQlFVRXNTVUZCUVN4RFFVRkJMSEZDUVVGeFFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RlFVRXlReXhEUVVGRE8wdEJjVXR3Ump0QlFYUk5ReXhKUVVGQkxFbEJRVmNzVFVGQlRTeEhRVUZCTzFGQlEyWXNUMEZCVHl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRE8wdEJRM0pDTzBGQlJVUTdPMEZCUlVjN1FVRkRTQ3hKUVVGQkxFbEJRVmNzVjBGQlZ5eEhRVUZCTzBGQlEzQkNMRkZCUVVFc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eHpSVUZCYzBVc1EwRkJReXhEUVVGRE8xRkJSWEpHTEU5QlFVOHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJRenRMUVVOeVFqdEJRVVZFTEVsQlFVRXNTVUZCVnl4alFVRmpMRWRCUVVFN1FVRkRka0lzVVVGQlFTeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJPRUlzUTBGQlF6dFJRVU5zUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZWQlFWVXNTMEZCU1R0WlFVTnNReXhWUVVGVkxFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMR0ZCUVdFc1MwRkJTVHRCUVVOc1JDeG5Ra0ZCUVN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlEzcENMR0ZCUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzVTBGQlF5eERRVUZETEVOQlFVTTdRVUZEU0N4UlFVRkJMRTlCUVU4c1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0TFFVTjRRanRCUVVWRUxFbEJRVUVzU1VGQlZ5eFRRVUZUTEVkQlFVRTdRVUZEYkVJc1VVRkJRU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCZVVJc1EwRkJRenRSUVVNM1F5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUzBGQlNUdFpRVU0xUXl4aFFVRmhMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZGQlFWRXNTMEZCU1R0QlFVTXpReXhuUWtGQlFTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM0JDTEdGQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1UwRkJReXhEUVVGRExFTkJRVU03UVVGRFNDeFJRVUZCTEU5QlFVOHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dExRVU40UWp0QlFVbE5MRWxCUVVFc1VVRkJVU3hEUVVGRExFdEJRWGxDTEVWQlFVRTdRVUZEZGtNc1VVRkJRU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVWNFFpeFJRVUZCTEVsQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6TkVMRWxCUVVrc1UwRkJVeXhKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU55UWl4WlFVRkJMRk5CUVZNc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQmMwSXNRMEZCUXp0WlFVTXhReXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1FVRkRka1FzVTBGQlFUdEJRVU5FTEZGQlFVRXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dExRVU4wUWp0QlFVVkVPenRCUVVWSE8wRkJRMGtzU1VGQlFTeGhRVUZoTEVOQlFVTXNTMEZCZVVJc1JVRkJRVHRCUVVNMVF5eFJRVUZCTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc09FVkJRVGhGTEVOQlFVTXNRMEZCUXp0QlFVVTNSaXhSUVVGQkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRkRUk3UVVGRlRTeEpRVUZCTEZkQlFWY3NRMEZCUXl4TFFVRjVRaXhGUVVGQk8wRkJRekZETEZGQlFVRXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdRVUZGTTBJc1VVRkJRU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVVc1EwRkJRenRCUVVNNVJDeFJRVUZCTEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGVrSTdRVUZGUkRzN1FVRkZSenRCUVVOSkxFbEJRVUVzWjBKQlFXZENMRU5CUVVNc1MwRkJlVUlzUlVGQlFUdEJRVU12UXl4UlFVRkJMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zYjBaQlFXOUdMRU5CUVVNc1EwRkJRenRCUVVWdVJ5eFJRVUZCTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGVrSTdTVUZGVFN4WlFVRlpMRWRCUVVFN1FVRkRha0lzVVVGQlFTeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUjBGQlJ5eEZRVUZ6UWl4RFFVRkRPMEZCUTNaRUxGRkJRVUVzVFVGQlRTeGxRVUZsTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVhOQ0xFTkJRVU03UVVGRGRFUXNVVUZCUVN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQmEwSXNRMEZCUXp0QlFVVm9SQ3hSUVVGQkxFdEJRVXNzVFVGQlRTeFZRVUZWTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVOeVF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVlVGQlZTeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxHVkJRV1VzUlVGQlJTeGhRVUZoTEVWQlFVVXNRMEZCUXl4VlFVRlZMRXRCUXk5R0xGVkJRVlVzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZETVVJc1EwRkJRenRCUVVOSUxGTkJRVUU3UzBGRFJqdEpRVVZOTEV0QlFVc3NSMEZCUVR0QlFVTldMRkZCUVVFc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJjMElzUTBGQlF6dEJRVU4yUkN4UlFVRkJMRTFCUVUwc1pVRkJaU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEZRVUZ6UWl4RFFVRkRPMEZCUTNSRUxGRkJRVUVzVFVGQlRTeGhRVUZoTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVd0Q0xFTkJRVU03UVVGRmFFUXNVVUZCUVN4TFFVRkxMRTFCUVUwc1ZVRkJWU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdXVUZEY2tNc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRlZCUVZVc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4bFFVRmxMRVZCUVVVc1lVRkJZU3hGUVVGRkxFTkJRVU1zVlVGQlZTeExRVU12Uml4VlFVRlZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRMjVDTEVOQlFVTTdRVUZEU0N4VFFVRkJPMHRCUTBZN1FVRkZUU3hKUVVGQkxFMUJRVTBzUTBGQlF5eExRVUZoTEVWQlFVRTdRVUZEZWtJc1VVRkJRU3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGelFpeERRVUZETzBGQlEzWkVMRkZCUVVFc1RVRkJUU3hsUVVGbExFZEJRVWNzU1VGQlNTeEhRVUZITEVWQlFYTkNMRU5CUVVNN1FVRkRkRVFzVVVGQlFTeE5RVUZOTEdGQlFXRXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJhMElzUTBGQlF6dEJRVVZvUkN4UlFVRkJMRXRCUVVzc1RVRkJUU3hWUVVGVkxFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlRzN1dVRkZja01zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hsUVVGbExFVkJRVVVzWVVGQllTeEZRVUZGTEVOQlFVTXNWVUZCVlN4TFFVTXZSaXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVTjZRaXhEUVVGRE96czdXVUZKUml4cFEwRkJhVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1RVRkJUU3hMUVVGSk96czdRVUZGTlVRc1owSkJRVUVzU1VGQlNTeERRVUZETEVOQlFVRXNSVUZCUVN4SFFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETERCRFFVRkZMRWxCUVVrc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1IwRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzBGQlF6TkVMRzlDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNhVUpCUVVFN08wRkJSMFFzWjBKQlFVRXNUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVOMlF5eG5Ra0ZCUVN4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObUxHRkJRVU1zUTBGQlF5eERRVUZETzBGQlEwb3NVMEZCUVR0TFFVTkdPMEZCUlVRN096czdPenM3T3pzN096dEJRVmxITzBsQlEwc3NhMEpCUVd0Q0xFTkJRM2hDTEZWQlFUaENMRVZCUXpsQ0xHZENRVUY1UXl4RlFVTjZReXhsUVVGM1F5eEZRVU40UXl4aFFVRnJReXhGUVVOc1F5eFJRVUZyUkN4RlFVRkJPMEZCUld4RUxGRkJRVUVzU1VGQlNTeGxRVUZsTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRk8xbEJRMjVETEU5QlFVODdRVUZEVWl4VFFVRkJPMEZCUlVRc1VVRkJRU3hKUVVGSkxHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJUdEJRVU53UXl4WlFVRkJMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zSzBWQlFTdEZMRU5CUVVNc1EwRkJRenRCUVVOc1J5eFRRVUZCTzBGQlEwUXNVVUZCUVN4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkZha01zVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUTNKRUxGRkJRVUVzUzBGQlN5eE5RVUZOTEZOQlFWTXNTVUZCU1N4VlFVRlZMRVZCUVVVN1FVRkRiRU1zV1VGQlFTeDVRa0ZCZVVJc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1MwRkJTVHRuUWtGRGVrUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMEZCUTNCRkxHZENRVUZCTEVsQlFVa3NVMEZCVXl4RlFVRkZPMEZCUTJJc2IwSkJRVUVzUzBGQlN5eE5RVUZOTEdGQlFXRXNTVUZCU1N4VFFVRlRMRVZCUVVVN1FVRkRja01zZDBKQlFVRXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEdGQlFXRXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeGxRVUZsTEVWQlFVVXNZVUZCWVN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM0JITEhGQ1FVRkJPMEZCUTBZc2FVSkJRVUU3UVVGQlRTeHhRa0ZCUVN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhGUVVGRk96dEJRVVZvUkN4dlFrRkJRU3hwUWtGQmFVSXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRiRVFzYjBKQlFVRXNZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMEZCUTNSRExHbENRVUZCTzBGQlEwZ3NZVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhUUVVGQk96dEJRVWRFTEZGQlFVRXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dFJRVU12UWl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVZvUkN4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRmNrSXNVVUZCUVN4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVVnVReXhSUVVGQkxHVkJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1MwRkRha003UVVGRlJEczdPenRCUVVsSE8wRkJRMHNzU1VGQlFTeG5Ra0ZCWjBJc1EwRkJReXhWUVVFNFFpeEZRVUZCTzBGQlEzSkVMRkZCUVVFc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeEhRVUZITEVWQlFXdENMRU5CUVVNN1FVRkZkRU1zVVVGQlFTeE5RVUZOTEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU4wUXl4UlFVRkJMRWxCUVVrc1RVRkJUU3hGUVVGRk8wRkJRMVlzV1VGQlFTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRMnBDTEZOQlFVRTdVVUZGUkN4VlFVRlZMRU5CUVVNc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEdGQlFXRXNTMEZCU1R0WlFVTnNSQ3hoUVVGaExFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRkZCUVZFc1MwRkJTVHRCUVVNelF5eG5Ra0ZCUVN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEzQkNMR0ZCUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzVTBGQlF5eERRVUZETEVOQlFVTTdRVUZGU0N4UlFVRkJMRTlCUVU4c1IwRkJSeXhEUVVGRE8wdEJRMW83UVVGRFJqczdRVU5vVFVRN08wRkJSVWM3UVVGRFNDeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU03VFVGRkwwTXNlVUpCUVhsQ0xFTkJRVUU3UVVGdFFuQkRMRWxCUVVFc1NVRkJWeXhKUVVGSkxFZEJRVUU3VVVGRFlpeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHTkJRV01zUTBGQlF6dExRVU5xUkR0SlFVVkVMRmRCUVcxQ0xFTkJRVUVzVFVGQmEwSXNSVUZCUlN4UFFVRXdReXhGUVVGQk8wRkJReTlGTEZGQlFVRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRmNrSXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1IwRkJSeXhQUVVGUExFdEJRVUVzU1VGQlFTeEpRVUZRTEU5QlFVOHNTMEZCVUN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeFBRVUZQTEVOQlFVVXNaVUZCWlN4RFFVRkRPMUZCUTJoRUxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1IwRkJSeXhQUVVGUExFdEJRVUVzU1VGQlFTeEpRVUZRTEU5QlFVOHNTMEZCVUN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeFBRVUZQTEVOQlFVVXNhMEpCUVd0Q0xFTkJRVU03UzBGRGRrUTdRVUZGV1N4SlFVRkJMRk5CUVZNc1EwRkJReXhKUVVGVkxFVkJRVUU3TzBGQlF5OUNMRmxCUVVFc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eHZRa0ZCYjBJc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRMMFFzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZCUVR0QlFVVkVPenM3T3p0QlFVdEhPMEZCUTFjc1NVRkJRU3hQUVVGUExFTkJRVU1zU1VGQlZTeEZRVUZCT3p0WlFVTTVRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRE5VTXNTVUZCU1N4UlFVRlJMRWxCUVVrc1NVRkJTU3hGUVVGRk8wRkJRM0JDTEdkQ1FVRkJMRTlCUVU4c1VVRkJVU3hEUVVGRE8wRkJRMnBDTEdGQlFVRTdXVUZGUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkROVU1zU1VGQlNTeFJRVUZSTEVsQlFVa3NTVUZCU1N4RlFVRkZPMEZCUTNCQ0xHZENRVUZCTEU5QlFVOHNVVUZCVVN4RFFVRkRPMEZCUTJwQ0xHRkJRVUU3UVVGRlJDeFpRVUZCTEU5QlFVOHNTVUZCU1N4RFFVRkRPMU5CUTJJc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGQlFUdEJRVVZoTEVsQlFVRXNVMEZCVXl4RFFVRkRMRWxCUVZVc1JVRkJRVHM3TzBGQlEyaERMRmxCUVVFc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRjNRaXhEUVVGRE96dEJRVWRzUkN4WlFVRkJMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NRMEZCUVN4RFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGSkxFTkJRVU1zWTBGQll5eE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkZMRTlCUVU4c1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4alFVRmpMRU5CUVVNc1RVRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU4yUnl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVWQlFVVTdRVUZEY2tJc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEc5Q1FVRnZRaXhGUVVGRkxFTkJRVU03V1VGRk0wTXNUVUZCVFN4VlFVRlZMRWRCUVhGQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRkwwVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETEZWQlFWVXNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJSeXg1UWtGQmVVSXNRMEZCUXl4alFVRmpMRU5CUlM5RUxFTkJRVU03V1VGRFpDeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZPMEZCUTJRc1owSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWWl4aFFVRkJPMEZCUlVRc1dVRkJRU3hOUVVGTkxGZEJRVmNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RFFVRkRPMEZCUXpGRExGbEJRVUVzU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlR0blFrRkROVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4RFFVRnpReXh0UTBGQlFTeEZRVUZCTEhsQ1FVRjVRaXhEUVVGRExHTkJRV01zUTBGQmFVSXNZMEZCUVN4RlFVRkJMRmRCUVZjc1EwRkJSeXhEUVVGQkxFTkJRVUVzUTBGRE9VY3NRMEZCUXp0QlFVTkdMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0QlFVVkVMRmxCUVVFc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNVMEZCVXl4RFFVRkRMRk5CUVZNc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1UwRkJVeXhMUVVGSk96dG5Ra0ZEZGtVc1RVRkJUU3hKUVVGSkxFZEJRVWNzVlVGQlZTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkxMRU5CUVVNc1EwRkJRenRCUVVNNVF5eG5Ra0ZCUVN4TlFVRk5MRmRCUVZjc1IwRkJSeXhqUVVGakxFTkJRVU1zUzBGQlRTeERRVUZETzJkQ1FVVXhReXhKUVVGSkxGZEJRVmNzUTBGQlF5eE5RVUZOTEVWQlFVVTdRVUZEZEVJc2IwSkJRVUVzVDBGQlR5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTzNkQ1FVTjBReXhOUVVGTkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVUVzUlVGQlFTeEhRVUZCTEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenQzUWtGRGJrWXNUVUZCVFN4RlFVRkZMRTFCUVVFc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEcxRFFVRkpMRWRCUVVjN1FVRkRla01zY1VKQlFVRXNRMEZCUXl4RFFVRkRPMEZCUTBvc2FVSkJRVUU3Y1VKQlFVMHNTVUZCU1N4WFFVRlhMRU5CUVVNc1QwRkJUeXhGUVVGRk8wRkJRemxDTEc5Q1FVRkJMRTlCUVU4c1NVRkJTU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRWxCUVVrc1JVRkJSVHQzUWtGRGRrTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkJMRVZCUVVFc1IwRkJRU3hYUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNUVUZCUVN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNSMEZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdkMEpCUTNCR0xFMUJRVTBzUlVGQlJTeE5RVUZCTEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3h0UTBGQlNTeEhRVUZITzNkQ1FVTjZReXhKUVVGSkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVUVzUlVGQlFTeEhRVUZCTEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hOUVVGQkxFbEJRVUVzU1VGQlFTeEZRVUZCTEV0QlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hIUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVOcVJpeHhRa0ZCUVN4RFFVRkRMRU5CUVVNN1FVRkRTaXhwUWtGQlFUdEJRVVZFTEdkQ1FVRkJMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zTkVOQlFUUkRMRk5CUVZNc1EwRkJRU3h0UWtGQlFTeERRVUZ4UWl4RFFVRkRMRU5CUVVNN1FVRkRPVVlzWVVGQlF5eERRVUZETEVOQlFVTTdRVUZGU0N4WlFVRkJMRTFCUVUwc1kwRkJZeXhIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEZOQlFWTXNRMEZCUXl4alFVRmpMRTFCUVVFc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVVVzUjBGQlJ5eERRVU5zUkN4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEdOQlFXTXNTMEZCWjBNN08wRkJRMnhGTEdkQ1FVRkJMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlFTeEZRVUZCTEVkQlFVRXNiVUpCUVcxQ0xFTkJRVU1zVTBGQlV5eE5RVUZCTEVsQlFVRXNTVUZCUVN4RlFVRkJMRXRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeEhRVUZKTEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFdEJRVWs3YjBKQlEyNUZMRTFCUVUwc1IwRkJSeXhIUVVGSExGTkJRVk1zUzBGQlZDeEpRVUZCTEVsQlFVRXNVMEZCVXl4MVFrRkJWQ3hUUVVGVExFTkJRVWNzVTBGQlV5eERRVUZETEVOQlFVTTdiMEpCUlc1RExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVsQlFVa3NSVUZCUlR0M1FrRkRaaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVU5pTEVOQlFVRXNPRU5CUVVFc1JVRkJhVVFzWTBGQll5eERRVUZwUXl3NFFrRkJRU3hGUVVGQkxGTkJRVk1zUTBGQlowSXNZMEZCUVN4RFFVRkJMRU5CUXpGSUxFTkJRVU03UVVGRFNDeHhRa0ZCUVR0QlFVVkVMRzlDUVVGQkxFOUJRVThzUjBGQlJ5eERRVUZETzBGQlEySXNhVUpCUVVNc1EwRkJReXhEUVVGRE8yZENRVVZJTEU5QlFVODdRVUZEVEN4dlFrRkJRU3hUUVVGVExFVkJRVVVzU1VGQlNUdHZRa0ZEWml4SlFVRkpMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTXNTVUZCU1R0cFFrRkRMMElzUTBGQlF6dEJRVU5LTEdGQlFVTXNRMEZEUml4RFFVRkRPMWxCUlVZc1EwRkJRU3hGUVVGQkxFZEJRVUVzVTBGQlV5eERRVUZETEU5QlFVOHNUVUZCUlN4SlFVRkJMRWxCUVVFc1JVRkJRU3hMUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eFpRVUZaTEVWQlFVVXNUMEZCVHl4TFFVRkpPenRCUVVOdVJDeG5Ra0ZCUVN4TlFVRk5MRmxCUVZrc1IwRkJSeXhaUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZET3p0QlFVZDZReXhuUWtGQlFTeE5RVUZOTEhWQ1FVRjFRaXhIUVVGSExFTkJRVUVzUlVGQlFTeEhRVUZCTEZsQlFWa3NRMEZCUXl4alFVRmpMRTFCUVVVc1NVRkJRU3hKUVVGQkxFVkJRVUVzUzBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVUVzUjBGQlJ5eERRVUZETEVOQlFVTXNZMEZCWXl4TFFVRkpPMjlDUVVOc1JpeE5RVUZOTEV0QlFVc3NSMEZCUnl4alFVRmpMRXRCUVdRc1NVRkJRU3hKUVVGQkxHTkJRV01zZFVKQlFXUXNZMEZCWXl4RFFVRkhMR05CUVdNc1EwRkJReXhEUVVGRE8yOUNRVVV2UXl4SlFVRkpMRXRCUVVzc1NVRkJTU3hKUVVGSkxFVkJRVVU3ZDBKQlEycENMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRMklzUTBGQlFTeDFRMEZCUVN4RlFVRXdReXhQUVVGUExFTkJRWEZETEd0RFFVRkJMRVZCUVVFc1kwRkJZeXhEUVVGblFpeGpRVUZCTEVOQlFVRXNRMEZEY2tnc1EwRkJRenRCUVVOSUxIRkNRVUZCTzBGQlJVUXNiMEpCUVVFc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeHBRa0ZCUXl4RFFVRkRMRU5CUVVNN1owSkJSVWdzVFVGQlRTeE5RVUZOTEVkQlFVY3NXVUZCV1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hKUVVGSkxFZEJRVWNzVlVGQlZTeERRVUZETEZsQlFWa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03UVVGRmVrWXNaMEpCUVVFc1NVRkJTU3hsUVVFclJDeERRVUZETzBGQlEzQkZMR2RDUVVGQkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4WFFVRlhMRXRCUVVrN1FVRkRia01zYjBKQlFVRXNTVUZCU1N4bFFVRmxMRVZCUVVVN08wRkJSVzVDTEhkQ1FVRkJMRTFCUVUwc1UwRkJVeXhIUVVGSExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEZGtNc2QwSkJRVUVzVFVGQlRTeEpRVUZKTEVkQlFVY3NWVUZCVlN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRMjVETEhkQ1FVRkJMRTFCUVUwc1ZVRkJWU3hIUVVGSExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEY0VNc2QwSkJRVUVzVFVGQlRTeExRVUZMTEVkQlFVY3NWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE96dEJRVWR5UXl4M1FrRkJRU3hOUVVGTkxFOUJRVThzUjBGQmQwTTdORUpCUTI1RUxGTkJRVk1zUlVGQlJTeGxRVUZsTEVOQlFVTXNVMEZCVXpzMFFrRkRjRU1zVTBGQlV5eEZRVUZGTEdWQlFXVXNRMEZCUXl4VFFVRlRPelJDUVVOd1F5eFpRVUZaTEVWQlFVVXNaVUZCWlN4RFFVRkRMRmxCUVZrN05FSkJRekZETEZOQlFWTXNSVUZCUlN4bFFVRmxMRU5CUVVNc1UwRkJVenRCUVVOd1F5dzBRa0ZCUVN4VlFVRlZMRVZCUTFJc1pVRkJaU3hEUVVGRExGVkJRVlVzU1VGQlNTeEpRVUZKTzBGQlEyaERMR3REUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhsUVVGbExFTkJRVU1zVlVGQlZTeERRVUZETzBGQlF6TkVMR3REUVVGRkxGTkJRVk03ZVVKQlEyaENMRU5CUVVNN08wRkJSMFlzZDBKQlFVRXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTlCUVU4c1JVRkJSU3gxUWtGQmRVSXNRMEZCUXl4RFFVRkRPMEZCUXk5RkxIZENRVUZCTEVsQlFVa3NUVUZCVFN4RlFVRkZPMEZCUTFZc05FSkJRVUVzUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNN1FVRkRka0lzZVVKQlFVRTdRVUZGUkN4M1FrRkJRU3hQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNwQ0xIRkNRVUZCTzI5Q1FVVkVMR1ZCUVdVc1IwRkJSeXhYUVVGWExFTkJRVU03UVVGRGFFTXNhVUpCUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzWVVGQlF5eERRVUZETEVOQlFVTTdPMWxCUjBnc1QwRkJUeXhEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzBGQlJYWkNMRmxCUVVFc1QwRkJUeXhQUVVGUExFTkJRVU03TzBGQlEyaENMRXRCUVVFN1FVRkZZU3hKUVVGQkxGTkJRVk1zUTBGQlF5eEpRVUZWTEVWQlFVRTdPenRCUVVOb1F5eFpRVUZCTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQmQwSXNRMEZCUXpzN1FVRkhiRVFzV1VGQlFTeE5RVUZOTEZOQlFWTXNSMEZCUnl4RFFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxFbEJRVWtzUTBGQlF5eGpRVUZqTEUxQlFVVXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVFc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUXpkRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdRVUZEWkN4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdPMWxCUjBRc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCU1N4RFFVRkRMRlZCUVZVc1RVRkJRU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlJ5eExRVUZMTEVOQlFUQkNMRU5CUVVNN1dVRkRjRVVzVFVGQlRTeDNRa0ZCZDBJc1IwRkJSeXhUUVVGVExFdEJRVUVzU1VGQlFTeEpRVUZVTEZOQlFWTXNTMEZCVkN4TFFVRkJMRU5CUVVFc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeFRRVUZUTEVOQlFVVXNhMEpCUVd0Q0xFTkJRVU03V1VGREwwUXNTVUZCU1N4RFFVRkRMSGRDUVVGM1FpeEZRVUZGTzBGQlF6ZENMR2RDUVVGQkxFOUJRVThzU1VGQlNTeERRVUZETzBGQlEySXNZVUZCUVR0WlFVVkVMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NkMEpCUVhkQ0xFdEJRVUVzU1VGQlFTeEpRVUY0UWl4M1FrRkJkMElzUzBGQmVFSXNTMEZCUVN4RFFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzZDBKQlFYZENMRU5CUVVVc1ZVRkJWU3hEUVVGRE8xbEJRemxFTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUlVGQlJUdEJRVU55UWl4blFrRkJRU3hQUVVGUExFbEJRVWtzUTBGQlF6dEJRVU5pTEdGQlFVRTdRVUZGUkN4WlFVRkJMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzYjBKQlFXOUNMRVZCUVVVc1EwRkJRenRaUVVVelF5eE5RVUZOTEZWQlFWVXNSMEZCY1VJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVVdlJTeFpRVUZCTEUxQlFVMHNZMEZCWXl4SFFVRkhMRU5CUVVFc1JVRkJRU3hIUVVGQkxIZENRVUYzUWl4RFFVRkRMR05CUVdNc1RVRkJSU3hKUVVGQkxFbEJRVUVzUlVGQlFTeExRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFVkJRVUVzUTBGQlFTeEhRVUZITEVOQlEycEZMRU5CUVVNc2JVSkJRVzFDTEV0QlFXZERPenRuUWtGRGJFUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWxCUVVzc1EwRkJReXhEUVVGRE8wRkJRMjVFTEdkQ1FVRkJMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zVFVGQlFTeHRRa0ZCYlVJc1EwRkJReXhUUVVGVExFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzUlVGQlJTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMR05CUVdNc1JVRkJSU3hUUVVGVExFdEJRVWs3TzBGQlEzaEdMRzlDUVVGQkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMjlDUVVOb1JDeEpRVUZKTEdOQlFXTXNRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRla0lzZDBKQlFVRXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkRVaXhOUVVGQkxHTkJRV01zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4TlFVRkpMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkJMRWRCUVVjc1JVRkRPVUlzUTBGQlFTeEZRVUZCTEVkQlFVRXNZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzUjBGQlJ5eEZRVU01UWl4alFVRmpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGRGVrUXNRMEZCUXp0QlFVTklMSEZDUVVGQk8wRkJSVVFzYjBKQlFVRXNUMEZCVHl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNTVUZCU1N4RlFVRkZPM2RDUVVOMFF5eE5RVUZOTzBGQlEwNHNkMEpCUVVFc1RVRkJUU3hGUVVGRkxFTkJRVUVzUlVGQlFTeEhRVUZCTEdOQlFXTXNRMEZCUXl4TlFVRk5MRzFEUVVGSkxFZEJRVWM3UVVGRGNrTXNjVUpCUVVFc1EwRkJReXhEUVVGRE8wRkJRMHdzYVVKQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVWSUxFOUJRVThzUlVGQlJTeFRRVUZUTEVWQlFVVXNRMEZCUXp0QlFVTjJRaXhoUVVGRExFTkJRMFlzUTBGQlF6czdRVUZIUml4WlFVRkJMR2RDUVVGblFpeExRVUZvUWl4SlFVRkJMRWxCUVVFc1owSkJRV2RDTEV0QlFXaENMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEdkQ1FVRm5RaXhEUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEdWQlFXVXNSVUZCUlN4VlFVRlZMRXRCUVVrN1FVRkRlRVFzWjBKQlFVRXNUVUZCVFN4WFFVRlhMRWRCUVVjc1pVRkJaU3hEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJUdHZRa0ZEYUVJc1QwRkJUenRCUVVOU0xHbENRVUZCTzBGQlJVUXNaMEpCUVVFc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZOQlFWTXNTMEZCU1RzN1FVRkRhRU1zYjBKQlFVRXNUVUZCVFN4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZET3p0QlFVZHVReXh2UWtGQlFTeE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dHZRa0ZEZGtNc1NVRkJTU3hsUVVGbExFTkJRVU1zVlVGQlZTeEZRVUZGTzBGQlF6bENMSGRDUVVGQkxGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlExb3NRMEZCUVN4RlFVRkJMRWRCUVVFc1pVRkJaU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEUxQlFVRXNTVUZCUVN4SlFVRkJMRVZCUVVFc1MwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVkQlFVa3NSMEZCUnl4RlFVTnVReXhOUVVGQkxHVkJRV1VzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4TlFVRkJMRWxCUVVFc1NVRkJRU3hGUVVGQkxFdEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4SFFVRkpMRWRCUVVjc1JVRkRia01zUTBGQlFTeEZRVUZCTEVkQlFVRXNaVUZCWlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzUjBGQlJ5eERRVU53UXl4RFFVRkRPMEZCUTBnc2NVSkJRVUU3UVVGQlRTeDVRa0ZCUVR0M1FrRkRUQ3hWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5vUXl4eFFrRkJRVHR2UWtGRlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4bFFVRmxMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUjBGQlJ5eFZRVUZWTEVOQlFVTXNaVUZCWlN4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dEJRVVV2Uml4dlFrRkJRU3hOUVVGTkxFOUJRVThzUjBGQmQwTTdkMEpCUTI1RUxGTkJRVk1zUlVGQlJTeGxRVUZsTEVOQlFVTXNVMEZCVXp0M1FrRkRjRU1zVTBGQlV5eEZRVUZGTEdWQlFXVXNRMEZCUXl4VFFVRlRPM2RDUVVOd1F5eFpRVUZaTEVWQlFVVXNaVUZCWlN4RFFVRkRMRmxCUVZrN2QwSkJRekZETEZOQlFWTXNSVUZCUlN4bFFVRmxMRU5CUVVNc1ZVRkJWVHQzUWtGRGNrTXNWVUZCVlR0eFFrRkRXQ3hEUVVGRE96dEJRVWRHTEc5Q1FVRkJMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NRMEZCUVN4RlFVRkJMRWRCUVVFc1pVRkJaU3hEUVVGRExHTkJRV01zVFVGQlJTeEpRVUZCTEVsQlFVRXNSVUZCUVN4TFFVRkJMRXRCUVVFc1EwRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUVN4SFFVRkhMRU5CUVVNc1EwRkJReXhqUVVGakxFdEJRVWs3ZDBKQlEzSkdMRTFCUVUwc1MwRkJTeXhIUVVGSExHTkJRV01zUzBGQlpDeEpRVUZCTEVsQlFVRXNZMEZCWXl4MVFrRkJaQ3hqUVVGakxFTkJRVWNzWTBGQll5eERRVUZETEVOQlFVTTdkMEpCUlM5RExFbEJRVWtzUzBGQlN5eEpRVUZKTEVsQlFVa3NSVUZCUlRzMFFrRkRha0lzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZEWWl4RFFVRkJMSFZEUVVGQkxFVkJRVEJETEZWQlFWVXNRMEZCY1VNc2EwTkJRVUVzUlVGQlFTeGpRVUZqTEVOQlFXZENMR05CUVVFc1EwRkJRU3hEUVVONFNDeERRVUZETzBGQlEwZ3NlVUpCUVVFN1FVRkZSQ3gzUWtGQlFTeFBRVUZQTEV0QlFVc3NRMEZCUXp0QlFVTm1MSEZDUVVGRExFTkJRVU1zUTBGQlF6czdRVUZIU0N4dlFrRkJRU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTVUZCU1N4TFFVRkpPenQzUWtGRGNrSXNUVUZCVFN4TFFVRkxMRWRCUVRCQ0xFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVWtzU1VGQlFTeEpRVUZCTEVWQlFVRXNTMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlNTeERRVUZETzBGQlJUbEVMSGRDUVVGQkxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVVXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dEJRVU12UlN4M1FrRkJRU3hKUVVGSkxFMUJRVTBzUlVGQlJUdEJRVU5XTERSQ1FVRkJMRXRCUVVzc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzBGQlEzWkNMSGxDUVVGQk8wRkJSVVFzZDBKQlFVRXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU14UWl4eFFrRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeHBRa0ZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hoUVVGRExFTkJRVU1zUTBGQlF6czdRVUZIU0N4WlFVRkJMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1EwRkJRenRaUVVNdlFpeFBRVUZQTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRkZka0lzV1VGQlFTeFBRVUZQTEU5QlFVOHNRMEZCUXpzN1FVRkRhRUlzUzBGQlFUdEJRVVZQTEVsQlFVRXNXVUZCV1N4RFFVTnNRaXhKUVVGdlFpeEZRVU53UWl4TFFVRnhRaXhGUVVOeVFpeFBRVUUyUXl4RlFVTTNReXgxUWtGQmMwUXNSVUZCUVR0QlFVVjBSQ3hSUVVGQkxFMUJRVTBzVlVGQlZTeEhRVUZITEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVVc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXp0UlFVVjZSaXhKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFVVTdRVUZEZUVJc1dVRkJRU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEhkQ1FVRjNRaXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlEzaEVMRmxCUVVFc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRha01zVFVGQlRTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExGZEJRVmNzUTBGQlF6dEJRVU4yUkN4VFFVRkJPMEZCUlVRc1VVRkJRU3hQUVVGUExGVkJRVlVzUTBGQlF6dExRVU51UWp0SlFVVlBMSEZDUVVGeFFpeERRVU16UWl4WFFVRXlRaXhGUVVNelFpeE5RVWRETEVWQlFVRTdRVUZGUkN4UlFVRkJMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUld4RExFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NaME5CUVdkRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVWMlJTeFJRVUZCTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc2NVSkJRWEZDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkZiRVFzVVVGQlFTeFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJSVEZDTEVsQlFVa3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEZRVUZGTzBGQlF6TkNMRmxCUVVFc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTd3lRa0ZCTWtJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU42UkN4WlFVRkJMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGNFTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1YwRkJWeXhEUVVGRE8wRkJRekZFTEZOQlFVRTdRVUZGUkN4UlFVRkJMRTlCUVU4c1VVRkJVU3hEUVVGRE8wdEJRMnBDTzBsQlJVOHNjMEpCUVhOQ0xFTkJRelZDTEZkQlFUSkNMRVZCUXpOQ0xFMUJTVU1zUlVGQlFUdFJRVVZFTEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXp0QlFVVjRReXhSUVVGQkxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NhVU5CUVdsRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRk9VVXNVVUZCUVN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJSV3hFTEZGQlFVRXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVV4UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlR0QlFVTXpRaXhaUVVGQkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NNa0pCUVRKQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZEZWtRc1dVRkJRU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzQkRMRTFCUVUwc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExGZEJRVmNzUTBGQlF6dEJRVU14UkN4VFFVRkJPMEZCUlVRc1VVRkJRU3hQUVVGUExGRkJRVkVzUTBGQlF6dExRVU5xUWpzN1FVRjBWM05DTEhsQ1FVRmpMRU5CUVVFc1kwRkJRU3hIUVVGSExHbENRVUZwUWpzN096c2lmUT09XG4iLCJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBHTFRGLCBHTFRGTG9hZGVyUGx1Z2luLCBHTFRGUGFyc2VyIH0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvR0xURkxvYWRlci5qcyc7XG5pbXBvcnQge1xuICBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luLFxuICBWUk1GaXJzdFBlcnNvbkxvYWRlclBsdWdpbixcbiAgVlJNSHVtYW5vaWQsXG4gIFZSTUh1bWFub2lkTG9hZGVyUGx1Z2luLFxuICBWUk1Mb29rQXRMb2FkZXJQbHVnaW4sXG4gIFZSTU1ldGEsXG4gIFZSTU1ldGFMb2FkZXJQbHVnaW4sXG59IGZyb20gJ0BwaXhpdi90aHJlZS12cm0tY29yZSc7XG5pbXBvcnQgeyBNVG9vbk1hdGVyaWFsTG9hZGVyUGx1Z2luIH0gZnJvbSAnQHBpeGl2L3RocmVlLXZybS1tYXRlcmlhbHMtbXRvb24nO1xuaW1wb3J0IHsgVlJNTWF0ZXJpYWxzSERSRW1pc3NpdmVNdWx0aXBsaWVyTG9hZGVyUGx1Z2luIH0gZnJvbSAnQHBpeGl2L3RocmVlLXZybS1tYXRlcmlhbHMtaGRyLWVtaXNzaXZlLW11bHRpcGxpZXInO1xuaW1wb3J0IHsgVlJNTWF0ZXJpYWxzVjBDb21wYXRQbHVnaW4gfSBmcm9tICdAcGl4aXYvdGhyZWUtdnJtLW1hdGVyaWFscy12MGNvbXBhdCc7XG5pbXBvcnQgeyBWUk1Ob2RlQ29uc3RyYWludExvYWRlclBsdWdpbiB9IGZyb20gJ0BwaXhpdi90aHJlZS12cm0tbm9kZS1jb25zdHJhaW50JztcbmltcG9ydCB7IFZSTVNwcmluZ0JvbmVMb2FkZXJQbHVnaW4gfSBmcm9tICdAcGl4aXYvdGhyZWUtdnJtLXNwcmluZ2JvbmUnO1xuaW1wb3J0IHsgVlJNTG9hZGVyUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vVlJNTG9hZGVyUGx1Z2luT3B0aW9ucyc7XG5pbXBvcnQgeyBWUk0gfSBmcm9tICcuL1ZSTSc7XG5cbmV4cG9ydCBjbGFzcyBWUk1Mb2FkZXJQbHVnaW4gaW1wbGVtZW50cyBHTFRGTG9hZGVyUGx1Z2luIHtcbiAgcHVibGljIHJlYWRvbmx5IHBhcnNlcjogR0xURlBhcnNlcjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZXhwcmVzc2lvblBsdWdpbjogVlJNRXhwcmVzc2lvbkxvYWRlclBsdWdpbjtcbiAgcHVibGljIHJlYWRvbmx5IGZpcnN0UGVyc29uUGx1Z2luOiBWUk1GaXJzdFBlcnNvbkxvYWRlclBsdWdpbjtcbiAgcHVibGljIHJlYWRvbmx5IGh1bWFub2lkUGx1Z2luOiBWUk1IdW1hbm9pZExvYWRlclBsdWdpbjtcbiAgcHVibGljIHJlYWRvbmx5IGxvb2tBdFBsdWdpbjogVlJNTG9va0F0TG9hZGVyUGx1Z2luO1xuICBwdWJsaWMgcmVhZG9ubHkgbWV0YVBsdWdpbjogVlJNTWV0YUxvYWRlclBsdWdpbjtcbiAgcHVibGljIHJlYWRvbmx5IG10b29uTWF0ZXJpYWxQbHVnaW46IE1Ub29uTWF0ZXJpYWxMb2FkZXJQbHVnaW47XG4gIHB1YmxpYyByZWFkb25seSBtYXRlcmlhbHNIRFJFbWlzc2l2ZU11bHRpcGxpZXJQbHVnaW46IFZSTU1hdGVyaWFsc0hEUkVtaXNzaXZlTXVsdGlwbGllckxvYWRlclBsdWdpbjtcbiAgcHVibGljIHJlYWRvbmx5IG1hdGVyaWFsc1YwQ29tcGF0UGx1Z2luOiBWUk1NYXRlcmlhbHNWMENvbXBhdFBsdWdpbjtcbiAgcHVibGljIHJlYWRvbmx5IHNwcmluZ0JvbmVQbHVnaW46IFZSTVNwcmluZ0JvbmVMb2FkZXJQbHVnaW47XG4gIHB1YmxpYyByZWFkb25seSBub2RlQ29uc3RyYWludFBsdWdpbjogVlJNTm9kZUNvbnN0cmFpbnRMb2FkZXJQbHVnaW47XG5cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdWUk1Mb2FkZXJQbHVnaW4nO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcnNlcjogR0xURlBhcnNlciwgb3B0aW9ucz86IFZSTUxvYWRlclBsdWdpbk9wdGlvbnMpIHtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcblxuICAgIGNvbnN0IGhlbHBlclJvb3QgPSBvcHRpb25zPy5oZWxwZXJSb290O1xuICAgIGNvbnN0IGF1dG9VcGRhdGVIdW1hbkJvbmVzID0gb3B0aW9ucz8uYXV0b1VwZGF0ZUh1bWFuQm9uZXM7XG5cbiAgICB0aGlzLmV4cHJlc3Npb25QbHVnaW4gPSBvcHRpb25zPy5leHByZXNzaW9uUGx1Z2luID8/IG5ldyBWUk1FeHByZXNzaW9uTG9hZGVyUGx1Z2luKHBhcnNlcik7XG4gICAgdGhpcy5maXJzdFBlcnNvblBsdWdpbiA9IG9wdGlvbnM/LmZpcnN0UGVyc29uUGx1Z2luID8/IG5ldyBWUk1GaXJzdFBlcnNvbkxvYWRlclBsdWdpbihwYXJzZXIpO1xuICAgIHRoaXMuaHVtYW5vaWRQbHVnaW4gPVxuICAgICAgb3B0aW9ucz8uaHVtYW5vaWRQbHVnaW4gPz9cbiAgICAgIG5ldyBWUk1IdW1hbm9pZExvYWRlclBsdWdpbihwYXJzZXIsIHtcbiAgICAgICAgaGVscGVyUm9vdCxcbiAgICAgICAgYXV0b1VwZGF0ZUh1bWFuQm9uZXMsXG4gICAgICB9KTtcbiAgICB0aGlzLmxvb2tBdFBsdWdpbiA9IG9wdGlvbnM/Lmxvb2tBdFBsdWdpbiA/PyBuZXcgVlJNTG9va0F0TG9hZGVyUGx1Z2luKHBhcnNlciwgeyBoZWxwZXJSb290IH0pO1xuICAgIHRoaXMubWV0YVBsdWdpbiA9IG9wdGlvbnM/Lm1ldGFQbHVnaW4gPz8gbmV3IFZSTU1ldGFMb2FkZXJQbHVnaW4ocGFyc2VyKTtcbiAgICB0aGlzLm10b29uTWF0ZXJpYWxQbHVnaW4gPSBvcHRpb25zPy5tdG9vbk1hdGVyaWFsUGx1Z2luID8/IG5ldyBNVG9vbk1hdGVyaWFsTG9hZGVyUGx1Z2luKHBhcnNlcik7XG4gICAgdGhpcy5tYXRlcmlhbHNIRFJFbWlzc2l2ZU11bHRpcGxpZXJQbHVnaW4gPVxuICAgICAgb3B0aW9ucz8ubWF0ZXJpYWxzSERSRW1pc3NpdmVNdWx0aXBsaWVyUGx1Z2luID8/IG5ldyBWUk1NYXRlcmlhbHNIRFJFbWlzc2l2ZU11bHRpcGxpZXJMb2FkZXJQbHVnaW4ocGFyc2VyKTtcbiAgICB0aGlzLm1hdGVyaWFsc1YwQ29tcGF0UGx1Z2luID0gb3B0aW9ucz8ubWF0ZXJpYWxzVjBDb21wYXRQbHVnaW4gPz8gbmV3IFZSTU1hdGVyaWFsc1YwQ29tcGF0UGx1Z2luKHBhcnNlcik7XG5cbiAgICB0aGlzLnNwcmluZ0JvbmVQbHVnaW4gPVxuICAgICAgb3B0aW9ucz8uc3ByaW5nQm9uZVBsdWdpbiA/P1xuICAgICAgbmV3IFZSTVNwcmluZ0JvbmVMb2FkZXJQbHVnaW4ocGFyc2VyLCB7XG4gICAgICAgIGNvbGxpZGVySGVscGVyUm9vdDogaGVscGVyUm9vdCxcbiAgICAgICAgam9pbnRIZWxwZXJSb290OiBoZWxwZXJSb290LFxuICAgICAgfSk7XG5cbiAgICB0aGlzLm5vZGVDb25zdHJhaW50UGx1Z2luID1cbiAgICAgIG9wdGlvbnM/Lm5vZGVDb25zdHJhaW50UGx1Z2luID8/IG5ldyBWUk1Ob2RlQ29uc3RyYWludExvYWRlclBsdWdpbihwYXJzZXIsIHsgaGVscGVyUm9vdCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBiZWZvcmVSb290KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWF0ZXJpYWxzVjBDb21wYXRQbHVnaW4uYmVmb3JlUm9vdCgpO1xuICAgIGF3YWl0IHRoaXMubXRvb25NYXRlcmlhbFBsdWdpbi5iZWZvcmVSb290KCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9hZE1lc2gobWVzaEluZGV4OiBudW1iZXIpOiBQcm9taXNlPFRIUkVFLkdyb3VwIHwgVEhSRUUuTWVzaCB8IFRIUkVFLlNraW5uZWRNZXNoPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubXRvb25NYXRlcmlhbFBsdWdpbi5sb2FkTWVzaChtZXNoSW5kZXgpO1xuICB9XG5cbiAgcHVibGljIGdldE1hdGVyaWFsVHlwZShtYXRlcmlhbEluZGV4OiBudW1iZXIpOiB0eXBlb2YgVEhSRUUuTWF0ZXJpYWwgfCBudWxsIHtcbiAgICBjb25zdCBtdG9vblR5cGUgPSB0aGlzLm10b29uTWF0ZXJpYWxQbHVnaW4uZ2V0TWF0ZXJpYWxUeXBlKG1hdGVyaWFsSW5kZXgpO1xuICAgIGlmIChtdG9vblR5cGUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG10b29uVHlwZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBleHRlbmRNYXRlcmlhbFBhcmFtcyhtYXRlcmlhbEluZGV4OiBudW1iZXIsIG1hdGVyaWFsUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBhd2FpdCB0aGlzLm1hdGVyaWFsc0hEUkVtaXNzaXZlTXVsdGlwbGllclBsdWdpbi5leHRlbmRNYXRlcmlhbFBhcmFtcyhtYXRlcmlhbEluZGV4LCBtYXRlcmlhbFBhcmFtcyk7XG4gICAgYXdhaXQgdGhpcy5tdG9vbk1hdGVyaWFsUGx1Z2luLmV4dGVuZE1hdGVyaWFsUGFyYW1zKG1hdGVyaWFsSW5kZXgsIG1hdGVyaWFsUGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZnRlclJvb3QoZ2x0ZjogR0xURik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWV0YVBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgYXdhaXQgdGhpcy5odW1hbm9pZFBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgYXdhaXQgdGhpcy5leHByZXNzaW9uUGx1Z2luLmFmdGVyUm9vdChnbHRmKTtcbiAgICBhd2FpdCB0aGlzLmxvb2tBdFBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgYXdhaXQgdGhpcy5maXJzdFBlcnNvblBsdWdpbi5hZnRlclJvb3QoZ2x0Zik7XG4gICAgYXdhaXQgdGhpcy5zcHJpbmdCb25lUGx1Z2luLmFmdGVyUm9vdChnbHRmKTtcbiAgICBhd2FpdCB0aGlzLm5vZGVDb25zdHJhaW50UGx1Z2luLmFmdGVyUm9vdChnbHRmKTtcbiAgICBhd2FpdCB0aGlzLm10b29uTWF0ZXJpYWxQbHVnaW4uYWZ0ZXJSb290KGdsdGYpO1xuXG4gICAgY29uc3QgbWV0YSA9IGdsdGYudXNlckRhdGEudnJtTWV0YSBhcyBWUk1NZXRhIHwgbnVsbDtcbiAgICBjb25zdCBodW1hbm9pZCA9IGdsdGYudXNlckRhdGEudnJtSHVtYW5vaWQgYXMgVlJNSHVtYW5vaWQgfCBudWxsO1xuXG4gICAgLy8gbWV0YSBhbmQgaHVtYW5vaWQgYXJlIHJlcXVpcmVkIHRvIGJlIGEgVlJNLlxuICAgIC8vIERvbid0IGNyZWF0ZSBWUk0gaWYgdGhleSBhcmUgbnVsbFxuICAgIGlmIChtZXRhICYmIGh1bWFub2lkKSB7XG4gICAgICBjb25zdCB2cm0gPSBuZXcgVlJNKHtcbiAgICAgICAgc2NlbmU6IGdsdGYuc2NlbmUsXG4gICAgICAgIGV4cHJlc3Npb25NYW5hZ2VyOiBnbHRmLnVzZXJEYXRhLnZybUV4cHJlc3Npb25NYW5hZ2VyLFxuICAgICAgICBmaXJzdFBlcnNvbjogZ2x0Zi51c2VyRGF0YS52cm1GaXJzdFBlcnNvbixcbiAgICAgICAgaHVtYW5vaWQsXG4gICAgICAgIGxvb2tBdDogZ2x0Zi51c2VyRGF0YS52cm1Mb29rQXQsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIG1hdGVyaWFsczogZ2x0Zi51c2VyRGF0YS52cm1NVG9vbk1hdGVyaWFscyxcbiAgICAgICAgc3ByaW5nQm9uZU1hbmFnZXI6IGdsdGYudXNlckRhdGEudnJtU3ByaW5nQm9uZU1hbmFnZXIsXG4gICAgICAgIG5vZGVDb25zdHJhaW50TWFuYWdlcjogZ2x0Zi51c2VyRGF0YS52cm1Ob2RlQ29uc3RyYWludE1hbmFnZXIsXG4gICAgICB9KTtcblxuICAgICAgZ2x0Zi51c2VyRGF0YS52cm0gPSB2cm07XG4gICAgfVxuICB9XG59XG4iLCIvLyBTZWU6IGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jbWFudWFsL2VuL2ludHJvZHVjdGlvbi9Ib3ctdG8tZGlzcG9zZS1vZi1vYmplY3RzXG5cbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZnVuY3Rpb24gZGlzcG9zZU1hdGVyaWFsKG1hdGVyaWFsOiBUSFJFRS5NYXRlcmlhbCk6IHZvaWQge1xuICBPYmplY3QudmFsdWVzKG1hdGVyaWFsKS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgIGlmICh2YWx1ZT8uaXNUZXh0dXJlKSB7XG4gICAgICBjb25zdCB0ZXh0dXJlID0gdmFsdWUgYXMgVEhSRUUuVGV4dHVyZTtcbiAgICAgIHRleHR1cmUuZGlzcG9zZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKChtYXRlcmlhbCBhcyBhbnkpLmlzU2hhZGVyTWF0ZXJpYWwpIHtcbiAgICBjb25zdCB1bmlmb3JtczogeyBbdW5pZm9ybTogc3RyaW5nXTogVEhSRUUuSVVuaWZvcm08YW55PiB9ID0gKG1hdGVyaWFsIGFzIGFueSkudW5pZm9ybXM7XG4gICAgaWYgKHVuaWZvcm1zKSB7XG4gICAgICBPYmplY3QudmFsdWVzKHVuaWZvcm1zKS5mb3JFYWNoKCh1bmlmb3JtKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdW5pZm9ybS52YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlPy5pc1RleHR1cmUpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0dXJlID0gdmFsdWUgYXMgVEhSRUUuVGV4dHVyZTtcbiAgICAgICAgICB0ZXh0dXJlLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbWF0ZXJpYWwuZGlzcG9zZSgpO1xufVxuXG5mdW5jdGlvbiBkaXNwb3NlKG9iamVjdDNEOiBUSFJFRS5PYmplY3QzRCk6IHZvaWQge1xuICBjb25zdCBnZW9tZXRyeTogVEhSRUUuQnVmZmVyR2VvbWV0cnkgfCB1bmRlZmluZWQgPSAob2JqZWN0M0QgYXMgYW55KS5nZW9tZXRyeTtcbiAgaWYgKGdlb21ldHJ5KSB7XG4gICAgZ2VvbWV0cnkuZGlzcG9zZSgpO1xuICB9XG5cbiAgY29uc3Qgc2tlbGV0b246IFRIUkVFLlNrZWxldG9uIHwgdW5kZWZpbmVkID0gKG9iamVjdDNEIGFzIGFueSkuc2tlbGV0b247XG4gIGlmIChza2VsZXRvbikge1xuICAgIHNrZWxldG9uLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIGNvbnN0IG1hdGVyaWFsOiBUSFJFRS5NYXRlcmlhbCB8IFRIUkVFLk1hdGVyaWFsW10gfCB1bmRlZmluZWQgPSAob2JqZWN0M0QgYXMgYW55KS5tYXRlcmlhbDtcbiAgaWYgKG1hdGVyaWFsKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobWF0ZXJpYWwpKSB7XG4gICAgICBtYXRlcmlhbC5mb3JFYWNoKChtYXRlcmlhbDogVEhSRUUuTWF0ZXJpYWwpID0+IGRpc3Bvc2VNYXRlcmlhbChtYXRlcmlhbCkpO1xuICAgIH0gZWxzZSBpZiAobWF0ZXJpYWwpIHtcbiAgICAgIGRpc3Bvc2VNYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWVwRGlzcG9zZShvYmplY3QzRDogVEhSRUUuT2JqZWN0M0QpOiB2b2lkIHtcbiAgb2JqZWN0M0QudHJhdmVyc2UoZGlzcG9zZSk7XG59XG4iLCJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbi8qKlxuICogVHJhdmVyc2UgZ2l2ZW4gb2JqZWN0IGFuZCByZW1vdmUgdW5uZWNlc3NhcmlseSBib3VuZCBqb2ludHMgZnJvbSBldmVyeSBgVEhSRUUuU2tpbm5lZE1lc2hgLlxuICogU29tZSBlbnZpcm9ubWVudHMgbGlrZSBtb2JpbGUgZGV2aWNlcyBoYXZlIGEgbG93ZXIgbGltaXQgb2YgYm9uZXMgYW5kIG1pZ2h0IGJlIHVuYWJsZSB0byBwZXJmb3JtIG1lc2ggc2tpbm5pbmcsIHRoaXMgZnVuY3Rpb24gbWlnaHQgcmVzb2x2ZSBzdWNoIGFuIGlzc3VlLlxuICogQWxzbyB0aGlzIGZ1bmN0aW9uIG1pZ2h0IGdyZWF0bHkgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgbWVzaCBza2lubmluZy5cbiAqXG4gKiBAcGFyYW0gcm9vdCBSb290IG9iamVjdCB0aGF0IHdpbGwgYmUgdHJhdmVyc2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVbm5lY2Vzc2FyeUpvaW50cyhyb290OiBUSFJFRS5PYmplY3QzRCk6IHZvaWQge1xuICAvLyBzb21lIG1lc2hlcyBtaWdodCBzaGFyZSBhIHNhbWUgc2tpbkluZGV4IGF0dHJpYnV0ZSBhbmQgdGhpcyBtYXAgcHJldmVudHMgdG8gY29udmVydCB0aGUgYXR0cmlidXRlIHR3aWNlXG4gIGNvbnN0IHNrZWxldG9uTGlzdDogTWFwPFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSwgVEhSRUUuU2tlbGV0b24+ID0gbmV3IE1hcCgpO1xuXG4gIC8vIFRyYXZlcnNlIGFuIGVudGlyZSB0cmVlXG4gIHJvb3QudHJhdmVyc2UoKG9iaikgPT4ge1xuICAgIGlmIChvYmoudHlwZSAhPT0gJ1NraW5uZWRNZXNoJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lc2ggPSBvYmogYXMgVEhSRUUuU2tpbm5lZE1lc2g7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBtZXNoLmdlb21ldHJ5O1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnc2tpbkluZGV4JykgYXMgVEhSRUUuQnVmZmVyQXR0cmlidXRlO1xuXG4gICAgLy8gbG9vayBmb3IgZXhpc3Rpbmcgc2tlbGV0b25cbiAgICBsZXQgc2tlbGV0b24gPSBza2VsZXRvbkxpc3QuZ2V0KGF0dHJpYnV0ZSk7XG5cbiAgICBpZiAoIXNrZWxldG9uKSB7XG4gICAgICAvLyBnZW5lcmF0ZSByZWR1Y2VkIGJvbmUgbGlzdFxuICAgICAgY29uc3QgYm9uZXM6IFRIUkVFLkJvbmVbXSA9IFtdOyAvLyBuZXcgbGlzdCBvZiBib25lXG4gICAgICBjb25zdCBib25lSW52ZXJzZXM6IFRIUkVFLk1hdHJpeDRbXSA9IFtdOyAvLyBuZXcgbGlzdCBvZiBib25lSW52ZXJzZVxuICAgICAgY29uc3QgYm9uZUluZGV4TWFwOiB7IFtpbmRleDogbnVtYmVyXTogbnVtYmVyIH0gPSB7fTsgLy8gbWFwIG9mIG9sZCBib25lIGluZGV4IHZzLiBuZXcgYm9uZSBpbmRleFxuXG4gICAgICAvLyBjcmVhdGUgYSBuZXcgYm9uZSBtYXBcbiAgICAgIGNvbnN0IGFycmF5ID0gYXR0cmlidXRlLmFycmF5O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBpbmRleCA9IGFycmF5W2ldO1xuXG4gICAgICAgIC8vIG5ldyBza2luSW5kZXggYnVmZmVyXG4gICAgICAgIGlmIChib25lSW5kZXhNYXBbaW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBib25lSW5kZXhNYXBbaW5kZXhdID0gYm9uZXMubGVuZ3RoO1xuICAgICAgICAgIGJvbmVzLnB1c2gobWVzaC5za2VsZXRvbi5ib25lc1tpbmRleF0pO1xuICAgICAgICAgIGJvbmVJbnZlcnNlcy5wdXNoKG1lc2guc2tlbGV0b24uYm9uZUludmVyc2VzW2luZGV4XSk7XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheVtpXSA9IGJvbmVJbmRleE1hcFtpbmRleF07XG4gICAgICB9XG5cbiAgICAgIC8vIHJlcGxhY2Ugd2l0aCBuZXcgaW5kaWNlc1xuICAgICAgYXR0cmlidXRlLmNvcHlBcnJheShhcnJheSk7XG4gICAgICBhdHRyaWJ1dGUubmVlZHNVcGRhdGUgPSB0cnVlO1xuXG4gICAgICAvLyByZXBsYWNlIHdpdGggbmV3IGluZGljZXNcbiAgICAgIHNrZWxldG9uID0gbmV3IFRIUkVFLlNrZWxldG9uKGJvbmVzLCBib25lSW52ZXJzZXMpO1xuICAgICAgc2tlbGV0b25MaXN0LnNldChhdHRyaWJ1dGUsIHNrZWxldG9uKTtcbiAgICB9XG5cbiAgICBtZXNoLmJpbmQoc2tlbGV0b24sIG5ldyBUSFJFRS5NYXRyaXg0KCkpO1xuICAgIC8vICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXiB0cmFuc2Zvcm0gb2YgbWVzaGVzIHNob3VsZCBiZSBpZ25vcmVkXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL2dsVEYvdHJlZS9tYXN0ZXIvc3BlY2lmaWNhdGlvbi8yLjAjc2tpbnNcbiAgfSk7XG59XG4iLCJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBCdWZmZXJBdHRyaWJ1dGUgfSBmcm9tICd0aHJlZSc7XG5cbi8qKlxuICogVHJhdmVyc2UgZ2l2ZW4gb2JqZWN0IGFuZCByZW1vdmUgdW5uZWNlc3NhcnkgdmVydGljZXMgZnJvbSBldmVyeSBCdWZmZXJHZW9tZXRyaWVzLlxuICogVGhpcyBvbmx5IHByb2Nlc3NlcyBidWZmZXIgZ2VvbWV0cmllcyB3aXRoIGluZGV4IGJ1ZmZlci5cbiAqXG4gKiBUaHJlZS5qcyBjcmVhdGVzIG1vcnBoIHRleHR1cmVzIGZvciBlYWNoIGdlb21ldHJpZXMgYW5kIGl0IHNvbWV0aW1lcyBjb25zdW1lcyB1bm5lY2Vzc2FyeSBhbW91bnQgb2YgVlJBTSBmb3IgY2VydGFpbiBtb2RlbHMuXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgb3B0aW1pemUgZ2VvbWV0cmllcyB0byByZWR1Y2UgdGhlIHNpemUgb2YgbW9ycGggdGV4dHVyZS5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMjMwOTVcbiAqXG4gKiBAcGFyYW0gcm9vdCBSb290IG9iamVjdCB0aGF0IHdpbGwgYmUgdHJhdmVyc2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVbm5lY2Vzc2FyeVZlcnRpY2VzKHJvb3Q6IFRIUkVFLk9iamVjdDNEKTogdm9pZCB7XG4gIGNvbnN0IGdlb21ldHJ5TWFwID0gbmV3IE1hcDxUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVEhSRUUuQnVmZmVyR2VvbWV0cnk+KCk7XG5cbiAgLy8gVHJhdmVyc2UgYW4gZW50aXJlIHRyZWVcbiAgcm9vdC50cmF2ZXJzZSgob2JqKSA9PiB7XG4gICAgaWYgKCEob2JqIGFzIGFueSkuaXNNZXNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVzaCA9IG9iaiBhcyBUSFJFRS5NZXNoO1xuICAgIGNvbnN0IGdlb21ldHJ5ID0gbWVzaC5nZW9tZXRyeTtcblxuICAgIC8vIGlmIHRoZSBnZW9tZXRyeSBkb2VzIG5vdCBoYXZlIGFuIGluZGV4IGJ1ZmZlciBpdCBkb2VzIG5vdCBuZWVkIHRvIHByb2Nlc3NcbiAgICBjb25zdCBvcmlnaWFubEluZGV4ID0gZ2VvbWV0cnkuaW5kZXg7XG4gICAgaWYgKG9yaWdpYW5sSW5kZXggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNraXAgYWxyZWFkeSBwcm9jZXNzZWQgZ2VvbWV0cnlcbiAgICBjb25zdCBuZXdHZW9tZXRyeUFscmVhZHlFeGlzdGVkID0gZ2VvbWV0cnlNYXAuZ2V0KGdlb21ldHJ5KTtcbiAgICBpZiAobmV3R2VvbWV0cnlBbHJlYWR5RXhpc3RlZCAhPSBudWxsKSB7XG4gICAgICBtZXNoLmdlb21ldHJ5ID0gbmV3R2VvbWV0cnlBbHJlYWR5RXhpc3RlZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdHZW9tZXRyeSA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpO1xuXG4gICAgLy8gY29weSB2YXJpb3VzIHByb3BlcnRpZXNcbiAgICAvLyBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvYmxvYi8xYTI0MWVmMTAwNDg3NzBkNTZlMDZkNmNkNmE2NGM3NmNjNzIwZjk1L3NyYy9jb3JlL0J1ZmZlckdlb21ldHJ5LmpzI0wxMDExXG4gICAgbmV3R2VvbWV0cnkubmFtZSA9IGdlb21ldHJ5Lm5hbWU7XG5cbiAgICBuZXdHZW9tZXRyeS5tb3JwaFRhcmdldHNSZWxhdGl2ZSA9IGdlb21ldHJ5Lm1vcnBoVGFyZ2V0c1JlbGF0aXZlO1xuXG4gICAgZ2VvbWV0cnkuZ3JvdXBzLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgICBuZXdHZW9tZXRyeS5hZGRHcm91cChncm91cC5zdGFydCwgZ3JvdXAuY291bnQsIGdyb3VwLm1hdGVyaWFsSW5kZXgpO1xuICAgIH0pO1xuXG4gICAgbmV3R2VvbWV0cnkuYm91bmRpbmdCb3ggPSBnZW9tZXRyeS5ib3VuZGluZ0JveD8uY2xvbmUoKSA/PyBudWxsO1xuICAgIG5ld0dlb21ldHJ5LmJvdW5kaW5nU3BoZXJlID0gZ2VvbWV0cnkuYm91bmRpbmdTcGhlcmU/LmNsb25lKCkgPz8gbnVsbDtcblxuICAgIG5ld0dlb21ldHJ5LnNldERyYXdSYW5nZShnZW9tZXRyeS5kcmF3UmFuZ2Uuc3RhcnQsIGdlb21ldHJ5LmRyYXdSYW5nZS5jb3VudCk7XG5cbiAgICBuZXdHZW9tZXRyeS51c2VyRGF0YSA9IGdlb21ldHJ5LnVzZXJEYXRhO1xuXG4gICAgLy8gc2V0IHRvIGdlb21ldHJ5TWFwXG4gICAgZ2VvbWV0cnlNYXAuc2V0KGdlb21ldHJ5LCBuZXdHZW9tZXRyeSk7XG5cbiAgICAvKiogZnJvbSBvcmlnaW5hbCBpbmRleCB0byBuZXcgaW5kZXggKi9cbiAgICBjb25zdCBvcmlnaW5hbEluZGV4TmV3SW5kZXhNYXA6IG51bWJlcltdID0gW107XG5cbiAgICAvKiogZnJvbSBuZXcgaW5kZXggdG8gb3JpZ2luYWwgaW5kZXggKi9cbiAgICBjb25zdCBuZXdJbmRleE9yaWdpbmFsSW5kZXhNYXA6IG51bWJlcltdID0gW107XG5cbiAgICAvLyByZW9yZ2FuaXplIGluZGljZXNcbiAgICB7XG4gICAgICBjb25zdCBvcmlnaW5hbEluZGV4QXJyYXkgPSBvcmlnaWFubEluZGV4LmFycmF5O1xuICAgICAgY29uc3QgbmV3SW5kZXhBcnJheSA9IG5ldyAob3JpZ2luYWxJbmRleEFycmF5LmNvbnN0cnVjdG9yIGFzIGFueSkob3JpZ2luYWxJbmRleEFycmF5Lmxlbmd0aCk7XG5cbiAgICAgIGxldCBpbmRleEhlYWQgPSAwO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yaWdpbmFsSW5kZXhBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvcmlnaW5hbEluZGV4ID0gb3JpZ2luYWxJbmRleEFycmF5W2ldO1xuXG4gICAgICAgIGxldCBuZXdJbmRleCA9IG9yaWdpbmFsSW5kZXhOZXdJbmRleE1hcFtvcmlnaW5hbEluZGV4XTtcbiAgICAgICAgaWYgKG5ld0luZGV4ID09IG51bGwpIHtcbiAgICAgICAgICBvcmlnaW5hbEluZGV4TmV3SW5kZXhNYXBbb3JpZ2luYWxJbmRleF0gPSBpbmRleEhlYWQ7XG4gICAgICAgICAgbmV3SW5kZXhPcmlnaW5hbEluZGV4TWFwW2luZGV4SGVhZF0gPSBvcmlnaW5hbEluZGV4O1xuICAgICAgICAgIG5ld0luZGV4ID0gaW5kZXhIZWFkO1xuICAgICAgICAgIGluZGV4SGVhZCsrO1xuICAgICAgICB9XG4gICAgICAgIG5ld0luZGV4QXJyYXlbaV0gPSBuZXdJbmRleDtcbiAgICAgIH1cblxuICAgICAgbmV3R2VvbWV0cnkuc2V0SW5kZXgobmV3IEJ1ZmZlckF0dHJpYnV0ZShuZXdJbmRleEFycmF5LCAxLCBmYWxzZSkpO1xuICAgIH1cblxuICAgIC8vIHJlb3JnYW5pemUgYXR0cmlidXRlc1xuICAgIE9iamVjdC5rZXlzKGdlb21ldHJ5LmF0dHJpYnV0ZXMpLmZvckVhY2goKGF0dHJpYnV0ZU5hbWUpID0+IHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsQXR0cmlidXRlID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXSBhcyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGU7XG5cbiAgICAgIGlmICgob3JpZ2luYWxBdHRyaWJ1dGUgYXMgYW55KS5pc0ludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncmVtb3ZlVW5uZWNlc3NhcnlWZXJ0aWNlczogSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUgaXMgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvcmlnaW5hbEF0dHJpYnV0ZUFycmF5ID0gb3JpZ2luYWxBdHRyaWJ1dGUuYXJyYXk7XG4gICAgICBjb25zdCB7IGl0ZW1TaXplLCBub3JtYWxpemVkIH0gPSBvcmlnaW5hbEF0dHJpYnV0ZTtcblxuICAgICAgY29uc3QgbmV3QXR0cmlidXRlQXJyYXkgPSBuZXcgKG9yaWdpbmFsQXR0cmlidXRlQXJyYXkuY29uc3RydWN0b3IgYXMgYW55KShcbiAgICAgICAgbmV3SW5kZXhPcmlnaW5hbEluZGV4TWFwLmxlbmd0aCAqIGl0ZW1TaXplLFxuICAgICAgKTtcblxuICAgICAgbmV3SW5kZXhPcmlnaW5hbEluZGV4TWFwLmZvckVhY2goKG9yaWdpbmFsSW5kZXgsIGkpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtU2l6ZTsgaisrKSB7XG4gICAgICAgICAgbmV3QXR0cmlidXRlQXJyYXlbaSAqIGl0ZW1TaXplICsgal0gPSBvcmlnaW5hbEF0dHJpYnV0ZUFycmF5W29yaWdpbmFsSW5kZXggKiBpdGVtU2l6ZSArIGpdO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbmV3R2VvbWV0cnkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIG5ldyBCdWZmZXJBdHRyaWJ1dGUobmV3QXR0cmlidXRlQXJyYXksIGl0ZW1TaXplLCBub3JtYWxpemVkKSk7XG4gICAgfSk7XG5cbiAgICAvLyByZW9yZ2FuaXplIG1vcnBoIGF0dHJpYnV0ZXNcbiAgICAvKiogVHJ1ZSBpZiBhbGwgbW9ycGhzIGFyZSB6ZXJvLiAqL1xuICAgIGxldCBpc051bGxNb3JwaCA9IHRydWU7XG5cbiAgICBPYmplY3Qua2V5cyhnZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXMpLmZvckVhY2goKGF0dHJpYnV0ZU5hbWUpID0+IHtcbiAgICAgIG5ld0dlb21ldHJ5Lm1vcnBoQXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXSA9IFtdO1xuXG4gICAgICBjb25zdCBtb3JwaHMgPSBnZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgICBmb3IgKGxldCBpTW9ycGggPSAwOyBpTW9ycGggPCBtb3JwaHMubGVuZ3RoOyBpTW9ycGgrKykge1xuICAgICAgICBjb25zdCBvcmlnaW5hbEF0dHJpYnV0ZSA9IG1vcnBoc1tpTW9ycGhdIGFzIFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTtcblxuICAgICAgICBpZiAoKG9yaWdpbmFsQXR0cmlidXRlIGFzIGFueSkuaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigncmVtb3ZlVW5uZWNlc3NhcnlWZXJ0aWNlczogSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUgaXMgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBdHRyaWJ1dGVBcnJheSA9IG9yaWdpbmFsQXR0cmlidXRlLmFycmF5O1xuICAgICAgICBjb25zdCB7IGl0ZW1TaXplLCBub3JtYWxpemVkIH0gPSBvcmlnaW5hbEF0dHJpYnV0ZTtcblxuICAgICAgICBjb25zdCBuZXdBdHRyaWJ1dGVBcnJheSA9IG5ldyAob3JpZ2luYWxBdHRyaWJ1dGVBcnJheS5jb25zdHJ1Y3RvciBhcyBhbnkpKFxuICAgICAgICAgIG5ld0luZGV4T3JpZ2luYWxJbmRleE1hcC5sZW5ndGggKiBpdGVtU2l6ZSxcbiAgICAgICAgKTtcblxuICAgICAgICBuZXdJbmRleE9yaWdpbmFsSW5kZXhNYXAuZm9yRWFjaCgob3JpZ2luYWxJbmRleCwgaSkgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbVNpemU7IGorKykge1xuICAgICAgICAgICAgbmV3QXR0cmlidXRlQXJyYXlbaSAqIGl0ZW1TaXplICsgal0gPSBvcmlnaW5hbEF0dHJpYnV0ZUFycmF5W29yaWdpbmFsSW5kZXggKiBpdGVtU2l6ZSArIGpdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXNOdWxsTW9ycGggPSBpc051bGxNb3JwaCAmJiBuZXdBdHRyaWJ1dGVBcnJheS5ldmVyeSgodjogbnVtYmVyKSA9PiB2ID09PSAwKTtcblxuICAgICAgICBuZXdHZW9tZXRyeS5tb3JwaEF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV1baU1vcnBoXSA9IG5ldyBCdWZmZXJBdHRyaWJ1dGUoXG4gICAgICAgICAgbmV3QXR0cmlidXRlQXJyYXksXG4gICAgICAgICAgaXRlbVNpemUsXG4gICAgICAgICAgbm9ybWFsaXplZCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIElmIGFsbCBtb3JwaHMgYXJlIHplcm8sIGp1c3QgZGlzY2FyZCB0aGUgbW9ycGggYXR0cmlidXRlcyB3ZSd2ZSBqdXN0IG1hZGVcbiAgICBpZiAoaXNOdWxsTW9ycGgpIHtcbiAgICAgIG5ld0dlb21ldHJ5Lm1vcnBoQXR0cmlidXRlcyA9IHt9O1xuICAgIH1cblxuICAgIG1lc2guZ2VvbWV0cnkgPSBuZXdHZW9tZXRyeTtcbiAgfSk7XG5cbiAgQXJyYXkuZnJvbShnZW9tZXRyeU1hcC5rZXlzKCkpLmZvckVhY2goKG9yaWdpbmFsR2VvbWV0cnkpID0+IHtcbiAgICBvcmlnaW5hbEdlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgfSk7XG59XG4iLCJpbXBvcnQgeyBWUk0gfSBmcm9tICcuLi9WUk0nO1xuXG4vKipcbiAqIElmIHRoZSBnaXZlbiBWUk0gaXMgVlJNMC4wLCByb3RhdGUgdGhlIGB2cm0uc2NlbmVgIGJ5IDE4MCBkZWdyZWVzIGFyb3VuZCB0aGUgWSBheGlzLlxuICpcbiAqIEBwYXJhbSB2cm0gVGhlIHRhcmdldCBWUk1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvdGF0ZVZSTTAodnJtOiBWUk0pOiB2b2lkIHtcbiAgaWYgKHZybS5tZXRhPy5tZXRhVmVyc2lvbiA9PT0gJzAnKSB7XG4gICAgdnJtLnNjZW5lLnJvdGF0aW9uLnkgPSBNYXRoLlBJO1xuICB9XG59XG4iLCJpbXBvcnQgeyBkZWVwRGlzcG9zZSB9IGZyb20gJy4vZGVlcERpc3Bvc2UnO1xuaW1wb3J0IHsgcmVtb3ZlVW5uZWNlc3NhcnlKb2ludHMgfSBmcm9tICcuL3JlbW92ZVVubmVjZXNzYXJ5Sm9pbnRzJztcbmltcG9ydCB7IHJlbW92ZVVubmVjZXNzYXJ5VmVydGljZXMgfSBmcm9tICcuL3JlbW92ZVVubmVjZXNzYXJ5VmVydGljZXMnO1xuaW1wb3J0IHsgcm90YXRlVlJNMCB9IGZyb20gJy4vcm90YXRlVlJNMCc7XG5cbmV4cG9ydCBjbGFzcyBWUk1VdGlscyB7XG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gdGhpcyBjbGFzcyBpcyBub3QgbWVhbnQgdG8gYmUgaW5zdGFudGlhdGVkXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlZXBEaXNwb3NlID0gZGVlcERpc3Bvc2U7XG4gIHB1YmxpYyBzdGF0aWMgcmVtb3ZlVW5uZWNlc3NhcnlKb2ludHMgPSByZW1vdmVVbm5lY2Vzc2FyeUpvaW50cztcbiAgcHVibGljIHN0YXRpYyByZW1vdmVVbm5lY2Vzc2FyeVZlcnRpY2VzID0gcmVtb3ZlVW5uZWNlc3NhcnlWZXJ0aWNlcztcbiAgcHVibGljIHN0YXRpYyByb3RhdGVWUk0wID0gcm90YXRlVlJNMDtcbn1cbiJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJfdjNBJDQiLCJfdjNCJDIiLCJxdWF0SW52ZXJ0Q29tcGF0IiwiX3YzQSQzIiwiX3YzQSQyIiwiX3F1YXRBJDMiLCJQT1NTSUJMRV9TUEVDX1ZFUlNJT05TJDIiLCJfcXVhdEEkMiIsIl9xdWF0QiQyIiwiX3YzQSQxIiwiX3YzQiQxIiwiX3YzQSIsIl92M0IiLCJfdjNDIiwiX3F1YXRBJDEiLCJfcXVhdEIkMSIsIl9xdWF0QyIsIl9xdWF0QSIsIl9xdWF0QiIsIlBPU1NJQkxFX1NQRUNfVkVSU0lPTlMkMSIsIlBPU1NJQkxFX1NQRUNfVkVSU0lPTlMiLCJ0cmF2ZXJzZUFuY2VzdG9yc0Zyb21Sb290Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGFBQWEsU0FBUyxLQUFLLENBQUMsUUFBUSxDQUFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLG1CQUFtQixHQUFHO0FBQzlCLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sRUFBRTtBQUM1QyxZQUFZLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNqRCxTQUFTO0FBQ1QsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssT0FBTyxFQUFFO0FBQ2pELFlBQVksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQy9CLFNBQVM7QUFDVCxhQUFhO0FBQ2IsWUFBWSxPQUFPLEdBQUcsQ0FBQztBQUN2QixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLG9CQUFvQixHQUFHO0FBQy9CLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLE9BQU8sRUFBRTtBQUM3QyxZQUFZLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNqRCxTQUFTO0FBQ1QsYUFBYSxJ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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxXQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQ3RELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFD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QU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUN0RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDdEgsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUUs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QUs7QUFDTCxJQUFJLElBQUksc0JBQXNCLEdBQUc7QUFDakMsUUFBUSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDO0FBQzFELEtBQUs7QUFDTCxJQUFJLElBQUksc0JBQXNCLENBQUMsS0FBSyxFQUFFO0FBQ3RDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQzNELEtBQUs7QUFDTCxJQUFJLElBQUksd0JBQXdCLEdBQUc7QUFDbkMsUUFBUSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDO0FBQzVELEtBQUs7QUFDTCxJQUFJLElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFO0FBQ3hDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQzdELEtBQUs7QUFDTCxJQUFJLElBQUksd0JBQXdCLEdBQUc7QUFDbkMsUUFBUSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDO0FBQzVELEtBQUs7QUFDTCxJQUFJLElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFO0FBQ3hDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQzdELEtBQUs7QUFDTCxJQUFJLElBQUksd0JBQXdCLEdBQUc7QUFDbkMsUUFBUSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDO0FBQzVELEtBQUs7QUFDTCxJQUFJLElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFO0FBQ3hDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQzdELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxpQkFBaUIsR0FBRztBQUM1QixRQUFRLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0FBQ3ZDLEtBQUs7QUFDTCxJQUFJLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFO0FBQ2pDLFFBQVEsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztBQUN4QyxRQUFRLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksYUFBYSxHQUFHO0FBQ3hCLFFBQVEsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0FBQ25DLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksYUFBYSxDQUFDLENBQUMsRUFBRTtBQUN6QixRQUFRLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLFFBQVEsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDaEMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxTQUFTLEdBQUc7QUFDcEIsUUFBUSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7QUFDL0IsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxFQUFFO0FBQ3JCLFFBQVEsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFDNUIsUUFBUSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNoQyxLQUFLO0FBQ0wsSUFBSSxJQUFJLGdCQUFnQixHQUFHO0FBQzNCLFFBQVEsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7QUFDdEMsS0FBSztBQUNMLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUU7QUFDNUIsUUFBUSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLFFBQVEsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDaEMsS0FBSztBQUNMLElBQUksSUFBSSxTQUFTLEdBQUc7QUFDcEIsUUFBUSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7QUFDL0IsS0FBSztBQUNMLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxFQUFFO0FBQ3JCLFFBQVEsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFDNUIsUUFBUSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNoQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFJLGVBQWUsR0FBRztBQUMxQixRQUFRLE9BQU8sSUFBSSxDQUFDO0FBQ3BCLEtBQUs7QUFDTCxJQUFJLFdBQVcsQ0FBQyxVQUFVLEdBQUcsRUFBRSxFQUFFO0FBQ2pDLFFBQVEsSUFBSSxFQUFFLENBQUM7QUFDZixRQUFRLEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBQ2hELFFBQVEsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEdBQUcsQ0FBQztBQUNqRCxRQUFRLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxHQUFHLENBQUM7QUFDakQsUUFBUSxJQUFJLENBQUMsOEJBQThCLEdBQUcsR0FBRyxDQUFDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztBQUN2QyxRQUFRLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0FBQ3BDLFFBQVEsSUFBSSxDQUFDLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7QUFDdEQsUUFBUSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDO0FBQ3BFLFFBQVEsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7QUFDaEM7QUFDQSxRQUFRLElBQUksVUFBVSxDQUFDLHFCQUFxQixFQUFFO0FBQzlDLFlBQVksVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDekMsU0FBUztBQUNULFFBQVEsT0FBTyxVQUFVLENBQUMscUJBQXFCLENBQUM7QUFDaEQ7QUFDQSxRQUFRLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQzlCLFFBQVEsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDakMsUUFBUSxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztBQUNuQztBQUNBO0FBQ0EsUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRTtBQUNoRCxZQUFZLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7QUFDL0QsU0FBUztBQUNUO0FBQ0E7QUFDQSxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFO0FBQ2hELFlBQVksVUFBVSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztBQUN2RSxZQUFZLFVBQVUsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7QUFDdkUsU0FBUztBQUNUO0FBQ0EsUUFBUSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0FBQ2xELFlBQVksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNO0FBQ3BDLFlBQVksS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTO0FBQ3ZDLFlBQVksS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXO0FBQ3pDLFlBQVksS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHO0FBQ2pDLFlBQVksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNO0FBQ3BDLFlBQVk7QUFDWixnQkFBZ0IsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQ3BFLGdCQUFnQixjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7QUFDOUQsZ0JBQWdCLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDMUMsZ0JBQWdCLG9CQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO0FBQ3BFLGdCQUFnQixnQkFBZ0IsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtBQUM5RSxnQkFBZ0Isb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3JELGdCQUFnQiwrQkFBK0IsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtBQUMvRSxnQkFBZ0Isa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ2xELGdCQUFnQixtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDcEQsZ0JBQWdCLDhCQUE4QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO0FBQzlFLGdCQUFnQix3QkFBd0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDeEQsZ0JBQWdCLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUNsRCxnQkFBZ0Isb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ3BELGdCQUFnQixZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDdkUsZ0JBQWdCLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDOUMsZ0JBQWdCLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO0FBQ3hFLGdCQUFnQix3QkFBd0IsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtBQUNuRixnQkFBZ0Isa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ25ELGdCQUFnQiw2QkFBNkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtBQUM3RSxnQkFBZ0Isb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ3BELGdCQUFnQiwrQkFBK0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDL0QsZ0JBQWdCLHVCQUF1QixFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUN2RCxnQkFBZ0IsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQ25FLGdCQUFnQixpQkFBaUIsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDakQsZ0JBQWdCLHNCQUFzQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO0FBQ3RFLGdCQUFnQiwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDNUQsZ0JBQWdCLHNDQUFzQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO0FBQ3RGLGdCQUFnQixrQkFBa0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDbEQsZ0JBQWdCLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO0FBQzdFLGdCQUFnQix3QkFBd0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDeEQsZ0JBQWdCLHNCQUFzQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN2RCxnQkFBZ0IsaUNBQWlDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7QUFDakYsZ0JBQWdCLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUN4RCxnQkFBZ0Isd0JBQXdCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0FBQ3hELGdCQUFnQix3QkFBd0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDeEQsYUFBYTtBQUNiLFlBQVksQ0FBQyxFQUFFLEdBQUcsVUFBVSxDQUFDLFFBQVEsTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQzFFLFNBQVMsQ0FBQyxDQUFDO0FBQ1g7QUFDQSxRQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkM7QUFDQSxRQUFRLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0FBQ3pDO0FBQ0EsUUFBUSxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTTtBQUMzQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbkcsWUFBWSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsd0JBQXdCLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFO0FBQzNHLFlBQVksSUFBSSxDQUFDLG9CQUFvQjtBQUNyQyxrQkFBa0IsQ0FBQywrQkFBK0IsRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0FBQ3JHLGtCQUFrQixFQUFFO0FBQ3BCLFlBQVksSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsNkJBQTZCLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7QUFDMUgsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwQixRQUFRLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxNQUFNLEtBQUs7QUFDM0MsWUFBWSxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMvRCxZQUFZLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuSCxpQkFBaUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNwRCxpQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ25DO0FBQ0EsWUFBWSxNQUFNLENBQUMsWUFBWSxHQUFHLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ2hFLFlBQVksTUFBTSxDQUFDLGNBQWMsR0FBRyxPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztBQUNwRTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQUksYUFBYSxHQUFHLEdBQUcsRUFBRTtBQUNyQyxnQkFBZ0IsTUFBTSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0FBQ3pJLGFBQWE7QUFDYjtBQUNBO0FBQ0EsWUFBWSxJQUFJLGFBQWEsR0FBRyxHQUFHLEVBQUU7QUFDckMsZ0JBQWdCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDN0csZ0JBQWdCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEgsYUFBYTtBQUNiLFNBQVMsQ0FBQztBQUNWLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO0FBQ2xCLFFBQVEsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7QUFDekMsUUFBUSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkMsS0FBSztBQUNMLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNqQixRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0FBQzlCLFFBQVEsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQzFDLFFBQVEsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO0FBQzlDLFFBQVEsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztBQUNoRSxRQUFRLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7QUFDOUQsUUFBUSxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7QUFDbEQsUUFBUSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0FBQzVELFFBQVEsSUFBSSxDQUFDLDJCQUEyQixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztBQUM5RSxRQUFRLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUM7QUFDcEU7QUFDQSxRQUFRLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztBQUNsRCxRQUFRLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUM7QUFDbEYsUUFBUSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDO0FBQ2xGLFFBQVEsSUFBSSxDQUFDLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQztBQUNwRixRQUFRLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7QUFDMUQsUUFBUSxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7QUFDbEQsUUFBUSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDMUMsUUFBUSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO0FBQ3hELFFBQVEsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQzFDO0FBQ0EsUUFBUSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNoQyxRQUFRLE9BQU8sSUFBSSxDQUFDO0FBQ3BCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7QUFDOUIsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEtBQUssSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDO0FBQ25HLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztBQUNuRyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsS0FBSyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUM7QUFDcEcsUUFBUSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUkseUJBQXlCLEdBQUc7QUFDaEM7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUNuRDtBQUNBLFFBQVEsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbkYsUUFBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQy9GLFFBQVEsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUNuRyxRQUFRLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUNySCxRQUFRLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUNuSCxRQUFRLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDdkcsUUFBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDakgsUUFBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7QUFDbkksUUFBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDekg7QUFDQSxRQUFRLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNELFFBQVEsSUFBSSxhQUFhLElBQUksR0FBRyxFQUFFO0FBQ2xDLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7QUFDM0QsU0FBUztBQUNULFFBQVEsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztBQUN2QyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsSUFBSSxnQkFBZ0IsR0FBRztBQUN2QixRQUFRLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNELFFBQVEsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixLQUFLLElBQUksQ0FBQztBQUN0RSxRQUFRLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSTtBQUM3QyxZQUFZLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSTtBQUNyQyxZQUFZLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxJQUFJO0FBQzlDLFlBQVksSUFBSSxDQUFDLG1CQUFtQixLQUFLLElBQUk7QUFDN0MsWUFBWSxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSTtBQUM1QyxZQUFZLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxJQUFJLENBQUM7QUFDakQsUUFBUSxPQUFPO0FBQ2Y7QUFDQTtBQUNBLFlBQVksd0JBQXdCLEVBQUUsYUFBYTtBQUNuRCxZQUFZLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtBQUNwQyxZQUFZLFlBQVksRUFBRSxXQUFXLElBQUksV0FBVztBQUNwRCxZQUFZLHFCQUFxQixFQUFFLFdBQVcsSUFBSSxDQUFDLFdBQVc7QUFDOUQsWUFBWSxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWM7QUFDaEQsWUFBWSx3QkFBd0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEtBQUssSUFBSTtBQUN4RSxZQUFZLHVCQUF1QixFQUFFLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJO0FBQ3RFLFlBQVksaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJO0FBQzFELFlBQVksc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixLQUFLLElBQUk7QUFDcEUsWUFBWSwrQkFBK0IsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQywyQkFBMkIsS0FBSyxJQUFJO0FBQ3pHLFlBQVksMEJBQTBCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixLQUFLLElBQUk7QUFDNUUsWUFBWSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSTtBQUNqRSxZQUFZLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVE7QUFDdEQsWUFBWSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxLQUFLLGNBQWM7QUFDbEUsWUFBWSxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO0FBQzlDLFlBQVksbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssNkJBQTZCLENBQUMsZ0JBQWdCO0FBQzdILFlBQVksb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssNkJBQTZCLENBQUMsaUJBQWlCO0FBQy9ILFNBQVMsQ0FBQztBQUNWLEtBQUs7QUFDTCxJQUFJLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDbkMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7QUFDdkIsWUFBWSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7QUFDNUMsZ0JBQWdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7QUFDekMsYUFBYTtBQUNiLFlBQVksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM3QyxTQUFTO0FBQ1QsS0FBSztBQUNMLENBQUM7QUFDRDtBQUNBLE1BQU0scUJBQXFCLEdBQUc7QUFDOUIsSUFBSSxFQUFFLEVBQUUsSUFBSTtBQUNaLElBQUksSUFBSSxFQUFFLElBQUk7QUFDZCxDQUFDLENBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRTtBQUNuRCxJQUFJLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFO0FBQzdDLFFBQVEsT0FBTyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUFDeEMsS0FBSztBQUNMLFNBQVM7QUFDVCxRQUFRLE9BQU8sQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0QsS0FBSztBQUNMLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFDLElBQUksSUFBSSxPQUFPLEdBQUc7QUFDbEIsUUFBUSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNDLEtBQUs7QUFDTCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFO0FBQ3hDLFFBQVEsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDOUIsUUFBUSxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztBQUM5QyxRQUFRLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQzVCLEtBQUs7QUFDTCxJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ2hDLFFBQVEsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO0FBQzNCLFlBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUMsU0FBUztBQUNULEtBQUs7QUFDTCxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO0FBQ2pELFFBQVEsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO0FBQzNCLFlBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0UsWUFBWSxJQUFJLG1CQUFtQixFQUFFO0FBQ3JDLGdCQUFnQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDaEUsYUFBYTtBQUNiLFNBQVM7QUFDVCxLQUFLO0FBQ0wsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUU7QUFDaEQsUUFBUSxPQUFPQSxXQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLGFBQWE7QUFDNUQsWUFBWSxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU1BLFdBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsYUFBYTtBQUNoRixnQkFBZ0IsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO0FBQ3JDLG9CQUFvQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLG9CQUFvQixJQUFJLGNBQWMsRUFBRTtBQUN4Qyx3QkFBd0Isb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRixxQkFBcUI7QUFDckIsaUJBQWlCO0FBQ2pCLGFBQWEsQ0FBQyxHQUFHLENBQUM7QUFDbEIsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QyxZQUFZLE9BQU8sT0FBTyxDQUFDO0FBQzNCLFNBQVMsQ0FBQyxDQUFDO0FBQ1gsS0FBSztBQUNMLElBQUksb0JBQW9CLENBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUU7QUFDNUQsUUFBUSxPQUFPQSxXQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLGFBQWE7QUFDNUQsWUFBWSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFlBQVksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEdBQUcsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3ZILFNBQVMsQ0FBQyxDQUFDO0FBQ1gsS0FBSztBQUNMLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1xQix3QkFBc0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzVELE1BQU0seUJBQXlCLENBQUM7QUFDaEMsSUFBSSxJQUFJLElBQUksR0FBRztBQUNmLFFBQVEsT0FBTyx5QkFBeUIsQ0FBQyxjQUFjLENBQUM7QUFDeEQsS0FBSztBQUNMLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFO0FBQ3RDLFFBQVEsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUN2QixRQUFRLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQzdCLFFBQVEsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDckcsUUFBUSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLE1BQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBQ2pHLFFBQVEsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxNQUFNLElBQUksSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztBQUMxRixRQUFRLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNDLEtBQUs7QUFDTCxJQUFJLFVBQVUsR0FBRztBQUNqQixRQUFRLE9BQU9yQixXQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLGFBQWE7QUFDNUQsWUFBWSxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztBQUN0RCxTQUFTLENBQUMsQ0FBQztBQUNYLEtBQUs7QUFDTCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUU7QUFDcEIsUUFBUSxPQUFPQSxXQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLGFBQWE7QUFDNUQsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDakYsU0FBUyxDQUFDLENBQUM7QUFDWCxLQUFLO0FBQ0wsSUFBSSxlQUFlLENBQUMsYUFBYSxFQUFFO0FBQ25DLFFBQVEsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ25FLFFBQVEsSUFBSSxXQUFXLEVBQUU7QUFDekIsWUFBWSxPQUFPLGFBQWEsQ0FBQztBQUNqQyxTQUFTO0FBQ1QsUUFBUSxPQUFPLElBQUksQ0FBQztBQUNwQixLQUFLO0FBQ0wsSUFBSSxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFO0FBQ3hELFFBQVEsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2pFLFFBQVEsSUFBSSxTQUFTLEVBQUU7QUFDdkIsWUFBWSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDekUsU0FBUztBQUNULFFBQVEsT0FBTyxJQUFJLENBQUM7QUFDcEIsS0FBSztBQUNMLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtBQUN4QixRQUFRLElBQUksRUFBRSxDQUFDO0FBQ2YsUUFBUSxPQUFPQSxXQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLGFBQWE7QUFDNUQsWUFBWSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3ZDLFlBQVksTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQyxZQUFZLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEcsWUFBWSxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7QUFDakMsZ0JBQWdCLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxpREFBaUQsRUFBRSxTQUFTLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO0FBQ3JJLGFBQWE7QUFDYixZQUFZLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDckQsWUFBWSxNQUFNLFdBQVcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakUsWUFBWSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO0FBQzVDLGdCQUFnQixNQUFNLElBQUksR0FBRyxXQUFXLENBQUM7QUFDekMsZ0JBQWdCLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDaEUsZ0JBQWdCLElBQUksYUFBYSxJQUFJLElBQUksRUFBRTtBQUMzQyxvQkFBb0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDOUQsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYixpQkFBaUI7QUFDakIsZ0JBQWdCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQztBQUMxQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDL0Qsb0JBQW9CLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkQsb0JBQW9CLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDcEUsb0JBQW9CLElBQUksYUFBYSxJQUFJLElBQUksRUFBRTtBQUMvQyx3QkFBd0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDbEUscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQixhQUFhO0FBQ2IsWUFBWSxPQUFPLFdBQVcsQ0FBQztBQUMvQixTQUFTLENBQUMsQ0FBQztBQUNYLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGtDQUFrQyxHQUFHO0FBQ3pDLFFBQVEsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUNuQyxRQUFRLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDakMsUUFBUSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQzVDLFFBQVEsWUFBWSxLQUFLLElBQUksSUFBSSxZQUFZLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxTQUFTLEtBQUs7QUFDakgsWUFBWSxJQUFJLEVBQUUsQ0FBQztBQUNuQixZQUFZLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNqRSxZQUFZLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxVQUFVLE1BQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFO0FBQzdILGdCQUFnQixPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNyRSxhQUFhO0FBQ2IsU0FBUyxDQUFDLENBQUM7QUFDWCxLQUFLO0FBQ0wsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUU7QUFDdEMsUUFBUSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDbkIsUUFBUSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ25DLFFBQVEsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNqQyxRQUFRLE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLE1BQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekcsUUFBUSxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7QUFDakMsWUFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsb0RBQW9ELEVBQUUsYUFBYSxDQUFDLHdDQUF3QyxDQUFDLENBQUMsQ0FBQztBQUN6SSxZQUFZLE9BQU8sU0FBUyxDQUFDO0FBQzdCLFNBQVM7QUFDVCxRQUFRLE1BQU0sU0FBUyxHQUFHLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxVQUFVLE1BQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDMUksUUFBUSxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUU7QUFDL0IsWUFBWSxPQUFPLFNBQVMsQ0FBQztBQUM3QixTQUFTO0FBQ1QsUUFBUSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO0FBQ2xELFFBQVEsSUFBSSxDQUFDcUIsd0JBQXNCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO0FBQ3RELFlBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLG1DQUFtQyxFQUFFLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEksWUFBWSxPQUFPLFNBQVMsQ0FBQztBQUM3QixTQUFTO0FBQ1QsUUFBUSxPQUFPLFNBQVMsQ0FBQztBQUN6QixLQUFLO0FBQ0wsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFO0FBQ3JELFFBQVEsSUFBSSxFQUFFLENBQUM7QUFDZixRQUFRLE9BQU9yQixXQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLGFBQWE7QUFDNUQ7QUFDQSxZQUFZLE9BQU8sY0FBYyxDQUFDLFNBQVMsQ0FBQztBQUM1QyxZQUFZLE9BQU8sY0FBYyxDQUFDLFNBQVMsQ0FBQztBQUM1QyxZQUFZLE1BQU0sWUFBWSxHQUFHLElBQUksbUNBQW1DLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztBQUN0RyxZQUFZLFlBQVksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLEVBQUUsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDbkcsWUFBWSxZQUFZLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3JGLFlBQVksWUFBWSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckcsWUFBWSxZQUFZLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdGLFlBQVksWUFBWSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkcsWUFBWSxZQUFZLENBQUMsZUFBZSxDQUFDLDBCQUEwQixFQUFFLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6SixZQUFZLFlBQVksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDN0YsWUFBWSxZQUFZLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2pHLFlBQVksWUFBWSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzdFLFlBQVksWUFBWSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RixZQUFZLFlBQVksQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDckcsWUFBWSxZQUFZLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRyxZQUFZLFlBQVksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDakcsWUFBWSxZQUFZLENBQUMsZUFBZSxDQUFDLGlDQUFpQyxFQUFFLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBQ3ZILFlBQVksWUFBWSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsRUFBRSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUN2RyxZQUFZLFlBQVksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDekYsWUFBWSxZQUFZLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdGLFlBQVksWUFBWSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsRUFBRSxTQUFTLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEgsWUFBWSxZQUFZLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3pGLFlBQVksWUFBWSxDQUFDLGVBQWUsQ0FBQywwQkFBMEIsRUFBRSxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUN6RyxZQUFZLFlBQVksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFHLFlBQVksWUFBWSxDQUFDLGVBQWUsQ0FBQywrQkFBK0IsRUFBRSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUNuSCxZQUFZLFlBQVksQ0FBQyxlQUFlLENBQUMsK0JBQStCLEVBQUUsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDbkgsWUFBWSxZQUFZLENBQUMsZUFBZSxDQUFDLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBQ3JILFlBQVksWUFBWSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzlFLFlBQVksWUFBWSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3RFLFlBQVksTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDO0FBQ3ZDLFNBQVMsQ0FBQyxDQUFDO0FBQ1gsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksZUFBZSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7QUFDekMsUUFBUSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDakUsUUFBUSxJQUFJLFNBQVMsRUFBRTtBQUN2QixZQUFZLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsRSxZQUFZLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUNwRSxZQUFZLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QyxZQUFZLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QyxZQUFZLE9BQU87QUFDbkIsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUM5QyxRQUFRLElBQUksRUFBRSxlQUFlLFlBQVksYUFBYSxDQUFDLEVBQUU7QUFDekQsWUFBWSxPQUFPO0FBQ25CLFNBQVM7QUFDVDtBQUNBLFFBQVEsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLEtBQUssTUFBTSxJQUFJLGVBQWUsQ0FBQyxrQkFBa0IsSUFBSSxHQUFHLEVBQUU7QUFDdEcsWUFBWSxPQUFPO0FBQ25CLFNBQVM7QUFDVDtBQUNBLFFBQVEsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzFDO0FBQ0EsUUFBUSxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDeEQsUUFBUSxlQUFlLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQztBQUM3QyxRQUFRLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3pDLFFBQVEsZUFBZSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0FBQzlDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDNUM7QUFDQSxRQUFRLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDdkMsUUFBUSxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUNqSCxRQUFRLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25ELFFBQVEsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkQsS0FBSztBQUNMLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFO0FBQzVCLFFBQVEsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0FBQ2xELFFBQVEsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN0QyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0FBQ2hELFlBQVksbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNqRixTQUFTO0FBQ1QsYUFBYTtBQUNiLFlBQVksV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2pELFNBQVM7QUFDVCxRQUFRLEtBQUssTUFBTSxRQUFRLElBQUksV0FBVyxFQUFFO0FBQzVDLFlBQVksSUFBSSxRQUFRLFlBQVksYUFBYSxFQUFFO0FBQ25ELGdCQUFnQixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3JELGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMLElBQUksaUJBQWlCLENBQUMsU0FBUyxFQUFFO0FBQ2pDLFFBQVEsSUFBSSxFQUFFLENBQUM7QUFDZjtBQUNBO0FBQ0EsUUFBUSxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMscUJBQXFCLENBQUM7QUFDOUQsUUFBUSxPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLHVCQUF1QixNQUFNLElBQUksSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hILEtBQUs7QUFDTCxDQUFDO0FBQ0QseUJBQXlCLENBQUMsY0FBYyxHQUFHLHNCQUFzQjs7QUMzM0JqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsV0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUN0RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDdEgsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUUsS0FBSyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0Q7QUFDQSxPQUFPLGVBQWUsS0FBSyxVQUFVLEdBQUcsZUFBZSxHQUFHLFVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUU7QUFDaEcsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQixJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBRyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDckYsQ0FBQyxDQUFDO0FBQ0Y7QUFDQSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BELElBQUksSUFBSSxJQUFJLEdBQUc7QUFDZixRQUFRLE9BQU8sNkNBQTZDLENBQUMsY0FBYyxDQUFDO0FBQzVFLEtBQUs7QUFDTCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7QUFDeEIsUUFBUSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUM3QixLQUFLO0FBQ0wsSUFBSSxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFO0FBQ3hELFFBQVEsT0FBT0EsV0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxhQUFhO0FBQzVELFlBQVksTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3JGLFlBQVksSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO0FBQ25DLGdCQUFnQixPQUFPO0FBQ3ZCLGFBQWE7QUFDYjtBQUNBO0FBQ0EsWUFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLG9KQUFvSixDQUFDLENBQUM7QUFDL0ssWUFBWSxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztBQUNwRSxZQUFZLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNsRSxTQUFTLENBQUMsQ0FBQztBQUNYLEtBQUs7QUFDTCxJQUFJLGtDQUFrQyxDQUFDLGFBQWEsRUFBRTtBQUN0RCxRQUFRLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNuQixRQUFRLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDbkMsUUFBUSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ2pDLFFBQVEsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6RyxRQUFRLElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtBQUNqQyxZQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyx3RUFBd0UsRUFBRSxhQUFhLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDO0FBQzdKLFlBQVksT0FBTyxTQUFTLENBQUM7QUFDN0IsU0FBUztBQUNULFFBQVEsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDLFVBQVUsTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2Q0FBNkMsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM5SixRQUFRLElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtBQUMvQixZQUFZLE9BQU8sU0FBUyxDQUFDO0FBQzdCLFNBQVM7QUFDVCxRQUFRLE9BQU8sU0FBUyxDQUFDO0FBQ3pCLEtBQUs7QUFDTCxDQUFDO0FBQ0QsNkNBQTZDLENBQUMsY0FBYyxHQUFHLHVDQUF1Qzs7QUMxRXRHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFdBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDdEQsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ25HLFFBQVEsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ3RHLFFBQVEsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFO0FBQ3RILFFBQVEsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzlFLEtBQUssQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUNEO0FBQ0EsT0FBTyxlQUFlLEtBQUssVUFBVSxHQUFHLGVBQWUsR0FBRyxVQUFVLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFO0FBQ2hHLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ3JGLENBQUMsQ0FBQztBQUNGO0FBQ0EsU0FBUyxTQUFTLENBQUMsQ0FBQyxFQUFFO0FBQ3RCLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBQ0Q7QUFDQSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pDLElBQUksSUFBSSxJQUFJLEdBQUc7QUFDZixRQUFRLE9BQU8sNEJBQTRCLENBQUM7QUFDNUMsS0FBSztBQUNMLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtBQUN4QixRQUFRLElBQUksRUFBRSxDQUFDO0FBQ2YsUUFBUSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUM3QixRQUFRLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3BELFFBQVEsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDMUQ7QUFDQTtBQUNBLFFBQVEsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdEMsUUFBUSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLE1BQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQzdGLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO0FBQ3pFLFlBQVksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUM5RCxTQUFTO0FBQ1QsS0FBSztBQUNMLElBQUksVUFBVSxHQUFHO0FBQ2pCLFFBQVEsSUFBSSxFQUFFLENBQUM7QUFDZixRQUFRLE9BQU9BLFdBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsYUFBYTtBQUM1RCxZQUFZLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQzFDO0FBQ0EsWUFBWSxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxNQUFNLElBQUksSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pHLFlBQVksTUFBTSxvQkFBb0IsR0FBRyxjQUFjLEtBQUssSUFBSSxJQUFJLGNBQWMsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxjQUFjLENBQUMsa0JBQWtCLENBQUM7QUFDM0ksWUFBWSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7QUFDdkMsZ0JBQWdCLE9BQU87QUFDdkIsYUFBYTtBQUNiO0FBQ0EsWUFBWSxJQUFJLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUMvRDtBQUNBLFlBQVksb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxLQUFLO0FBQ2hGLGdCQUFnQixJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDM0IsZ0JBQWdCLE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLE1BQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDakgsZ0JBQWdCLElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtBQUN6QyxvQkFBb0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLHFEQUFxRCxFQUFFLGFBQWEsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7QUFDbEosb0JBQW9CLE9BQU87QUFDM0IsaUJBQWlCO0FBQ2pCLGdCQUFnQixJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7QUFDL0Qsb0JBQW9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNuRyxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDN0QsaUJBQWlCO0FBQ2pCLHFCQUFxQixJQUFJLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUU7QUFDM0gsb0JBQW9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNuRyxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDN0QsaUJBQWlCO0FBQ2pCLHFCQUFxQixJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxvQkFBb0IsRUFBRSxDQUFDO0FBQzlFLHFCQUFxQjtBQUNyQixvQkFBb0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLDRDQUE0QyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RyxpQkFBaUI7QUFDakIsYUFBYSxDQUFDLENBQUM7QUFDZixTQUFTLENBQUMsQ0FBQztBQUNYLEtBQUs7QUFDTCxJQUFJLHVCQUF1QixDQUFDLGtCQUFrQixFQUFFLGNBQWMsRUFBRTtBQUNoRSxRQUFRLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUNyTSxRQUFRLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsTUFBTSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztBQUMzSyxRQUFRLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxNQUFNLElBQUksSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuSSxRQUFRLE1BQU0s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QUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNyRSxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1RSxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRSxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RSxTQUFTO0FBQ1QsUUFBUSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3JDLFlBQVksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDM0MsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RSxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFH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QUFFLENBQUM7QUFDM0MsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ25FLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEUsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RSxTQUFTO0FBQ1QsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbEYsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEYsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFD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\n\n\n//# sourceURL=webpack://vrm/./node_modules/@pixiv/three-vrm/lib/three-vrm.module.js?");
+
+/***/ }),
+
+/***/ "./src/index.ts":
+/*!**********************!*\
+ !*** ./src/index.ts ***!
+ \**********************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst THREE = __webpack_require__(/*! three */ \"./node_modules/three/build/three.cjs\");\nconst GLTFLoader_1 = __webpack_require__(/*! three/examples/jsm/loaders/GLTFLoader */ \"./node_modules/three/examples/jsm/loaders/GLTFLoader.js\");\nconst OrbitControls_1 = __webpack_require__(/*! three/examples/jsm/controls/OrbitControls */ \"./node_modules/three/examples/jsm/controls/OrbitControls.js\");\nconst three_vrm_1 = __webpack_require__(/*! @pixiv/three-vrm */ \"./node_modules/@pixiv/three-vrm/lib/three-vrm.module.js\");\nconst three_vrm_animation_1 = __webpack_require__(/*! @pixiv/three-vrm-animation */ \"./node_modules/@pixiv/three-vrm-animation/lib/three-vrm-animation.module.js\");\nconst three_1 = __webpack_require__(/*! three */ \"./node_modules/three/build/three.cjs\");\nconst three_2 = __webpack_require__(/*! three */ \"./node_modules/three/build/three.cjs\");\nwindow.addEventListener(\"DOMContentLoaded\", () => {\n const canvas = document.getElementById(\"canvas\");\n if (canvas == null)\n return;\n const scene = new THREE.Scene();\n const camera = new THREE.PerspectiveCamera(30, canvas.clientWidth / canvas.clientHeight, 0.1, 20);\n camera.position.set(0.0, 0.9, -4.0);\n camera.rotation.set(0.0, Math.PI, 0.0);\n camera.lookAt(new THREE.Vector3(0, 0, 0));\n const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\n renderer.setPixelRatio(window.devicePixelRatio);\n renderer.setSize(canvas.clientWidth, canvas.clientHeight);\n renderer.setClearColor(0x7fbfff, 1.0);\n renderer.shadowMap.enabled = true;\n renderer.outputColorSpace = THREE.SRGBColorSpace;\n //renderer.toneMapping = THREE.ACESFilmicToneMapping;\n //renderer.toneMappingExposure = 1;\n canvas.appendChild(renderer.domElement);\n const light = new THREE.DirectionalLight(0xffffff, Math.PI);\n light.position.set(1.0, 1.0, 1.0);\n scene.add(light);\n let currentVrm = undefined;\n let currentVrmAnimation = undefined;\n let currentMixer = undefined;\n function load(url) {\n loader.load(url, (gltf) => {\n tryInitVRM(gltf);\n tryInitVRMA(gltf);\n }, (progress) => console.log(\"Loading model...\", 100.0 * (progress.loaded / progress.total), \"%\"), (error) => console.error(error));\n }\n function tryInitVRM(gltf) {\n const vrm = gltf.userData.vrm;\n if (vrm == null) {\n return;\n }\n currentVrm = vrm;\n scene.add(vrm.scene);\n initAnimationClip();\n }\n function tryInitVRMA(gltf) {\n var _a;\n const vrmAnimations = gltf.userData.vrmAnimations;\n if (vrmAnimations == null) {\n return;\n }\n currentVrmAnimation = (_a = vrmAnimations[0]) !== null && _a !== void 0 ? _a : null;\n initAnimationClip();\n }\n function initAnimationClip() {\n if (currentVrm && currentVrmAnimation) {\n currentMixer = new THREE.AnimationMixer(currentVrm.scene);\n const clip = (0, three_vrm_animation_1.createVRMAnimationClip)(currentVrmAnimation, currentVrm);\n currentMixer.clipAction(clip).play();\n }\n }\n const loader = new GLTFLoader_1.GLTFLoader();\n loader.register((parser) => {\n return new three_vrm_1.VRMLoaderPlugin(parser);\n });\n loader.register((parser) => {\n return new three_vrm_animation_1.VRMAnimationLoaderPlugin(parser);\n });\n load(\"/vrma/ai.vrm\");\n load(\"/vrma/fly_c.vrma\");\n const clock = new THREE.Clock();\n clock.start();\n const update = () => {\n controls.update();\n requestAnimationFrame(update);\n const deltaTime = clock.getDelta();\n if (currentMixer) {\n currentMixer.update(deltaTime);\n }\n if (currentVrm) {\n currentVrm.update(deltaTime);\n }\n renderer.render(scene, camera);\n };\n scene.background = new THREE.Color(0xffffff);\n const directionalLight = new THREE.DirectionalLight(0xffffff);\n directionalLight.position.set(1, 1, 1);\n scene.add(directionalLight);\n const ambientLight = new THREE.AmbientLight(0x333333);\n scene.add(ambientLight);\n const controls = new OrbitControls_1.OrbitControls(camera, renderer.domElement);\n controls.enableDamping = true;\n controls.dampingFactor = 0.2;\n controls.enableRotate = true;\n controls.target.set(0.0, 1.0, 0.0);\n function floor_default() {\n const floor = new three_2.Mesh(new three_2.BoxGeometry(50, 100), new three_2.MeshLambertMaterial({\n color: 0xffffff,\n depthWrite: true,\n }));\n floor.position.y = -1.0;\n floor.rotation.x = -Math.PI / 2;\n scene.add(floor);\n }\n function floor_grid() {\n const grid = new three_2.GridHelper(50, 100, 0xffffff, 0xffffff);\n scene.add(grid);\n grid.position.set(Math.round(0), 0, Math.round(0));\n }\n function floor_bg() {\n var _a;\n scene.fog = new three_1.Fog(0xffffff, 3, 20);\n (_a = scene.fog) === null || _a === void 0 ? void 0 : _a.color.set(0xffffff);\n }\n floor_default();\n floor_grid();\n floor_bg();\n update();\n setInterval(() => {\n const r = Math.floor(Math.random() * 4 + 1);\n load(\"/vrma/\" + r + \".vrma\");\n setTimeout(() => {\n load(\"/vrma/fly_c.vrma\");\n }, 10000);\n }, 15000);\n});\n\n\n//# sourceURL=webpack://vrm/./src/index.ts?");
+
+/***/ }),
+
+/***/ "./node_modules/three/build/three.cjs":
+/*!********************************************!*\
+ !*** ./node_modules/three/build/three.cjs ***!
+ \********************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+eval("/**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\n\n\nconst REVISION = '162';\n\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst ConstantColorFactor = 211;\nconst OneMinusConstantColorFactor = 212;\nconst ConstantAlphaFactor = 213;\nconst OneMinusConstantAlphaFactor = 214;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\nconst AgXToneMapping = 6;\nconst NeutralToneMapping = 7;\nconst AttachedBindMode = 'attached';\nconst DetachedBindMode = 'detached';\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst AlphaFormat = 1021;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst RGB_BPTC_SIGNED_Format = 36494;\nconst RGB_BPTC_UNSIGNED_Format = 36495;\nconst RED_RGTC1_Format = 36283;\nconst SIGNED_RED_RGTC1_Format = 36284;\nconst RED_GREEN_RGTC2_Format = 36285;\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\nconst NoColorSpace = '';\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\nconst DisplayP3ColorSpace = 'display-p3';\nconst LinearDisplayP3ColorSpace = 'display-p3-linear';\n\nconst LinearTransfer = 'linear';\nconst SRGBTransfer = 'srgb';\n\nconst Rec709Primaries = 'rec709';\nconst P3Primaries = 'p3';\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst NeverCompare = 512;\nconst LessCompare = 513;\nconst EqualCompare = 514;\nconst LessEqualCompare = 515;\nconst GreaterCompare = 516;\nconst NotEqualCompare = 517;\nconst GreaterEqualCompare = 518;\nconst AlwaysCompare = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\nconst _SRGBAFormat = 1035; // fallback for WebGL 1\n\nconst WebGLCoordinateSystem = 2000;\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range to range \nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn value / 4294967295.0;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.max( value / 2147483647.0, - 1.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn Math.round( value * 4294967295.0 );\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.round( value * 2147483647.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize\n};\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tif ( x.isVector2 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x.x,\n\t\t\t\t0, 1, x.y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x,\n\t\t\t\t0, 1, y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n\n\t}\n\n\treturn false;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\tUint8ClampedArray: Uint8ClampedArray,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nconst _cache = {};\n\nfunction warnOnce( message ) {\n\n\tif ( message in _cache ) return;\n\n\t_cache[ message ] = true;\n\n\tconsole.warn( message );\n\n}\n\n/**\n * Matrices converting P3 <-> Rec. 709 primaries, without gamut mapping\n * or clipping. Based on W3C specifications for sRGB and Display P3,\n * and ICC specifications for the D50 connection space. Values in/out\n * are _linear_ sRGB and _linear_ Display P3.\n *\n * Note that both sRGB and Display P3 use the sRGB transfer functions.\n *\n * Reference:\n * - http://www.russellcottrell.com/photo/matrixCalculator.htm\n */\n\nconst LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /*@__PURE__*/ new Matrix3().set(\n\t0.8224621, 0.177538, 0.0,\n\t0.0331941, 0.9668058, 0.0,\n\t0.0170827, 0.0723974, 0.9105199,\n);\n\nconst LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /*@__PURE__*/ new Matrix3().set(\n\t1.2249401, - 0.2249404, 0.0,\n\t- 0.0420569, 1.0420571, 0.0,\n\t- 0.0196376, - 0.0786361, 1.0982735\n);\n\n/**\n * Defines supported color spaces by transfer function and primaries,\n * and provides conversions to/from the Linear-sRGB reference space.\n */\nconst COLOR_SPACES = {\n\t[ LinearSRGBColorSpace ]: {\n\t\ttransfer: LinearTransfer,\n\t\tprimaries: Rec709Primaries,\n\t\ttoReference: ( color ) => color,\n\t\tfromReference: ( color ) => color,\n\t},\n\t[ SRGBColorSpace ]: {\n\t\ttransfer: SRGBTransfer,\n\t\tprimaries: Rec709Primaries,\n\t\ttoReference: ( color ) => color.convertSRGBToLinear(),\n\t\tfromReference: ( color ) => color.convertLinearToSRGB(),\n\t},\n\t[ LinearDisplayP3ColorSpace ]: {\n\t\ttransfer: LinearTransfer,\n\t\tprimaries: P3Primaries,\n\t\ttoReference: ( color ) => color.applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),\n\t\tfromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ),\n\t},\n\t[ DisplayP3ColorSpace ]: {\n\t\ttransfer: SRGBTransfer,\n\t\tprimaries: P3Primaries,\n\t\ttoReference: ( color ) => color.convertSRGBToLinear().applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),\n\t\tfromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ).convertLinearToSRGB(),\n\t},\n};\n\nconst SUPPORTED_WORKING_COLOR_SPACES = new Set( [ LinearSRGBColorSpace, LinearDisplayP3ColorSpace ] );\n\nconst ColorManagement = {\n\n\tenabled: true,\n\n\t_workingColorSpace: LinearSRGBColorSpace,\n\n\tget workingColorSpace() {\n\n\t\treturn this._workingColorSpace;\n\n\t},\n\n\tset workingColorSpace( colorSpace ) {\n\n\t\tif ( ! SUPPORTED_WORKING_COLOR_SPACES.has( colorSpace ) ) {\n\n\t\t\tthrow new Error( `Unsupported working color space, \"${ colorSpace }\".` );\n\n\t\t}\n\n\t\tthis._workingColorSpace = colorSpace;\n\n\t},\n\n\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tconst sourceToReference = COLOR_SPACES[ sourceColorSpace ].toReference;\n\t\tconst targetFromReference = COLOR_SPACES[ targetColorSpace ].fromReference;\n\n\t\treturn targetFromReference( sourceToReference( color ) );\n\n\t},\n\n\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\treturn this.convert( color, this._workingColorSpace, targetColorSpace );\n\n\t},\n\n\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\treturn this.convert( color, sourceColorSpace, this._workingColorSpace );\n\n\t},\n\n\tgetPrimaries: function ( colorSpace ) {\n\n\t\treturn COLOR_SPACES[ colorSpace ].primaries;\n\n\t},\n\n\tgetTransfer: function ( colorSpace ) {\n\n\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\treturn COLOR_SPACES[ colorSpace ].transfer;\n\n\t},\n\n};\n\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement === 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nlet _sourceId = 0;\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.isSource = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\t\tthis.dataReady = true;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.from( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nlet _textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace ) {\n\n\t\tsuper();\n\n\t\tthis.isTexture = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\t\tthis.channel = 0;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\tthis.colorSpace = colorSpace;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.needsPMREMUpdate = false; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value = null ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\t\tthis.channel = source.channel;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.colorSpace = source.colorSpace;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\t\t\tchannel: this.channel,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\tinternalFormat: this.internalFormat,\n\t\t\ttype: this.type,\n\t\t\tcolorSpace: this.colorSpace,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tgenerateMipmaps: this.generateMipmaps,\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass RenderTarget extends EventDispatcher {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.isRenderTarget = true;\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: 1 };\n\n\t\toptions = Object.assign( {\n\t\t\tgenerateMipmaps: false,\n\t\t\tinternalFormat: null,\n\t\t\tminFilter: LinearFilter,\n\t\t\tdepthBuffer: true,\n\t\t\tstencilBuffer: false,\n\t\t\tdepthTexture: null,\n\t\t\tsamples: 0,\n\t\t\tcount: 1\n\t\t}, options );\n\n\t\tconst texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\ttexture.flipY = false;\n\t\ttexture.generateMipmaps = options.generateMipmaps;\n\t\ttexture.internalFormat = options.internalFormat;\n\n\t\tthis.textures = [];\n\n\t\tconst count = options.count;\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.textures[ i ] = texture.clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\tthis.depthBuffer = options.depthBuffer;\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\tthis.samples = options.samples;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures[ 0 ];\n\n\t}\n\n\tset texture( value ) {\n\n\t\tthis.textures[ 0 ] = value;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.textures.length; i < il; i ++ ) {\n\n\t\t\t\tthis.textures[ i ].image.width = width;\n\t\t\t\tthis.textures[ i ].image.height = height;\n\t\t\t\tthis.textures[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.scissor.copy( source.scissor );\n\t\tthis.scissorTest = source.scissorTest;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.textures.length = 0;\n\n\t\tfor ( let i = 0, il = source.textures.length; i < il; i ++ ) {\n\n\t\t\tthis.textures[ i ] = source.textures[ i ].clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tconst image = Object.assign( {}, source.texture.image );\n\t\tthis.texture.source = new Source( image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nclass WebGLRenderTarget extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\nclass DataArrayTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.isDataArrayTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Data3DTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in DataTexture3D directly.\n\t\t//\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.isData3DTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update = true ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize(); // normalize calls _onChangeCallback()\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// sets this quaternion to a uniform random unit quaternnion\n\n\t\t// Ken Shoemake\n\t\t// Uniform random rotations\n\t\t// D. Kirk, editor, Graphics Gems III, pages 124-132. Academic Press, New York, 1992.\n\n\t\tconst theta1 = 2 * Math.PI * Math.random();\n\t\tconst theta2 = 2 * Math.PI * Math.random();\n\n\t\tconst x0 = Math.random();\n\t\tconst r1 = Math.sqrt( 1 - x0 );\n\t\tconst r2 = Math.sqrt( x0 );\n\n\t\treturn this.set(\n\t\t\tr1 * Math.sin( theta1 ),\n\t\t\tr1 * Math.cos( theta1 ),\n\t\t\tr2 * Math.sin( theta2 ),\n\t\t\tr2 * Math.cos( theta2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.toArray();\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._w;\n\n\t}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t// quaternion q is assumed to have unit length\n\n\t\tconst vx = this.x, vy = this.y, vz = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// t = 2 * cross( q.xyz, v );\n\t\tconst tx = 2 * ( qy * vz - qz * vy );\n\t\tconst ty = 2 * ( qz * vx - qx * vz );\n\t\tconst tz = 2 * ( qx * vy - qy * vx );\n\n\t\t// v + q.w * t + cross( q.xyz, t );\n\t\tthis.x = vx + qw * tx + qy * tz - qz * ty;\n\t\tthis.y = vy + qw * ty + qz * tx - qx * tz;\n\t\tthis.z = vz + qw * tz + qx * ty - qy * tx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromColor( c ) {\n\n\t\tthis.x = c.r;\n\t\tthis.y = c.g;\n\t\tthis.z = c.b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst theta = Math.random() * Math.PI * 2;\n\t\tconst u = Math.random() * 2 - 1;\n\t\tconst c = Math.sqrt( 1 - u * u );\n\n\t\tthis.x = c * Math.cos( theta );\n\t\tthis.y = u;\n\t\tthis.z = c * Math.sin( theta );\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = array.length; i < il; i += 3 ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromArray( array, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromBufferAttribute( attribute, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\t\t// precise AABB computation based on vertex data requires at least a position attribute.\n\t\t\t// instancing isn't supported so far and uses the normal (conservative) code path.\n\n\t\t\tif ( precise === true && positionAttribute !== undefined && object.isInstancedMesh !== true ) {\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\tif ( object.isMesh === true ) {\n\n\t\t\t\t\t\tobject.getVertexPosition( i, _vector$b );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_vector$b.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_vector$b.applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( object.boundingBox !== undefined ) {\n\n\t\t\t\t\t// object-level bounding box\n\n\t\t\t\t\tif ( object.boundingBox === null ) {\n\n\t\t\t\t\t\tobject.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( object.boundingBox );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// geometry-level bounding box\n\n\t\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( geometry.boundingBox );\n\n\t\t\t\t}\n\n\t\t\t\t_box$4.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$4 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ||\n\t\t\tpoint.z < this.min.z || point.z > this.max.z ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ||\n\t\t\tbox.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$2.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$4.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$2 );\n\t\t_f1.subVectors( _v2$4, _v1$7 );\n\t\t_f2.subVectors( _v0$2, _v2$4 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\ttarget.makeEmpty();\n\n\t\t} else {\n\n\t\t\tthis.getCenter( target.center );\n\n\t\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$4 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$4 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$3 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.isSphere = true;\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$3.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1$6.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1$6.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1$6, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.origin ).addScaledVector( this.direction, s0 );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segCenter ).addScaledVector( _segDir, s1 );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if t1 is behind the ray - if so, return null\n\t\tif ( t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\tif ( tymin > tmin || isNaN( tmin ) ) tmin = tymin;\n\n\t\tif ( tymax < tmax || isNaN( tmax ) ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x.x,\n\t\t\t\t0, 1, 0, x.y,\n\t\t\t\t0, 0, 1, x.z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x,\n\t\t\t\t0, 1, 0, y,\n\t\t\t\t0, 0, 1, z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$4.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$4.elements[ 0 ] *= invSX;\n\t\t_m1$4.elements[ 1 ] *= invSX;\n\t\t_m1$4.elements[ 2 ] *= invSX;\n\n\t\t_m1$4.elements[ 4 ] *= invSY;\n\t\t_m1$4.elements[ 5 ] *= invSY;\n\t\t_m1$4.elements[ 6 ] *= invSY;\n\n\t\t_m1$4.elements[ 8 ] *= invSZ;\n\t\t_m1$4.elements[ 9 ] *= invSZ;\n\t\t_m1$4.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$4 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\n\t\tlet c, d;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\td = ( - 2 * far * near ) / ( far - near );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tc = - far / ( far - near );\n\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a; \tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b; \tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c; \tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\n\t\tlet z, zInv;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tz = ( far + near ) * p;\n\t\t\tzInv = - 2 * p;\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tz = near * p;\n\t\t\tzInv = - 1 * p;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0; \t\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = zInv;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0; \t\tte[ 7 ] = 0;\t\tte[ 11 ] = 0;\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$4 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$2 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$2.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$2, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$3 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nconst _childaddedEvent = { type: 'childadded', child: null };\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$3.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$3.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$3.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$3 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$3.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$3 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tif ( object.parent !== null ) {\n\n\t\t\t\tobject.parent.remove( object );\n\n\t\t\t}\n\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t\t_childaddedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t\t_childaddedEvent.child = null;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t\t_childremovedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childremovedEvent );\n\t\t\t_childremovedEvent.child = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$3.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$3.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$3 );\n\n\t\tthis.add( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value, result = [] ) {\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].getObjectsByProperty( name, value, result );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// update children\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tif ( child.matrixWorldAutoUpdate === true || force === true ) {\n\n\t\t\t\tchild.updateMatrixWorld( force );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null && parent.matrixWorldAutoUpdate === true ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.parent === null ) {\n\n\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t} else {\n\n\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t}\n\n\t\t// update children\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tif ( child.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\t\tobject.up = this.up.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\tif ( this.isBatchedMesh ) {\n\n\t\t\tobject.type = 'BatchedMesh';\n\t\t\tobject.perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\t\tobject.sortObjects = this.sortObjects;\n\n\t\t\tobject.drawRanges = this._drawRanges;\n\t\t\tobject.reservedRanges = this._reservedRanges;\n\n\t\t\tobject.visibility = this._visibility;\n\t\t\tobject.active = this._active;\n\t\t\tobject.bounds = this._bounds.map( bound => ( {\n\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\tboxMin: bound.box.min.toArray(),\n\t\t\t\tboxMax: bound.box.max.toArray(),\n\n\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\tsphereRadius: bound.sphere.radius,\n\t\t\t\tsphereCenter: bound.sphere.center.toArray()\n\t\t\t} ) );\n\n\t\t\tobject.maxGeometryCount = this._maxGeometryCount;\n\t\t\tobject.maxVertexCount = this._maxVertexCount;\n\t\t\tobject.maxIndexCount = this._maxIndexCount;\n\n\t\t\tobject.geometryInitialized = this._geometryInitialized;\n\t\t\tobject.geometryCount = this._geometryCount;\n\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = {\n\t\t\t\t\tcenter: object.boundingSphere.center.toArray(),\n\t\t\t\t\tradius: object.boundingSphere.radius\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = {\n\t\t\t\t\tmin: object.boundingBox.min.toArray(),\n\t\t\t\t\tmax: object.boundingBox.max.toArray()\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.animations = source.animations.slice();\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$2 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\t// if the triangle is degenerate then we can't contain a point\n\t\tif ( this.getBarycoord( point, a, b, c, _v3$2 ) === null ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn ( _v3$2.x >= 0 ) && ( _v3$2.y >= 0 ) && ( ( _v3$2.x + _v3$2.y ) <= 1 );\n\n\t}\n\n\tstatic getInterpolation( point, p1, p2, p3, v1, v2, v3, target ) {\n\n\t\tif ( this.getBarycoord( point, p1, p2, p3, _v3$2 ) === null ) {\n\n\t\t\ttarget.x = 0;\n\t\t\ttarget.y = 0;\n\t\t\tif ( 'z' in target ) target.z = 0;\n\t\t\tif ( 'w' in target ) target.w = 0;\n\t\t\treturn null;\n\n\t\t}\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( v1, _v3$2.x );\n\t\ttarget.addScaledVector( v2, _v3$2.y );\n\t\ttarget.addScaledVector( v3, _v3$2.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetInterpolation( point, v1, v2, v3, target ) {\n\n\t\treturn Triangle.getInterpolation( point, this.a, this.b, this.c, v1, v2, v3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tthis.isColor = true;\n\n\t\tthis.r = 1;\n\t\tthis.g = 1;\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\tset( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\n\t\t\tconst value = r;\n\n\t\t\tif ( value && value.isColor ) {\n\n\t\t\t\tthis.copy( value );\n\n\t\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\t\tthis.setHex( value );\n\n\t\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\t\tthis.setStyle( value );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.setRGB( r, g, b );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^(\\w+)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 1 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 2 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 3 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 1 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 2 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 3 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL(\n\t\t\t\t\t\t\tparseFloat( color[ 1 ] ) / 360,\n\t\t\t\t\t\t\tparseFloat( color[ 2 ] ) / 100,\n\t\t\t\t\t\t\tparseFloat( color[ 3 ] ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tconsole.warn( 'THREE.Color: Unknown color model ' + style );\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\treturn this.setRGB(\n\t\t\t\t\tparseInt( hex.charAt( 0 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 1 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 2 ), 16 ) / 15,\n\t\t\t\t\tcolorSpace\n\t\t\t\t);\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\treturn this.setHex( parseInt( hex, 16 ), colorSpace );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Invalid hex color ' + style );\n\n\t\t\t}\n\n\t\t} else if ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\treturn Math.round( clamp( _color.r * 255, 0, 255 ) ) * 65536 + Math.round( clamp( _color.g * 255, 0, 255 ) ) * 256 + Math.round( clamp( _color.b * 255, 0, 255 ) );\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\ttarget.r = _color.r;\n\t\ttarget.g = _color.g;\n\t\ttarget.b = _color.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ r.toFixed( 3 ) } ${ g.toFixed( 3 ) } ${ b.toFixed( 3 ) })`;\n\n\t\t}\n\n\t\treturn `rgb(${ Math.round( r * 255 ) },${ Math.round( g * 255 ) },${ Math.round( b * 255 ) })`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\treturn this.setHSL( _hslA.h + h, _hslA.s + s, _hslA.l + l );\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\tthis.r = v.x;\n\t\tthis.g = v.y;\n\t\tthis.b = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\t\tconst e = m.elements;\n\n\t\tthis.r = e[ 0 ] * r + e[ 3 ] * g + e[ 6 ] * b;\n\t\tthis.g = e[ 1 ] * r + e[ 4 ] * g + e[ 7 ] * b;\n\t\tthis.b = e[ 2 ] * r + e[ 5 ] * g + e[ 8 ] * b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.r;\n\t\tyield this.g;\n\t\tyield this.b;\n\n\t}\n\n}\n\nconst _color = /*@__PURE__*/ new Color();\n\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isMaterial = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Material';\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\t\tthis.alphaHash = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\t\tthis.blendAlpha = 0;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\t\tthis.forceSinglePass = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: parameter '${ key }' has value of undefined.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: '${ key }' is not a property of THREE.${ this.type }.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity !== undefined && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.iridescence !== undefined ) data.iridescence = this.iridescence;\n\t\tif ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;\n\t\tif ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n\t\tif ( this.iridescenceMap && this.iridescenceMap.isTexture ) {\n\n\t\t\tdata.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) {\n\n\t\t\tdata.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy;\n\t\tif ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation;\n\n\t\tif ( this.anisotropyMap && this.anisotropyMap.isTexture ) {\n\n\t\t\tdata.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapRotation !== undefined ) data.envMapRotation = this.envMapRotation.toArray();\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors === true ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = true;\n\n\t\tif ( this.blendSrc !== SrcAlphaFactor ) data.blendSrc = this.blendSrc;\n\t\tif ( this.blendDst !== OneMinusSrcAlphaFactor ) data.blendDst = this.blendDst;\n\t\tif ( this.blendEquation !== AddEquation ) data.blendEquation = this.blendEquation;\n\t\tif ( this.blendSrcAlpha !== null ) data.blendSrcAlpha = this.blendSrcAlpha;\n\t\tif ( this.blendDstAlpha !== null ) data.blendDstAlpha = this.blendDstAlpha;\n\t\tif ( this.blendEquationAlpha !== null ) data.blendEquationAlpha = this.blendEquationAlpha;\n\t\tif ( this.blendColor && this.blendColor.isColor ) data.blendColor = this.blendColor.getHex();\n\t\tif ( this.blendAlpha !== 0 ) data.blendAlpha = this.blendAlpha;\n\n\t\tif ( this.depthFunc !== LessEqualDepth ) data.depthFunc = this.depthFunc;\n\t\tif ( this.depthTest === false ) data.depthTest = this.depthTest;\n\t\tif ( this.depthWrite === false ) data.depthWrite = this.depthWrite;\n\t\tif ( this.colorWrite === false ) data.colorWrite = this.colorWrite;\n\n\t\tif ( this.stencilWriteMask !== 0xff ) data.stencilWriteMask = this.stencilWriteMask;\n\t\tif ( this.stencilFunc !== AlwaysStencilFunc ) data.stencilFunc = this.stencilFunc;\n\t\tif ( this.stencilRef !== 0 ) data.stencilRef = this.stencilRef;\n\t\tif ( this.stencilFuncMask !== 0xff ) data.stencilFuncMask = this.stencilFuncMask;\n\t\tif ( this.stencilFail !== KeepStencilOp ) data.stencilFail = this.stencilFail;\n\t\tif ( this.stencilZFail !== KeepStencilOp ) data.stencilZFail = this.stencilZFail;\n\t\tif ( this.stencilZPass !== KeepStencilOp ) data.stencilZPass = this.stencilZPass;\n\t\tif ( this.stencilWrite === true ) data.stencilWrite = this.stencilWrite;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaHash === true ) data.alphaHash = true;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = true;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;\n\t\tif ( this.forceSinglePass === true ) data.forceSinglePass = true;\n\n\t\tif ( this.wireframe === true ) data.wireframe = true;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = true;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( this.fog === false ) data.fog = false;\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\t\tthis.blendColor.copy( source.blendColor );\n\t\tthis.blendAlpha = source.blendAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaHash = source.alphaHash;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\t\tthis.forceSinglePass = source.forceSinglePass;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\nclass MeshBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\nconst _tables = /*@__PURE__*/ _generateTables();\n\nfunction _generateTables() {\n\n\t// float32 to float16 helpers\n\n\tconst buffer = new ArrayBuffer( 4 );\n\tconst floatView = new Float32Array( buffer );\n\tconst uint32View = new Uint32Array( buffer );\n\n\tconst baseTable = new Uint32Array( 512 );\n\tconst shiftTable = new Uint32Array( 512 );\n\n\tfor ( let i = 0; i < 256; ++ i ) {\n\n\t\tconst e = i - 127;\n\n\t\t// very small number (0, -0)\n\n\t\tif ( e < - 27 ) {\n\n\t\t\tbaseTable[ i ] = 0x0000;\n\t\t\tbaseTable[ i | 0x100 ] = 0x8000;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// small number (denorm)\n\n\t\t} else if ( e < - 14 ) {\n\n\t\t\tbaseTable[ i ] = 0x0400 >> ( - e - 14 );\n\t\t\tbaseTable[ i | 0x100 ] = ( 0x0400 >> ( - e - 14 ) ) | 0x8000;\n\t\t\tshiftTable[ i ] = - e - 1;\n\t\t\tshiftTable[ i | 0x100 ] = - e - 1;\n\n\t\t\t// normal number\n\n\t\t} else if ( e <= 15 ) {\n\n\t\t\tbaseTable[ i ] = ( e + 15 ) << 10;\n\t\t\tbaseTable[ i | 0x100 ] = ( ( e + 15 ) << 10 ) | 0x8000;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t\t// large number (Infinity, -Infinity)\n\n\t\t} else if ( e < 128 ) {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// stay (NaN, Infinity, -Infinity)\n\n\t\t} else {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t}\n\n\t}\n\n\t// float16 to float32 helpers\n\n\tconst mantissaTable = new Uint32Array( 2048 );\n\tconst exponentTable = new Uint32Array( 64 );\n\tconst offsetTable = new Uint32Array( 64 );\n\n\tfor ( let i = 1; i < 1024; ++ i ) {\n\n\t\tlet m = i << 13; // zero pad mantissa bits\n\t\tlet e = 0; // zero exponent\n\n\t\t// normalized\n\t\twhile ( ( m & 0x00800000 ) === 0 ) {\n\n\t\t\tm <<= 1;\n\t\t\te -= 0x00800000; // decrement exponent\n\n\t\t}\n\n\t\tm &= ~ 0x00800000; // clear leading 1 bit\n\t\te += 0x38800000; // adjust bias\n\n\t\tmantissaTable[ i ] = m | e;\n\n\t}\n\n\tfor ( let i = 1024; i < 2048; ++ i ) {\n\n\t\tmantissaTable[ i ] = 0x38000000 + ( ( i - 1024 ) << 13 );\n\n\t}\n\n\tfor ( let i = 1; i < 31; ++ i ) {\n\n\t\texponentTable[ i ] = i << 23;\n\n\t}\n\n\texponentTable[ 31 ] = 0x47800000;\n\texponentTable[ 32 ] = 0x80000000;\n\n\tfor ( let i = 33; i < 63; ++ i ) {\n\n\t\texponentTable[ i ] = 0x80000000 + ( ( i - 32 ) << 23 );\n\n\t}\n\n\texponentTable[ 63 ] = 0xc7800000;\n\n\tfor ( let i = 1; i < 64; ++ i ) {\n\n\t\tif ( i !== 32 ) {\n\n\t\t\toffsetTable[ i ] = 1024;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tfloatView: floatView,\n\t\tuint32View: uint32View,\n\t\tbaseTable: baseTable,\n\t\tshiftTable: shiftTable,\n\t\tmantissaTable: mantissaTable,\n\t\texponentTable: exponentTable,\n\t\toffsetTable: offsetTable\n\t};\n\n}\n\n// float32 to float16\n\nfunction toHalfFloat( val ) {\n\n\tif ( Math.abs( val ) > 65504 ) console.warn( 'THREE.DataUtils.toHalfFloat(): Value out of range.' );\n\n\tval = clamp( val, - 65504, 65504 );\n\n\t_tables.floatView[ 0 ] = val;\n\tconst f = _tables.uint32View[ 0 ];\n\tconst e = ( f >> 23 ) & 0x1ff;\n\treturn _tables.baseTable[ e ] + ( ( f & 0x007fffff ) >> _tables.shiftTable[ e ] );\n\n}\n\n// float16 to float32\n\nfunction fromHalfFloat( val ) {\n\n\tconst m = val >> 10;\n\t_tables.uint32View[ 0 ] = _tables.mantissaTable[ _tables.offsetTable[ m ] + ( val & 0x3ff ) ] + _tables.exponentTable[ m ];\n\treturn _tables.floatView[ 0 ];\n\n}\n\nconst DataUtils = {\n\ttoHalfFloat: toHalfFloat,\n\tfromHalfFloat: fromHalfFloat,\n};\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized = false ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.isBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis._updateRange = { offset: 0, count: - 1 };\n\t\tthis.updateRanges = [];\n\t\tthis.gpuType = FloatType;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tget updateRange() {\n\n\t\twarnOnce( 'THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.' ); // @deprecated, r159\n\t\treturn this._updateRange;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\t\tthis.gpuType = source.gpuType;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\t// Matching BufferAttribute constructor, do not normalize the array.\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.itemSize + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.array[ index * this.itemSize + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.array[ index * this.itemSize ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.array[ index * this.itemSize + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.array[ index * this.itemSize + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.array[ index * this.itemSize + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.from( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\n\t\treturn data;\n\n\t}\n\n}\n\n//\n\nclass Int8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t\tthis.isFloat16BufferAttribute = true;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = fromHalfFloat( this.array[ index * this.itemSize ] );\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = toHalfFloat( x );\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = fromHalfFloat( this.array[ index * this.itemSize + 1 ] );\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = fromHalfFloat( this.array[ index * this.itemSize + 2 ] );\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = fromHalfFloat( this.array[ index * this.itemSize + 3 ] );\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\t\tthis.array[ index + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n}\n\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$2 = 0;\n\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBufferGeometry = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id$2 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1$2.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1$2.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1$2.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1$2.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1$2.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1$2.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst position = [];\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tconst point = points[ i ];\n\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t}\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$2.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$2.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$2.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$2.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst positionAttribute = attributes.position;\n\t\tconst normalAttribute = attributes.normal;\n\t\tconst uvAttribute = attributes.uv;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * positionAttribute.count ), 4 ) );\n\n\t\t}\n\n\t\tconst tangentAttribute = this.getAttribute( 'tangent' );\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromBufferAttribute( positionAttribute, a );\n\t\t\tvB.fromBufferAttribute( positionAttribute, b );\n\t\t\tvC.fromBufferAttribute( positionAttribute, c );\n\n\t\t\tuvA.fromBufferAttribute( uvAttribute, a );\n\t\t\tuvB.fromBufferAttribute( uvAttribute, b );\n\t\t\tuvC.fromBufferAttribute( uvAttribute, c );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: index.count\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindex.getX( j + 0 ),\n\t\t\t\t\tindex.getX( j + 1 ),\n\t\t\t\t\tindex.getX( j + 2 )\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromBufferAttribute( normalAttribute, v );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangentAttribute.setXYZW( v, tmp.x, tmp.y, tmp.z, w );\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( index.getX( j + 0 ) );\n\t\t\t\thandleVertex( index.getX( j + 1 ) );\n\t\t\t\thandleVertex( index.getX( j + 2 ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nconst _inverseMatrix$3 = /*@__PURE__*/ new Matrix4();\nconst _ray$3 = /*@__PURE__*/ new Ray();\nconst _sphere$6 = /*@__PURE__*/ new Sphere();\nconst _sphereHitAt = /*@__PURE__*/ new Vector3();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _morphA = /*@__PURE__*/ new Vector3();\n\nconst _uvA$1 = /*@__PURE__*/ new Vector2();\nconst _uvB$1 = /*@__PURE__*/ new Vector2();\nconst _uvC$1 = /*@__PURE__*/ new Vector2();\n\nconst _normalA = /*@__PURE__*/ new Vector3();\nconst _normalB = /*@__PURE__*/ new Vector3();\nconst _normalC = /*@__PURE__*/ new Vector3();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.attributes.position;\n\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\n\t\ttarget.fromBufferAttribute( position, index );\n\n\t\tconst morphInfluences = this.morphTargetInfluences;\n\n\t\tif ( morphPosition && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morphAttribute, index );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( target ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttarget.add( _morphA );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$6.copy( geometry.boundingSphere );\n\t\t_sphere$6.applyMatrix4( matrixWorld );\n\n\t\t// check distance from ray origin to bounding sphere\n\n\t\t_ray$3.copy( raycaster.ray ).recast( raycaster.near );\n\n\t\tif ( _sphere$6.containsPoint( _ray$3.origin ) === false ) {\n\n\t\t\tif ( _ray$3.intersectSphere( _sphere$6, _sphereHitAt ) === null ) return;\n\n\t\t\tif ( _ray$3.origin.distanceToSquared( _sphereHitAt ) > ( raycaster.far - raycaster.near ) ** 2 ) return;\n\n\t\t}\n\n\t\t// convert ray to local space of mesh\n\n\t\t_inverseMatrix$3.copy( matrixWorld ).invert();\n\t\t_ray$3.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$3 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$3.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$3 );\n\n\t}\n\n\t_computeIntersections( raycaster, intersects, rayLocalSpace ) {\n\n\t\tlet intersection;\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\n\t\tconst index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\t\tconst uv = geometry.attributes.uv;\n\t\tconst uv1 = geometry.attributes.uv1;\n\t\tconst normal = geometry.attributes.normal;\n\t\tconst groups = geometry.groups;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\tif ( index !== null ) {\n\n\t\t\t// indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( position !== undefined ) {\n\n\t\t\t// non-indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = i;\n\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkGeometryIntersection( object, material, raycaster, ray, uv, uv1, normal, a, b, c ) {\n\n\tobject.getVertexPosition( a, _vA$1 );\n\tobject.getVertexPosition( b, _vB$1 );\n\tobject.getVertexPosition( c, _vC$1 );\n\n\tconst intersection = checkIntersection( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tif ( uv ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv, c );\n\n\t\t\tintersection.uv = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv1, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv1, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv1, c );\n\n\t\t\tintersection.uv1 = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\t_normalA.fromBufferAttribute( normal, a );\n\t\t\t_normalB.fromBufferAttribute( normal, b );\n\t\t\t_normalC.fromBufferAttribute( normal, c );\n\n\t\t\tintersection.normal = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _normalA, _normalB, _normalC, new Vector3() );\n\n\t\t\tif ( intersection.normal.dot( ray.direction ) > 0 ) {\n\n\t\t\t\tintersection.normal.multiplyScalar( - 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tif ( property.isRenderTargetTexture ) {\n\n\t\t\t\t\tconsole.warn( 'UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().' );\n\t\t\t\t\tdst[ u ][ p ] = null;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t\t}\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\nfunction cloneUniformsGroups( src ) {\n\n\tconst dst = [];\n\n\tfor ( let u = 0; u < src.length; u ++ ) {\n\n\t\tdst.push( src[ u ].clone() );\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction getUnlitUniformColorSpace( renderer ) {\n\n\tif ( renderer.getRenderTarget() === null ) {\n\n\t\t// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398\n\t\treturn renderer.outputColorSpace;\n\n\t}\n\n\treturn ColorManagement.workingColorSpace;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nclass ShaderMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\t\tthis.uniformsGroups = [];\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.forceSinglePass = true;\n\n\t\tthis.extensions = {\n\t\t\tderivatives: false, // set to use derivatives\n\t\t\tfragDepth: false, // set to use fragment depth values\n\t\t\tdrawBuffers: false, // set to use draw buffers\n\t\t\tshaderTextureLOD: false, // set to use shader texture LOD\n\t\t\tclipCullDistance: false, // set to use vertex shader clipping\n\t\t\tmultiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv1': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\t\tthis.uniformsGroups = cloneUniformsGroups( source.uniformsGroups );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.fog = source.fog;\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tdata.lights = this.lights;\n\t\tdata.clipping = this.clipping;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _v3$1 = /*@__PURE__*/ new Vector3();\nconst _minTarget = /*@__PURE__*/ new Vector2();\nconst _maxTarget = /*@__PURE__*/ new Vector2();\n\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n\t */\n\tgetViewBounds( distance, minTarget, maxTarget ) {\n\n\t\t_v3$1.set( - 1, - 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tminTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t\t_v3$1.set( 1, 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tmaxTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t}\n\n\t/**\n\t * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Copies the result into the target Vector2, where x is width and y is height.\n\t */\n\tgetViewSize( distance, target ) {\n\n\t\tthis.getViewBounds( distance, _minTarget, _maxTarget );\n\n\t\treturn target.subVectors( _maxTarget, _minTarget );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst fov = - 90; // negative fov is not an error\nconst aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.coordinateSystem = null;\n\t\tthis.activeMipmapLevel = 0;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdateCoordinateSystem() {\n\n\t\tconst coordinateSystem = this.coordinateSystem;\n\n\t\tconst cameras = this.children.concat();\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = cameras;\n\n\t\tfor ( const camera of cameras ) this.remove( camera );\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, 1, 0 );\n\t\t\tcameraPX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, 1, 0 );\n\t\t\tcameraNX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, - 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\t\tcameraPX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\t\tcameraNX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tfor ( const camera of cameras ) {\n\n\t\t\tthis.add( camera );\n\n\t\t\tcamera.updateMatrixWorld();\n\n\t\t}\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst { renderTarget, activeMipmapLevel } = this;\n\n\t\tif ( this.coordinateSystem !== renderer.coordinateSystem ) {\n\n\t\t\tthis.coordinateSystem = renderer.coordinateSystem;\n\n\t\t\tthis.updateCoordinateSystem();\n\n\t\t}\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst currentActiveCubeFace = renderer.getActiveCubeFace();\n\t\tconst currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\t// mipmaps are generated during the last call of render()\n\t\t// at this point, all sides of the cube render target are defined\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\tthis.isWebGLCubeRenderTarget = true;\n\n\t\tconst image = { width: size, height: size, depth: 1 };\n\t\tconst images = [ image, image, image, image, image, image ];\n\n\t\tthis.texture = new CubeTexture( images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.colorSpace = texture.colorSpace;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$5 = /*@__PURE__*/ new Sphere();\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$5.center.set( 0, 0, 0 );\n\t\t_sphere$5.radius = 0.7071067811865476;\n\t\t_sphere$5.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$7 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\t\tconst size = array.byteLength;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = gl.FLOAT;\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\ttype = gl.HALF_FLOAT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\ttype = gl.UNSIGNED_SHORT;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = gl.SHORT;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = gl.UNSIGNED_INT;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = gl.INT;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = gl.BYTE;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.WebGLAttributes: Unsupported buffer data format: ' + array );\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version,\n\t\t\tsize: size\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRange = attribute._updateRange; // @deprecated, r159\n\t\tconst updateRanges = attribute.updateRanges;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRange.count === - 1 && updateRanges.length === 0 ) {\n\n\t\t\t// Not using update ranges\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t}\n\n\t\tif ( updateRanges.length !== 0 ) {\n\n\t\t\tfor ( let i = 0, l = updateRanges.length; i < l; i ++ ) {\n\n\t\t\t\tconst range = updateRanges[ i ];\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\t\tarray, range.start, range.count );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\t\tarray.subarray( range.start, range.start + range.count ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tattribute.clearUpdateRanges();\n\n\t\t}\n\n\t\t// @deprecated, r159\n\t\tif ( updateRange.count !== - 1 ) {\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, updateRange.offset, updateRange.count );\n\n\t\t\t} else {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray.subarray( updateRange.offset, updateRange.offset + updateRange.count ) );\n\n\t\t\t}\n\n\t\t\tupdateRange.count = - 1; // reset range\n\n\t\t}\n\n\t\tattribute.onUploadCallback();\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tif ( data.size !== attribute.array.byteLength ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: The size of the buffer attribute\\'s array buffer does not match the original size. Resizing buffer attributes is not supported.' );\n\n\t\t\t}\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\n\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\t#endif\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\\tattribute float batchId;\\n\\tuniform highp sampler2D batchingTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( batchId );\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";\n\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\t\\tfloat distanceToPlane, distanceGradient;\\n\\t\\tfloat clipOpacity = 1.0;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\tif ( clipOpacity == 0.0 ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tfloat unionClipOpacity = 1.0;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\t\\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tclipOpacity *= 1.0 - unionClipOpacity;\\n\\t\\t#endif\\n\\t\\tdiffuseColor.a *= clipOpacity;\\n\\t\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tbool clipped = true;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tif ( clipped ) discard;\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\";\n\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat luminance( const in vec3 rgb ) {\\n\\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\\n\\treturn dot( weights, rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar colorspace_pars_fragment = \"\\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\\n\\tvec3( 0.8224621, 0.177538, 0.0 ),\\n\\tvec3( 0.0331941, 0.9668058, 0.0 ),\\n\\tvec3( 0.0170827, 0.0723974, 0.9105199 )\\n);\\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.2249401, - 0.2249404, 0.0 ),\\n\\tvec3( - 0.0420569, 1.0420571, 0.0 ),\\n\\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\\n);\\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\\n}\\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\\n}\\nvec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn sRGBTransferOETF( value );\\n}\";\n\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform mat3 envMapRotation;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\n\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\n\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";\n\nvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n#endif\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\t#if defined ( LEGACY_LIGHTS )\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t#else\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t}\\n\\t\\treturn distanceFalloff;\\n\\t#endif\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\n\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\\t\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphinstance_vertex = \"#ifdef USE_INSTANCING_MORPH\\n\\tfloat morphTargetInfluences[MORPHTARGETS_COUNT];\\n\\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\\t}\\n#endif\";\n\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\t#endif\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\tuniform float morphTargetBaseInfluence;\\n\\t#endif\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\t#endif\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform ivec2 morphTargetsTextureSize;\\n\\t\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t\\t}\\n\\t#else\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t\\t#else\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\n\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\n\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec2 packDepthToRG( in highp float v ) {\\n\\treturn packDepthToRGBA( v ).yx;\\n}\\nfloat unpackRGToDepth( const in highp vec2 v ) {\\n\\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\n\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\n\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\n\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\\tfloat startCompression = 0.8 - 0.04;\\n\\tfloat desaturation = 0.15;\\n\\tcolor *= toneMappingExposure;\\n\\tfloat x = min(color.r, min(color.g, color.b));\\n\\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\\tcolor -= offset;\\n\\tfloat peak = max(color.r, max(color.g, color.b));\\n\\tif (peak < startCompression) return color;\\n\\tfloat d = 1. - startCompression;\\n\\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\\n\\tcolor *= newPeak / peak;\\n\\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\\n\\treturn mix(color, vec3(1, 1, 1), g);\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\n\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\n\nconst fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$g = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nconst fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nconst fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include