From 4cc7559fce7a5e1acf97ef25692af612c4c1037a Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 1 Dec 2016 17:40:17 -0500 Subject: [PATCH 01/26] Add support for s3tc, pvrtc, and etc1 compressed textures and loading them from KTX files. --- CHANGES.md | 1 + Source/Core/PixelFormat.js | 152 ++++++- Source/Core/WebGLConstants.js | 15 + Source/Core/loadKTX.js | 198 +++++++++ Source/Renderer/Context.js | 44 +- Source/Renderer/Texture.js | 51 ++- Source/Scene/ImageryLayer.js | 25 +- Source/Scene/ImageryProvider.js | 8 +- Source/Scene/Model.js | 99 +++-- Specs/Core/loadKTXSpec.js | 375 ++++++++++++++++++ Specs/Data/Images/Green4x4.ktx | Bin 0 -> 164 bytes Specs/Data/Images/Green4x4DXT1.KTX | Bin 0 -> 76 bytes Specs/Data/Images/Green4x4ETC1.ktx | Bin 0 -> 108 bytes Specs/Data/Images/Green4x4PVR.ktx | Bin 0 -> 132 bytes .../CesiumTexturedBoxTest.glb | Bin 0 -> 267852 bytes .../Models/Box-Textured-KTX-Binary/Readme.txt | 1 + .../CesiumTexturedBoxTest.gltf | 353 +++++++++++++++++ .../Box-Textured-KTX-Embedded/Readme.txt | 1 + .../CesiumTexturedBoxTest.bin | Bin 0 -> 840 bytes .../CesiumTexturedBoxTest.dae | 126 ++++++ .../CesiumTexturedBoxTest.gltf | 339 ++++++++++++++++ .../CesiumTexturedBoxTest0FS.glsl | 18 + .../CesiumTexturedBoxTest0VS.glsl | 15 + .../Box-Textured-KTX/Cesium_Logo_Flat.ktx | Bin 0 -> 262244 bytes .../Box-Textured-KTX/Cesium_Logo_Flat.png | Bin 0 -> 34222 bytes Specs/Renderer/TextureSpec.js | 199 ++++++++++ Specs/Scene/ModelSpec.js | 24 ++ server.js | 1 + web.config | 2 + 29 files changed, 1995 insertions(+), 52 deletions(-) create mode 100644 Source/Core/loadKTX.js create mode 100644 Specs/Core/loadKTXSpec.js create mode 100644 Specs/Data/Images/Green4x4.ktx create mode 100644 Specs/Data/Images/Green4x4DXT1.KTX create mode 100644 Specs/Data/Images/Green4x4ETC1.ktx create mode 100644 Specs/Data/Images/Green4x4PVR.ktx create mode 100644 Specs/Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb create mode 100644 Specs/Data/Models/Box-Textured-KTX-Binary/Readme.txt create mode 100644 Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf create mode 100644 Specs/Data/Models/Box-Textured-KTX-Embedded/Readme.txt create mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.bin create mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae create mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf create mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl create mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl create mode 100644 Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.ktx create mode 100644 Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.png diff --git a/CHANGES.md b/CHANGES.md index 896831df2990..de74928178c5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,6 +19,7 @@ Change Log * Added `divideComponents` function to `Cartesian2`, `Cartesian3`, and `Cartesian4`. [#4750](https://github.com/AnalyticalGraphicsInc/cesium/pull/4750) * Added `WebGLConstants` enum. Previously, this was part of the private Renderer API. [#4731](https://github.com/AnalyticalGraphicsInc/cesium/pull/4731) * Fixed tooltips for gallery thumbnails in Sandcastle [#4702](https://github.com/AnalyticalGraphicsInc/cesium/pull/4702) +* Added compressed texture support. The supported extensions are `WEBGL_compressed_s3tc`, `WEBGL_compressed_texture_pvrtc`, and `WEBGL_compressed_texture_etc1`. [#4758](https://github.com/AnalyticalGraphicsInc/cesium/pull/4758) ### 1.28 - 2016-12-01 diff --git a/Source/Core/PixelFormat.js b/Source/Core/PixelFormat.js index 2b95611e7603..ee8f9c48c12d 100644 --- a/Source/Core/PixelFormat.js +++ b/Source/Core/PixelFormat.js @@ -69,6 +69,78 @@ define([ */ LUMINANCE_ALPHA : WebGLConstants.LUMINANCE_ALPHA, + /** + * A pixel format containing red, green, and blue channels that is DXT1 compressed. + * + * @type {Number} + * @constant + */ + RGB_DXT1 : WebGLConstants.COMPRESSED_RGB_S3TC_DXT1_EXT, + + /** + * A pixel format containing red, green, blue, and alpha channels that is DXT1 compressed. + * + * @type {Number} + * @constant + */ + RGBA_DXT1 : WebGLConstants.COMPRESSED_RGBA_S3TC_DXT1_EXT, + + /** + * A pixel format containing red, green, blue, and alpha channels that is DXT3 compressed. + * + * @type {Number} + * @constant + */ + RGBA_DXT3 : WebGLConstants.COMPRESSED_RGBA_S3TC_DXT3_EXT, + + /** + * A pixel format containing red, green, blue, and alpha channels that is DXT5 compressed. + * + * @type {Number} + * @constant + */ + RGBA_DXT5 : WebGLConstants.COMPRESSED_RGBA_S3TC_DXT5_EXT, + + /** + * A pixel format containing red, green, and blue channels that is PVR 4bpp compressed. + * + * @type {Number} + * @constant + */ + RGB_PVRTC_4BPPV1 : WebGLConstants.COMPRESSED_RGB_PVRTC_4BPPV1_IMG, + + /** + * A pixel format containing red, green, and blue channels that is PVR 2bpp compressed. + * + * @type {Number} + * @constant + */ + RGB_PVRTC_2BPPV1 : WebGLConstants.COMPRESSED_RGB_PVRTC_2BPPV1_IMG, + + /** + * A pixel format containing red, green, blue, and alpha channels that is PVR 4bpp compressed. + * + * @type {Number} + * @constant + */ + RGBA_PVRTC_4BPPV1 : WebGLConstants.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, + + /** + * A pixel format containing red, green, blue, and alpha channels that is PVR 2bpp compressed. + * + * @type {Number} + * @constant + */ + RGBA_PVRTC_2BPPV1 : WebGLConstants.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, + + /** + * A pixel format containing red, green, and blue channels that is ETC1 compressed. + * + * @type {Number} + * @constant + */ + RGB_ETC1 : WebGLConstants.COMPRESSED_RGB_ETC1_WEBGL, + /** * @private */ @@ -79,7 +151,16 @@ define([ pixelFormat === PixelFormat.RGB || pixelFormat === PixelFormat.RGBA || pixelFormat === PixelFormat.LUMINANCE || - pixelFormat === PixelFormat.LUMINANCE_ALPHA; + pixelFormat === PixelFormat.LUMINANCE_ALPHA || + pixelFormat === PixelFormat.RGB_DXT1 || + pixelFormat === PixelFormat.RGBA_DXT1 || + pixelFormat === PixelFormat.RGBA_DXT3 || + pixelFormat === PixelFormat.RGBA_DXT5 || + pixelFormat === PixelFormat.RGB_PVRTC_4BPPV1 || + pixelFormat === PixelFormat.RGB_PVRTC_2BPPV1 || + pixelFormat === PixelFormat.RGBA_PVRTC_4BPPV1 || + pixelFormat === PixelFormat.RGBA_PVRTC_2BPPV1 || + pixelFormat === PixelFormat.RGB_ETC1; }, /** @@ -99,6 +180,75 @@ define([ isDepthFormat : function(pixelFormat) { return pixelFormat === PixelFormat.DEPTH_COMPONENT || pixelFormat === PixelFormat.DEPTH_STENCIL; + }, + + /** + * @private + */ + isCompressedFormat : function(pixelFormat) { + return pixelFormat === PixelFormat.RGB_DXT1 || + pixelFormat === PixelFormat.RGBA_DXT1 || + pixelFormat === PixelFormat.RGBA_DXT3 || + pixelFormat === PixelFormat.RGBA_DXT5 || + pixelFormat === PixelFormat.RGB_PVRTC_4BPPV1 || + pixelFormat === PixelFormat.RGB_PVRTC_2BPPV1 || + pixelFormat === PixelFormat.RGBA_PVRTC_4BPPV1 || + pixelFormat === PixelFormat.RGBA_PVRTC_2BPPV1 || + pixelFormat === PixelFormat.RGB_ETC1; + }, + + /** + * @private + */ + isDXTFormat : function(pixelFormat) { + return pixelFormat === PixelFormat.RGB_DXT1 || + pixelFormat === PixelFormat.RGBA_DXT1 || + pixelFormat === PixelFormat.RGBA_DXT3 || + pixelFormat === PixelFormat.RGBA_DXT5; + }, + + /** + * @private + */ + isPVRTCFormat : function(pixelFormat) { + return pixelFormat === PixelFormat.RGB_PVRTC_4BPPV1 || + pixelFormat === PixelFormat.RGB_PVRTC_2BPPV1 || + pixelFormat === PixelFormat.RGBA_PVRTC_4BPPV1 || + pixelFormat === PixelFormat.RGBA_PVRTC_2BPPV1; + }, + + /** + * @private + */ + isETC1Format : function(pixelFormat) { + return pixelFormat === PixelFormat.RGB_ETC1; + }, + + /** + * @private + */ + compressedTextureSize : function(pixelFormat, width, height) { + switch (pixelFormat) { + case PixelFormat.RGB_DXT1: + case PixelFormat.RGBA_DXT1: + case PixelFormat.RGB_ETC1: + return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8; + + case PixelFormat.RGBA_DXT3: + case PixelFormat.RGBA_DXT5: + return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16; + + case PixelFormat.RGB_PVRTC_4BPPV1: + case PixelFormat.RGBA_PVRTC_4BPPV1: + return Math.floor((Math.max(width, 8) * Math.max(height, 8) * 4 + 7) / 8); + + case PixelFormat.RGB_PVRTC_2BPPV1: + case PixelFormat.RGBA_PVRTC_2BPPV1: + return Math.floor((Math.max(width, 16) * Math.max(height, 8) * 2 + 7) / 8); + + default: + return 0; + } } }; diff --git a/Source/Core/WebGLConstants.js b/Source/Core/WebGLConstants.js index 0281f4c0dff9..62a0da8c26d2 100644 --- a/Source/Core/WebGLConstants.js +++ b/Source/Core/WebGLConstants.js @@ -315,6 +315,21 @@ define([ UNPACK_COLORSPACE_CONVERSION_WEBGL : 0x9243, BROWSER_DEFAULT_WEBGL : 0x9244, + // WEBGL_compressed_texture_s3tc + COMPRESSED_RGB_S3TC_DXT1_EXT : 0x83F0, + COMPRESSED_RGBA_S3TC_DXT1_EXT : 0x83F1, + COMPRESSED_RGBA_S3TC_DXT3_EXT : 0x83F2, + COMPRESSED_RGBA_S3TC_DXT5_EXT : 0x83F3, + + // WEBGL_compressed_texture_pvrtc + COMPRESSED_RGB_PVRTC_4BPPV1_IMG : 0x8C00, + COMPRESSED_RGB_PVRTC_2BPPV1_IMG : 0x8C01, + COMPRESSED_RGBA_PVRTC_4BPPV1_IMG : 0x8C02, + COMPRESSED_RGBA_PVRTC_2BPPV1_IMG : 0x8C03, + + // WEBGL_compressed_texture_etc1 + COMPRESSED_RGB_ETC1_WEBGL : 0x8D64, + // Desktop OpenGL DOUBLE : 0x140A, diff --git a/Source/Core/loadKTX.js b/Source/Core/loadKTX.js new file mode 100644 index 000000000000..bed3be598a2c --- /dev/null +++ b/Source/Core/loadKTX.js @@ -0,0 +1,198 @@ +/*global define*/ +define([ + '../ThirdParty/when', + './defined', + './DeveloperError', + './loadArrayBuffer', + './PixelFormat', + './RuntimeError' + ], function( + when, + defined, + DeveloperError, + loadArrayBuffer, + PixelFormat, + RuntimeError) { + 'use strict'; + + var fileIdentifier = [0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A]; + var endiannessTest = 0x04030201; + + var sizeOfUint32 = 4; + + function parseKTX(data) { + var byteBuffer = new Uint8Array(data); + + var isKTX = true; + for (var i = 0; i < fileIdentifier.length; ++i) { + if (fileIdentifier[i] !== byteBuffer[i]) { + isKTX = false; + break; + } + } + + if (!isKTX) { + throw new RuntimeError('Invalid KTX file.'); + } + + var view; + var byteOffset; + + if (defined(data.buffer)) { + view = new DataView(data.buffer); + byteOffset = data.byteOffset; + } else { + view = new DataView(data); + byteOffset = 0; + } + + byteOffset += 12; // skip identifier + + var endianness = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + if (endianness !== endiannessTest) { + // TODO: Switch endianness? + throw new RuntimeError('File is the wrong endianness.'); + } + + var glType = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var glTypeSize = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var glFormat = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var glInternalFormat = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var glBaseInternalFormat = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var pixelWidth = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var pixelHeight = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var pixelDepth = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var numberOfArrayElements = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var numberOfFaces = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var numberOfMipmapLevels = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + var bytesOfKeyValueByteSize = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + + // TODO: read metadata? At least need to check for KTXorientation + byteOffset += bytesOfKeyValueByteSize; + + var imageSize = view.getUint32(byteOffset, true); + byteOffset += sizeOfUint32; + + var texture = new Uint8Array(data, byteOffset, imageSize); + + // Some tools use a sized internal format. + // See table 2: https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml + if (glInternalFormat === 0x8051) { // GL_RGB8 + glInternalFormat = PixelFormat.RGB; + } else if (glInternalFormat === 0x8058) { // GL_RGBA8 + glInternalFormat = PixelFormat.RGBA; + } + + if (!PixelFormat.validate(glInternalFormat)) { + throw new RuntimeError('glInternalFormat is not a valid format.'); + } + + if (PixelFormat.isCompressedFormat(glInternalFormat)) { + if (glType !== 0) { + throw new RuntimeError('glType must be zero when the texture is compressed.'); + } + if (glTypeSize !== 1) { + throw new RuntimeError('The type size for compressed textures must be 1.'); + } + if (glFormat !== 0) { + throw new RuntimeError('glFormat must be zero when the texture is compressed.'); + } + if (numberOfMipmapLevels === 0) { + throw new RuntimeError('Generating mipmaps for a compressed texture is unsupported.'); + } + } else { + if (glBaseInternalFormat !== glFormat) { + throw new RuntimeError('The base internal format must be the same as the format for uncompressed textures.'); + } + } + + if (pixelDepth !== 0) { + throw new RuntimeError('3D textures are unsupported.'); + } + + // TODO: support texture arrays and cubemaps + if (numberOfArrayElements !== 0) { + throw new RuntimeError('Texture arrays are unsupported.'); + } + if (numberOfFaces !== 1) { + throw new RuntimeError('Cubemaps are unsupported.'); + } + + // TODO: multiple mipmap levels + if (PixelFormat.isCompressedFormat(glInternalFormat) && numberOfMipmapLevels > 1) { + var levelSize = PixelFormat.compressedTextureSize(glInternalFormat, pixelWidth, pixelHeight); + texture = new Uint8Array(texture.buffer, 0, levelSize); + } + + return { + bufferView : texture, + width : pixelWidth, + height : pixelHeight, + internalFormat : glInternalFormat + }; + } + + /** + * Asynchronously loads and parses the given URL to a KTX file or parses the raw binary data of a KTX file. + * Returns a promise that will resolve to an object containing the image buffer, width, height and format once loaded, + * or reject if the URL failed to load or failed to parse the data. The data is loaded + * using XMLHttpRequest, which means that in order to make requests to another origin, + * the server must have Cross-Origin Resource Sharing (CORS) headers enabled. + * + * @exports loadKTX + * + * @param {String|Promise.|ArrayBuffer} urlOrBuffer The URL of the binary data, a promise for the URL, or an ArrayBuffer. + * @param {Object} [headers] HTTP headers to send with the requests. + * @returns {Promise.} A promise that will resolve to the requested data when loaded. + * + * + * @example + * // load a single URL asynchronously + * Cesium.loadKTX('some/url').then(function(ktxData) { + * var width = ktxData.width; + * var height = ktxData.height; + * var format = ktxData.internalFormat; + * var arrayBufferView = ktxData.bufferView; + * // use the data to create a texture + * }).otherwise(function(error) { + * // an error occurred + * }); + * + * @see {@link https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/|KTX file format} + * @see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing} + * @see {@link http://wiki.commonjs.org/wiki/Promises/A|CommonJS Promises/A} + */ + function loadKTX(urlOrBuffer, headers) { + //>>includeStart('debug', pragmas.debug); + if (!defined(urlOrBuffer)) { + throw new DeveloperError('urlOrBuffer is required.'); + } + //>>includeEnd('debug'); + + var loadPromise; + if (urlOrBuffer instanceof ArrayBuffer || ArrayBuffer.isView(urlOrBuffer)) { + loadPromise = when.resolve(urlOrBuffer); + } else { + loadPromise = loadArrayBuffer(urlOrBuffer, headers); + } + + return loadPromise.then(function(data) { + return parseKTX(data); + }); + } + + return loadKTX; +}); \ No newline at end of file diff --git a/Source/Renderer/Context.js b/Source/Renderer/Context.js index 20aa9ded0b77..634b56d51385 100644 --- a/Source/Renderer/Context.js +++ b/Source/Renderer/Context.js @@ -271,7 +271,10 @@ define([ this._depthTexture = !!getExtension(gl, ['WEBGL_depth_texture', 'WEBKIT_WEBGL_depth_texture']); this._textureFloat = !!getExtension(gl, ['OES_texture_float']); this._fragDepth = !!getExtension(gl, ['EXT_frag_depth']); - this._debugShaders = getExtension(gl, ['WEBGL_debug_shaders']); + this._debugShaders = !!getExtension(gl, ['WEBGL_debug_shaders']); + this._s3tc = !!getExtension(gl, ['WEBGL_compressed_s3tc', 'MOZ_WEBGL_compressed_texture_s3tc', 'WEBKIT_WEBGL_compressed_texture_s3tc']); + this._pvrtc = !!getExtension(gl, ['WEBGL_compressed_texture_pvrtc', 'WEBKIT_WEBGL_compressed_texture_pvrtc']); + this._etc1 = !!getExtension(gl, ['WEBGL_compressed_texture_etc1']); var textureFilterAnisotropic = options.allowTextureFilterAnisotropic ? getExtension(gl, ['EXT_texture_filter_anisotropic', 'WEBKIT_EXT_texture_filter_anisotropic']) : undefined; this._textureFilterAnisotropic = textureFilterAnisotropic; @@ -593,6 +596,45 @@ define([ } }, + /** + * true if WEBGL_texture_compression_s3tc is supported. This extension provides + * access to DXT compressed textures. + * @memberof Context.prototype + * @type {Boolean} + * @see {@link https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/} + */ + s3tc : { + get : function() { + return this._s3tc; + } + }, + + /** + * true if WEBGL_texture_compression_pvrtc is supported. This extension provides + * access to PVR compressed textures. + * @memberof Context.prototype + * @type {Boolean} + * @see {@link https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/} + */ + pvrtc : { + get : function() { + return this._pvrtc; + } + }, + + /** + * true if WEBGL_texture_compression_etc1 is supported. This extension provides + * access to ETC1 compressed textures. + * @memberof Context.prototype + * @type {Boolean} + * @see {@link https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc1/} + */ + etc1 : { + get : function() { + return this._etc1; + } + }, + /** * true if the OES_vertex_array_object extension is supported. This * extension can improve performance by reducing the overhead of switching vertex arrays. diff --git a/Source/Renderer/Texture.js b/Source/Renderer/Texture.js index b1c80ee0d6c3..242c91bfba4d 100644 --- a/Source/Renderer/Texture.js +++ b/Source/Renderer/Texture.js @@ -60,6 +60,8 @@ define([ var pixelDatatype = defaultValue(options.pixelDatatype, PixelDatatype.UNSIGNED_BYTE); var internalFormat = pixelFormat; + var isCompressed = PixelFormat.isCompressedFormat(internalFormat); + if (context.webgl2) { if (pixelFormat === PixelFormat.DEPTH_STENCIL) { internalFormat = WebGLConstants.DEPTH24_STENCIL8; @@ -97,7 +99,7 @@ define([ throw new DeveloperError('Invalid options.pixelFormat.'); } - if (!PixelDatatype.validate(pixelDatatype)) { + if (!isCompressed && !PixelDatatype.validate(pixelDatatype)) { throw new DeveloperError('Invalid options.pixelDatatype.'); } @@ -123,6 +125,24 @@ define([ throw new DeveloperError('When options.pixelFormat is DEPTH_COMPONENT or DEPTH_STENCIL, this WebGL implementation must support WEBGL_depth_texture. Check context.depthTexture.'); } } + + if (isCompressed) { + if (!defined(source) || !defined(source.arrayBufferView)) { + throw new DeveloperError('When options.pixelFormat is compressed, options.source.arrayBufferView must be defined.'); + } + + if (PixelFormat.isDXTFormat(internalFormat) && !context.s3tc) { + throw new DeveloperError('When options.pixelFormat is S3TC compressed, this WebGL implementation must support the WEBGL_texture_compression_s3tc extension. Check context.s3tc.'); + } else if (PixelFormat.isPVRTCFormat(internalFormat) && !context.pvrtc) { + throw new DeveloperError('When options.pixelFormat is PVRTC compressed, this WebGL implementation must support the WEBGL_texture_compression_pvrtc extension. Check context.pvrtc.'); + } else if (PixelFormat.isETC1Format(internalFormat) && !context.etc1) { + throw new DeveloperError('When options.pixelFormat is ETC1 compressed, this WebGL implementation must support the WEBGL_texture_compression_etc1 extension. Check context.etc1.'); + } + + if (PixelFormat.compressedTextureSize(internalFormat, width, height) !== source.arrayBufferView.byteLength) { + throw new DeveloperError('The byte length of the array buffer is invalid for the compressed texture with the given width and height.'); + } + } //>>includeEnd('debug'); // Use premultiplied alpha for opaque textures should perform better on Chrome: @@ -144,7 +164,11 @@ define([ if (defined(source.arrayBufferView)) { // Source: typed array - gl.texImage2D(textureTarget, 0, internalFormat, width, height, 0, pixelFormat, pixelDatatype, source.arrayBufferView); + if (isCompressed) { + gl.compressedTexImage2D(textureTarget, 0, internalFormat, width, height, 0, source.arrayBufferView); + } else { + gl.texImage2D(textureTarget, 0, internalFormat, width, height, 0, pixelFormat, pixelDatatype, source.arrayBufferView); + } } else if (defined(source.framebuffer)) { // Source: framebuffer if (source.framebuffer !== context.defaultFramebuffer) { @@ -197,7 +221,7 @@ define([ * @returns {Texture} A texture with contents from the framebuffer. * * @exception {DeveloperError} Invalid pixelFormat. - * @exception {DeveloperError} pixelFormat cannot be DEPTH_COMPONENT or DEPTH_STENCIL. + * @exception {DeveloperError} pixelFormat cannot be DEPTH_COMPONENT, DEPTH_STENCIL or a compressed format. * @exception {DeveloperError} framebufferXOffset must be greater than or equal to zero. * @exception {DeveloperError} framebufferYOffset must be greater than or equal to zero. * @exception {DeveloperError} framebufferXOffset + width must be less than or equal to canvas.clientWidth. @@ -237,27 +261,21 @@ define([ if (!defined(options.context)) { throw new DeveloperError('context is required.'); } - if (!PixelFormat.validate(pixelFormat)) { throw new DeveloperError('Invalid pixelFormat.'); } - - if (PixelFormat.isDepthFormat(pixelFormat)) { - throw new DeveloperError('pixelFormat cannot be DEPTH_COMPONENT or DEPTH_STENCIL.'); + if (PixelFormat.isDepthFormat(pixelFormat) || PixelFormat.isCompressedFormat(pixelFormat)) { + throw new DeveloperError('pixelFormat cannot be DEPTH_COMPONENT, DEPTH_STENCIL or a compressed format.'); } - if (framebufferXOffset < 0) { throw new DeveloperError('framebufferXOffset must be greater than or equal to zero.'); } - if (framebufferYOffset < 0) { throw new DeveloperError('framebufferYOffset must be greater than or equal to zero.'); } - if (framebufferXOffset + width > gl.drawingBufferWidth) { throw new DeveloperError('framebufferXOffset + width must be less than or equal to drawingBufferWidth'); } - if (framebufferYOffset + height > gl.drawingBufferHeight) { throw new DeveloperError('framebufferYOffset + height must be less than or equal to drawingBufferHeight.'); } @@ -379,6 +397,7 @@ define([ * @param {Number} [yOffset=0] The offset in the y direction within the texture to copy into. * * @exception {DeveloperError} Cannot call copyFrom when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL. + * @exception {DeveloperError} Cannot call copyFrom with a compressed texture pixel format. * @exception {DeveloperError} xOffset must be greater than or equal to zero. * @exception {DeveloperError} yOffset must be greater than or equal to zero. * @exception {DeveloperError} xOffset + source.width must be less than or equal to width. @@ -403,6 +422,9 @@ define([ if (PixelFormat.isDepthFormat(this._pixelFormat)) { throw new DeveloperError('Cannot call copyFrom when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL.'); } + if (PixelFormat.isCompressedFormat(this._pixelFormat)) { + throw new DeveloperError('Cannot call copyFrom with a compressed texture pixel format.'); + } if (xOffset < 0) { throw new DeveloperError('xOffset must be greater than or equal to zero.'); } @@ -445,6 +467,7 @@ define([ * * @exception {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL. * @exception {DeveloperError} Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT. + * @exception {DeveloperError} Cannot call copyFrom with a compressed texture pixel format. * @exception {DeveloperError} This texture was destroyed, i.e., destroy() was called. * @exception {DeveloperError} xOffset must be greater than or equal to zero. * @exception {DeveloperError} yOffset must be greater than or equal to zero. @@ -468,6 +491,9 @@ define([ if (this._pixelDatatype === PixelDatatype.FLOAT) { throw new DeveloperError('Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT.'); } + if (PixelFormat.isCompressedFormat(this._pixelFormat)) { + throw new DeveloperError('Cannot call copyFrom with a compressed texture pixel format.'); + } if (xOffset < 0) { throw new DeveloperError('xOffset must be greater than or equal to zero.'); } @@ -513,6 +539,9 @@ define([ if (PixelFormat.isDepthFormat(this._pixelFormat)) { throw new DeveloperError('Cannot call generateMipmap when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL.'); } + if (PixelFormat.isCompressedFormat(this._pixelFormat)) { + throw new DeveloperError('Cannot call generateMipmap with a compressed pixel format.'); + } if (this._width > 1 && !CesiumMath.isPowerOfTwo(this._width)) { throw new DeveloperError('width must be a power of two to call generateMipmap().'); } diff --git a/Source/Scene/ImageryLayer.js b/Source/Scene/ImageryLayer.js index 3123f580ec78..8181ca91774d 100644 --- a/Source/Scene/ImageryLayer.js +++ b/Source/Scene/ImageryLayer.js @@ -722,11 +722,24 @@ define([ } // Imagery does not need to be discarded, so upload it to WebGL. - var texture = new Texture({ - context : context, - source : imagery.image, - pixelFormat : imageryProvider.hasAlphaChannel ? PixelFormat.RGBA : PixelFormat.RGB - }); + var texture; + if (defined(imagery.image.internalFormat)) { + texture = new Texture({ + context : context, + pixelFormat : imagery.image.internalFormat, + width : imagery.image.width, + height : imagery.image.height, + source : { + arrayBufferView : imagery.image.bufferView + } + }); + } else { + texture = new Texture({ + context : context, + source : imagery.image, + pixelFormat : imageryProvider.hasAlphaChannel ? PixelFormat.RGBA : PixelFormat.RGB + }); + } if (imageryProvider.tilingScheme instanceof WebMercatorTilingScheme) { imagery.textureWebMercator = texture; @@ -739,7 +752,7 @@ define([ function finalizeReprojectTexture(imageryLayer, context, imagery, texture) { // Use mipmaps if this texture has power-of-two dimensions. - if (CesiumMath.isPowerOfTwo(texture.width) && CesiumMath.isPowerOfTwo(texture.height)) { + if (!PixelFormat.isCompressedFormat(texture.pixelFormat) && CesiumMath.isPowerOfTwo(texture.width) && CesiumMath.isPowerOfTwo(texture.height)) { var mipmapSampler = context.cache.imageryLayer_mipmapSampler; if (!defined(mipmapSampler)) { var maximumSupportedAnisotropy = ContextLimits.maximumTextureFilterAnisotropy; diff --git a/Source/Scene/ImageryProvider.js b/Source/Scene/ImageryProvider.js index fdfa6dec444a..974e820a52a3 100644 --- a/Source/Scene/ImageryProvider.js +++ b/Source/Scene/ImageryProvider.js @@ -5,6 +5,7 @@ define([ '../Core/DeveloperError', '../Core/loadImage', '../Core/loadImageViaBlob', + '../Core/loadKTX', '../Core/throttleRequestByServer' ], function( defined, @@ -12,6 +13,7 @@ define([ DeveloperError, loadImage, loadImageViaBlob, + loadKTX, throttleRequestByServer) { 'use strict'; @@ -294,6 +296,8 @@ define([ */ ImageryProvider.prototype.pickFeatures = DeveloperError.throwInstantiationError; + var ktxRegex = /(^data:image\/ktx)|(\.ktx$)/i; + /** * Loads an image from a given URL. If the server referenced by the URL already has * too many requests pending, this function will instead return undefined, indicating @@ -306,7 +310,9 @@ define([ * Image or a Canvas DOM object. */ ImageryProvider.loadImage = function(imageryProvider, url) { - if (defined(imageryProvider.tileDiscardPolicy)) { + if (ktxRegex.test(url)) { + return throttleRequestByServer(url, loadKTX); + } else if (defined(imageryProvider.tileDiscardPolicy)) { return throttleRequestByServer(url, loadImageViaBlob); } return throttleRequestByServer(url, loadImage); diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index 7a2ca8bd8811..d7692813ee09 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -23,11 +23,13 @@ define([ '../Core/loadArrayBuffer', '../Core/loadImage', '../Core/loadImageFromTypedArray', + '../Core/loadKTX', '../Core/loadText', '../Core/Math', '../Core/Matrix2', '../Core/Matrix3', '../Core/Matrix4', + '../Core/PixelFormat', '../Core/PrimitiveType', '../Core/Quaternion', '../Core/Queue', @@ -86,11 +88,13 @@ define([ loadArrayBuffer, loadImage, loadImageFromTypedArray, + loadKTX, loadText, CesiumMath, Matrix2, Matrix3, Matrix4, + PixelFormat, PrimitiveType, Quaternion, Queue, @@ -1390,11 +1394,16 @@ define([ loadResources.texturesToCreate.enqueue({ id : id, image : image, - bufferView : undefined + bufferView : image.bufferView, + width : image.width, + height : image.height, + internalFormat : image.internalFormat }); }; } + var ktxRegex = /(^data:image\/ktx)|(\.ktx$)/i; + function parseTextures(model) { var images = model.gltf.images; var textures = model.gltf.textures; @@ -1415,7 +1424,12 @@ define([ ++model._loadResources.pendingTextureLoads; var uri = new Uri(gltfImage.uri); var imagePath = uri.resolve(model._baseUri).toString(); - loadImage(imagePath).then(imageLoad(model, id)).otherwise(getFailedLoadFunction(model, 'image', imagePath)); + + if (ktxRegex.test(imagePath)) { + loadKTX(imagePath).then(imageLoad(model, id)).otherwise(getFailedLoadFunction(model, 'image', imagePath)); + } else { + loadImage(imagePath).then(imageLoad(model, id)).otherwise(getFailedLoadFunction(model, 'image', imagePath)); + } } } } @@ -1949,12 +1963,17 @@ define([ var gltf = model.gltf; var bufferView = gltf.bufferViews[gltfTexture.bufferView]; - var onload = getOnImageCreatedFromTypedArray(loadResources, gltfTexture); var onerror = getFailedLoadFunction(model, 'image', 'id: ' + gltfTexture.id + ', bufferView: ' + gltfTexture.bufferView); - loadImageFromTypedArray(loadResources.getBuffer(bufferView), gltfTexture.mimeType). - then(onload).otherwise(onerror); - ++loadResources.pendingBufferViewToImage; + if (gltfTexture.mimeType === 'image/ktx') { + loadKTX(loadResources.getBuffer(bufferView)).then(imageLoad(model, gltfTexture.id)).otherwise(onerror); + ++model._loadResources.pendingTextureLoads; + } else { + var onload = getOnImageCreatedFromTypedArray(loadResources, gltfTexture); + loadImageFromTypedArray(loadResources.getBuffer(bufferView), gltfTexture.mimeType) + .then(onload).otherwise(onerror); + ++loadResources.pendingBufferViewToImage; + } } } @@ -1988,46 +2007,62 @@ define([ var rendererSamplers = model._rendererResources.samplers; var sampler = rendererSamplers[texture.sampler]; + var internalFormat = gltfTexture.internalFormat; + var mipmap = - (sampler.minificationFilter === TextureMinificationFilter.NEAREST_MIPMAP_NEAREST) || - (sampler.minificationFilter === TextureMinificationFilter.NEAREST_MIPMAP_LINEAR) || - (sampler.minificationFilter === TextureMinificationFilter.LINEAR_MIPMAP_NEAREST) || - (sampler.minificationFilter === TextureMinificationFilter.LINEAR_MIPMAP_LINEAR); + (!(defined(internalFormat) && PixelFormat.isCompressedFormat(internalFormat))) && + ((sampler.minificationFilter === TextureMinificationFilter.NEAREST_MIPMAP_NEAREST) || + (sampler.minificationFilter === TextureMinificationFilter.NEAREST_MIPMAP_LINEAR) || + (sampler.minificationFilter === TextureMinificationFilter.LINEAR_MIPMAP_NEAREST) || + (sampler.minificationFilter === TextureMinificationFilter.LINEAR_MIPMAP_LINEAR)); var requiresNpot = mipmap || (sampler.wrapS === TextureWrap.REPEAT) || (sampler.wrapS === TextureWrap.MIRRORED_REPEAT) || (sampler.wrapT === TextureWrap.REPEAT) || (sampler.wrapT === TextureWrap.MIRRORED_REPEAT); - var source = gltfTexture.image; - var npot = !CesiumMath.isPowerOfTwo(source.width) || !CesiumMath.isPowerOfTwo(source.height); - - if (requiresNpot && npot) { - // WebGL requires power-of-two texture dimensions for mipmapping and REPEAT/MIRRORED_REPEAT wrap modes. - var canvas = document.createElement('canvas'); - canvas.width = CesiumMath.nextPowerOfTwo(source.width); - canvas.height = CesiumMath.nextPowerOfTwo(source.height); - var canvasContext = canvas.getContext('2d'); - canvasContext.drawImage(source, 0, 0, source.width, source.height, 0, 0, canvas.width, canvas.height); - source = canvas; - } - var tx; + var source = gltfTexture.image; - if (texture.target === WebGLConstants.TEXTURE_2D) { + if (defined(internalFormat) && texture.target === WebGLConstants.TEXTURE_2D) { tx = new Texture({ context : context, - source : source, - pixelFormat : texture.internalFormat, - pixelDatatype : texture.type, - sampler : sampler, + source : { + arrayBufferView : gltfTexture.bufferView + }, + width : gltfTexture.width, + height : gltfTexture.height, + pixelFormat : internalFormat, flipY : false }); - } - // GLTF_SPEC: Support TEXTURE_CUBE_MAP. https://github.com/KhronosGroup/glTF/issues/40 + } else if (defined(source)) { + var npot = !CesiumMath.isPowerOfTwo(source.width) || !CesiumMath.isPowerOfTwo(source.height); + + if (requiresNpot && npot) { + // WebGL requires power-of-two texture dimensions for mipmapping and REPEAT/MIRRORED_REPEAT wrap modes. + var canvas = document.createElement('canvas'); + canvas.width = CesiumMath.nextPowerOfTwo(source.width); + canvas.height = CesiumMath.nextPowerOfTwo(source.height); + var canvasContext = canvas.getContext('2d'); + canvasContext.drawImage(source, 0, 0, source.width, source.height, 0, 0, canvas.width, canvas.height); + source = canvas; + } - if (mipmap) { - tx.generateMipmap(); + if (texture.target === WebGLConstants.TEXTURE_2D) { + tx = new Texture({ + context : context, + source : source, + pixelFormat : texture.internalFormat, + pixelDatatype : texture.type, + sampler : sampler, + flipY : false + }); + } + // GLTF_SPEC: Support TEXTURE_CUBE_MAP. https://github.com/KhronosGroup/glTF/issues/40 + + if (mipmap) { + tx.generateMipmap(); + } } model._rendererResources.textures[gltfTexture.id] = tx; diff --git a/Specs/Core/loadKTXSpec.js b/Specs/Core/loadKTXSpec.js new file mode 100644 index 000000000000..3718ca996ca4 --- /dev/null +++ b/Specs/Core/loadKTXSpec.js @@ -0,0 +1,375 @@ +/*global defineSuite*/ +defineSuite([ + 'Core/loadKTX', + 'Core/PixelFormat', + 'Core/RequestErrorEvent', + 'Core/RuntimeError' + ], function( + loadKTX, + PixelFormat, + RequestErrorEvent, + RuntimeError) { + 'use strict'; + + var validCompressed = new Uint8Array([171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10, 1, 2, 3, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 241, 131, 0, 0, 8, 25, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 224, 7, 224, 7, 0, 0, 0, 0]); + var validUncompressed = new Uint8Array([171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10, 1, 2, 3, 4, 1, 20, 0, 0, 1, 0, 0, 0, 8, 25, 0, 0, 88, 128, 0, 0, 8, 25, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 27, 0, 0, 0, 75, 84, 88, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 0, 83, 61, 114, 44, 84, 61, 100, 44, 82, 61, 105, 0, 0, 64, 0, 0, 0, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255]); + + var fakeXHR; + + beforeEach(function() { + fakeXHR = jasmine.createSpyObj('XMLHttpRequest', ['send', 'open', 'setRequestHeader', 'abort', 'getAllResponseHeaders']); + fakeXHR.simulateLoad = function(response) { + fakeXHR.status = 200; + fakeXHR.response = response; + if (typeof fakeXHR.onload === 'function') { + fakeXHR.onload(); + } + }; + fakeXHR.simulateError = function() { + fakeXHR.response = ''; + if (typeof fakeXHR.onerror === 'function') { + fakeXHR.onerror(); + } + }; + fakeXHR.simulateHttpError = function(statusCode, response) { + fakeXHR.status = statusCode; + fakeXHR.response = response; + if (typeof fakeXHR.onload === 'function') { + fakeXHR.onload(); + } + }; + + spyOn(window, 'XMLHttpRequest').and.returnValue(fakeXHR); + }); + + it('throws with no url', function() { + expect(function() { + loadKTX(); + }).toThrowDeveloperError(); + }); + + it('creates and sends request without any custom headers', function() { + var testUrl = 'http://example.invalid/testuri'; + loadKTX(testUrl); + + expect(fakeXHR.open).toHaveBeenCalledWith('GET', testUrl, true); + expect(fakeXHR.setRequestHeader).not.toHaveBeenCalled(); + expect(fakeXHR.send).toHaveBeenCalled(); + }); + + it('creates and sends request with custom headers', function() { + var testUrl = 'http://example.invalid/testuri'; + loadKTX(testUrl, { + 'Accept' : 'application/json', + 'Cache-Control' : 'no-cache' + }); + + expect(fakeXHR.open).toHaveBeenCalledWith('GET', testUrl, true); + expect(fakeXHR.setRequestHeader.calls.count()).toEqual(2); + expect(fakeXHR.setRequestHeader).toHaveBeenCalledWith('Accept', 'application/json'); + expect(fakeXHR.setRequestHeader).toHaveBeenCalledWith('Cache-Control', 'no-cache'); + expect(fakeXHR.send).toHaveBeenCalled(); + }); + + it('returns a promise that rejects when the request errors', function() { + var testUrl = 'http://example.invalid/testuri'; + var promise = loadKTX(testUrl); + + expect(promise).toBeDefined(); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError).toBeUndefined(); + + fakeXHR.simulateError(); + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RequestErrorEvent).toBe(true); + expect(rejectedError.statusCode).toBeUndefined(); + expect(rejectedError.response).toBeUndefined(); + }); + + it('returns a promise that rejects when the request results in an HTTP error code', function() { + var testUrl = 'http://example.invalid/testuri'; + var promise = loadKTX(testUrl); + + expect(promise).toBeDefined(); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError).toBeUndefined(); + + var error = 'some error'; + fakeXHR.simulateHttpError(404, error); + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RequestErrorEvent).toBe(true); + expect(rejectedError.statusCode).toEqual(404); + expect(rejectedError.response).toEqual(error); + }); + + it('returns a promise that resolves to an uncompressed texture when the request loads', function() { + var testUrl = 'http://example.invalid/testuri'; + var promise = loadKTX(testUrl); + + expect(promise).toBeDefined(); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError).toBeUndefined(); + + var response = validUncompressed.buffer; + fakeXHR.simulateLoad(response); + expect(resolvedValue).toBeDefined(); + expect(resolvedValue.width).toEqual(4); + expect(resolvedValue.height).toEqual(4); + expect(PixelFormat.isCompressedFormat(resolvedValue.internalFormat)).toEqual(false); + expect(resolvedValue.bufferView).toBeDefined(); + expect(rejectedError).toBeUndefined(); + }); + + it('returns a promise that resolves to an compressed texture when the request loads', function() { + var testUrl = 'http://example.invalid/testuri'; + var promise = loadKTX(testUrl); + + expect(promise).toBeDefined(); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError).toBeUndefined(); + + var response = validCompressed.buffer; + fakeXHR.simulateLoad(response); + expect(resolvedValue).toBeDefined(); + expect(resolvedValue.width).toEqual(4); + expect(resolvedValue.height).toEqual(4); + expect(PixelFormat.isCompressedFormat(resolvedValue.internalFormat)).toEqual(true); + expect(resolvedValue.bufferView).toBeDefined(); + expect(rejectedError).toBeUndefined(); + }); + + it('cannot parse invalid KTX buffer', function() { + var invalidKTX = new Uint8Array(validCompressed); + invalidKTX[0] = 0; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('Invalid KTX file.'); + }); + + it('cannot parse KTX buffer with invalid endianness', function() { + var reinterprestBuffer = new Uint32Array(validCompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[3] = 0x01020304; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('File is the wrong endianness.'); + }); + + it('cannot parse KTX buffer with invalid internal format', function() { + var reinterprestBuffer = new Uint32Array(validCompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[7] = 0; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('glInternalFormat is not a valid format.'); + }); + + it('cannot parse KTX buffer with compressed texture and invalid type', function() { + var reinterprestBuffer = new Uint32Array(validCompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[4] = 15; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('glType must be zero when the texture is compressed.'); + }); + + it('cannot parse KTX buffer with compressed texture and invalid type size', function() { + var reinterprestBuffer = new Uint32Array(validCompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[5] = 15; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('The type size for compressed textures must be 1.'); + }); + + it('cannot parse KTX buffer with compressed texture and needs to generate mipmaps', function() { + var reinterprestBuffer = new Uint32Array(validCompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[14] = 0; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('Generating mipmaps for a compressed texture is unsupported.'); + }); + + it('cannot parse KTX buffer with uncompressed texture and base format is not the same as format', function() { + var reinterprestBuffer = new Uint32Array(validUncompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[8] = invalidKTX[6] + 1; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('The base internal format must be the same as the format for uncompressed textures.'); + }); + + it('3D textures are unsupported', function() { + var reinterprestBuffer = new Uint32Array(validUncompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[11] = 15; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('3D textures are unsupported.'); + }); + + it('Texture arrays are unsupported', function() { + var reinterprestBuffer = new Uint32Array(validUncompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[12] = 15; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('Texture arrays are unsupported.'); + }); + + it('Cubemaps are unsupported', function() { + var reinterprestBuffer = new Uint32Array(validUncompressed.buffer); + var invalidKTX = new Uint32Array(reinterprestBuffer); + invalidKTX[13] = 6; + + var promise = loadKTX(invalidKTX.buffer); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RuntimeError).toEqual(true); + expect(rejectedError.message).toEqual('Cubemaps are unsupported.'); + }); +}); diff --git a/Specs/Data/Images/Green4x4.ktx b/Specs/Data/Images/Green4x4.ktx new file mode 100644 index 0000000000000000000000000000000000000000..b251f62c3f5e2873f82f0876b29e8b0fbe0fc818 GIT binary patch literal 164 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 literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae new file mode 100644 index 000000000000..b07a87d4aa98 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae @@ -0,0 +1,126 @@ + + + + + modo 801 [Build 77509], Microsoft Windows 7 Service Pack 1 (6.1.7601 Service Pack 1) + Plug-in: [Build 77509]; Use Absolute Path: No; Merge Reference Items: No; Save Hidden Items: No; Save Cameras: No; Save Lights: No; Save Locators: Yes; Save Triangles as Triangles: Yes; Order Vertex Maps Alphabetically: Yes; Bake Matrices: No; Save Vertex Normals: Yes; Save UV Texture Coordinates: Yes; Save Vertex Colors: No; Save Vertex Weights: No; Save Animation: Yes; Sample Animation: No; Sample Animation Start: 0; Sample Animation End: 120; Save modo Profile: No; Save Maya Profile: No; Save 3ds Max Profile: No; Formatted Arrays: No; + file:///C:/Users/Branden/Creative%20Cloud%20Files/03-2015%20Cesium%20Test%20Models/CesiumTexturedBoxTest.lxo + + 2015-03-04T16:58:00Z + 2015-03-04T16:58:00Z + Z_UP + + + + Cesium_Logo_Flat.png + + + + + + + + + + + + + Image0001 + A8R8G8B8 + + + + + Image0001-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + + + + 0.2 0.2 0.2 1 + + + 256 + + + + + + + + + + + -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 0.5 -0.5 0.5 0.5 0.5 0.5 + + + + + + + + + + 0 0 1 1 0 0 0 1 0 0 -1 0 -1 0 0 0 0 -1 + + + + + + + + + + 6 1 5 1 6 1.09011e-007 5 1.09011e-007 4 1 5 1 4 1.02033e-008 5 1.02033e-008 2 1 1 1 2 1.02033e-008 1 1.02033e-008 3 1 3 1.02033e-008 0 1 0 1.09011e-007 1 1 1 1.09011e-007 + + + + + + + + + + + + + + +

4 0 0 6 0 1 5 0 2 7 0 3 5 0 2 6 0 1 7 1 4 6 1 5 2 1 6 3 1 7 2 1 6 6 1 5 5 2 8 7 2 9 1 2 10 2 2 11 1 2 10 7 2 9 6 3 12 4 3 4 3 3 13 0 3 6 3 3 13 4 3 4 4 4 12 5 4 8 0 4 13 1 4 10 0 4 13 5 4 8 0 5 14 1 5 15 3 5 16 2 5 17 3 5 16 1 5 15

+
+
+
+
+ + + + + + + + + + + + + + + + 0 0 0 + 0 1 0 0 + 1 0 0 0 + 0 0 1 0 + 1 1 1 + + + + + + + +
diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf new file mode 100644 index 000000000000..6c0b53852341 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf @@ -0,0 +1,339 @@ +{ + "accessors": { + "accessor_21": { + "bufferView": "bufferView_29", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5123, + "count": 36, + "type": "SCALAR" + }, + "accessor_23": { + "bufferView": "bufferView_30", + "byteOffset": 0, + "byteStride": 12, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + "accessor_25": { + "bufferView": "bufferView_30", + "byteOffset": 288, + "byteStride": 12, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + "accessor_27": { + "bufferView": "bufferView_30", + "byteOffset": 576, + "byteStride": 8, + "componentType": 5126, + "count": 24, + "max": [ + 6, + 1 + ], + "min": [ + 0, + 0 + ], + "type": "VEC2" + } + }, + "animations": {}, + "asset": { + "generator": "collada2gltf@", + "premultipliedAlpha": true, + "profile": { + "api": "WebGL", + "version": "1.0.2" + }, + "version": "1.0" + }, + "bufferViews": { + "bufferView_29": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 72, + "byteOffset": 0, + "target": 34963 + }, + "bufferView_30": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 768, + "byteOffset": 72, + "target": 34962 + } + }, + "buffers": { + "CesiumTexturedBoxTest": { + "byteLength": 840, + "type": "arraybuffer", + "uri": "CesiumTexturedBoxTest.bin" + } + }, + "images": { + "Image0001": { + "name": "Image0001", + "uri": "Cesium_Logo_Flat.ktx" + } + }, + "materials": { + "Effect-Texture": { + "name": "Texture", + "technique": "technique0", + "values": { + "diffuse": "texture_Image0001", + "shininess": 256, + "specular": [ + 0.20000000298023224, + 0.20000000298023224, + 0.20000000298023224, + 1 + ] + } + } + }, + "meshes": { + "Geometry-mesh002": { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": "accessor_25", + "POSITION": "accessor_23", + "TEXCOORD_0": "accessor_27" + }, + "indices": "accessor_21", + "material": "Effect-Texture", + "mode": 4 + } + ] + } + }, + "nodes": { + "Geometry-mesh002Node": { + "children": [], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "meshes": [ + "Geometry-mesh002" + ], + "name": "Mesh" + }, + "groupLocator030Node": { + "children": [ + "txtrLocator026Node" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Texture_Group" + }, + "node_3": { + "children": [ + "Geometry-mesh002Node", + "groupLocator030Node" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Y_UP_Transform" + }, + "txtrLocator026Node": { + "children": [], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Cesium_Logo_Flat__Image___Texture_" + } + }, + "programs": { + "program_0": { + "attributes": [ + "a_normal", + "a_position", + "a_texcoord0" + ], + "fragmentShader": "CesiumTexturedBoxTest0FS", + "vertexShader": "CesiumTexturedBoxTest0VS" + } + }, + "samplers": { + "sampler_0": { + "magFilter": 9729, + "minFilter": 9987, + "wrapS": 10497, + "wrapT": 10497 + } + }, + "scene": "defaultScene", + "scenes": { + "defaultScene": { + "nodes": [ + "node_3" + ] + } + }, + "shaders": { + "CesiumTexturedBoxTest0FS": { + "type": 35632, + "uri": "CesiumTexturedBoxTest0FS.glsl" + }, + "CesiumTexturedBoxTest0VS": { + "type": 35633, + "uri": "CesiumTexturedBoxTest0VS.glsl" + } + }, + "skins": {}, + "techniques": { + "technique0": { + "attributes": { + "a_normal": "normal", + "a_position": "position", + "a_texcoord0": "texcoord0" + }, + "parameters": { + "diffuse": { + "type": 35678 + }, + "modelViewMatrix": { + "semantic": "MODELVIEW", + "type": 35676 + }, + "normal": { + "semantic": "NORMAL", + "type": 35665 + }, + "normalMatrix": { + "semantic": "MODELVIEWINVERSETRANSPOSE", + "type": 35675 + }, + "position": { + "semantic": "POSITION", + "type": 35665 + }, + "projectionMatrix": { + "semantic": "PROJECTION", + "type": 35676 + }, + "shininess": { + "type": 5126 + }, + "specular": { + "type": 35666 + }, + "texcoord0": { + "semantic": "TEXCOORD_0", + "type": 35664 + } + }, + "program": "program_0", + "states": { + "enable": [ + 2929, + 2884 + ] + }, + "uniforms": { + "u_diffuse": "diffuse", + "u_modelViewMatrix": "modelViewMatrix", + "u_normalMatrix": "normalMatrix", + "u_projectionMatrix": "projectionMatrix", + "u_shininess": "shininess", + "u_specular": "specular" + } + } + }, + "textures": { + "texture_Image0001": { + "format": 6408, + "internalFormat": 6408, + "sampler": "sampler_0", + "source": "Image0001", + "target": 3553, + "type": 5121 + } + } +} diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl new file mode 100644 index 000000000000..782e1f41628c --- /dev/null +++ b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl @@ -0,0 +1,18 @@ +precision highp float; +varying vec3 v_normal; +varying vec2 v_texcoord0; +uniform sampler2D u_diffuse; +uniform vec4 u_specular; +uniform float u_shininess; +void main(void) { +vec3 normal = normalize(v_normal); +vec4 color = vec4(0., 0., 0., 0.); +vec4 diffuse = vec4(0., 0., 0., 1.); +vec4 specular; +diffuse = texture2D(u_diffuse, v_texcoord0); +specular = u_specular; +diffuse.xyz *= max(dot(normal,vec3(0.,0.,1.)), 0.); +color.xyz += diffuse.xyz; +color = vec4(color.rgb * diffuse.a, diffuse.a); +gl_FragColor = color; +} diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl new file mode 100644 index 000000000000..cacc9ed997a3 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl @@ -0,0 +1,15 @@ +precision highp float; +attribute vec3 a_position; +attribute vec3 a_normal; +varying vec3 v_normal; +uniform mat3 u_normalMatrix; +uniform mat4 u_modelViewMatrix; +uniform mat4 u_projectionMatrix; +attribute vec2 a_texcoord0; +varying vec2 v_texcoord0; +void main(void) { +vec4 pos = u_modelViewMatrix * vec4(a_position,1.0); +v_normal = u_normalMatrix * a_normal; +v_texcoord0 = a_texcoord0; +gl_Position = u_projectionMatrix * pos; +} diff --git a/Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.ktx b/Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.ktx new file mode 100644 index 0000000000000000000000000000000000000000..c05afa20b6b2e8d74104c64ba1720f7d8c2f4700 GIT binary patch literal 262244 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 YAIvPT{2mlMlK=n!07*qoM6N<$g3Fl*bN~PV literal 0 HcmV?d00001 diff --git a/Specs/Renderer/TextureSpec.js b/Specs/Renderer/TextureSpec.js index 49c70cf5dbd1..22ab8bb90f23 100644 --- a/Specs/Renderer/TextureSpec.js +++ b/Specs/Renderer/TextureSpec.js @@ -4,6 +4,7 @@ defineSuite([ 'Core/Cartesian2', 'Core/Color', 'Core/loadImage', + 'Core/loadKTX', 'Core/PixelFormat', 'Core/PrimitiveType', 'Renderer/Buffer', @@ -25,6 +26,7 @@ defineSuite([ Cartesian2, Color, loadImage, + loadKTX, PixelFormat, PrimitiveType, Buffer, @@ -49,6 +51,10 @@ defineSuite([ var blueAlphaImage; var blueOverRedImage; + var greenDXTImage; + var greenPVRImage; + var greenETC1Image; + var sp; var va; var texture; @@ -69,6 +75,15 @@ defineSuite([ promises.push(loadImage('./Data/Images/BlueOverRed.png').then(function(image) { blueOverRedImage = image; })); + promises.push(loadKTX('./Data/Images/Green4x4DXT1.ktx').then(function(image) { + greenDXTImage = image; + })); + promises.push(loadKTX('./Data/Images/Green4x4PVR.ktx').then(function(image) { + greenPVRImage = image; + })); + promises.push(loadKTX('./Data/Images/Green4x4ETC1.ktx').then(function(image) { + greenETC1Image = image; + })); return when.all(promises); }); @@ -212,6 +227,60 @@ defineSuite([ } }); + it('draws the expected DXT compressed texture color', function() { + if (context.s3tc) { + texture = new Texture({ + context : context, + pixelFormat : greenDXTImage.internalFormat, + source : { + width : greenDXTImage.width, + height : greenDXTImage.height, + arrayBufferView : greenDXTImage.bufferView + } + }); + + var pixels = renderFragment(context); + expect(pixels).toEqual([0, 255, 0, 255]); + } + }); + + it('draws the expected PVR compressed texture color', function() { + if (context.pvrtc) { + texture = new Texture({ + context : context, + pixelFormat : greenPVRImage.internalFormat, + source : { + width : greenPVRImage.width, + height : greenPVRImage.height, + arrayBufferView : greenPVRImage.bufferView + } + }); + + var pixels = renderFragment(context); + expect(pixels).toEqual([0, 255, 0, 255]); + } + }); + + it('draws the expected ETC1 compressed texture color', function() { + if (context.etc1) { + texture = new Texture({ + context : context, + pixelFormat : greenETC1Image.internalFormat, + source : { + width : greenETC1Image.width, + height : greenETC1Image.height, + arrayBufferView : greenETC1Image.bufferView + } + }); + + var pixels = renderFragment(context); + expect(pixels[0]).toEqual(0); + expect(pixels[1]).toBeGreaterThan(250); + expect(pixels[2]).toEqual(0); + expect(pixels[3]).toEqual(255); + } + }); + it('renders with premultiplied alpha', function() { texture = new Texture({ context : context, @@ -639,6 +708,81 @@ defineSuite([ } }); + it('throws when creating compressed texture and the array buffer source is undefined', function() { + expect(function() { + texture = new Texture({ + context : context, + width : 4, + height : 4, + pixelFormat : PixelFormat.RGBA_DXT3 + }); + }).toThrowDeveloperError(); + }); + + it('throws when creating compressed texture when s3tc is unsupported', function() { + if (!context.s3tc) { + expect(function() { + texture = new Texture({ + context : context, + width :greenDXTImage.width, + height : greenDXTImage.height, + pixelFormat : greenDXTImage.internalFormat, + source : { + arrayBufferView : greenDXTImage.bufferView + } + }); + }).toThrowDeveloperError(); + } + }); + + it('throws when creating compressed texture when pvrtc is unsupported', function() { + if (!context.pvrtc) { + expect(function() { + texture = new Texture({ + context : context, + width :greenPVRImage.width, + height : greenPVRImage.height, + pixelFormat : greenPVRImage.internalFormat, + source : { + arrayBufferView : greenPVRImage.bufferView + } + }); + }).toThrowDeveloperError(); + } + }); + + it('throws when creating compressed texture when etc1 is unsupported', function() { + if (!context.etc1) { + expect(function() { + texture = new Texture({ + context : context, + width :greenETC1Image.width, + height : greenETC1Image.height, + pixelFormat : greenETC1Image.internalFormat, + source : { + arrayBufferView : greenETC1Image.bufferView + } + }); + }).toThrowDeveloperError(); + } + }); + + it('throws when creating compressed texture and the array buffer is not the right length', function() { + if (context.s3tc) { + expect(function() { + texture = new Texture({ + context : context, + width :greenDXTImage.width + 1, + height : greenDXTImage.height, + pixelFormat : greenDXTImage.internalFormat, + source : { + arrayBufferView : greenDXTImage.bufferView + } + }); + }).toThrowDeveloperError(); + } + }); + it('throws when creating from the framebuffer with an invalid pixel format', function() { expect(function() { texture = Texture.fromFramebuffer({ @@ -719,6 +863,24 @@ defineSuite([ } }); + it('throws when copying to a texture from the framebuffer with a compressed pixel format', function() { + if (context.s3tc) { + texture = new Texture({ + context : context, + width : greenDXTImage.width, + height : greenDXTImage.height, + pixelFormat : greenDXTImage.internalFormat, + source : { + arrayBufferView : greenDXTImage.bufferView + } + }); + + expect(function() { + texture.copyFromFramebuffer(); + }).toThrowDeveloperError(); + } + }); + it('throws when copying to a texture from the framebuffer with a FLOAT pixel data type', function() { if (context.floatingPointTexture) { texture = new Texture({ @@ -880,6 +1042,25 @@ defineSuite([ }).toThrowDeveloperError(); }); + it('throws when copyFrom is given a source with a compressed pixel format', function() { + if (context.s3tc) { + texture = new Texture({ + context : context, + width : greenDXTImage.width, + height : greenDXTImage.height, + pixelFormat : greenDXTImage.internalFormat, + source : { + arrayBufferView : greenDXTImage.bufferView + } + }); + + var image = new Image(); + expect(function() { + texture.copyFrom(image); + }).toThrowDeveloperError(); + } + }); + it('throws when generating mipmaps with a DEPTH_COMPONENT or DEPTH_STENCIL pixel format', function() { if (context.depthTexture) { texture = new Texture({ @@ -896,6 +1077,24 @@ defineSuite([ } }); + it('throws when generating mipmaps with a compressed pixel format', function() { + if (context.s3tc) { + texture = new Texture({ + context : context, + width : greenDXTImage.width, + height : greenDXTImage.height, + pixelFormat : greenDXTImage.internalFormat, + source : { + arrayBufferView : greenDXTImage.bufferView + } + }); + + expect(function() { + texture.generateMipmap(); + }).toThrowDeveloperError(); + } + }); + it('throws when generating mipmaps with a non-power of two width', function() { texture = new Texture({ context : context, diff --git a/Specs/Scene/ModelSpec.js b/Specs/Scene/ModelSpec.js index b9ebd649193f..859ff6fbdca9 100644 --- a/Specs/Scene/ModelSpec.js +++ b/Specs/Scene/ModelSpec.js @@ -74,6 +74,9 @@ defineSuite([ var boxNoIndicesUrl = './Data/Models/Box-NoIndices/box-noindices.gltf'; var texturedBoxUrl = './Data/Models/Box-Textured/CesiumTexturedBoxTest.gltf'; var texturedBoxSeparateUrl = './Data/Models/Box-Textured-Separate/CesiumTexturedBoxTest.gltf'; + var texturedBoxKTXUrl = './Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf'; + var texturedBoxKTXBinaryUrl = './Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb'; + var texturedBoxKTXEmbeddedUrl = './Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf'; var texturedBoxCustomUrl = './Data/Models/Box-Textured-Custom/CesiumTexturedBoxTest.gltf'; var texturedBoxKhrBinaryUrl = './Data/Models/Box-Textured-Binary/CesiumTexturedBoxTest.glb'; var boxRtcUrl = './Data/Models/Box-RTC/Box.gltf'; @@ -740,6 +743,27 @@ defineSuite([ }); }); + it('renders textured box with external KTX texture', function() { + return loadModel(texturedBoxKTXUrl).then(function(m) { + verifyRender(m); + primitives.remove(m); + }); + }); + + it('renders textured box with embedded binary KTX texture', function() { + return loadModel(texturedBoxKTXBinaryUrl).then(function(m) { + verifyRender(m); + primitives.remove(m); + }); + }); + + it('renders textured box with embedded base64 encoded KTX texture', function() { + return loadModel(texturedBoxKTXEmbeddedUrl).then(function(m) { + verifyRender(m); + primitives.remove(m); + }); + }); + /////////////////////////////////////////////////////////////////////////// it('loads cesiumAir', function() { diff --git a/server.js b/server.js index 15c1149793ef..2180fb3b4ab8 100644 --- a/server.js +++ b/server.js @@ -40,6 +40,7 @@ var mime = express.static.mime; mime.define({ 'application/json' : ['czml', 'json', 'geojson', 'topojson'], + 'image/ktx' : ['ktx'], 'model/vnd.gltf+json' : ['gltf'], 'model/vnd.gltf.binary' : ['bgltf', 'glb'], 'text/plain' : ['glsl'] diff --git a/web.config b/web.config index 49cd03ab042d..c05fb7a74ea0 100644 --- a/web.config +++ b/web.config @@ -30,6 +30,8 @@ + + From cd3b02adc547304d1cca3a8f881492536f0e7f1a Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Tue, 20 Dec 2016 09:02:00 -0500 Subject: [PATCH 02/26] Move exported function to the top --- Source/Core/loadKTX.js | 100 ++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Source/Core/loadKTX.js b/Source/Core/loadKTX.js index bed3be598a2c..b62de89cc219 100644 --- a/Source/Core/loadKTX.js +++ b/Source/Core/loadKTX.js @@ -15,6 +15,55 @@ define([ RuntimeError) { 'use strict'; + /** + * Asynchronously loads and parses the given URL to a KTX file or parses the raw binary data of a KTX file. + * Returns a promise that will resolve to an object containing the image buffer, width, height and format once loaded, + * or reject if the URL failed to load or failed to parse the data. The data is loaded + * using XMLHttpRequest, which means that in order to make requests to another origin, + * the server must have Cross-Origin Resource Sharing (CORS) headers enabled. + * + * @exports loadKTX + * + * @param {String|Promise.|ArrayBuffer} urlOrBuffer The URL of the binary data, a promise for the URL, or an ArrayBuffer. + * @param {Object} [headers] HTTP headers to send with the requests. + * @returns {Promise.} A promise that will resolve to the requested data when loaded. + * + * + * @example + * // load a single URL asynchronously + * Cesium.loadKTX('some/url').then(function(ktxData) { + * var width = ktxData.width; + * var height = ktxData.height; + * var format = ktxData.internalFormat; + * var arrayBufferView = ktxData.bufferView; + * // use the data to create a texture + * }).otherwise(function(error) { + * // an error occurred + * }); + * + * @see {@link https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/|KTX file format} + * @see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing} + * @see {@link http://wiki.commonjs.org/wiki/Promises/A|CommonJS Promises/A} + */ + function loadKTX(urlOrBuffer, headers) { + //>>includeStart('debug', pragmas.debug); + if (!defined(urlOrBuffer)) { + throw new DeveloperError('urlOrBuffer is required.'); + } + //>>includeEnd('debug'); + + var loadPromise; + if (urlOrBuffer instanceof ArrayBuffer || ArrayBuffer.isView(urlOrBuffer)) { + loadPromise = when.resolve(urlOrBuffer); + } else { + loadPromise = loadArrayBuffer(urlOrBuffer, headers); + } + + return loadPromise.then(function(data) { + return parseKTX(data); + }); + } + var fileIdentifier = [0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A]; var endiannessTest = 0x04030201; @@ -145,54 +194,5 @@ define([ }; } - /** - * Asynchronously loads and parses the given URL to a KTX file or parses the raw binary data of a KTX file. - * Returns a promise that will resolve to an object containing the image buffer, width, height and format once loaded, - * or reject if the URL failed to load or failed to parse the data. The data is loaded - * using XMLHttpRequest, which means that in order to make requests to another origin, - * the server must have Cross-Origin Resource Sharing (CORS) headers enabled. - * - * @exports loadKTX - * - * @param {String|Promise.|ArrayBuffer} urlOrBuffer The URL of the binary data, a promise for the URL, or an ArrayBuffer. - * @param {Object} [headers] HTTP headers to send with the requests. - * @returns {Promise.} A promise that will resolve to the requested data when loaded. - * - * - * @example - * // load a single URL asynchronously - * Cesium.loadKTX('some/url').then(function(ktxData) { - * var width = ktxData.width; - * var height = ktxData.height; - * var format = ktxData.internalFormat; - * var arrayBufferView = ktxData.bufferView; - * // use the data to create a texture - * }).otherwise(function(error) { - * // an error occurred - * }); - * - * @see {@link https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/|KTX file format} - * @see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing} - * @see {@link http://wiki.commonjs.org/wiki/Promises/A|CommonJS Promises/A} - */ - function loadKTX(urlOrBuffer, headers) { - //>>includeStart('debug', pragmas.debug); - if (!defined(urlOrBuffer)) { - throw new DeveloperError('urlOrBuffer is required.'); - } - //>>includeEnd('debug'); - - var loadPromise; - if (urlOrBuffer instanceof ArrayBuffer || ArrayBuffer.isView(urlOrBuffer)) { - loadPromise = when.resolve(urlOrBuffer); - } else { - loadPromise = loadArrayBuffer(urlOrBuffer, headers); - } - - return loadPromise.then(function(data) { - return parseKTX(data); - }); - } - return loadKTX; -}); \ No newline at end of file +}); From 797e43b1151f23bc5663cbf1def6eed8bfd3d359 Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Tue, 20 Dec 2016 09:16:52 -0500 Subject: [PATCH 03/26] Style --- Source/Scene/ImageryLayer.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Source/Scene/ImageryLayer.js b/Source/Scene/ImageryLayer.js index 8181ca91774d..df78eb0b21d5 100644 --- a/Source/Scene/ImageryLayer.js +++ b/Source/Scene/ImageryLayer.js @@ -700,6 +700,7 @@ define([ */ ImageryLayer.prototype._createTexture = function(context, imagery) { var imageryProvider = this._imageryProvider; + var image = imagery.image; // If this imagery provider has a discard policy, use it to check if this // image should be discarded. @@ -714,7 +715,7 @@ define([ } // Mark discarded imagery tiles invalid. Parent imagery will be used instead. - if (discardPolicy.shouldDiscardImage(imagery.image)) { + if (discardPolicy.shouldDiscardImage(image)) { imagery.state = ImageryState.INVALID; return; } @@ -723,20 +724,20 @@ define([ // Imagery does not need to be discarded, so upload it to WebGL. var texture; - if (defined(imagery.image.internalFormat)) { + if (defined(image.internalFormat)) { texture = new Texture({ context : context, - pixelFormat : imagery.image.internalFormat, - width : imagery.image.width, - height : imagery.image.height, + pixelFormat : image.internalFormat, + width : image.width, + height : image.height, source : { - arrayBufferView : imagery.image.bufferView + arrayBufferView : image.bufferView } }); } else { texture = new Texture({ context : context, - source : imagery.image, + source : image, pixelFormat : imageryProvider.hasAlphaChannel ? PixelFormat.RGBA : PixelFormat.RGB }); } From a9fc4f98806677c5a82ecae42d26c830daa6e0ed Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Tue, 20 Dec 2016 09:21:29 -0500 Subject: [PATCH 04/26] Update CHANGES.md --- CHANGES.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index de74928178c5..ec47d29a4519 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,13 @@ Change Log ========== +### TODO + +* Added compressed texture support. + * glTF models and imagery layers can now reference [KTX](https://www.khronos.org/opengles/sdk/tools/KTX/) textures. + * Added `loadKTX` to load KTX textures. + * Added new `PixelFormat` and `WebGLConstants` enums from WebGL extensions `WEBGL_compressed_s3tc`, `WEBGL_compressed_texture_pvrtc`, and `WEBGL_compressed_texture_etc1`. [#4758](https://github.com/AnalyticalGraphicsInc/cesium/pull/4758) + ### 1.29 - 2017-01-02 * Improved 3D Models @@ -19,7 +26,6 @@ Change Log * Added `divideComponents` function to `Cartesian2`, `Cartesian3`, and `Cartesian4`. [#4750](https://github.com/AnalyticalGraphicsInc/cesium/pull/4750) * Added `WebGLConstants` enum. Previously, this was part of the private Renderer API. [#4731](https://github.com/AnalyticalGraphicsInc/cesium/pull/4731) * Fixed tooltips for gallery thumbnails in Sandcastle [#4702](https://github.com/AnalyticalGraphicsInc/cesium/pull/4702) -* Added compressed texture support. The supported extensions are `WEBGL_compressed_s3tc`, `WEBGL_compressed_texture_pvrtc`, and `WEBGL_compressed_texture_etc1`. [#4758](https://github.com/AnalyticalGraphicsInc/cesium/pull/4758) ### 1.28 - 2016-12-01 From ca727049beea9fcd744059e70f5760ea62477a0d Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Tue, 20 Dec 2016 16:45:07 -0500 Subject: [PATCH 05/26] Fix failing tests. --- Source/Renderer/Context.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Renderer/Context.js b/Source/Renderer/Context.js index 634b56d51385..d60df36489a2 100644 --- a/Source/Renderer/Context.js +++ b/Source/Renderer/Context.js @@ -271,7 +271,8 @@ define([ this._depthTexture = !!getExtension(gl, ['WEBGL_depth_texture', 'WEBKIT_WEBGL_depth_texture']); this._textureFloat = !!getExtension(gl, ['OES_texture_float']); this._fragDepth = !!getExtension(gl, ['EXT_frag_depth']); - this._debugShaders = !!getExtension(gl, ['WEBGL_debug_shaders']); + this._debugShaders = getExtension(gl, ['WEBGL_debug_shaders']); + this._s3tc = !!getExtension(gl, ['WEBGL_compressed_s3tc', 'MOZ_WEBGL_compressed_texture_s3tc', 'WEBKIT_WEBGL_compressed_texture_s3tc']); this._pvrtc = !!getExtension(gl, ['WEBGL_compressed_texture_pvrtc', 'WEBKIT_WEBGL_compressed_texture_pvrtc']); this._etc1 = !!getExtension(gl, ['WEBGL_compressed_texture_etc1']); From 64dd9b45cca0540b5b1d681bb49828a2eb57ae55 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Wed, 21 Dec 2016 14:18:42 -0500 Subject: [PATCH 06/26] Add ktx loading support to materials. Update Sandcastle and tests. --- Apps/Sandcastle/gallery/Materials.html | 30 +++++++++++++++++ Apps/Sandcastle/images/LogoDXT1.ktx | Bin 0 -> 32836 bytes Apps/Sandcastle/images/LogoETC1.ktx | Bin 0 -> 32868 bytes Apps/Sandcastle/images/LogoPVR.ktx | Bin 0 -> 16484 bytes Source/Scene/Material.js | 44 ++++++++++++++++++++----- Specs/Scene/MaterialSpec.js | 27 +++++++++++++++ 6 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 Apps/Sandcastle/images/LogoDXT1.ktx create mode 100644 Apps/Sandcastle/images/LogoETC1.ktx create mode 100644 Apps/Sandcastle/images/LogoPVR.ktx diff --git a/Apps/Sandcastle/gallery/Materials.html b/Apps/Sandcastle/gallery/Materials.html index 4837b977d00f..ef0f13c94f12 100644 --- a/Apps/Sandcastle/gallery/Materials.html +++ b/Apps/Sandcastle/gallery/Materials.html @@ -202,6 +202,29 @@ }); } +function applyCompressedTextureMaterial(primitive, scene) { + Sandcastle.declare(applyCompressedTextureMaterial); // For highlighting in Sandcastle. + + var compressedImageUrl; + var context = scene.context; + if (context.s3tc) { + compressedImageUrl = '../images/LogoDXT1.ktx'; + } else if (context.etc1) { + compressedImageUrl = '../images/LogoETC1.ktx'; + } else if (context.pvrtc) { + compressedImageUrl = '../images/LogoPVR.ktx'; + } + + primitive.appearance.material = new Cesium.Material({ + fabric : { + type : 'Image', + uniforms : { + image : compressedImageUrl + } + } + }); +} + function applyNormalMapMaterial(primitive, scene) { Sandcastle.declare(applyNormalMapMaterial); // For highlighting in Sandcastle. primitive.appearance.material = new Cesium.Material({ @@ -310,6 +333,13 @@ applyImageMaterial(rectangle, scene); Sandcastle.highlight(applyImageMaterial); } + }, { + text : 'Compressed Image', + onselect : function() { + toggleRectangleVisibility(); + applyCompressedTextureMaterial(rectangle, scene); + Sandcastle.highlight(applyCompressedTextureMaterial); + } }]); Sandcastle.addToolbarMenu([{ diff --git a/Apps/Sandcastle/images/LogoDXT1.ktx b/Apps/Sandcastle/images/LogoDXT1.ktx new file mode 100644 index 0000000000000000000000000000000000000000..73598d1c8d302b976d6bd3c79f82f8b075cc93e0 GIT binary patch literal 32836 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 JK3>n?{2!TN$5{XX literal 0 HcmV?d00001 diff --git a/Apps/Sandcastle/images/LogoETC1.ktx b/Apps/Sandcastle/images/LogoETC1.ktx new file mode 100644 index 0000000000000000000000000000000000000000..9d8b88d7f541961dc4cc91f5f7e52bddd3c2aa7d GIT binary patch literal 32868 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 literal 0 HcmV?d00001 diff --git a/Source/Scene/Material.js b/Source/Scene/Material.js index 1d488b034809..18596e6d8825 100644 --- a/Source/Scene/Material.js +++ b/Source/Scene/Material.js @@ -12,6 +12,7 @@ define([ '../Core/DeveloperError', '../Core/isArray', '../Core/loadImage', + '../Core/loadKTX', '../Core/Matrix2', '../Core/Matrix3', '../Core/Matrix4', @@ -43,6 +44,7 @@ define([ DeveloperError, isArray, loadImage, + loadKTX, Matrix2, Matrix3, Matrix4, @@ -413,10 +415,23 @@ define([ uniformId = loadedImage.id; var image = loadedImage.image; - var texture = new Texture({ - context : context, - source : image - }); + var texture; + if (defined(image.internalFormat)) { + texture = new Texture({ + context : context, + pixelFormat : image.internalFormat, + width : image.width, + height : image.height, + source : { + arrayBufferView : image.bufferView + } + }); + } else { + texture = new Texture({ + context : context, + source : image + }); + } this._textures[uniformId] = texture; @@ -663,6 +678,8 @@ define([ 'mat4' : Matrix4 }; + var ktxRegex = /\.ktx$/i; + function createTexture2DUpdateFunction(uniformId) { var oldUniformValue; return function(material, context) { @@ -741,12 +758,21 @@ define([ if (uniformValue !== material._texturePaths[uniformId]) { if (typeof uniformValue === 'string') { - when(loadImage(uniformValue), function(image) { - material._loadedImages.push({ - id : uniformId, - image : image + if (ktxRegex.test(uniformValue)) { + when(loadKTX(uniformValue), function(image) { + material._loadedImages.push({ + id : uniformId, + image : image + }); }); - }); + } else { + when(loadImage(uniformValue), function(image) { + material._loadedImages.push({ + id : uniformId, + image : image + }); + }); + } } else if (uniformValue instanceof HTMLCanvasElement) { material._loadedImages.push({ id : uniformId, diff --git a/Specs/Scene/MaterialSpec.js b/Specs/Scene/MaterialSpec.js index 0be40157f399..e7d2a13d1861 100644 --- a/Specs/Scene/MaterialSpec.js +++ b/Specs/Scene/MaterialSpec.js @@ -6,8 +6,10 @@ defineSuite([ 'Core/defaultValue', 'Core/Ellipsoid', 'Core/GeometryInstance', + 'Core/loadImage', 'Core/Rectangle', 'Core/RectangleGeometry', + 'Renderer/Texture', 'Scene/MaterialAppearance', 'Scene/PolylineCollection', 'Scene/Primitive', @@ -20,8 +22,10 @@ defineSuite([ defaultValue, Ellipsoid, GeometryInstance, + loadImage, Rectangle, RectangleGeometry, + Texture, MaterialAppearance, PolylineCollection, Primitive, @@ -344,6 +348,29 @@ defineSuite([ renderMaterial(material); }); + it('creates a material with an compressed image uniform', function () { + var compressedUrl; + var context = scene.context; + if (context.s3tc) { + compressedUrl = './Data/Images/Green4x4DXT1.ktx'; + } else if (context.etc1) { + compressedUrl = './Data/Images/Green4x4ETC1.ktx'; + } else if (context.pvrtc) { + compressedUrl = './Data/Images/Green4x4PVR.ktx'; + } + + var material = new Material({ + strict : true, + fabric : { + type : 'DiffuseMap', + uniforms : { + image : compressedUrl + } + } + }); + renderMaterial(material); + }); + it('creates a material with a cube map uniform', function() { var material = new Material({ strict : true, From da6d1c61cec5804b6dc79fba680866956239cdf8 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Wed, 21 Dec 2016 14:48:18 -0500 Subject: [PATCH 07/26] Document type returned from loadKTX and doc unsupported features of the file format. --- Source/Core/loadKTX.js | 97 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 86 insertions(+), 11 deletions(-) diff --git a/Source/Core/loadKTX.js b/Source/Core/loadKTX.js index b62de89cc219..6ffd90885cb2 100644 --- a/Source/Core/loadKTX.js +++ b/Source/Core/loadKTX.js @@ -2,6 +2,7 @@ define([ '../ThirdParty/when', './defined', + './definedProperties', './DeveloperError', './loadArrayBuffer', './PixelFormat', @@ -9,6 +10,7 @@ define([ ], function( when, defined, + defineProperties, DeveloperError, loadArrayBuffer, PixelFormat, @@ -21,13 +23,35 @@ define([ * or reject if the URL failed to load or failed to parse the data. The data is loaded * using XMLHttpRequest, which means that in order to make requests to another origin, * the server must have Cross-Origin Resource Sharing (CORS) headers enabled. + *

+ * The following are part of the KTX format specification but are not supported: + *

    + *
  • Big-endian files
  • + *
  • Metadata
  • + *
  • 3D textures
  • + *
  • Texture Arrays
  • + *
  • Cubemaps
  • + *
  • Mipmaps
  • + *
+ *

* * @exports loadKTX * * @param {String|Promise.|ArrayBuffer} urlOrBuffer The URL of the binary data, a promise for the URL, or an ArrayBuffer. * @param {Object} [headers] HTTP headers to send with the requests. - * @returns {Promise.} A promise that will resolve to the requested data when loaded. + * @returns {Promise.} A promise that will resolve to the requested data when loaded. * + * @exception {RuntimeError} Invalid KTX file. + * @exception {RuntimeError} File is the wrong endianness. + * @exception {RuntimeError} glInternalFormat is not a valid format. + * @exception {RuntimeError} glType must be zero when the texture is compressed. + * @exception {RuntimeError} The type size for compressed textures must be 1. + * @exception {RuntimeError} glFormat must be zero when the texture is compressed. + * @exception {RuntimeError} Generating mipmaps for a compressed texture is unsupported. + * @exception {RuntimeError} The base internal format must be the same as the format for uncompressed textures. + * @exception {RuntimeError} 3D textures are not supported. + * @exception {RuntimeError} Texture arrays are not supported. + * @exception {RuntimeError} Cubemaps are not supported. * * @example * // load a single URL asynchronously @@ -64,6 +88,64 @@ define([ }); } + /** + * Describes a compressed texture and contains a compressed texture buffer. + * + * @param {PixelFormat} internalFormat The pixel format of the compressed texture. + * @param {Number} width The width of the texture. + * @param {Number} height The height of the texture. + * @param {Uint8Array} buffer The compressed texture buffer. + */ + function CompressedTextureBuffer(internalFormat, width, height, buffer) { + this._format = internalFormat; + this._width = width; + this._height = height; + this._buffer = buffer; + } + + defineProperties(CompressedTextureBuffer.prototype, { + /** + * The format of the compressed texture. + * @type PixelFormat + * @readonly + */ + internalFormat : { + get : function() { + return this._format; + } + }, + /** + * The width of the texture. + * @type Number + * @readonly + */ + width : { + get : function() { + return this._width; + } + }, + /** + * The height of the texture. + * @type Number + * @readonly + */ + height : { + get : function() { + return this._height; + } + }, + /** + * The compressed texture buffer. + * @type Uint8Array + * @readonly + */ + bufferView : { + get : function() { + return this._buffer; + } + } + }); + var fileIdentifier = [0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A]; var endiannessTest = 0x04030201; @@ -100,7 +182,6 @@ define([ var endianness = view.getUint32(byteOffset, true); byteOffset += sizeOfUint32; if (endianness !== endiannessTest) { - // TODO: Switch endianness? throw new RuntimeError('File is the wrong endianness.'); } @@ -129,7 +210,7 @@ define([ var bytesOfKeyValueByteSize = view.getUint32(byteOffset, true); byteOffset += sizeOfUint32; - // TODO: read metadata? At least need to check for KTXorientation + // skip metadata byteOffset += bytesOfKeyValueByteSize; var imageSize = view.getUint32(byteOffset, true); @@ -172,7 +253,6 @@ define([ throw new RuntimeError('3D textures are unsupported.'); } - // TODO: support texture arrays and cubemaps if (numberOfArrayElements !== 0) { throw new RuntimeError('Texture arrays are unsupported.'); } @@ -180,18 +260,13 @@ define([ throw new RuntimeError('Cubemaps are unsupported.'); } - // TODO: multiple mipmap levels + // Only use the level 0 mipmap if (PixelFormat.isCompressedFormat(glInternalFormat) && numberOfMipmapLevels > 1) { var levelSize = PixelFormat.compressedTextureSize(glInternalFormat, pixelWidth, pixelHeight); texture = new Uint8Array(texture.buffer, 0, levelSize); } - return { - bufferView : texture, - width : pixelWidth, - height : pixelHeight, - internalFormat : glInternalFormat - }; + return new CompressedTextureBuffer(glInternalFormat, pixelWidth, pixelHeight, texture); } return loadKTX; From 172cc21912674a5925a7e96d213d1295c0264456 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Wed, 21 Dec 2016 14:53:01 -0500 Subject: [PATCH 08/26] Fix typo. --- Source/Core/loadKTX.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/loadKTX.js b/Source/Core/loadKTX.js index 6ffd90885cb2..03622acc8819 100644 --- a/Source/Core/loadKTX.js +++ b/Source/Core/loadKTX.js @@ -2,7 +2,7 @@ define([ '../ThirdParty/when', './defined', - './definedProperties', + './defineProperties', './DeveloperError', './loadArrayBuffer', './PixelFormat', From b1876d98dcc5459ce4a054455030b3ed1bcbae92 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Wed, 21 Dec 2016 15:26:49 -0500 Subject: [PATCH 09/26] Add missing sampler when loading glTF with comressed texture. --- Source/Scene/Model.js | 2 +- .../CesiumTexturedBoxTest.glb | Bin 267852 -> 267852 bytes .../CesiumTexturedBoxTest.gltf | 2 +- .../CesiumTexturedBoxTest.gltf | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index d7692813ee09..40d20087be25 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -2033,7 +2033,7 @@ define([ width : gltfTexture.width, height : gltfTexture.height, pixelFormat : internalFormat, - flipY : false + sampler : sampler }); } else if (defined(source)) { var npot = !CesiumMath.isPowerOfTwo(source.width) || !CesiumMath.isPowerOfTwo(source.height); diff --git a/Specs/Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb b/Specs/Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb index 933dbc4e7d5930a39b16562a75c0b054abde2938..c276adb6a7ea74f4564a68add65149944d30413f 100644 GIT binary patch delta 34 mcmX@JM&QgEfemI{%;rXx&6Zs4mRyWL%ml>D+by|Rgn0nL6bS7A delta 34 mcmX@JM&QgEfemI{%$64B&6Zs4mRyWL%ml>D+by|Rgn0nLq6qT< diff --git a/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf index 6df86743c63a..530166206797 100644 --- a/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf +++ b/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf @@ -249,7 +249,7 @@ "samplers": { "sampler_0": { "magFilter": 9729, - "minFilter": 9987, + "minFilter": 9729, "wrapS": 10497, "wrapT": 10497 } diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf index 6c0b53852341..ec3f2d6d0326 100644 --- a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf +++ b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf @@ -243,7 +243,7 @@ "samplers": { "sampler_0": { "magFilter": 9729, - "minFilter": 9987, + "minFilter": 9729, "wrapS": 10497, "wrapT": 10497 } From cb0107319ddfa9179ea477fdbdc2f5f6734b5dcb Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 5 Jan 2017 15:05:00 -0500 Subject: [PATCH 10/26] Initial support for transcoding textures from crunch to DXT. --- Source/Core/CompressedTextureBuffer.js | 68 +++++++++++ Source/Core/loadCRN.js | 157 +++++++++++++++++++++++++ Source/Core/loadKTX.js | 62 +--------- Source/Scene/Model.js | 5 + Source/ThirdParty/crunch.js | 28 +++++ 5 files changed, 260 insertions(+), 60 deletions(-) create mode 100644 Source/Core/CompressedTextureBuffer.js create mode 100644 Source/Core/loadCRN.js create mode 100644 Source/ThirdParty/crunch.js diff --git a/Source/Core/CompressedTextureBuffer.js b/Source/Core/CompressedTextureBuffer.js new file mode 100644 index 000000000000..dc0835944667 --- /dev/null +++ b/Source/Core/CompressedTextureBuffer.js @@ -0,0 +1,68 @@ +/*global define*/ +define([ + './defineProperties' + ], function( + defineProperties + ) { + 'use strict'; + + /** + * Describes a compressed texture and contains a compressed texture buffer. + * + * @param {PixelFormat} internalFormat The pixel format of the compressed texture. + * @param {Number} width The width of the texture. + * @param {Number} height The height of the texture. + * @param {Uint8Array} buffer The compressed texture buffer. + */ + function CompressedTextureBuffer(internalFormat, width, height, buffer) { + this._format = internalFormat; + this._width = width; + this._height = height; + this._buffer = buffer; + } + + defineProperties(CompressedTextureBuffer.prototype, { + /** + * The format of the compressed texture. + * @type PixelFormat + * @readonly + */ + internalFormat : { + get : function() { + return this._format; + } + }, + /** + * The width of the texture. + * @type Number + * @readonly + */ + width : { + get : function() { + return this._width; + } + }, + /** + * The height of the texture. + * @type Number + * @readonly + */ + height : { + get : function() { + return this._height; + } + }, + /** + * The compressed texture buffer. + * @type Uint8Array + * @readonly + */ + bufferView : { + get : function() { + return this._buffer; + } + } + }); + + return CompressedTextureBuffer; +}); \ No newline at end of file diff --git a/Source/Core/loadCRN.js b/Source/Core/loadCRN.js new file mode 100644 index 000000000000..f7466f41ed66 --- /dev/null +++ b/Source/Core/loadCRN.js @@ -0,0 +1,157 @@ +/*global define*/ +define([ + './CompressedTextureBuffer', + './defined', + './defineProperties', + './DeveloperError', + './loadArrayBuffer', + './PixelFormat', + './RuntimeError', + '../ThirdParty/crunch', + '../ThirdParty/when' +], function( + CompressedTextureBuffer, + defined, + defineProperties, + DeveloperError, + loadArrayBuffer, + PixelFormat, + RuntimeError, + crunch, + when) { + 'use strict'; + + // Modified from: https://github.com/toji/texture-tester/blob/master/js/webgl-texture-util.js + // Also see: http://toji.github.io/texture-tester/ + + /* Copyright (c) 2014, Brandon Jones. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + + // Taken from crnlib.h + var CRN_FORMAT = { + cCRNFmtInvalid: -1, + + cCRNFmtDXT1: 0, + // cCRNFmtDXT3 is not currently supported when writing to CRN - only DDS. + cCRNFmtDXT3: 1, + cCRNFmtDXT5: 2 + + // Crunch supports more formats than this, but we can't use them here. + }; + + // Mapping of Crunch formats to DXT formats. + var DXT_FORMAT_MAP = {}; + DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = PixelFormat.RGB_DXT1; + DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = PixelFormat.RGBA_DXT3; + DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = PixelFormat.RGBA_DXT5; + + + var dst; + var dxtData; + var cachedDstSize = 0; + + // Copy an array of bytes into or out of the emscripten heap. + function arrayBufferCopy(src, dst, dstByteOffset, numBytes) { + var i; + var dst32Offset = dstByteOffset / 4; + var tail = (numBytes % 4); + var src32 = new Uint32Array(src.buffer, 0, (numBytes - tail) / 4); + var dst32 = new Uint32Array(dst.buffer); + for (i = 0; i < src32.length; i++) { + dst32[dst32Offset + i] = src32[i]; + } + for (i = numBytes - tail; i < numBytes; i++) { + dst[dstByteOffset + i] = src[i]; + } + } + + function decompressCRN(arrayBuffer) { + // Copy the contents of the arrayBuffer into emscriptens heap. + var srcSize = arrayBuffer.byteLength; + var bytes = new Uint8Array(arrayBuffer); + var src = crunch._malloc(srcSize); + arrayBufferCopy(bytes, crunch.HEAPU8, src, srcSize); + + // Determine what type of compressed data the file contains. + var crnFormat = crunch._crn_get_dxt_format(src, srcSize); + var format = DXT_FORMAT_MAP[crnFormat]; + if (!defined(format)) { + throw new RuntimeError("Unsupported DXT format"); + } + + // Gather basic metrics about the DXT data. + var levels = crunch._crn_get_levels(src, srcSize); + var width = crunch._crn_get_width(src, srcSize); + var height = crunch._crn_get_height(src, srcSize); + + // Determine the size of the decoded DXT data. + var dstSize = 0; + var i; + for (i = 0; i < levels; ++i) { + dstSize += PixelFormat.compressedTextureSize(format, width >> i, height >> i); + } + + // Allocate enough space on the emscripten heap to hold the decoded DXT data + // or reuse the existing allocation if a previous call to this function has + // already acquired a large enough buffer. + if(cachedDstSize < dstSize) { + if(defined(dst)) { + crunch._free(dst); + } + dst = crunch._malloc(dstSize); + dxtData = new Uint8Array(crunch.HEAPU8.buffer, dst, dstSize); + cachedDstSize = dstSize; + } + + // Decompress the DXT data from the Crunch file into the allocated space. + crunch._crn_decompress(src, srcSize, dst, dstSize, 0, levels); + + // Release the crunch file data from the emscripten heap. + crunch._free(src); + + // Mipmaps are unsupported, so copy the level 0 texture + // When mipmaps are supported, a copy will still be necessary as dxtData is a view on the heap. + var level0DXTData = dxtData.slice(0, PixelFormat.compressedTextureSize(format, width, height)); + return new CompressedTextureBuffer(format, width, height, level0DXTData); + } + + function loadCRN(urlOrBuffer, headers) { + //>>includeStart('debug', pragmas.debug); + if (!defined(urlOrBuffer)) { + throw new DeveloperError('urlOrBuffer is required.'); + } + //>>includeEnd('debug'); + + var loadPromise; + if (urlOrBuffer instanceof ArrayBuffer || ArrayBuffer.isView(urlOrBuffer)) { + loadPromise = when.resolve(urlOrBuffer); + } else { + loadPromise = loadArrayBuffer(urlOrBuffer, headers); + } + + return loadPromise.then(function(data) { + return decompressCRN(data); + }); + } + + return loadCRN; +}); \ No newline at end of file diff --git a/Source/Core/loadKTX.js b/Source/Core/loadKTX.js index 03622acc8819..6c7570f0ff76 100644 --- a/Source/Core/loadKTX.js +++ b/Source/Core/loadKTX.js @@ -1,16 +1,16 @@ /*global define*/ define([ '../ThirdParty/when', + './CompressedTextureBuffer', './defined', - './defineProperties', './DeveloperError', './loadArrayBuffer', './PixelFormat', './RuntimeError' ], function( when, + CompressedTextureBuffer, defined, - defineProperties, DeveloperError, loadArrayBuffer, PixelFormat, @@ -88,64 +88,6 @@ define([ }); } - /** - * Describes a compressed texture and contains a compressed texture buffer. - * - * @param {PixelFormat} internalFormat The pixel format of the compressed texture. - * @param {Number} width The width of the texture. - * @param {Number} height The height of the texture. - * @param {Uint8Array} buffer The compressed texture buffer. - */ - function CompressedTextureBuffer(internalFormat, width, height, buffer) { - this._format = internalFormat; - this._width = width; - this._height = height; - this._buffer = buffer; - } - - defineProperties(CompressedTextureBuffer.prototype, { - /** - * The format of the compressed texture. - * @type PixelFormat - * @readonly - */ - internalFormat : { - get : function() { - return this._format; - } - }, - /** - * The width of the texture. - * @type Number - * @readonly - */ - width : { - get : function() { - return this._width; - } - }, - /** - * The height of the texture. - * @type Number - * @readonly - */ - height : { - get : function() { - return this._height; - } - }, - /** - * The compressed texture buffer. - * @type Uint8Array - * @readonly - */ - bufferView : { - get : function() { - return this._buffer; - } - } - }); - var fileIdentifier = [0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A]; var endiannessTest = 0x04030201; diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index 6b0f942f74a5..8ab54a42628f 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -21,6 +21,7 @@ define([ '../Core/getStringFromTypedArray', '../Core/IndexDatatype', '../Core/loadArrayBuffer', + '../Core/loadCRN', '../Core/loadImage', '../Core/loadImageFromTypedArray', '../Core/loadKTX', @@ -86,6 +87,7 @@ define([ getStringFromTypedArray, IndexDatatype, loadArrayBuffer, + loadCRN, loadImage, loadImageFromTypedArray, loadKTX, @@ -1403,6 +1405,7 @@ define([ } var ktxRegex = /(^data:image\/ktx)|(\.ktx$)/i; + var crnRegex = /(^data:image\/crn)|(\.crn$)/i; function parseTextures(model) { var images = model.gltf.images; @@ -1427,6 +1430,8 @@ define([ if (ktxRegex.test(imagePath)) { loadKTX(imagePath).then(imageLoad(model, id)).otherwise(getFailedLoadFunction(model, 'image', imagePath)); + } else if (crnRegex.test(imagePath)) { + loadCRN(imagePath).then(imageLoad(model, id)).otherwise(getFailedLoadFunction(model, 'image', imagePath)); } else { loadImage(imagePath).then(imageLoad(model, id)).otherwise(getFailedLoadFunction(model, 'image', imagePath)); } diff --git a/Source/ThirdParty/crunch.js b/Source/ThirdParty/crunch.js new file mode 100644 index 000000000000..48b28bc45c8c --- /dev/null +++ b/Source/ThirdParty/crunch.js @@ -0,0 +1,28 @@ +/*global define*/ +define([], function() { + + // crunch/crnlib v1.04 - Advanced DXTn texture compression library + // Copyright (C) 2010-2016 Richard Geldreich, Jr. and Binomial LLC http://binomial.info + + // This software uses the ZLIB license, which is located in license.txt. + // http://opensource.org/licenses/Zlib + + // The crunch C++ code was compiled to Javascript with Emcripten: + // emcc -O3 crn.cpp -I./inc -s EXPORTED_FUNCTIONS="['_malloc', '_free', '_crn_get_width', '_crn_get_height', '_crn_get_levels', '_crn_get_dxt_format', '_crn_get_bytes_per_block', '_crn_get_uncompressed_size', '_crn_decompress']" -s NO_EXIT_RUNTIME=1 -s NO_FILESYSTEM=1 -s ELIMINATE_DUPLICATE_FUNCTIONS=1 -s ALLOW_MEMORY_GROWTH=1 --memory-init-file 0 -o crunch.js + + + var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var OLD_TOTAL_MEMORY=TOTAL_MEMORY;var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY=LIMIT)return false;try{if(ArrayBuffer.transfer){buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY)}else{var oldHEAP8=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch(e){return false}var success=_emscripten_replace_memory(buffer);if(!success)return false;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer);if(!ArrayBuffer.transfer){HEAP8.set(oldHEAP8)}return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+5888;__ATINIT__.push();allocate([116,0,0,0,86,7,0,0,116,0,0,0,99,7,0,0,156,0,0,0,112,7,0,0,16,0,0,0,0,0,0,0,156,0,0,0,145,7,0,0,24,0,0,0,0,0,0,0,156,0,0,0,215,7,0,0,24,0,0,0,0,0,0,0,156,0,0,0,179,7,0,0,56,0,0,0,0,0,0,0,156,0,0,0,249,7,0,0,40,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,40,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,88,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,1,0,0,220,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,227,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,219,16,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,115,40,37,117,41,58,32,65,115,115,101,114,116,105,111,110,32,102,97,105,108,117,114,101,58,32,34,37,115,34,10,0,109,95,115,105,122,101,32,60,61,32,109,95,99,97,112,97,99,105,116,121,0,46,47,105,110,99,92,99,114,110,95,100,101,99,111,109,112,46,104,0,109,105,110,95,110,101,119,95,99,97,112,97,99,105,116,121,32,60,32,40,48,120,55,70,70,70,48,48,48,48,85,32,47,32,101,108,101,109,101,110,116,95,115,105,122,101,41,0,110,101,119,95,99,97,112,97,99,105,116,121,32,38,38,32,40,110,101,119,95,99,97,112,97,99,105,116,121,32,62,32,109,95,99,97,112,97,99,105,116,121,41,0,110,117,109,95,99,111,100,101,115,91,99,93,0,115,111,114,116,101,100,95,112,111,115,32,60,32,116,111,116,97,108,95,117,115,101,100,95,115,121,109,115,0,112,67,111,100,101,115,105,122,101,115,91,115,121,109,95,105,110,100,101,120,93,32,61,61,32,99,111,100,101,115,105,122,101,0,116,32,60,32,40,49,85,32,60,60,32,116,97,98,108,101,95,98,105,116,115,41,0,109,95,108,111,111,107,117,112,91,116,93,32,61,61,32,99,85,73,78,84,51,50,95,77,65,88,0,99,114,110,100,95,109,97,108,108,111,99,58,32,115,105,122,101,32,116,111,111,32,98,105,103,0,99,114,110,100,95,109,97,108,108,111,99,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,0,40,40,117,105,110,116,51,50,41,112,95,110,101,119,32,38,32,40,67,82,78,68,95,77,73,78,95,65,76,76,79,67,95,65,76,73,71,78,77,69,78,84,32,45,32,49,41,41,32,61,61,32,48,0,99,114,110,100,95,114,101,97,108,108,111,99,58,32,98,97,100,32,112,116,114,0,99,114,110,100,95,102,114,101,101,58,32,98,97,100,32,112,116,114,0,102,97,108,115,101,0,40,116,111,116,97,108,95,115,121,109,115,32,62,61,32,49,41,32,38,38,32,40,116,111,116,97,108,95,115,121,109,115,32,60,61,32,112,114,101,102,105,120,95,99,111,100,105,110,103,58,58,99,77,97,120,83,117,112,112,111,114,116,101,100,83,121,109,115,41,0,17,18,19,20,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,16,48,0,110,117,109,95,98,105,116,115,32,60,61,32,51,50,85,0,109,95,98,105,116,95,99,111,117,110,116,32,60,61,32,99,66,105,116,66,117,102,83,105,122,101,0,116,32,33,61,32,99,85,73,78,84,51,50,95,77,65,88,0,109,111,100,101,108,46,109,95,99,111,100,101,95,115,105,122,101,115,91,115,121,109,93,32,61,61,32,108,101,110,0,0,2,3,1,0,2,3,4,5,6,7,1,40,108,101,110,32,62,61,32,49,41,32,38,38,32,40,108,101,110,32,60,61,32,99,77,97,120,69,120,112,101,99,116,101,100,67,111,100,101,83,105,122,101,41,0,105,32,60,32,109,95,115,105,122,101,0,110,101,120,116,95,108,101,118,101,108,95,111,102,115,32,62,32,99,117,114,95,108,101,118,101,108,95,111,102,115,0,1,2,2,3,3,3,3,4,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,2,1,2,0,0,0,1,0,2,1,0,2,0,0,1,2,3,110,117,109,32,38,38,32,40,110,117,109,32,61,61,32,126,110,117,109,95,99,104,101,99,107,41,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}var _BDtoIHigh=true;Module["_i64Subtract"]=_i64Subtract;Module["_i64Add"]=_i64Add;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}Module["_memset"]=_memset;var _BDtoILow=true;Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _abort(){Module["abort"]()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var _BItoD=true;var PATH=undefined;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer)___syscall146.buffer=[];var buffer=___syscall146.buffer;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j2147483648)return false;i=new a(newBuffer);j=new b(newBuffer);k=new c(newBuffer);l=new d(newBuffer);m=new e(newBuffer);n=new f(newBuffer);o=new g(newBuffer);p=new h(newBuffer);buffer=newBuffer;return true} +// EMSCRIPTEN_START_FUNCS + function Za(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function _a(){return r|0}function $a(a){a=a|0;r=a}function ab(a,b){a=a|0;b=b|0;r=a;s=b}function bb(a,b){a=a|0;b=b|0;if(!w){w=a;x=b}}function cb(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function db(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function eb(a){a=a|0;L=a}function fb(){return L|0}function gb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+576|0;l=o+48|0;h=o+32|0;g=o+16|0;f=o;j=o+64|0;m=o+60|0;i=a+4|0;n=a+8|0;if((k[i>>2]|0)>>>0>(k[n>>2]|0)>>>0){k[f>>2]=1138;k[f+4>>2]=2119;k[f+8>>2]=1117;xc(j,1084,f)|0;wc(j)|0}if((2147418112/(d>>>0)|0)>>>0<=b>>>0){k[g>>2]=1138;k[g+4>>2]=2120;k[g+8>>2]=1157;xc(j,1084,g)|0;wc(j)|0}g=k[n>>2]|0;if(g>>>0>=b>>>0){n=1;r=o;return n|0}do if(c){if(b){f=b+-1|0;if(!(f&b)){f=11;break}else b=f}else b=-1;b=b>>>16|b;b=b>>>8|b;b=b>>>4|b;b=b>>>2|b;b=(b>>>1|b)+1|0;f=10}else f=10;while(0);if((f|0)==10)if(!b){b=0;f=12}else f=11;if((f|0)==11)if(b>>>0<=g>>>0)f=12;if((f|0)==12){k[h>>2]=1138;k[h+4>>2]=2129;k[h+8>>2]=1205;xc(j,1084,h)|0;wc(j)|0}c=ha(b,d)|0;do if(!e){f=hb(k[a>>2]|0,c,m,1)|0;if(!f){n=0;r=o;return n|0}else{k[a>>2]=f;break}}else{g=ib(c,m)|0;if(!g){n=0;r=o;return n|0}Va[e&0](g,k[a>>2]|0,k[i>>2]|0);f=k[a>>2]|0;do if(f)if(!(f&7)){kb(f,0,0,1,0)|0;break}else{k[l>>2]=1138;k[l+4>>2]=2502;k[l+8>>2]=1504;xc(j,1084,l)|0;wc(j)|0;break}while(0);k[a>>2]=g}while(0);f=k[m>>2]|0;if(f>>>0>c>>>0)b=(f>>>0)/(d>>>0)|0;k[n>>2]=b;n=1;r=o;return n|0}function hb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+560|0;i=j+32|0;f=j+16|0;e=j;h=j+48|0;g=j+44|0;if(a&7){k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1482;xc(h,1084,e)|0;wc(h)|0;i=0;r=j;return i|0}if(b>>>0>2147418112){k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1375;xc(h,1084,f)|0;wc(h)|0;i=0;r=j;return i|0}k[g>>2]=b;d=kb(a,b,g,d,0)|0;if(c)k[c>>2]=k[g>>2];if(!(d&7)){i=d;r=j;return i|0}k[i>>2]=1138;k[i+4>>2]=2554;k[i+8>>2]=1428;xc(h,1084,i)|0;wc(h)|0;i=d;r=j;return i|0}function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+560|0;h=i+32|0;g=i+16|0;c=i;f=i+48|0;e=i+44|0;d=a+3&-4;d=(d|0)!=0?d:4;if(d>>>0>2147418112){k[c>>2]=1138;k[c+4>>2]=2502;k[c+8>>2]=1375;xc(f,1084,c)|0;wc(f)|0;h=0;r=i;return h|0}k[e>>2]=d;c=kb(0,d,e,1,0)|0;a=k[e>>2]|0;if(b)k[b>>2]=a;if((c|0)==0|a>>>0>>0){k[g>>2]=1138;k[g+4>>2]=2502;k[g+8>>2]=1401;xc(f,1084,g)|0;wc(f)|0;h=0;r=i;return h|0}if(!(c&7)){h=c;r=i;return h|0}k[h>>2]=1138;k[h+4>>2]=2529;k[h+8>>2]=1428;xc(f,1084,h)|0;wc(f)|0;h=c;r=i;return h|0}function jb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=r;r=r+880|0;I=L+144|0;H=L+128|0;G=L+112|0;F=L+96|0;C=L+80|0;w=L+64|0;u=L+48|0;v=L+32|0;q=L+16|0;p=L;E=L+360|0;J=L+296|0;K=L+224|0;t=L+156|0;if((b|0)==0|d>>>0>11){a=0;r=L;return a|0}k[a>>2]=b;e=K;f=e+68|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(f|0));f=0;do{e=i[c+f>>0]|0;if(e<<24>>24){D=K+((e&255)<<2)|0;k[D>>2]=(k[D>>2]|0)+1}f=f+1|0}while((f|0)!=(b|0));f=0;o=1;g=0;h=-1;n=0;while(1){e=k[K+(o<<2)>>2]|0;if(!e)k[a+28+(o+-1<<2)>>2]=0;else{D=o+-1|0;k[J+(D<<2)>>2]=f;f=e+f|0;B=16-o|0;k[a+28+(D<<2)>>2]=(f+-1<>2]=n;k[t+(o<<2)>>2]=n;g=g>>>0>o>>>0?g:o;h=h>>>0>>0?h:o;n=e+n|0}o=o+1|0;if((o|0)==17){D=g;break}else f=f<<1}k[a+4>>2]=n;f=a+172|0;do if(n>>>0>(k[f>>2]|0)>>>0){k[f>>2]=n;if(n){e=n+-1|0;if(e&n)s=14}else{e=-1;s=14}if((s|0)==14){B=e>>>16|e;B=B>>>8|B;B=B>>>4|B;B=B>>>2|B;B=(B>>>1|B)+1|0;k[f>>2]=B>>>0>b>>>0?b:B}g=a+176|0;e=k[g>>2]|0;do if(e){B=k[e+-4>>2]|0;e=e+-8|0;if(!((B|0)!=0?(B|0)==(~k[e>>2]|0):0)){k[p>>2]=1138;k[p+4>>2]=647;k[p+8>>2]=1851;xc(E,1084,p)|0;wc(E)|0}if(!(e&7)){kb(e,0,0,1,0)|0;break}else{k[q>>2]=1138;k[q+4>>2]=2502;k[q+8>>2]=1504;xc(E,1084,q)|0;wc(E)|0;break}}while(0);f=k[f>>2]|0;f=(f|0)!=0?f:1;e=ib((f<<1)+8|0,0)|0;if(!e){k[g>>2]=0;e=0;break}else{k[e+4>>2]=f;k[e>>2]=~f;k[g>>2]=e+8;s=25;break}}else s=25;while(0);a:do if((s|0)==25){B=a+24|0;i[B>>0]=h;i[a+25>>0]=D;f=a+176|0;g=0;do{A=i[c+g>>0]|0;e=A&255;if(A<<24>>24){if(!(k[K+(e<<2)>>2]|0)){k[v>>2]=1138;k[v+4>>2]=2272;k[v+8>>2]=1249;xc(E,1084,v)|0;wc(E)|0}A=t+(e<<2)|0;e=k[A>>2]|0;k[A>>2]=e+1;if(e>>>0>=n>>>0){k[u>>2]=1138;k[u+4>>2]=2276;k[u+8>>2]=1262;xc(E,1084,u)|0;wc(E)|0}j[(k[f>>2]|0)+(e<<1)>>1]=g}g=g+1|0}while((g|0)!=(b|0));e=i[B>>0]|0;z=(e&255)>>>0>>0?d:0;A=a+8|0;k[A>>2]=z;y=(z|0)!=0;if(y){x=1<>>0>(k[e>>2]|0)>>>0){k[e>>2]=x;g=a+168|0;e=k[g>>2]|0;do if(e){v=k[e+-4>>2]|0;e=e+-8|0;if(!((v|0)!=0?(v|0)==(~k[e>>2]|0):0)){k[w>>2]=1138;k[w+4>>2]=647;k[w+8>>2]=1851;xc(E,1084,w)|0;wc(E)|0}if(!(e&7)){kb(e,0,0,1,0)|0;break}else{k[C>>2]=1138;k[C+4>>2]=2502;k[C+8>>2]=1504;xc(E,1084,C)|0;wc(E)|0;break}}while(0);e=x<<2;f=ib(e+8|0,0)|0;if(!f){k[g>>2]=0;e=0;break a}else{C=f+8|0;k[f+4>>2]=x;k[f>>2]=~x;k[g>>2]=C;f=C;break}}else{f=a+168|0;e=x<<2;g=f;f=k[f>>2]|0}while(0);_c(f|0,-1,e|0)|0;t=a+176|0;w=1;do{if(k[K+(w<<2)>>2]|0){u=z-w|0;v=1<>2]|0;if(f>>>0>=16){k[F>>2]=1138;k[F+4>>2]=1956;k[F+8>>2]=1725;xc(E,1084,F)|0;wc(E)|0}e=k[a+28+(f<<2)>>2]|0;if(!e)b=-1;else b=(e+-1|0)>>>(16-w|0);if(h>>>0<=b>>>0){q=(k[a+96+(f<<2)>>2]|0)-h|0;s=w<<16;do{e=m[(k[t>>2]|0)+(q+h<<1)>>1]|0;if((l[c+e>>0]|0|0)!=(w|0)){k[G>>2]=1138;k[G+4>>2]=2318;k[G+8>>2]=1291;xc(E,1084,G)|0;wc(E)|0}p=h<>>0>=x>>>0){k[H>>2]=1138;k[H+4>>2]=2324;k[H+8>>2]=1325;xc(E,1084,H)|0;wc(E)|0}e=k[g>>2]|0;if((k[e+(n<<2)>>2]|0)!=-1){k[I>>2]=1138;k[I+4>>2]=2326;k[I+8>>2]=1348;xc(E,1084,I)|0;wc(E)|0;e=k[g>>2]|0}k[e+(n<<2)>>2]=f;o=o+1|0}while(o>>>0>>0);h=h+1|0}while(h>>>0<=b>>>0)}}w=w+1|0}while(z>>>0>=w>>>0);e=i[B>>0]|0}f=a+96|0;k[f>>2]=(k[f>>2]|0)-(k[J>>2]|0);f=a+100|0;k[f>>2]=(k[f>>2]|0)-(k[J+4>>2]|0);f=a+104|0;k[f>>2]=(k[f>>2]|0)-(k[J+8>>2]|0);f=a+108|0;k[f>>2]=(k[f>>2]|0)-(k[J+12>>2]|0);f=a+112|0;k[f>>2]=(k[f>>2]|0)-(k[J+16>>2]|0);f=a+116|0;k[f>>2]=(k[f>>2]|0)-(k[J+20>>2]|0);f=a+120|0;k[f>>2]=(k[f>>2]|0)-(k[J+24>>2]|0);f=a+124|0;k[f>>2]=(k[f>>2]|0)-(k[J+28>>2]|0);f=a+128|0;k[f>>2]=(k[f>>2]|0)-(k[J+32>>2]|0);f=a+132|0;k[f>>2]=(k[f>>2]|0)-(k[J+36>>2]|0);f=a+136|0;k[f>>2]=(k[f>>2]|0)-(k[J+40>>2]|0);f=a+140|0;k[f>>2]=(k[f>>2]|0)-(k[J+44>>2]|0);f=a+144|0;k[f>>2]=(k[f>>2]|0)-(k[J+48>>2]|0);f=a+148|0;k[f>>2]=(k[f>>2]|0)-(k[J+52>>2]|0);f=a+152|0;k[f>>2]=(k[f>>2]|0)-(k[J+56>>2]|0);f=a+156|0;k[f>>2]=(k[f>>2]|0)-(k[J+60>>2]|0);f=a+16|0;k[f>>2]=0;g=a+20|0;k[g>>2]=e&255;b:do if(y){while(1){if(!d)break b;e=d+-1|0;if(!(k[K+(d<<2)>>2]|0))d=e;else break}k[f>>2]=k[a+28+(e<<2)>>2];e=z+1|0;k[g>>2]=e;if(e>>>0<=D>>>0){while(1){if(k[K+(e<<2)>>2]|0)break;e=e+1|0;if(e>>>0>D>>>0)break b}k[g>>2]=e}}while(0);k[a+92>>2]=-1;k[a+160>>2]=1048575;k[a+12>>2]=32-(k[A>>2]|0);e=1}while(0);a=e;r=L;return a|0}function kb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;do if(!a){d=Rc(b)|0;if(c){if(!d)a=0;else a=Uc(d)|0;k[c>>2]=a}}else{if(!b){Sc(a);if(!c){d=0;break}k[c>>2]=0;d=0;break}if(d){d=Tc(a,b)|0;a=(d|0)==0?a:d}else d=0;if(c){b=Uc(a)|0;k[c>>2]=b}}while(0);return d|0}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!((a|0)!=0&b>>>0>73&(c|0)!=0)){c=0;return c|0}if((k[c>>2]|0)!=40|b>>>0<74){c=0;return c|0}if(((l[a>>0]|0)<<8|(l[a+1>>0]|0)|0)!=18552){c=0;return c|0}if(((l[a+2>>0]|0)<<8|(l[a+3>>0]|0))>>>0<74){c=0;return c|0}if(((l[a+7>>0]|0)<<16|(l[a+6>>0]|0)<<24|(l[a+8>>0]|0)<<8|(l[a+9>>0]|0))>>>0>b>>>0){c=0;return c|0}k[c+4>>2]=(l[a+12>>0]|0)<<8|(l[a+13>>0]|0);k[c+8>>2]=(l[a+14>>0]|0)<<8|(l[a+15>>0]|0);k[c+12>>2]=l[a+16>>0];k[c+16>>2]=l[a+17>>0];b=a+18|0;d=c+32|0;k[d>>2]=l[b>>0];k[d+4>>2]=0;b=i[b>>0]|0;k[c+20>>2]=b<<24>>24==0|b<<24>>24==9?8:16;k[c+24>>2]=(l[a+26>>0]|0)<<16|(l[a+25>>0]|0)<<24|(l[a+27>>0]|0)<<8|(l[a+28>>0]|0);k[c+28>>2]=(l[a+30>>0]|0)<<16|(l[a+29>>0]|0)<<24|(l[a+31>>0]|0)<<8|(l[a+32>>0]|0);c=1;return c|0}function mb(a){a=a|0;Oa(a|0)|0;Rb()}function nb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;f=r;r=r+528|0;e=f;d=f+16|0;b=k[a+20>>2]|0;if(b)ob(b);b=a+4|0;c=k[b>>2]|0;if(!c){e=a+16|0;i[e>>0]=0;r=f;return}if(!(c&7))kb(c,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;xc(d,1084,e)|0;wc(d)|0}k[b>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;e=a+16|0;i[e>>0]=0;r=f;return}function ob(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=r;r=r+592|0;g=i+64|0;f=i+48|0;h=i+32|0;d=i+16|0;c=i;e=i+80|0;if(!a){r=i;return}b=k[a+168>>2]|0;do if(b){j=k[b+-4>>2]|0;b=b+-8|0;if(!((j|0)!=0?(j|0)==(~k[b>>2]|0):0)){k[c>>2]=1138;k[c+4>>2]=647;k[c+8>>2]=1851;xc(e,1084,c)|0;wc(e)|0}if(!(b&7)){kb(b,0,0,1,0)|0;break}else{k[d>>2]=1138;k[d+4>>2]=2502;k[d+8>>2]=1504;xc(e,1084,d)|0;wc(e)|0;break}}while(0);b=k[a+176>>2]|0;do if(b){j=k[b+-4>>2]|0;b=b+-8|0;if(!((j|0)!=0?(j|0)==(~k[b>>2]|0):0)){k[h>>2]=1138;k[h+4>>2]=647;k[h+8>>2]=1851;xc(e,1084,h)|0;wc(e)|0}if(!(b&7)){kb(b,0,0,1,0)|0;break}else{k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1504;xc(e,1084,f)|0;wc(e)|0;break}}while(0);if(!(a&7)){kb(a,0,0,1,0)|0;r=i;return}else{k[g>>2]=1138;k[g+4>>2]=2502;k[g+8>>2]=1504;xc(e,1084,g)|0;wc(e)|0;r=i;return}}function pb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+544|0;g=i+16|0;b=i;f=i+32|0;e=a+8|0;c=k[e>>2]|0;if((c+-1|0)>>>0>=8192){k[b>>2]=1138;k[b+4>>2]=3002;k[b+8>>2]=1529;xc(f,1084,b)|0;wc(f)|0}k[a>>2]=c;d=a+20|0;b=k[d>>2]|0;if(!b){b=ib(180,0)|0;if(!b)b=0;else{h=b+164|0;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;k[h+12>>2]=0}k[d>>2]=b;h=k[a>>2]|0}else h=c;if(!(k[e>>2]|0)){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;xc(f,1084,g)|0;wc(f)|0;g=k[a>>2]|0}else g=h;f=k[a+4>>2]|0;if(g>>>0>16){d=g;c=0}else{a=0;a=jb(b,h,f,a)|0;r=i;return a|0}while(1){e=c+1|0;if(d>>>0>3){d=d>>>1;c=e}else{d=e;break}}a=c+2+((d|0)!=32&1<>>0>>0&1)|0;a=a>>>0<11?a&255:11;a=jb(b,h,f,a)|0;r=i;return a|0}function qb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=r;r=r+720|0;z=E+160|0;y=E+144|0;x=E+128|0;w=E+112|0;v=E+96|0;u=E+80|0;t=E+64|0;s=E+48|0;n=E+32|0;h=E+16|0;e=E;C=E+200|0;D=E+176|0;A=rb(a,14)|0;if(!A){k[b>>2]=0;c=b+4|0;d=k[c>>2]|0;if(d){if(!(d&7))kb(d,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;xc(C,1084,e)|0;wc(C)|0}k[c>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0}i[b+16>>0]=0;c=b+20|0;d=k[c>>2]|0;if(!d){b=1;r=E;return b|0}ob(d);k[c>>2]=0;b=1;r=E;return b|0}p=b+4|0;q=b+8|0;c=k[q>>2]|0;if((c|0)!=(A|0)){if(c>>>0<=A>>>0){do if((k[b+12>>2]|0)>>>0>>0){if(gb(p,A,(c+1|0)==(A|0),1,0)|0){c=k[q>>2]|0;break}i[b+16>>0]=1;b=0;r=E;return b|0}while(0);_c((k[p>>2]|0)+c|0,0,A-c|0)|0}k[q>>2]=A}_c(k[p>>2]|0,0,A|0)|0;o=a+20|0;c=k[o>>2]|0;if((c|0)<5){f=a+4|0;g=a+8|0;e=a+16|0;do{d=k[f>>2]|0;if((d|0)==(k[g>>2]|0))d=0;else{k[f>>2]=d+1;d=l[d>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[h>>2]=1138;k[h+4>>2]=3204;k[h+8>>2]=1638;xc(C,1084,h)|0;wc(C)|0;c=k[o>>2]|0}d=d<<32-c|k[e>>2];k[e>>2]=d}while((c|0)<5)}else{d=a+16|0;e=d;d=k[d>>2]|0}m=d>>>27;k[e>>2]=d<<5;k[o>>2]=c+-5;if((m+-1|0)>>>0>20){b=0;r=E;return b|0}k[D+20>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;k[D+12>>2]=0;i[D+16>>0]=0;c=D+4|0;d=D+8|0;a:do if(gb(c,21,0,1,0)|0){h=k[d>>2]|0;j=k[c>>2]|0;_c(j+h|0,0,21-h|0)|0;k[d>>2]=21;if(m){e=a+4|0;f=a+8|0;g=a+16|0;h=0;do{c=k[o>>2]|0;if((c|0)<3)do{d=k[e>>2]|0;if((d|0)==(k[f>>2]|0))d=0;else{k[e>>2]=d+1;d=l[d>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[n>>2]=1138;k[n+4>>2]=3204;k[n+8>>2]=1638;xc(C,1084,n)|0;wc(C)|0;c=k[o>>2]|0}d=d<<32-c|k[g>>2];k[g>>2]=d}while((c|0)<3);else d=k[g>>2]|0;k[g>>2]=d<<3;k[o>>2]=c+-3;i[j+(l[1599+h>>0]|0)>>0]=d>>>29;h=h+1|0}while((h|0)!=(m|0))}if(pb(D)|0){m=a+4|0;h=a+8|0;j=a+16|0;d=0;b:while(1){g=A-d|0;c=sb(a,D)|0;c:do if(c>>>0<17){if((k[q>>2]|0)>>>0<=d>>>0){k[s>>2]=1138;k[s+4>>2]=906;k[s+8>>2]=1769;xc(C,1084,s)|0;wc(C)|0}i[(k[p>>2]|0)+d>>0]=c;c=d+1|0}else switch(c|0){case 17:{c=k[o>>2]|0;if((c|0)<3)do{e=k[m>>2]|0;if((e|0)==(k[h>>2]|0))e=0;else{k[m>>2]=e+1;e=l[e>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[t>>2]=1138;k[t+4>>2]=3204;k[t+8>>2]=1638;xc(C,1084,t)|0;wc(C)|0;c=k[o>>2]|0}e=e<<32-c|k[j>>2];k[j>>2]=e}while((c|0)<3);else e=k[j>>2]|0;k[j>>2]=e<<3;k[o>>2]=c+-3;c=(e>>>29)+3|0;if(c>>>0>g>>>0){c=0;break a}c=c+d|0;break c}case 18:{c=k[o>>2]|0;if((c|0)<7)do{e=k[m>>2]|0;if((e|0)==(k[h>>2]|0))e=0;else{k[m>>2]=e+1;e=l[e>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[u>>2]=1138;k[u+4>>2]=3204;k[u+8>>2]=1638;xc(C,1084,u)|0;wc(C)|0;c=k[o>>2]|0}e=e<<32-c|k[j>>2];k[j>>2]=e}while((c|0)<7);else e=k[j>>2]|0;k[j>>2]=e<<7;k[o>>2]=c+-7;c=(e>>>25)+11|0;if(c>>>0>g>>>0){c=0;break a}c=c+d|0;break c}default:{if((c+-19|0)>>>0>=2){B=90;break b}f=k[o>>2]|0;if((c|0)==19){if((f|0)<2){e=f;while(1){c=k[m>>2]|0;if((c|0)==(k[h>>2]|0))f=0;else{k[m>>2]=c+1;f=l[c>>0]|0}c=e+8|0;k[o>>2]=c;if((c|0)>=33){k[v>>2]=1138;k[v+4>>2]=3204;k[v+8>>2]=1638;xc(C,1084,v)|0;wc(C)|0;c=k[o>>2]|0}e=f<<32-c|k[j>>2];k[j>>2]=e;if((c|0)<2)e=c;else break}}else{e=k[j>>2]|0;c=f}k[j>>2]=e<<2;k[o>>2]=c+-2;f=(e>>>30)+3|0}else{if((f|0)<6){e=f;while(1){c=k[m>>2]|0;if((c|0)==(k[h>>2]|0))f=0;else{k[m>>2]=c+1;f=l[c>>0]|0}c=e+8|0;k[o>>2]=c;if((c|0)>=33){k[w>>2]=1138;k[w+4>>2]=3204;k[w+8>>2]=1638;xc(C,1084,w)|0;wc(C)|0;c=k[o>>2]|0}e=f<<32-c|k[j>>2];k[j>>2]=e;if((c|0)<6)e=c;else break}}else{e=k[j>>2]|0;c=f}k[j>>2]=e<<6;k[o>>2]=c+-6;f=(e>>>26)+7|0}if((d|0)==0|f>>>0>g>>>0){c=0;break a}c=d+-1|0;if((k[q>>2]|0)>>>0<=c>>>0){k[x>>2]=1138;k[x+4>>2]=906;k[x+8>>2]=1769;xc(C,1084,x)|0;wc(C)|0}e=i[(k[p>>2]|0)+c>>0]|0;if(!(e<<24>>24)){c=0;break a}c=f+d|0;if(d>>>0>=c>>>0){c=d;break c}do{if((k[q>>2]|0)>>>0<=d>>>0){k[y>>2]=1138;k[y+4>>2]=906;k[y+8>>2]=1769;xc(C,1084,y)|0;wc(C)|0}i[(k[p>>2]|0)+d>>0]=e;d=d+1|0}while((d|0)!=(c|0))}}while(0);if(A>>>0>c>>>0)d=c;else break}if((B|0)==90){k[z>>2]=1138;k[z+4>>2]=3145;k[z+8>>2]=1620;xc(C,1084,z)|0;wc(C)|0;c=0;break}if((A|0)==(c|0))c=pb(b)|0;else c=0}else c=0}else{i[D+16>>0]=1;c=0}while(0);nb(D);b=c;r=E;return b|0}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+528|0;g=j;f=j+16|0;if(!b){i=0;r=j;return i|0}if(b>>>0<=16){i=tb(a,b)|0;r=j;return i|0}h=tb(a,b+-16|0)|0;i=a+20|0;b=k[i>>2]|0;if((b|0)<16){d=a+4|0;e=a+8|0;c=a+16|0;do{a=k[d>>2]|0;if((a|0)==(k[e>>2]|0))a=0;else{k[d>>2]=a+1;a=l[a>>0]|0}b=b+8|0;k[i>>2]=b;if((b|0)>=33){k[g>>2]=1138;k[g+4>>2]=3204;k[g+8>>2]=1638;xc(f,1084,g)|0;wc(f)|0;b=k[i>>2]|0}a=a<<32-b|k[c>>2];k[c>>2]=a}while((b|0)<16)}else{a=a+16|0;c=a;a=k[a>>2]|0}k[c>>2]=a<<16;k[i>>2]=b+-16;i=a>>>16|h<<16;r=j;return i|0}function sb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,n=0,o=0,p=0,q=0,s=0,t=0;t=r;r=r+576|0;o=t+48|0;n=t+32|0;j=t+16|0;i=t;q=t+64|0;p=k[b+20>>2]|0;s=a+20|0;h=k[s>>2]|0;do if((h|0)<24){g=a+4|0;d=k[g>>2]|0;e=k[a+8>>2]|0;c=d>>>0>>0;if((h|0)>=16){if(c){k[g>>2]=d+1;c=l[d>>0]|0}else c=0;k[s>>2]=h+8;g=a+16|0;f=c<<24-h|k[g>>2];k[g>>2]=f;break}if(c){f=(l[d>>0]|0)<<8;c=d+1|0}else{f=0;c=d}if(c>>>0>>0){d=l[c>>0]|0;c=c+1|0}else d=0;k[g>>2]=c;k[s>>2]=h+16;g=a+16|0;f=(d|f)<<16-h|k[g>>2];k[g>>2]=f}else{f=a+16|0;g=f;f=k[f>>2]|0}while(0);e=(f>>>16)+1|0;do if(e>>>0<=(k[p+16>>2]|0)>>>0){d=k[(k[p+168>>2]|0)+(f>>>(32-(k[p+8>>2]|0)|0)<<2)>>2]|0;if((d|0)==-1){k[i>>2]=1138;k[i+4>>2]=3249;k[i+8>>2]=1665;xc(q,1084,i)|0;wc(q)|0}c=d&65535;d=d>>>16;if((k[b+8>>2]|0)>>>0<=c>>>0){k[j>>2]=1138;k[j+4>>2]=905;k[j+8>>2]=1769;xc(q,1084,j)|0;wc(q)|0}if((l[(k[b+4>>2]|0)+c>>0]|0|0)!=(d|0)){k[n>>2]=1138;k[n+4>>2]=3253;k[n+8>>2]=1682;xc(q,1084,n)|0;wc(q)|0}}else{d=k[p+20>>2]|0;while(1){c=d+-1|0;if(e>>>0>(k[p+28+(c<<2)>>2]|0)>>>0)d=d+1|0;else break}c=(f>>>(32-d|0))+(k[p+96+(c<<2)>>2]|0)|0;if(c>>>0<(k[b>>2]|0)>>>0){c=m[(k[p+176>>2]|0)+(c<<1)>>1]|0;break}k[o>>2]=1138;k[o+4>>2]=3271;k[o+8>>2]=1620;xc(q,1084,o)|0;wc(q)|0;s=0;r=t;return s|0}while(0);k[g>>2]=k[g>>2]<>2]=(k[s>>2]|0)-d;s=c;r=t;return s|0}function tb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+544|0;h=j+16|0;c=j;g=j+32|0;if(b>>>0>=33){k[c>>2]=1138;k[c+4>>2]=3195;k[c+8>>2]=1622;xc(g,1084,c)|0;wc(g)|0}i=a+20|0;c=k[i>>2]|0;if((c|0)>=(b|0)){e=a+16|0;f=e;e=k[e>>2]|0;g=c;h=32-b|0;h=e>>>h;e=e<>2]=e;b=g-b|0;k[i>>2]=b;r=j;return h|0}e=a+4|0;f=a+8|0;d=a+16|0;do{a=k[e>>2]|0;if((a|0)==(k[f>>2]|0))a=0;else{k[e>>2]=a+1;a=l[a>>0]|0}c=c+8|0;k[i>>2]=c;if((c|0)>=33){k[h>>2]=1138;k[h+4>>2]=3204;k[h+8>>2]=1638;xc(g,1084,h)|0;wc(g)|0;c=k[i>>2]|0}a=a<<32-c|k[d>>2];k[d>>2]=a}while((c|0)<(b|0));h=32-b|0;h=a>>>h;g=a<>2]=g;b=c-b|0;k[i>>2]=b;r=j;return h|0}function ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+528|0;o=q;n=q+16|0;if((a|0)==0|b>>>0<62){p=0;r=q;return p|0}m=ib(300,0)|0;if(!m){p=0;r=q;return p|0}k[m>>2]=519686845;c=m+4|0;k[c>>2]=0;d=m+8|0;k[d>>2]=0;j=m+88|0;e=m+136|0;f=m+160|0;g=j;h=g+44|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(h|0));i[j+44>>0]=0;s=m+184|0;g=m+208|0;h=m+232|0;t=m+252|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;t=m+268|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;t=m+284|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[e+16>>2]=0;i[e+20>>0]=0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[f+16>>2]=0;i[f+20>>0]=0;k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;k[s+12>>2]=0;k[s+16>>2]=0;i[s+20>>0]=0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;i[g+20>>0]=0;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;k[h+12>>2]=0;i[h+16>>0]=0;do if(((b>>>0>=74?((l[a>>0]|0)<<8|(l[a+1>>0]|0)|0)==18552:0)?((l[a+2>>0]|0)<<8|(l[a+3>>0]|0))>>>0>=74:0)?((l[a+7>>0]|0)<<16|(l[a+6>>0]|0)<<24|(l[a+8>>0]|0)<<8|(l[a+9>>0]|0))>>>0<=b>>>0:0){k[j>>2]=a;k[c>>2]=a;k[d>>2]=b;if(Db(m)|0){c=k[j>>2]|0;if((l[c+39>>0]|0)<<8|(l[c+40>>0]|0)){if(!(Eb(m)|0))break;if(!(Fb(m)|0))break;c=k[j>>2]|0}if(!((l[c+55>>0]|0)<<8|(l[c+56>>0]|0))){t=m;r=q;return t|0}if(Gb(m)|0?Hb(m)|0:0){t=m;r=q;return t|0}}}else p=7;while(0);if((p|0)==7)k[j>>2]=0;Mb(m);if(!(m&7)){kb(m,0,0,1,0)|0;t=0;r=q;return t|0}else{k[o>>2]=1138;k[o+4>>2]=2502;k[o+8>>2]=1504;xc(n,1084,o)|0;wc(n)|0;t=0;r=q;return t|0}return 0}function vb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,m=0;m=r;r=r+528|0;j=m;i=m+16|0;f=k[a+88>>2]|0;h=(l[f+70+(e<<2)+1>>0]|0)<<16|(l[f+70+(e<<2)>>0]|0)<<24|(l[f+70+(e<<2)+2>>0]|0)<<8|(l[f+70+(e<<2)+3>>0]|0);g=e+1|0;if(g>>>0<(l[f+16>>0]|0)>>>0)f=(l[f+70+(g<<2)+1>>0]|0)<<16|(l[f+70+(g<<2)>>0]|0)<<24|(l[f+70+(g<<2)+2>>0]|0)<<8|(l[f+70+(g<<2)+3>>0]|0);else f=k[a+8>>2]|0;if(f>>>0>h>>>0){i=a+4|0;i=k[i>>2]|0;i=i+h|0;j=f-h|0;j=wb(a,i,j,b,c,d,e)|0;r=m;return j|0}k[j>>2]=1138;k[j+4>>2]=3690;k[j+8>>2]=1780;xc(i,1084,j)|0;wc(i)|0;i=a+4|0;i=k[i>>2]|0;i=i+h|0;j=f-h|0;j=wb(a,i,j,b,c,d,e)|0;r=m;return j|0}function wb(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,m=0,n=0;n=k[a+88>>2]|0;j=((l[n+12>>0]|0)<<8|(l[n+13>>0]|0))>>>g;m=((l[n+14>>0]|0)<<8|(l[n+15>>0]|0))>>>g;j=j>>>0>1?(j+3|0)>>>2:1;m=m>>>0>1?(m+3|0)>>>2:1;n=n+18|0;g=i[n>>0]|0;g=ha(g<<24>>24==0|g<<24>>24==9?8:16,j)|0;if(f)if((f&3|0)==0&g>>>0<=f>>>0)g=f;else{a=0;return a|0}if((ha(g,m)|0)>>>0>e>>>0){a=0;return a|0}f=(j+1|0)>>>1;h=(m+1|0)>>>1;if(!c){a=0;return a|0}k[a+92>>2]=b;k[a+96>>2]=b;k[a+104>>2]=c;k[a+100>>2]=b+c;k[a+108>>2]=0;k[a+112>>2]=0;switch(l[n>>0]|0|0){case 0:{Ib(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 4:case 6:case 5:case 3:case 2:{Jb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 9:{Kb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 8:case 7:{Lb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}default:{a=0;return a|0}}return 0}function xb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+4>>2]|0}function yb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+8>>2]|0}function zb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+12>>2]|0}function Ab(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+32>>2]|0}function Bb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=r;r=r+576|0;e=g+40|0;d=g+56|0;h=g;k[h>>2]=40;lb(a,b,h)|0;b=((k[h+4>>2]|0)+3|0)>>>2;c=((k[h+8>>2]|0)+3|0)>>>2;h=h+32|0;a=k[h+4>>2]|0;do switch(k[h>>2]|0){case 0:{if(!a)a=8;else f=14;break}case 1:{if(!a)f=13;else f=14;break}case 2:{if(!a)f=13;else f=14;break}case 3:{if(!a)f=13;else f=14;break}case 4:{if(!a)f=13;else f=14;break}case 5:{if(!a)f=13;else f=14;break}case 6:{if(!a)f=13;else f=14;break}case 7:{if(!a)f=13;else f=14;break}case 8:{if(!a)f=13;else f=14;break}case 9:{if(!a)a=8;else f=14;break}case 10:{if(!a)a=8;else f=14;break}default:f=14}while(0);if((f|0)==13)a=16;else if((f|0)==14){k[e>>2]=1138;k[e+4>>2]=2668;k[e+8>>2]=1523;xc(d,1084,e)|0;wc(d)|0;a=0}h=ha(ha(c,b)|0,a)|0;r=g;return h|0}function Cb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;m=r;r=r+592|0;l=m+56|0;f=m+40|0;i=m+72|0;n=m;j=m+68|0;k[n>>2]=40;lb(a,b,n)|0;g=((k[n+4>>2]|0)+3|0)>>>2;n=n+32|0;e=k[n+4>>2]|0;do switch(k[n>>2]|0){case 0:{if(!e)e=8;else h=14;break}case 1:{if(!e)h=13;else h=14;break}case 2:{if(!e)h=13;else h=14;break}case 3:{if(!e)h=13;else h=14;break}case 4:{if(!e)h=13;else h=14;break}case 5:{if(!e)h=13;else h=14;break}case 6:{if(!e)h=13;else h=14;break}case 7:{if(!e)h=13;else h=14;break}case 8:{if(!e)h=13;else h=14;break}case 9:{if(!e)e=8;else h=14;break}case 10:{if(!e)e=8;else h=14;break}default:h=14}while(0);if((h|0)==13)e=16;else if((h|0)==14){k[f>>2]=1138;k[f+4>>2]=2668;k[f+8>>2]=1523;xc(i,1084,f)|0;wc(i)|0;e=0}g=ha(e,g)|0;f=ub(a,b)|0;k[j>>2]=c;e=(f|0)==0;if(!(d>>>0<8|e)?(k[f>>2]|0)==519686845:0)vb(f,j,d,g,0)|0;if(e){r=m;return}if((k[f>>2]|0)!=519686845){r=m;return}Mb(f);if(!(f&7)){kb(f,0,0,1,0)|0;r=m;return}else{k[l>>2]=1138;k[l+4>>2]=2502;k[l+8>>2]=1504;xc(i,1084,l)|0;wc(i)|0;r=m;return}}function Db(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;g=a+92|0;d=k[a+4>>2]|0;f=a+88|0;e=k[f>>2]|0;b=(l[e+68>>0]|0)<<8|(l[e+67>>0]|0)<<16|(l[e+69>>0]|0);c=d+b|0;e=(l[e+65>>0]|0)<<8|(l[e+66>>0]|0);if(!e){a=0;return a|0}k[g>>2]=c;k[a+96>>2]=c;k[a+104>>2]=e;k[a+100>>2]=d+(e+b);k[a+108>>2]=0;k[a+112>>2]=0;if(!(qb(g,a+116|0)|0)){a=0;return a|0}b=k[f>>2]|0;do if(!((l[b+39>>0]|0)<<8|(l[b+40>>0]|0))){if(!((l[b+55>>0]|0)<<8|(l[b+56>>0]|0))){a=0;return a|0}}else{if(!(qb(g,a+140|0)|0)){a=0;return a|0}if(qb(g,a+188|0)|0){b=k[f>>2]|0;break}else{a=0;return a|0}}while(0);if((l[b+55>>0]|0)<<8|(l[b+56>>0]|0)){if(!(qb(g,a+164|0)|0)){a=0;return a|0}if(!(qb(g,a+212|0)|0)){a=0;return a|0}}a=1;return a|0}function Eb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+576|0;h=q;g=q+64|0;p=q+16|0;d=a+88|0;b=k[d>>2]|0;o=(l[b+39>>0]|0)<<8|(l[b+40>>0]|0);m=a+236|0;f=a+240|0;c=k[f>>2]|0;if((c|0)!=(o|0)){if(c>>>0<=o>>>0){do if((k[a+244>>2]|0)>>>0>>0){if(gb(m,o,(c+1|0)==(o|0),4,0)|0){b=k[f>>2]|0;break}i[a+248>>0]=1;p=0;r=q;return p|0}else b=c;while(0);_c((k[m>>2]|0)+(b<<2)|0,0,o-b<<2|0)|0;b=k[d>>2]|0}k[f>>2]=o}j=a+92|0;c=k[a+4>>2]|0;d=(l[b+34>>0]|0)<<8|(l[b+33>>0]|0)<<16|(l[b+35>>0]|0);e=c+d|0;b=(l[b+37>>0]|0)<<8|(l[b+36>>0]|0)<<16|(l[b+38>>0]|0);if(!b){p=0;r=q;return p|0}k[j>>2]=e;k[a+96>>2]=e;k[a+104>>2]=b;k[a+100>>2]=c+(b+d);k[a+108>>2]=0;k[a+112>>2]=0;k[p+20>>2]=0;k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;k[p+12>>2]=0;i[p+16>>0]=0;a=p+24|0;k[p+44>>2]=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;i[a+16>>0]=0;if(qb(j,p)|0?(n=p+24|0,qb(j,n)|0):0){if(!(k[f>>2]|0)){k[h>>2]=1138;k[h+4>>2]=906;k[h+8>>2]=1769;xc(g,1084,h)|0;wc(g)|0}if(!o)b=1;else{d=0;e=0;f=0;b=0;g=0;a=0;h=0;c=k[m>>2]|0;while(1){d=(sb(j,p)|0)+d&31;e=(sb(j,n)|0)+e&63;f=(sb(j,p)|0)+f&31;b=(sb(j,p)|0)+b|0;g=(sb(j,n)|0)+g&63;a=(sb(j,p)|0)+a&31;k[c>>2]=e<<5|d<<11|f|b<<27|g<<21|a<<16;h=h+1|0;if((h|0)==(o|0)){b=1;break}else{b=b&31;c=c+4|0}}}}else b=0;nb(p+24|0);nb(p);p=b;r=q;return p|0}function Fb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;D=r;r=r+1008|0;g=D;f=D+496|0;C=D+472|0;A=D+276|0;B=D+80|0;z=D+16|0;e=k[a+88>>2]|0;y=(l[e+47>>0]|0)<<8|(l[e+48>>0]|0);x=a+92|0;b=k[a+4>>2]|0;c=(l[e+42>>0]|0)<<8|(l[e+41>>0]|0)<<16|(l[e+43>>0]|0);d=b+c|0;e=(l[e+45>>0]|0)<<8|(l[e+44>>0]|0)<<16|(l[e+46>>0]|0);if(!e){C=0;r=D;return C|0}k[x>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[C+20>>2]=0;k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[C+12>>2]=0;i[C+16>>0]=0;if(qb(x,C)|0){c=0;d=-3;e=-3;while(1){k[A+(c<<2)>>2]=d;k[B+(c<<2)>>2]=e;b=(d|0)>2;c=c+1|0;if((c|0)==49)break;else{d=b?-3:d+1|0;e=(b&1)+e|0}}b=z;c=b+64|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(c|0));w=a+252|0;c=a+256|0;b=k[c>>2]|0;a:do if((b|0)==(y|0))h=13;else{if(b>>>0<=y>>>0){do if((k[a+260>>2]|0)>>>0>>0)if(gb(w,y,(b+1|0)==(y|0),4,0)|0){b=k[c>>2]|0;break}else{i[a+264>>0]=1;b=0;break a}while(0);_c((k[w>>2]|0)+(b<<2)|0,0,y-b<<2|0)|0}k[c>>2]=y;h=13}while(0);do if((h|0)==13){if(!y){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;xc(f,1084,g)|0;wc(f)|0;b=1;break}d=z+4|0;e=z+8|0;a=z+12|0;f=z+16|0;g=z+20|0;h=z+24|0;j=z+28|0;m=z+32|0;n=z+36|0;o=z+40|0;p=z+44|0;q=z+48|0;s=z+52|0;t=z+56|0;u=z+60|0;v=0;c=k[w>>2]|0;while(1){b=0;do{E=sb(x,C)|0;w=b<<1;F=z+(w<<2)|0;k[F>>2]=(k[F>>2]|0)+(k[A+(E<<2)>>2]|0)&3;w=z+((w|1)<<2)|0;k[w>>2]=(k[w>>2]|0)+(k[B+(E<<2)>>2]|0)&3;b=b+1|0}while((b|0)!=8);k[c>>2]=(l[1713+(k[d>>2]|0)>>0]|0)<<2|(l[1713+(k[z>>2]|0)>>0]|0)|(l[1713+(k[e>>2]|0)>>0]|0)<<4|(l[1713+(k[a>>2]|0)>>0]|0)<<6|(l[1713+(k[f>>2]|0)>>0]|0)<<8|(l[1713+(k[g>>2]|0)>>0]|0)<<10|(l[1713+(k[h>>2]|0)>>0]|0)<<12|(l[1713+(k[j>>2]|0)>>0]|0)<<14|(l[1713+(k[m>>2]|0)>>0]|0)<<16|(l[1713+(k[n>>2]|0)>>0]|0)<<18|(l[1713+(k[o>>2]|0)>>0]|0)<<20|(l[1713+(k[p>>2]|0)>>0]|0)<<22|(l[1713+(k[q>>2]|0)>>0]|0)<<24|(l[1713+(k[s>>2]|0)>>0]|0)<<26|(l[1713+(k[t>>2]|0)>>0]|0)<<28|(l[1713+(k[u>>2]|0)>>0]|0)<<30;v=v+1|0;if((v|0)==(y|0)){b=1;break}else c=c+4|0}}while(0)}else b=0;nb(C);F=b;r=D;return F|0}function Gb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,m=0,n=0,o=0,p=0;p=r;r=r+560|0;h=p;g=p+40|0;o=p+16|0;e=k[a+88>>2]|0;n=(l[e+55>>0]|0)<<8|(l[e+56>>0]|0);m=a+92|0;b=k[a+4>>2]|0;c=(l[e+50>>0]|0)<<8|(l[e+49>>0]|0)<<16|(l[e+51>>0]|0);d=b+c|0;e=(l[e+53>>0]|0)<<8|(l[e+52>>0]|0)<<16|(l[e+54>>0]|0);if(!e){o=0;r=p;return o|0}k[m>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[o+20>>2]=0;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;k[o+12>>2]=0;i[o+16>>0]=0;a:do if(qb(m,o)|0){f=a+268|0;c=a+272|0;b=k[c>>2]|0;if((b|0)!=(n|0)){if(b>>>0<=n>>>0){do if((k[a+276>>2]|0)>>>0>>0)if(gb(f,n,(b+1|0)==(n|0),2,0)|0){b=k[c>>2]|0;break}else{i[a+280>>0]=1;b=0;break a}while(0);_c((k[f>>2]|0)+(b<<1)|0,0,n-b<<1|0)|0}k[c>>2]=n}if(!n){k[h>>2]=1138;k[h+4>>2]=906;k[h+8>>2]=1769;xc(g,1084,h)|0;wc(g)|0;b=1;break}c=0;d=0;e=0;b=k[f>>2]|0;while(1){h=sb(m,o)|0;c=h+c&255;d=(sb(m,o)|0)+d&255;j[b>>1]=d<<8|c;e=e+1|0;if((e|0)==(n|0)){b=1;break}else b=b+2|0}}else b=0;while(0);nb(o);o=b;r=p;return o|0}function Hb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;E=r;r=r+2416|0;g=E;f=E+1904|0;D=E+1880|0;B=E+980|0;C=E+80|0;A=E+16|0;e=k[a+88>>2]|0;z=(l[e+63>>0]|0)<<8|(l[e+64>>0]|0);y=a+92|0;b=k[a+4>>2]|0;c=(l[e+58>>0]|0)<<8|(l[e+57>>0]|0)<<16|(l[e+59>>0]|0);d=b+c|0;e=(l[e+61>>0]|0)<<8|(l[e+60>>0]|0)<<16|(l[e+62>>0]|0);if(!e){D=0;r=E;return D|0}k[y>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[D+20>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;k[D+12>>2]=0;i[D+16>>0]=0;if(qb(y,D)|0){c=0;d=-7;e=-7;while(1){k[B+(c<<2)>>2]=d;k[C+(c<<2)>>2]=e;b=(d|0)>6;c=c+1|0;if((c|0)==225)break;else{d=b?-7:d+1|0;e=(b&1)+e|0}}b=A;c=b+64|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(c|0));x=a+284|0;c=z*3|0;d=a+288|0;b=k[d>>2]|0;a:do if((b|0)==(c|0))h=13;else{if(b>>>0<=c>>>0){do if((k[a+292>>2]|0)>>>0>>0)if(gb(x,c,(b+1|0)==(c|0),2,0)|0){b=k[d>>2]|0;break}else{i[a+296>>0]=1;b=0;break a}while(0);_c((k[x>>2]|0)+(b<<1)|0,0,c-b<<1|0)|0}k[d>>2]=c;h=13}while(0);do if((h|0)==13){if(!z){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;xc(f,1084,g)|0;wc(f)|0;b=1;break}d=A+4|0;e=A+8|0;a=A+12|0;f=A+16|0;g=A+20|0;h=A+24|0;m=A+28|0;n=A+32|0;o=A+36|0;p=A+40|0;q=A+44|0;s=A+48|0;t=A+52|0;u=A+56|0;v=A+60|0;w=0;c=k[x>>2]|0;while(1){b=0;do{F=sb(y,D)|0;x=b<<1;G=A+(x<<2)|0;k[G>>2]=(k[G>>2]|0)+(k[B+(F<<2)>>2]|0)&7;x=A+((x|1)<<2)|0;k[x>>2]=(k[x>>2]|0)+(k[C+(F<<2)>>2]|0)&7;b=b+1|0}while((b|0)!=8);F=l[1717+(k[g>>2]|0)>>0]|0;j[c>>1]=(l[1717+(k[d>>2]|0)>>0]|0)<<3|(l[1717+(k[A>>2]|0)>>0]|0)|(l[1717+(k[e>>2]|0)>>0]|0)<<6|(l[1717+(k[a>>2]|0)>>0]|0)<<9|(l[1717+(k[f>>2]|0)>>0]|0)<<12|F<<15;G=l[1717+(k[p>>2]|0)>>0]|0;j[c+2>>1]=(l[1717+(k[h>>2]|0)>>0]|0)<<2|F>>>1|(l[1717+(k[m>>2]|0)>>0]|0)<<5|(l[1717+(k[n>>2]|0)>>0]|0)<<8|(l[1717+(k[o>>2]|0)>>0]|0)<<11|G<<14;j[c+4>>1]=(l[1717+(k[q>>2]|0)>>0]|0)<<1|G>>>2|(l[1717+(k[s>>2]|0)>>0]|0)<<4|(l[1717+(k[t>>2]|0)>>0]|0)<<7|(l[1717+(k[u>>2]|0)>>0]|0)<<10|(l[1717+(k[v>>2]|0)>>0]|0)<<13;w=w+1|0;if((w|0)==(z|0)){b=1;break}else c=c+6|0}}while(0)}else b=0;nb(D);G=b;r=E;return G|0}function Ib(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ia=0,ja=0;ga=r;r=r+656|0;ea=ga+112|0;ca=ga+96|0;ba=ga+80|0;aa=ga+64|0;$=ga+48|0;fa=ga+32|0;da=ga+16|0;_=ga;Y=ga+144|0;Z=ga+128|0;R=a+240|0;S=k[R>>2]|0;V=a+256|0;W=k[V>>2]|0;c=i[(k[a+88>>2]|0)+17>>0]|0;X=d>>>2;if(!(c<<24>>24)){r=ga;return 1}T=(h|0)==0;U=h+-1|0;K=(f&1|0)!=0;L=d<<1;M=a+92|0;N=a+116|0;O=a+140|0;P=a+236|0;Q=g+-1|0;J=(e&1|0)!=0;I=a+188|0;D=a+252|0;E=X+1|0;F=X+2|0;G=X+3|0;H=Q<<4;B=c&255;c=0;f=0;e=1;C=0;do{if(!T){z=k[b+(C<<2)>>2]|0;A=0;while(1){w=A&1;j=(w|0)==0;v=(w<<5^32)+-16|0;w=(w<<1^2)+-1|0;y=j?g:-1;m=j?0:Q;a=(A|0)==(U|0);x=K&a;if((m|0)!=(y|0)){u=K&a^1;t=j?z:z+H|0;while(1){if((e|0)==1)e=sb(M,N)|0|512;s=e&7;e=e>>>3;j=l[1811+s>>0]|0;a=0;do{p=(sb(M,O)|0)+f|0;q=p-S|0;f=q>>31;f=f&p|q&~f;if((k[R>>2]|0)>>>0<=f>>>0){k[_>>2]=1138;k[_+4>>2]=906;k[_+8>>2]=1769;xc(Y,1084,_)|0;wc(Y)|0}k[Z+(a<<2)>>2]=k[(k[P>>2]|0)+(f<<2)>>2];a=a+1|0}while(a>>>0>>0);q=J&(m|0)==(Q|0);if(x|q){p=0;do{n=ha(p,d)|0;a=t+n|0;j=(p|0)==0|u;o=p<<1;ja=(sb(M,I)|0)+c|0;ia=ja-W|0;c=ia>>31;c=c&ja|ia&~c;do if(q){if(!j){ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;break}k[a>>2]=k[Z+((l[1819+(s<<2)+o>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ca>>2]=1138;k[ca+4>>2]=906;k[ca+8>>2]=1769;xc(Y,1084,ca)|0;wc(Y)|0}k[t+(n+4)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c}else{if(!j){ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;break}k[a>>2]=k[Z+((l[1819+(s<<2)+o>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ba>>2]=1138;k[ba+4>>2]=906;k[ba+8>>2]=1769;xc(Y,1084,ba)|0;wc(Y)|0}k[t+(n+4)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;k[t+(n+8)>>2]=k[Z+((l[(o|1)+(1819+(s<<2))>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ea>>2]=1138;k[ea+4>>2]=906;k[ea+8>>2]=1769;xc(Y,1084,ea)|0;wc(Y)|0}k[t+(n+12)>>2]=k[(k[D>>2]|0)+(c<<2)>>2]}while(0);p=p+1|0}while((p|0)!=2)}else{k[t>>2]=k[Z+((l[1819+(s<<2)>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[da>>2]=1138;k[da+4>>2]=906;k[da+8>>2]=1769;xc(Y,1084,da)|0;wc(Y)|0}k[t+4>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+8>>2]=k[Z+((l[1819+(s<<2)+1>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[fa>>2]=1138;k[fa+4>>2]=906;k[fa+8>>2]=1769;xc(Y,1084,fa)|0;wc(Y)|0}k[t+12>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+(X<<2)>>2]=k[Z+((l[1819+(s<<2)+2>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[$>>2]=1138;k[$+4>>2]=906;k[$+8>>2]=1769;xc(Y,1084,$)|0;wc(Y)|0}k[t+(E<<2)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+(F<<2)>>2]=k[Z+((l[1819+(s<<2)+3>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[aa>>2]=1138;k[aa+4>>2]=906;k[aa+8>>2]=1769;xc(Y,1084,aa)|0;wc(Y)|0}k[t+(G<<2)>>2]=k[(k[D>>2]|0)+(c<<2)>>2]}m=m+w|0;if((m|0)==(y|0))break;else t=t+v|0}}A=A+1|0;if((A|0)==(h|0))break;else z=z+L|0}}C=C+1|0}while((C|0)!=(B|0));r=ga;return 1}function Jb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;ma=r;r=r+608|0;ja=ma+48|0;la=ma+32|0;ka=ma+16|0;ia=ma;ga=ma+96|0;ha=ma+80|0;fa=ma+64|0;S=a+240|0;T=k[S>>2]|0;W=a+256|0;ca=k[W>>2]|0;da=a+272|0;ea=k[da>>2]|0;c=k[a+88>>2]|0;U=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=ma;return 1}V=(h|0)==0;X=h+-1|0;Y=d<<1;Z=a+92|0;_=a+116|0;$=g+-1|0;aa=a+212|0;ba=a+188|0;R=(e&1|0)==0;Q=(f&1|0)==0;K=a+288|0;L=a+284|0;M=a+252|0;N=a+140|0;O=a+236|0;P=a+164|0;I=a+268|0;J=$<<5;G=c&255;c=0;e=0;f=0;a=0;j=1;H=0;do{if(!V){E=k[b+(H<<2)>>2]|0;F=0;while(1){C=F&1;n=(C|0)==0;B=(C<<6^64)+-32|0;C=(C<<1^2)+-1|0;D=n?g:-1;o=n?0:$;if((o|0)!=(D|0)){A=Q|(F|0)!=(X|0);z=n?E:E+J|0;while(1){if((j|0)==1)j=sb(Z,_)|0|512;y=j&7;j=j>>>3;p=l[1811+y>>0]|0;n=0;do{w=(sb(Z,P)|0)+e|0;x=w-ea|0;e=x>>31;e=e&w|x&~e;if((k[da>>2]|0)>>>0<=e>>>0){k[ia>>2]=1138;k[ia+4>>2]=906;k[ia+8>>2]=1769;xc(ga,1084,ia)|0;wc(ga)|0}k[fa+(n<<2)>>2]=m[(k[I>>2]|0)+(e<<1)>>1];n=n+1|0}while(n>>>0

>>0);n=0;do{w=(sb(Z,N)|0)+a|0;x=w-T|0;a=x>>31;a=a&w|x&~a;if((k[S>>2]|0)>>>0<=a>>>0){k[ka>>2]=1138;k[ka+4>>2]=906;k[ka+8>>2]=1769;xc(ga,1084,ka)|0;wc(ga)|0}k[ha+(n<<2)>>2]=k[(k[O>>2]|0)+(a<<2)>>2];n=n+1|0}while(n>>>0

>>0);x=R|(o|0)!=($|0);v=0;w=z;while(1){u=A|(v|0)==0;t=v<<1;q=0;s=w;while(1){p=(sb(Z,aa)|0)+c|0;n=p-U|0;c=n>>31;c=c&p|n&~c;n=(sb(Z,ba)|0)+f|0;p=n-ca|0;f=p>>31;f=f&n|p&~f;if((x|(q|0)==0)&u){n=l[q+t+(1819+(y<<2))>>0]|0;p=c*3|0;if((k[K>>2]|0)>>>0<=p>>>0){k[la>>2]=1138;k[la+4>>2]=906;k[la+8>>2]=1769;xc(ga,1084,la)|0;wc(ga)|0}na=k[L>>2]|0;k[s>>2]=(m[na+(p<<1)>>1]|0)<<16|k[fa+(n<<2)>>2];k[s+4>>2]=(m[na+(p+2<<1)>>1]|0)<<16|(m[na+(p+1<<1)>>1]|0);k[s+8>>2]=k[ha+(n<<2)>>2];if((k[W>>2]|0)>>>0<=f>>>0){k[ja>>2]=1138;k[ja+4>>2]=906;k[ja+8>>2]=1769;xc(ga,1084,ja)|0;wc(ga)|0}k[s+12>>2]=k[(k[M>>2]|0)+(f<<2)>>2]}q=q+1|0;if((q|0)==2)break;else s=s+16|0}v=v+1|0;if((v|0)==2)break;else w=w+d|0}o=o+C|0;if((o|0)==(D|0))break;else z=z+B|0}}F=F+1|0;if((F|0)==(h|0))break;else E=E+Y|0}}H=H+1|0}while((H|0)!=(G|0));r=ma;return 1}function Kb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=r;r=r+576|0;_=$+32|0;Z=$+16|0;Y=$;X=$+64|0;W=$+48|0;M=a+272|0;N=k[M>>2]|0;c=k[a+88>>2]|0;O=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=$;return 1}P=(h|0)==0;Q=h+-1|0;R=d<<1;S=a+92|0;T=a+116|0;U=g+-1|0;V=a+212|0;L=(f&1|0)==0;I=a+288|0;J=a+284|0;K=a+164|0;G=a+268|0;H=U<<4;F=c&255;E=(e&1|0)!=0;c=0;f=0;a=1;D=0;do{if(!P){B=k[b+(D<<2)>>2]|0;C=0;while(1){z=C&1;e=(z|0)==0;y=(z<<5^32)+-16|0;z=(z<<1^2)+-1|0;A=e?g:-1;j=e?0:U;if((j|0)!=(A|0)){x=L|(C|0)!=(Q|0);w=e?B:B+H|0;while(1){if((a|0)==1)a=sb(S,T)|0|512;v=a&7;a=a>>>3;n=l[1811+v>>0]|0;e=0;do{t=(sb(S,K)|0)+f|0;u=t-N|0;f=u>>31;f=f&t|u&~f;if((k[M>>2]|0)>>>0<=f>>>0){k[Y>>2]=1138;k[Y+4>>2]=906;k[Y+8>>2]=1769;xc(X,1084,Y)|0;wc(X)|0}k[W+(e<<2)>>2]=m[(k[G>>2]|0)+(f<<1)>>1];e=e+1|0}while(e>>>0>>0);u=(j|0)==(U|0)&E;s=0;t=w;while(1){q=x|(s|0)==0;p=s<<1;e=(sb(S,V)|0)+c|0;o=e-O|0;n=o>>31;n=n&e|o&~n;if(q){c=l[1819+(v<<2)+p>>0]|0;e=n*3|0;if((k[I>>2]|0)>>>0<=e>>>0){k[Z>>2]=1138;k[Z+4>>2]=906;k[Z+8>>2]=1769;xc(X,1084,Z)|0;wc(X)|0}o=k[J>>2]|0;k[t>>2]=(m[o+(e<<1)>>1]|0)<<16|k[W+(c<<2)>>2];k[t+4>>2]=(m[o+(e+2<<1)>>1]|0)<<16|(m[o+(e+1<<1)>>1]|0)}o=t+8|0;e=(sb(S,V)|0)+n|0;n=e-O|0;c=n>>31;c=c&e|n&~c;if(!(u|q^1)){e=l[(p|1)+(1819+(v<<2))>>0]|0;n=c*3|0;if((k[I>>2]|0)>>>0<=n>>>0){k[_>>2]=1138;k[_+4>>2]=906;k[_+8>>2]=1769;xc(X,1084,_)|0;wc(X)|0}q=k[J>>2]|0;k[o>>2]=(m[q+(n<<1)>>1]|0)<<16|k[W+(e<<2)>>2];k[t+12>>2]=(m[q+(n+2<<1)>>1]|0)<<16|(m[q+(n+1<<1)>>1]|0)}s=s+1|0;if((s|0)==2)break;else t=t+d|0}j=j+z|0;if((j|0)==(A|0))break;else w=w+y|0}}C=C+1|0;if((C|0)==(h|0))break;else B=B+R|0}}D=D+1|0}while((D|0)!=(F|0));r=$;return 1}function Lb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=r;r=r+608|0;ea=ha+48|0;ga=ha+32|0;fa=ha+16|0;da=ha;ca=ha+96|0;aa=ha+80|0;ba=ha+64|0;S=a+272|0;T=k[S>>2]|0;c=k[a+88>>2]|0;U=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=ha;return 1}V=(h|0)==0;W=h+-1|0;X=d<<1;Y=a+92|0;Z=a+116|0;_=g+-1|0;$=a+212|0;R=(e&1|0)==0;Q=(f&1|0)==0;N=a+288|0;O=a+284|0;P=a+164|0;L=a+268|0;M=_<<5;J=c&255;c=0;e=0;f=0;a=0;j=1;K=0;do{if(!V){H=k[b+(K<<2)>>2]|0;I=0;while(1){F=I&1;n=(F|0)==0;E=(F<<6^64)+-32|0;F=(F<<1^2)+-1|0;G=n?g:-1;o=n?0:_;if((o|0)!=(G|0)){D=Q|(I|0)!=(W|0);C=n?H:H+M|0;while(1){if((j|0)==1)j=sb(Y,Z)|0|512;B=j&7;j=j>>>3;p=l[1811+B>>0]|0;n=0;do{z=(sb(Y,P)|0)+a|0;A=z-T|0;a=A>>31;a=a&z|A&~a;if((k[S>>2]|0)>>>0<=a>>>0){k[da>>2]=1138;k[da+4>>2]=906;k[da+8>>2]=1769;xc(ca,1084,da)|0;wc(ca)|0}k[aa+(n<<2)>>2]=m[(k[L>>2]|0)+(a<<1)>>1];n=n+1|0}while(n>>>0

>>0);n=0;do{z=(sb(Y,P)|0)+e|0;A=z-T|0;e=A>>31;e=e&z|A&~e;if((k[S>>2]|0)>>>0<=e>>>0){k[fa>>2]=1138;k[fa+4>>2]=906;k[fa+8>>2]=1769;xc(ca,1084,fa)|0;wc(ca)|0}k[ba+(n<<2)>>2]=m[(k[L>>2]|0)+(e<<1)>>1];n=n+1|0}while(n>>>0

>>0);A=R|(o|0)!=(_|0);y=0;z=C;while(1){x=D|(y|0)==0;w=y<<1;u=0;v=z;while(1){t=(sb(Y,$)|0)+f|0;s=t-U|0;f=s>>31;f=f&t|s&~f;s=(sb(Y,$)|0)+c|0;t=s-U|0;c=t>>31;c=c&s|t&~c;if((A|(u|0)==0)&x){s=l[u+w+(1819+(B<<2))>>0]|0;t=f*3|0;n=k[N>>2]|0;if(n>>>0<=t>>>0){k[ga>>2]=1138;k[ga+4>>2]=906;k[ga+8>>2]=1769;xc(ca,1084,ga)|0;wc(ca)|0;n=k[N>>2]|0}p=k[O>>2]|0;q=c*3|0;if(n>>>0>q>>>0)n=p;else{k[ea>>2]=1138;k[ea+4>>2]=906;k[ea+8>>2]=1769;xc(ca,1084,ea)|0;wc(ca)|0;n=k[O>>2]|0}k[v>>2]=(m[p+(t<<1)>>1]|0)<<16|k[aa+(s<<2)>>2];k[v+4>>2]=(m[p+(t+2<<1)>>1]|0)<<16|(m[p+(t+1<<1)>>1]|0);k[v+8>>2]=(m[n+(q<<1)>>1]|0)<<16|k[ba+(s<<2)>>2];k[v+12>>2]=(m[n+(q+2<<1)>>1]|0)<<16|(m[n+(q+1<<1)>>1]|0)}u=u+1|0;if((u|0)==2)break;else v=v+16|0}y=y+1|0;if((y|0)==2)break;else z=z+d|0}o=o+F|0;if((o|0)==(G|0))break;else C=C+E|0}}I=I+1|0;if((I|0)==(h|0))break;else H=H+X|0}}K=K+1|0}while((K|0)!=(J|0));r=ha;return 1}function Mb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+576|0;h=j+48|0;f=j+32|0;e=j+16|0;d=j;g=j+64|0;k[a>>2]=0;b=a+284|0;c=k[b>>2]|0;if(c){if(!(c&7))kb(c,0,0,1,0)|0;else{k[d>>2]=1138;k[d+4>>2]=2502;k[d+8>>2]=1504;xc(g,1084,d)|0;wc(g)|0}k[b>>2]=0;k[a+288>>2]=0;k[a+292>>2]=0}i[a+296>>0]=0;c=a+268|0;b=k[c>>2]|0;if(b){if(!(b&7))kb(b,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;xc(g,1084,e)|0;wc(g)|0}k[c>>2]=0;k[a+272>>2]=0;k[a+276>>2]=0}i[a+280>>0]=0;b=a+252|0;c=k[b>>2]|0;if(c){if(!(c&7))kb(c,0,0,1,0)|0;else{k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1504;xc(g,1084,f)|0;wc(g)|0}k[b>>2]=0;k[a+256>>2]=0;k[a+260>>2]=0}i[a+264>>0]=0;b=a+236|0;c=k[b>>2]|0;if(!c){h=a+248|0;i[h>>0]=0;h=a+212|0;nb(h);h=a+188|0;nb(h);h=a+164|0;nb(h);h=a+140|0;nb(h);h=a+116|0;nb(h);r=j;return}if(!(c&7))kb(c,0,0,1,0)|0;else{k[h>>2]=1138;k[h+4>>2]=2502;k[h+8>>2]=1504;xc(g,1084,h)|0;wc(g)|0}k[b>>2]=0;k[a+240>>2]=0;k[a+244>>2]=0;h=a+248|0;i[h>>0]=0;h=a+212|0;nb(h);h=a+188|0;nb(h);h=a+164|0;nb(h);h=a+140|0;nb(h);h=a+116|0;nb(h);r=j;return}function Nb(a,b){a=a|0;b=b|0;var c=0;c=r;r=r+16|0;k[c>>2]=b;b=k[60]|0;yc(b,a,c)|0;sc(10,b)|0;Aa()}function Ob(){var a=0,b=0;a=r;r=r+16|0;if(!(Ka(192,2)|0)){b=va(k[47]|0)|0;r=a;return b|0}else Nb(2078,a);return 0}function Pb(a){a=a|0;Sc(a);return}function Qb(a){a=a|0;var b=0;b=r;r=r+16|0;Wa[a&3]();Nb(2127,b)}function Rb(){var a=0,b=0;a=Ob()|0;if(((a|0)!=0?(b=k[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(k[a>>2]&-256|0)==1126902528?(k[a+4>>2]|0)==1129074247:0):0)Qb(k[b+12>>2]|0);b=k[26]|0;k[26]=b+0;Qb(b)}function Sb(a){a=a|0;return}function Tb(a){a=a|0;return}function Ub(a){a=a|0;return}function Vb(a){a=a|0;return}function Wb(a){a=a|0;Pb(a);return}function Xb(a){a=a|0;Pb(a);return}function Yb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=ac(b,24,40,0)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;Ya[k[(k[e>>2]|0)+28>>2]&3](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function Zb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=b+16|0;e=k[a>>2]|0;do if(e){if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1}while(0);return}function _b(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Zb(0,b,c,d);return}function $b(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Zb(0,b,c,d);else{a=k[a+8>>2]|0;Ya[k[(k[a>>2]|0)+28>>2]&3](a,b,c,d)}return}function ac(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+64|0;p=q;o=k[a>>2]|0;n=a+(k[o+-8>>2]|0)|0;o=k[o+-4>>2]|0;k[p>>2]=c;k[p+4>>2]=a;k[p+8>>2]=b;k[p+12>>2]=d;d=p+16|0;a=p+20|0;b=p+24|0;e=p+28|0;f=p+32|0;g=p+40|0;h=(o|0)==(c|0);l=d;m=l+36|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j[d+36>>1]=0;i[d+38>>0]=0;a:do if(h){k[p+48>>2]=1;Xa[k[(k[c>>2]|0)+20>>2]&3](c,p,n,n,1,0);d=(k[b>>2]|0)==1?n:0}else{Sa[k[(k[o>>2]|0)+24>>2]&3](o,p,n,1,0);switch(k[p+36>>2]|0){case 0:{d=(k[g>>2]|0)==1&(k[e>>2]|0)==1&(k[f>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((k[b>>2]|0)!=1?!((k[g>>2]|0)==0&(k[e>>2]|0)==1&(k[f>>2]|0)==1):0){d=0;break}d=k[d>>2]|0}while(0);r=q;return d|0}function bc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;i[b+53>>0]=1;do if((k[b+4>>2]|0)==(d|0)){i[b+52>>0]=1;d=b+16|0;a=k[d>>2]|0;if(!a){k[d>>2]=c;k[b+24>>2]=e;k[b+36>>2]=1;if(!((e|0)==1?(k[b+48>>2]|0)==1:0))break;i[b+54>>0]=1;break}if((a|0)!=(c|0)){e=b+36|0;k[e>>2]=(k[e>>2]|0)+1;i[b+54>>0]=1;break}a=b+24|0;d=k[a>>2]|0;if((d|0)==2){k[a>>2]=e;d=e}if((d|0)==1?(k[b+48>>2]|0)==1:0)i[b+54>>0]=1}while(0);return}function cc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;Sa[k[(k[h>>2]|0)+24>>2]&3](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(g=b+20|0,(k[g>>2]|0)!=(c|0)):0){k[b+32>>2]=d;d=b+44|0;if((k[d>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;j=b+53|0;i[j>>0]=0;a=k[a+8>>2]|0;Xa[k[(k[a>>2]|0)+20>>2]&3](a,b,c,c,1,e);if(i[j>>0]|0){if(!(i[f>>0]|0)){f=1;h=13}}else{f=0;h=13}do if((h|0)==13){k[g>>2]=c;j=b+40|0;k[j>>2]=(k[j>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f)break}else h=16;if((h|0)==16?f:0)break;k[d>>2]=4;break a}while(0);k[d>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function dc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function ec(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))bc(0,b,c,d,e);else{a=k[a+8>>2]|0;Xa[k[(k[a>>2]|0)+20>>2]&3](a,b,c,d,e,f)}return}function fc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))bc(0,b,c,d,e);return}function gc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=Ra[k[(k[a>>2]|0)+16>>2]&7](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function hc(a){a=a|0;if(!a)a=0;else a=(ac(a,24,72,0)|0)!=0;return a&1|0}function ic(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+48|0;g=e+32|0;c=e+24|0;h=e+16|0;f=e;e=e+36|0;a=Ob()|0;if((a|0)!=0?(d=k[a>>2]|0,(d|0)!=0):0){a=d+48|0;b=k[a>>2]|0;a=k[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){k[c>>2]=2406;Nb(2356,c)}if((b|0)==1126902529&(a|0)==1129074247)a=k[d+44>>2]|0;else a=d+80|0;k[e>>2]=a;d=k[d>>2]|0;a=k[d+4>>2]|0;if(Ra[k[(k[8>>2]|0)+16>>2]&7](8,d,e)|0){h=k[e>>2]|0;h=Ua[k[(k[h>>2]|0)+8>>2]&1](h)|0;k[f>>2]=2406;k[f+4>>2]=a;k[f+8>>2]=h;Nb(2270,f)}else{k[h>>2]=2406;k[h+4>>2]=a;Nb(2315,h)}}Nb(2394,g)}function jc(){var a=0;a=r;r=r+16|0;if(!(Fa(188,6)|0)){r=a;return}else Nb(2167,a)}function kc(a){a=a|0;var b=0;b=r;r=r+16|0;Sc(a);if(!(wa(k[47]|0,0)|0)){r=b;return}else Nb(2217,b)}function lc(a){a=a|0;var b=0,c=0;b=0;while(1){if((l[2415+b>>0]|0)==(a|0)){c=2;break}b=b+1|0;if((b|0)==87){b=87;a=2503;c=5;break}}if((c|0)==2)if(!b)a=2503;else{a=2503;c=5}if((c|0)==5)while(1){c=a;while(1){a=c+1|0;if(!(i[c>>0]|0))break;else c=a}b=b+-1|0;if(!b)break;else c=5}return a|0}function mc(){var a=0;if(!0)a=248;else{a=(za()|0)+60|0;a=k[a>>2]|0}return a|0}function nc(a){a=a|0;var b=0;if(a>>>0>4294963200){b=mc()|0;k[b>>2]=0-a;a=-1}return a|0}function oc(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[t>>3]=a;c=k[t>>2]|0;d=k[t+4>>2]|0;e=$c(c|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{if(a!=0.0){a=+oc(a*18446744073709552.0e3,b);c=(k[b>>2]|0)+-64|0}else c=0;k[b>>2]=c;break}case 2047:break;default:{k[b>>2]=e+-1022;k[t>>2]=c;k[t+4>>2]=d&-2146435073|1071644672;a=+p[t>>3]}}return +a}function pc(a,b){a=+a;b=b|0;return +(+oc(a,b))}function qc(a,b,c){a=a|0;b=b|0;c=c|0;do if(a){if(b>>>0<128){i[a>>0]=b;a=1;break}if(b>>>0<2048){i[a>>0]=b>>>6|192;i[a+1>>0]=b&63|128;a=2;break}if(b>>>0<55296|(b&-8192|0)==57344){i[a>>0]=b>>>12|224;i[a+1>>0]=b>>>6&63|128;i[a+2>>0]=b&63|128;a=3;break}if((b+-65536|0)>>>0<1048576){i[a>>0]=b>>>18|240;i[a+1>>0]=b>>>12&63|128;i[a+2>>0]=b>>>6&63|128;i[a+3>>0]=b&63|128;a=4;break}else{a=mc()|0;k[a>>2]=84;a=-1;break}}else a=1;while(0);return a|0}function rc(a,b){a=a|0;b=b|0;if(!a)a=0;else a=qc(a,b,0)|0;return a|0}function sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((k[b+76>>2]|0)>=0?(Bc(b)|0)!=0:0){if((i[b+75>>0]|0)!=(a|0)?(d=b+20|0,e=k[d>>2]|0,e>>>0<(k[b+16>>2]|0)>>>0):0){k[d>>2]=e+1;i[e>>0]=a;c=a&255}else c=Dc(b,a)|0;Cc(b)}else g=3;do if((g|0)==3){if((i[b+75>>0]|0)!=(a|0)?(f=b+20|0,c=k[f>>2]|0,c>>>0<(k[b+16>>2]|0)>>>0):0){k[f>>2]=c+1;i[c>>0]=a;c=a&255;break}c=Dc(b,a)|0}while(0);return c|0}function tc(a,b){a=a|0;b=b|0;return (vc(a,Kc(a)|0,1,b)|0)+-1|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=c+16|0;e=k[d>>2]|0;if(!e)if(!(Ic(c)|0)){e=k[d>>2]|0;f=4}else d=0;else f=4;a:do if((f|0)==4){g=c+20|0;f=k[g>>2]|0;if((e-f|0)>>>0>>0){d=Ra[k[c+36>>2]&7](c,a,b)|0;break}b:do if((i[c+75>>0]|0)>-1){d=b;while(1){if(!d){e=f;d=0;break b}e=d+-1|0;if((i[a+e>>0]|0)==10)break;else d=e}if((Ra[k[c+36>>2]&7](c,a,d)|0)>>>0>>0)break a;b=b-d|0;a=a+d|0;e=k[g>>2]|0}else{e=f;d=0}while(0);bd(e|0,a|0,b|0)|0;k[g>>2]=(k[g>>2]|0)+b;d=d+b|0}while(0);return d|0}function vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ha(c,b)|0;if((k[d+76>>2]|0)>-1){f=(Bc(d)|0)==0;a=uc(a,e,d)|0;if(!f)Cc(d)}else a=uc(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function wc(a){a=a|0;var b=0,c=0,d=0,e=0;d=k[61]|0;if((k[d+76>>2]|0)>-1)e=Bc(d)|0;else e=0;do if((tc(a,d)|0)<0)b=1;else{if((i[d+75>>0]|0)!=10?(b=d+20|0,c=k[b>>2]|0,c>>>0<(k[d+16>>2]|0)>>>0):0){k[b>>2]=c+1;i[c>>0]=10;b=0;break}b=(Dc(d,10)|0)<0}while(0);if(e)Cc(d);return b<<31>>31|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;k[e>>2]=c;c=Ac(a,b,e)|0;r=d;return c|0}function yc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+224|0;n=s+120|0;q=s+80|0;p=s;o=s+136|0;d=q;e=d+40|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[n>>2]=k[c>>2];if((Lc(0,b,n,p,q)|0)<0)c=-1;else{if((k[a+76>>2]|0)>-1)l=Bc(a)|0;else l=0;c=k[a>>2]|0;m=c&32;if((i[a+74>>0]|0)<1)k[a>>2]=c&-33;c=a+48|0;if(!(k[c>>2]|0)){e=a+44|0;f=k[e>>2]|0;k[e>>2]=o;g=a+28|0;k[g>>2]=o;h=a+20|0;k[h>>2]=o;k[c>>2]=80;j=a+16|0;k[j>>2]=o+80;d=Lc(a,b,n,p,q)|0;if(f){Ra[k[a+36>>2]&7](a,0,0)|0;d=(k[h>>2]|0)==0?-1:d;k[e>>2]=f;k[c>>2]=0;k[j>>2]=0;k[g>>2]=0;k[h>>2]=0}}else d=Lc(a,b,n,p,q)|0;c=k[a>>2]|0;k[a>>2]=c|m;if(l)Cc(a);c=(c&32|0)==0?d:-1}r=s;return c|0}function zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+128|0;e=m+112|0;l=m;f=l;g=252;h=f+112|0;do{k[f>>2]=k[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if((b+-1|0)>>>0>2147483646)if(!b){b=1;j=4}else{b=mc()|0;k[b>>2]=75;b=-1}else{e=a;j=4}if((j|0)==4){j=-2-e|0;j=b>>>0>j>>>0?j:b;k[l+48>>2]=j;a=l+20|0;k[a>>2]=e;k[l+44>>2]=e;b=e+j|0;e=l+16|0;k[e>>2]=b;k[l+28>>2]=b;b=yc(l,c,d)|0;if(j){c=k[a>>2]|0;i[c+(((c|0)==(k[e>>2]|0))<<31>>31)>>0]=0}}r=m;return b|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;return zc(a,2147483647,b,c)|0}function Bc(a){a=a|0;return 0}function Cc(a){a=a|0;return}function Dc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;g=b&255;i[h>>0]=g;d=a+16|0;e=k[d>>2]|0;if(!e)if(!(Ic(a)|0)){e=k[d>>2]|0;f=4}else c=-1;else f=4;do if((f|0)==4){d=a+20|0;f=k[d>>2]|0;if(f>>>0>>0?(c=b&255,(c|0)!=(i[a+75>>0]|0)):0){k[d>>2]=f+1;i[f>>0]=g;break}if((Ra[k[a+36>>2]&7](a,h,1)|0)==1)c=l[h>>0]|0;else c=-1}while(0);r=j;return c|0}function Ec(a){a=a|0;var b=0,c=0;b=r;r=r+16|0;c=b;k[c>>2]=k[a+60>>2];a=nc(Ca(6,c|0)|0)|0;r=b;return a|0}function Fc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;f=e;d=e+20|0;k[f>>2]=k[a+60>>2];k[f+4>>2]=0;k[f+8>>2]=b;k[f+12>>2]=d;k[f+16>>2]=c;if((nc(Ja(140,f|0)|0)|0)<0){k[d>>2]=-1;a=-1}else a=k[d>>2]|0;r=e;return a|0}function Gc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;p=r;r=r+48|0;m=p+16|0;l=p;d=p+32|0;n=a+28|0;e=k[n>>2]|0;k[d>>2]=e;o=a+20|0;e=(k[o>>2]|0)-e|0;k[d+4>>2]=e;k[d+8>>2]=b;k[d+12>>2]=c;i=a+60|0;j=a+44|0;b=2;e=e+c|0;while(1){if(!(k[49]|0)){k[m>>2]=k[i>>2];k[m+4>>2]=d;k[m+8>>2]=b;g=nc(Na(146,m|0)|0)|0}else{Ba(7,a|0);k[l>>2]=k[i>>2];k[l+4>>2]=d;k[l+8>>2]=b;g=nc(Na(146,l|0)|0)|0;ua(0)}if((e|0)==(g|0)){e=6;break}if((g|0)<0){e=8;break}e=e-g|0;f=k[d+4>>2]|0;if(g>>>0<=f>>>0)if((b|0)==2){k[n>>2]=(k[n>>2]|0)+g;h=f;b=2}else h=f;else{h=k[j>>2]|0;k[n>>2]=h;k[o>>2]=h;h=k[d+12>>2]|0;g=g-f|0;d=d+8|0;b=b+-1|0}k[d>>2]=(k[d>>2]|0)+g;k[d+4>>2]=h-g}if((e|0)==6){m=k[j>>2]|0;k[a+16>>2]=m+(k[a+48>>2]|0);a=m;k[n>>2]=a;k[o>>2]=a}else if((e|0)==8){k[a+16>>2]=0;k[n>>2]=0;k[o>>2]=0;k[a>>2]=k[a>>2]|32;if((b|0)==2)c=0;else c=c-(k[d+4>>2]|0)|0}r=p;return c|0}function Hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+80|0;d=e;k[a+36>>2]=3;if((k[a>>2]&64|0)==0?(k[d>>2]=k[a+60>>2],k[d+4>>2]=21505,k[d+8>>2]=e+12,(Ia(54,d|0)|0)!=0):0)i[a+75>>0]=-1;d=Gc(a,b,c)|0;r=e;return d|0}function Ic(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=k[a>>2]|0;if(!(b&8)){k[a+8>>2]=0;k[a+4>>2]=0;b=k[a+44>>2]|0;k[a+28>>2]=b;k[a+20>>2]=b;k[a+16>>2]=b+(k[a+48>>2]|0);b=0}else{k[a>>2]=b|32;b=-1}return b|0}function Jc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b&255;d=(c|0)!=0;a:do if(d&(a&3|0)!=0){e=b&255;while(1){if((i[a>>0]|0)==e<<24>>24){g=6;break a}a=a+1|0;c=c+-1|0;d=(c|0)!=0;if(!(d&(a&3|0)!=0)){g=5;break}}}else g=5;while(0);if((g|0)==5)if(d)g=6;else c=0;b:do if((g|0)==6){e=b&255;if((i[a>>0]|0)!=e<<24>>24){d=ha(f,16843009)|0;c:do if(c>>>0>3)while(1){f=k[a>>2]^d;if((f&-2139062144^-2139062144)&f+-16843009)break;a=a+4|0;c=c+-4|0;if(c>>>0<=3){g=11;break c}}else g=11;while(0);if((g|0)==11)if(!c){c=0;break}while(1){if((i[a>>0]|0)==e<<24>>24)break b;a=a+1|0;c=c+-1|0;if(!c){c=0;break}}}}while(0);return ((c|0)!=0?a:0)|0}function Kc(a){a=a|0;var b=0,c=0,d=0;d=a;a:do if(!(d&3))c=4;else{b=a;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do a=a+1|0;while((i[a>>0]|0)!=0)}return a-d|0}function Lc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0.0,o=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=r;r=r+624|0;ba=ga+24|0;da=ga+16|0;ca=ga+588|0;Y=ga+576|0;aa=ga;V=ga+536|0;fa=ga+8|0;ea=ga+528|0;M=(a|0)!=0;N=V+40|0;U=N;V=V+39|0;W=fa+4|0;X=Y+12|0;Y=Y+11|0;Z=ca;_=X;$=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ba+288|0;R=ca+9|0;S=R;T=ca+8|0;f=0;w=b;g=0;b=0;a:while(1){do if((f|0)>-1)if((g|0)>(2147483647-f|0)){f=mc()|0;k[f>>2]=75;f=-1;break}else{f=g+f|0;break}while(0);g=i[w>>0]|0;if(!(g<<24>>24)){K=245;break}else h=w;b:while(1){switch(g<<24>>24){case 37:{g=h;K=9;break b}case 0:{g=h;break b}default:{}}J=h+1|0;g=i[J>>0]|0;h=J}c:do if((K|0)==9)while(1){K=0;if((i[g+1>>0]|0)!=37)break c;h=h+1|0;g=g+2|0;if((i[g>>0]|0)==37)K=9;else break}while(0);y=h-w|0;if(M?(k[a>>2]&32|0)==0:0)uc(w,y,a)|0;if((h|0)!=(w|0)){w=g;g=y;continue}o=g+1|0;h=i[o>>0]|0;m=(h<<24>>24)+-48|0;if(m>>>0<10){J=(i[g+2>>0]|0)==36;o=J?g+3|0:o;h=i[o>>0]|0;u=J?m:-1;b=J?1:b}else u=-1;g=h<<24>>24;d:do if((g&-32|0)==32){m=0;while(1){if(!(1<>24)+-32|m;o=o+1|0;h=i[o>>0]|0;g=h<<24>>24;if((g&-32|0)!=32){q=m;g=o;break}}}else{q=0;g=o}while(0);do if(h<<24>>24==42){m=g+1|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[e+(h<<2)>>2]=10;b=1;g=g+3|0;h=k[d+((i[m>>0]|0)+-48<<3)>>2]|0}else{if(b){f=-1;break a}if(!M){x=q;g=m;b=0;J=0;break}b=(k[c>>2]|0)+(4-1)&~(4-1);h=k[b>>2]|0;k[c>>2]=b+4;b=0;g=m}if((h|0)<0){x=q|8192;J=0-h|0}else{x=q;J=h}}else{m=(h<<24>>24)+-48|0;if(m>>>0<10){h=0;do{h=(h*10|0)+m|0;g=g+1|0;m=(i[g>>0]|0)+-48|0}while(m>>>0<10);if((h|0)<0){f=-1;break a}else{x=q;J=h}}else{x=q;J=0}}while(0);e:do if((i[g>>0]|0)==46){m=g+1|0;h=i[m>>0]|0;if(h<<24>>24!=42){o=(h<<24>>24)+-48|0;if(o>>>0<10){g=m;h=0}else{g=m;o=0;break}while(1){h=(h*10|0)+o|0;g=g+1|0;o=(i[g>>0]|0)+-48|0;if(o>>>0>=10){o=h;break e}}}m=g+2|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+3>>0]|0)==36:0){k[e+(h<<2)>>2]=10;g=g+4|0;o=k[d+((i[m>>0]|0)+-48<<3)>>2]|0;break}if(b){f=-1;break a}if(M){g=(k[c>>2]|0)+(4-1)&~(4-1);o=k[g>>2]|0;k[c>>2]=g+4;g=m}else{g=m;o=0}}else o=-1;while(0);s=0;while(1){h=(i[g>>0]|0)+-65|0;if(h>>>0>57){f=-1;break a}m=g+1|0;h=i[5347+(s*58|0)+h>>0]|0;q=h&255;if((q+-1|0)>>>0<8){g=m;s=q}else{I=m;break}}if(!(h<<24>>24)){f=-1;break}m=(u|0)>-1;do if(h<<24>>24==19)if(m){f=-1;break a}else K=52;else{if(m){k[e+(u<<2)>>2]=q;G=d+(u<<3)|0;H=k[G+4>>2]|0;K=aa;k[K>>2]=k[G>>2];k[K+4>>2]=H;K=52;break}if(!M){f=0;break a}Oc(aa,q,c)}while(0);if((K|0)==52?(K=0,!M):0){w=I;g=y;continue}u=i[g>>0]|0;u=(s|0)!=0&(u&15|0)==3?u&-33:u;m=x&-65537;H=(x&8192|0)==0?x:m;f:do switch(u|0){case 110:switch(s|0){case 0:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 1:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 2:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}case 3:{j[k[aa>>2]>>1]=f;w=I;g=y;continue a}case 4:{i[k[aa>>2]>>0]=f;w=I;g=y;continue a}case 6:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 7:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}default:{w=I;g=y;continue a}}case 112:{s=H|8;o=o>>>0>8?o:8;u=120;K=64;break}case 88:case 120:{s=H;K=64;break}case 111:{m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;if((h|0)==0&(m|0)==0)g=N;else{g=N;do{g=g+-1|0;i[g>>0]=h&7|48;h=$c(h|0,m|0,3)|0;m=L}while(!((h|0)==0&(m|0)==0))}if(!(H&8)){h=H;s=0;q=5827;K=77}else{s=U-g+1|0;h=H;o=(o|0)<(s|0)?s:o;s=0;q=5827;K=77}break}case 105:case 100:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;if((h|0)<0){g=Yc(0,0,g|0,h|0)|0;h=L;m=aa;k[m>>2]=g;k[m+4>>2]=h;m=1;q=5827;K=76;break f}if(!(H&2048)){q=H&1;m=q;q=(q|0)==0?5827:5829;K=76}else{m=1;q=5828;K=76}break}case 117:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;m=0;q=5827;K=76;break}case 99:{i[V>>0]=k[aa>>2];w=V;h=1;s=0;u=5827;g=N;break}case 109:{g=mc()|0;g=lc(k[g>>2]|0)|0;K=82;break}case 115:{g=k[aa>>2]|0;g=(g|0)!=0?g:5837;K=82;break}case 67:{k[fa>>2]=k[aa>>2];k[W>>2]=0;k[aa>>2]=fa;o=-1;K=86;break}case 83:{if(!o){Qc(a,32,J,0,H);g=0;K=98}else K=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{n=+p[aa>>3];k[da>>2]=0;p[t>>3]=n;if((k[t+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?5845:5850}else{F=1;G=5847}else{n=-n;F=1;G=5844}p[t>>3]=n;E=k[t+4>>2]&2146435072;do if(E>>>0<2146435072|(E|0)==2146435072&0<0){v=+pc(n,da)*2.0;h=v!=0.0;if(h)k[da>>2]=(k[da>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?G:G+9|0;x=F|2;g=12-o|0;do if(!(o>>>0>11|(g|0)==0)){n=8.0;do{g=g+-1|0;n=n*16.0}while((g|0)!=0);if((i[y>>0]|0)==45){n=-(n+(-v-n));break}else{n=v+n-n;break}}else n=v;while(0);h=k[da>>2]|0;g=(h|0)<0?0-h|0:h;g=Pc(g,((g|0)<0)<<31>>31,X)|0;if((g|0)==(X|0)){i[Y>>0]=48;g=Y}i[g+-1>>0]=(h>>31&2)+43;s=g+-2|0;i[s>>0]=u+15;q=(o|0)<1;m=(H&8|0)==0;h=ca;while(1){G=~~n;g=h+1|0;i[h>>0]=l[5811+G>>0]|w;n=(n-+(G|0))*16.0;do if((g-Z|0)==1){if(m&(q&n==0.0))break;i[g>>0]=46;g=h+2|0}while(0);if(!(n!=0.0))break;else h=g}o=(o|0)!=0&(O+g|0)<(o|0)?P+o-s|0:$-s+g|0;m=o+x|0;Qc(a,32,J,m,H);if(!(k[a>>2]&32))uc(y,x,a)|0;Qc(a,48,J,m,H^65536);g=g-Z|0;if(!(k[a>>2]&32))uc(ca,g,a)|0;h=_-s|0;Qc(a,48,o-(g+h)|0,0,0);if(!(k[a>>2]&32))uc(s,h,a)|0;Qc(a,32,J,m,H^8192);g=(m|0)<(J|0)?J:m;break}g=(o|0)<0?6:o;if(h){h=(k[da>>2]|0)+-28|0;k[da>>2]=h;n=v*268435456.0}else{n=v;h=k[da>>2]|0}E=(h|0)<0?ba:Q;D=E;h=E;do{B=~~n>>>0;k[h>>2]=B;h=h+4|0;n=(n-+(B>>>0))*1.0e9}while(n!=0.0);m=h;h=k[da>>2]|0;if((h|0)>0){q=E;while(1){s=(h|0)>29?29:h;o=m+-4|0;do if(o>>>0>>0)o=q;else{h=0;do{B=ad(k[o>>2]|0,0,s|0)|0;B=Zc(B|0,L|0,h|0,0)|0;h=L;A=jd(B|0,h|0,1e9,0)|0;k[o>>2]=A;h=id(B|0,h|0,1e9,0)|0;o=o+-4|0}while(o>>>0>=q>>>0);if(!h){o=q;break}o=q+-4|0;k[o>>2]=h}while(0);while(1){if(m>>>0<=o>>>0)break;h=m+-4|0;if(!(k[h>>2]|0))m=h;else break}h=(k[da>>2]|0)-s|0;k[da>>2]=h;if((h|0)>0)q=o;else break}}else o=E;if((h|0)<0){y=((g+25|0)/9|0)+1|0;z=(C|0)==102;w=o;while(1){x=0-h|0;x=(x|0)>9?9:x;do if(w>>>0>>0){h=(1<>>x;o=0;s=w;do{B=k[s>>2]|0;k[s>>2]=(B>>>x)+o;o=ha(B&h,q)|0;s=s+4|0}while(s>>>0>>0);h=(k[w>>2]|0)==0?w+4|0:w;if(!o){o=h;break}k[m>>2]=o;o=h;m=m+4|0}else o=(k[w>>2]|0)==0?w+4|0:w;while(0);h=z?E:o;m=(m-h>>2|0)>(y|0)?h+(y<<2)|0:m;h=(k[da>>2]|0)+x|0;k[da>>2]=h;if((h|0)>=0){w=o;break}else w=o}}else w=o;do if(w>>>0>>0){h=(D-w>>2)*9|0;q=k[w>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;h=h+1|0}while(q>>>0>=o>>>0)}else h=0;while(0);A=(C|0)==103;B=(g|0)!=0;o=g-((C|0)!=102?h:0)+((B&A)<<31>>31)|0;if((o|0)<(((m-D>>2)*9|0)+-9|0)){s=o+9216|0;z=(s|0)/9|0;o=E+(z+-1023<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){q=10;do{q=q*10|0;s=s+1|0}while((s|0)!=9)}else q=10;x=k[o>>2]|0;y=(x>>>0)%(q>>>0)|0;if((y|0)==0?(E+(z+-1022<<2)|0)==(m|0):0)q=w;else K=163;do if((K|0)==163){K=0;v=(((x>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;do if(y>>>0>>0)n=.5;else{if((y|0)==(s|0)?(E+(z+-1022<<2)|0)==(m|0):0){n=1.0;break}n=1.5}while(0);do if(F){if((i[G>>0]|0)!=45)break;v=-v;n=-n}while(0);s=x-y|0;k[o>>2]=s;if(!(v+n!=v)){q=w;break}C=s+q|0;k[o>>2]=C;if(C>>>0>999999999){h=w;while(1){q=o+-4|0;k[o>>2]=0;if(q>>>0>>0){h=h+-4|0;k[h>>2]=0}C=(k[q>>2]|0)+1|0;k[q>>2]=C;if(C>>>0>999999999)o=q;else{w=h;o=q;break}}}h=(D-w>>2)*9|0;s=k[w>>2]|0;if(s>>>0<10){q=w;break}else q=10;do{q=q*10|0;h=h+1|0}while(s>>>0>=q>>>0);q=w}while(0);C=o+4|0;w=q;m=m>>>0>C>>>0?C:m}y=0-h|0;while(1){if(m>>>0<=w>>>0){z=0;C=m;break}o=m+-4|0;if(!(k[o>>2]|0))m=o;else{z=1;C=m;break}}do if(A){g=(B&1^1)+g|0;if((g|0)>(h|0)&(h|0)>-5){u=u+-1|0;g=g+-1-h|0}else{u=u+-2|0;g=g+-1|0}m=H&8;if(m)break;do if(z){m=k[C+-4>>2]|0;if(!m){o=9;break}if(!((m>>>0)%10|0)){q=10;o=0}else{o=0;break}do{q=q*10|0;o=o+1|0}while(((m>>>0)%(q>>>0)|0|0)==0)}else o=9;while(0);m=((C-D>>2)*9|0)+-9|0;if((u|32|0)==102){m=m-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}else{m=m+h-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}}else m=H&8;while(0);x=g|m;q=(x|0)!=0&1;s=(u|32|0)==102;if(s){h=(h|0)>0?h:0;u=0}else{o=(h|0)<0?y:h;o=Pc(o,((o|0)<0)<<31>>31,X)|0;if((_-o|0)<2)do{o=o+-1|0;i[o>>0]=48}while((_-o|0)<2);i[o+-1>>0]=(h>>31&2)+43;D=o+-2|0;i[D>>0]=u;h=_-D|0;u=D}y=F+1+g+q+h|0;Qc(a,32,J,y,H);if(!(k[a>>2]&32))uc(G,F,a)|0;Qc(a,48,J,y,H^65536);do if(s){o=w>>>0>E>>>0?E:w;h=o;do{m=Pc(k[h>>2]|0,0,R)|0;do if((h|0)==(o|0)){if((m|0)!=(R|0))break;i[T>>0]=48;m=T}else{if(m>>>0<=ca>>>0)break;do{m=m+-1|0;i[m>>0]=48}while(m>>>0>ca>>>0)}while(0);if(!(k[a>>2]&32))uc(m,S-m|0,a)|0;h=h+4|0}while(h>>>0<=E>>>0);do if(x){if(k[a>>2]&32)break;uc(5879,1,a)|0}while(0);if((g|0)>0&h>>>0>>0){m=h;while(1){h=Pc(k[m>>2]|0,0,R)|0;if(h>>>0>ca>>>0)do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0);if(!(k[a>>2]&32))uc(h,(g|0)>9?9:g,a)|0;m=m+4|0;h=g+-9|0;if(!((g|0)>9&m>>>0>>0)){g=h;break}else g=h}}Qc(a,48,g+9|0,9,0)}else{s=z?C:w+4|0;if((g|0)>-1){q=(m|0)==0;o=w;do{h=Pc(k[o>>2]|0,0,R)|0;if((h|0)==(R|0)){i[T>>0]=48;h=T}do if((o|0)==(w|0)){m=h+1|0;if(!(k[a>>2]&32))uc(h,1,a)|0;if(q&(g|0)<1){h=m;break}if(k[a>>2]&32){h=m;break}uc(5879,1,a)|0;h=m}else{if(h>>>0<=ca>>>0)break;do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0)}while(0);m=S-h|0;if(!(k[a>>2]&32))uc(h,(g|0)>(m|0)?m:g,a)|0;g=g-m|0;o=o+4|0}while(o>>>0>>0&(g|0)>-1)}Qc(a,48,g+18|0,18,0);if(k[a>>2]&32)break;uc(u,_-u|0,a)|0}while(0);Qc(a,32,J,y,H^8192);g=(y|0)<(J|0)?J:y}else{s=(u&32|0)!=0;q=n!=n|0.0!=0.0;h=q?0:F;o=h+3|0;Qc(a,32,J,o,m);g=k[a>>2]|0;if(!(g&32)){uc(G,h,a)|0;g=k[a>>2]|0}if(!(g&32))uc(q?(s?5871:5875):s?5863:5867,3,a)|0;Qc(a,32,J,o,H^8192);g=(o|0)<(J|0)?J:o}while(0);w=I;continue a}default:{m=H;h=o;s=0;u=5827;g=N}}while(0);g:do if((K|0)==64){m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;q=u&32;if(!((h|0)==0&(m|0)==0)){g=N;do{g=g+-1|0;i[g>>0]=l[5811+(h&15)>>0]|q;h=$c(h|0,m|0,4)|0;m=L}while(!((h|0)==0&(m|0)==0));K=aa;if((s&8|0)==0|(k[K>>2]|0)==0&(k[K+4>>2]|0)==0){h=s;s=0;q=5827;K=77}else{h=s;s=2;q=5827+(u>>4)|0;K=77}}else{g=N;h=s;s=0;q=5827;K=77}}else if((K|0)==76){g=Pc(g,h,N)|0;h=H;s=m;K=77}else if((K|0)==82){K=0;H=Jc(g,0,o)|0;G=(H|0)==0;w=g;h=G?o:H-g|0;s=0;u=5827;g=G?g+o|0:H}else if((K|0)==86){K=0;h=0;g=0;q=k[aa>>2]|0;while(1){m=k[q>>2]|0;if(!m)break;g=rc(ea,m)|0;if((g|0)<0|g>>>0>(o-h|0)>>>0)break;h=g+h|0;if(o>>>0>h>>>0)q=q+4|0;else break}if((g|0)<0){f=-1;break a}Qc(a,32,J,h,H);if(!h){g=0;K=98}else{m=0;o=k[aa>>2]|0;while(1){g=k[o>>2]|0;if(!g){g=h;K=98;break g}g=rc(ea,g)|0;m=g+m|0;if((m|0)>(h|0)){g=h;K=98;break g}if(!(k[a>>2]&32))uc(ea,g,a)|0;if(m>>>0>=h>>>0){g=h;K=98;break}else o=o+4|0}}}while(0);if((K|0)==98){K=0;Qc(a,32,J,g,H^8192);w=I;g=(J|0)>(g|0)?J:g;continue}if((K|0)==77){K=0;m=(o|0)>-1?h&-65537:h;h=aa;h=(k[h>>2]|0)!=0|(k[h+4>>2]|0)!=0;if((o|0)!=0|h){h=(h&1^1)+(U-g)|0;w=g;h=(o|0)>(h|0)?o:h;u=q;g=N}else{w=N;h=0;u=q;g=N}}q=g-w|0;h=(h|0)<(q|0)?q:h;o=s+h|0;g=(J|0)<(o|0)?o:J;Qc(a,32,g,o,m);if(!(k[a>>2]&32))uc(u,s,a)|0;Qc(a,48,g,o,m^65536);Qc(a,48,h,q,0);if(!(k[a>>2]&32))uc(w,q,a)|0;Qc(a,32,g,o,m^8192);w=I}h:do if((K|0)==245)if(!a)if(b){f=1;while(1){b=k[e+(f<<2)>>2]|0;if(!b)break;Oc(d+(f<<3)|0,b,c);f=f+1|0;if((f|0)>=10){f=1;break h}}if((f|0)<10)while(1){if(k[e+(f<<2)>>2]|0){f=-1;break h}f=f+1|0;if((f|0)>=10){f=1;break}}else f=1}else f=0;while(0);r=ga;return f|0}function Mc(a){a=a|0;if(!(k[a+68>>2]|0))Cc(a);return}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=k[d>>2]|0;a=(k[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;bd(e|0,b|0,a|0)|0;k[d>>2]=(k[d>>2]|0)+a;return c|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;k[a>>2]=b;break a}case 10:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=0;break a}case 12:{d=(k[c>>2]|0)+(8-1)&~(8-1);b=d;e=k[b>>2]|0;b=k[b+4>>2]|0;k[c>>2]=d+8;d=a;k[d>>2]=e;k[d+4>>2]=b;break a}case 13:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&65535;k[e+4>>2]=0;break a}case 15:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&255)<<24>>24;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&255;k[e+4>>2]=0;break a}case 17:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}case 18:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}default:break a}while(0);while(0);return}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295)while(1){d=jd(a|0,b|0,10,0)|0;c=c+-1|0;i[c>>0]=d|48;d=id(a|0,b|0,10,0)|0;if(b>>>0>9|(b|0)==9&a>>>0>4294967295){a=d;b=L}else{a=d;break}}if(a)while(1){c=c+-1|0;i[c>>0]=(a>>>0)%10|0|48;if(a>>>0<10)break;else a=(a>>>0)/10|0}return c|0}function Qc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=r;r=r+256|0;g=h;do if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;_c(g|0,b|0,(e>>>0>256?256:e)|0)|0;b=k[a>>2]|0;f=(b&32|0)==0;if(e>>>0>255){d=c-d|0;do{if(f){uc(g,256,a)|0;b=k[a>>2]|0}e=e+-256|0;f=(b&32|0)==0}while(e>>>0>255);if(f)e=d&255;else break}else if(!f)break;uc(g,e,a)|0}while(0);r=h;return}function Rc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;h=k[147]|0;c=h>>>a;if(c&3){a=(c&1^1)+a|0;d=a<<1;c=628+(d<<2)|0;d=628+(d+2<<2)|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do if((c|0)!=(g|0)){if(g>>>0<(k[151]|0)>>>0)Aa();b=g+12|0;if((k[b>>2]|0)==(e|0)){k[b>>2]=c;k[d>>2]=g;break}else Aa()}else k[147]=h&~(1<>2]=M|3;M=e+(M|4)|0;k[M>>2]=k[M>>2]|1;M=f;return M|0}g=k[149]|0;if(o>>>0>g>>>0){if(c){d=2<>>12&16;d=d>>>i;e=d>>>5&8;d=d>>>e;f=d>>>2&4;d=d>>>f;c=d>>>1&2;d=d>>>c;a=d>>>1&1;a=(e|i|f|c|a)+(d>>>a)|0;d=a<<1;c=628+(d<<2)|0;d=628+(d+2<<2)|0;f=k[d>>2]|0;i=f+8|0;e=k[i>>2]|0;do if((c|0)!=(e|0)){if(e>>>0<(k[151]|0)>>>0)Aa();b=e+12|0;if((k[b>>2]|0)==(f|0)){k[b>>2]=c;k[d>>2]=e;j=k[149]|0;break}else Aa()}else{k[147]=h&~(1<>2]=o|3;h=f+o|0;k[f+(o|4)>>2]=g|1;k[f+M>>2]=g;if(j){e=k[152]|0;c=j>>>3;b=c<<1;d=628+(b<<2)|0;a=k[147]|0;c=1<>2]|0;if(b>>>0<(k[151]|0)>>>0)Aa();else{l=a;m=b}}else{k[147]=a|c;l=628+(b+2<<2)|0;m=d}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=d}k[149]=g;k[152]=h;M=i;return M|0}a=k[148]|0;if(a){c=(a&0-a)+-1|0;L=c>>>12&16;c=c>>>L;K=c>>>5&8;c=c>>>K;M=c>>>2&4;c=c>>>M;a=c>>>1&2;c=c>>>a;d=c>>>1&1;d=k[892+((K|L|M|a|d)+(c>>>d)<<2)>>2]|0;c=(k[d+4>>2]&-8)-o|0;a=d;while(1){b=k[a+16>>2]|0;if(!b){b=k[a+20>>2]|0;if(!b){i=c;break}}a=(k[b+4>>2]&-8)-o|0;M=a>>>0>>0;c=M?a:c;a=b;d=M?b:d}f=k[151]|0;if(d>>>0>>0)Aa();h=d+o|0;if(d>>>0>=h>>>0)Aa();g=k[d+24>>2]|0;c=k[d+12>>2]|0;do if((c|0)==(d|0)){a=d+20|0;b=k[a>>2]|0;if(!b){a=d+16|0;b=k[a>>2]|0;if(!b){n=0;break}}while(1){c=b+20|0;e=k[c>>2]|0;if(e){b=e;a=c;continue}c=b+16|0;e=k[c>>2]|0;if(!e)break;else{b=e;a=c}}if(a>>>0>>0)Aa();else{k[a>>2]=0;n=b;break}}else{e=k[d+8>>2]|0;if(e>>>0>>0)Aa();b=e+12|0;if((k[b>>2]|0)!=(d|0))Aa();a=c+8|0;if((k[a>>2]|0)==(d|0)){k[b>>2]=c;k[a>>2]=e;n=c;break}else Aa()}while(0);do if(g){b=k[d+28>>2]|0;a=892+(b<<2)|0;if((d|0)==(k[a>>2]|0)){k[a>>2]=n;if(!n){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(d|0))k[b>>2]=n;else k[g+20>>2]=n;if(!n)break}a=k[151]|0;if(n>>>0>>0)Aa();k[n+24>>2]=g;b=k[d+16>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[n+16>>2]=b;k[b+24>>2]=n;break}while(0);b=k[d+20>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[n+20>>2]=b;k[b+24>>2]=n;break}}while(0);if(i>>>0<16){M=i+o|0;k[d+4>>2]=M|3;M=d+(M+4)|0;k[M>>2]=k[M>>2]|1}else{k[d+4>>2]=o|3;k[d+(o|4)>>2]=i|1;k[d+(i+o)>>2]=i;b=k[149]|0;if(b){f=k[152]|0;c=b>>>3;b=c<<1;e=628+(b<<2)|0;a=k[147]|0;c=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{p=b;q=a}}else{k[147]=a|c;p=628+(b+2<<2)|0;q=e}k[p>>2]=f;k[q+12>>2]=f;k[f+8>>2]=q;k[f+12>>2]=e}k[149]=i;k[152]=h}M=d+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=k[148]|0;if(l){c=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;j=14-(p|q|j)+(v<>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;a=k[892+(j<<2)>>2]|0;a:do if(!a){e=0;a=0;v=86}else{g=c;e=0;h=m<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){f=k[i+4>>2]&-8;c=f-m|0;if(c>>>0>>0)if((f|0)==(m|0)){f=i;a=i;v=90;break a}else a=i;else c=g;v=k[i+20>>2]|0;i=k[i+16+(h>>>31<<2)>>2]|0;e=(v|0)==0|(v|0)==(i|0)?e:v;if(!i){v=86;break}else{g=c;h=h<<1}}}while(0);if((v|0)==86){if((e|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;e=a>>>1&1;e=k[892+((l|n|p|q|e)+(a>>>e)<<2)>>2]|0;a=0}if(!e){h=c;i=a}else{f=e;v=90}}if((v|0)==90)while(1){v=0;q=(k[f+4>>2]&-8)-m|0;e=q>>>0>>0;c=e?q:c;a=e?f:a;e=k[f+16>>2]|0;if(e){f=e;v=90;continue}f=k[f+20>>2]|0;if(!f){h=c;i=a;break}else v=90}if((i|0)!=0?h>>>0<((k[149]|0)-m|0)>>>0:0){e=k[151]|0;if(i>>>0>>0)Aa();g=i+m|0;if(i>>>0>=g>>>0)Aa();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;b=k[a>>2]|0;if(!b){a=i+16|0;b=k[a>>2]|0;if(!b){o=0;break}}while(1){c=b+20|0;d=k[c>>2]|0;if(d){b=d;a=c;continue}c=b+16|0;d=k[c>>2]|0;if(!d)break;else{b=d;a=c}}if(a>>>0>>0)Aa();else{k[a>>2]=0;o=b;break}}else{d=k[i+8>>2]|0;if(d>>>0>>0)Aa();b=d+12|0;if((k[b>>2]|0)!=(i|0))Aa();a=c+8|0;if((k[a>>2]|0)==(i|0)){k[b>>2]=c;k[a>>2]=d;o=c;break}else Aa()}while(0);do if(f){b=k[i+28>>2]|0;a=892+(b<<2)|0;if((i|0)==(k[a>>2]|0)){k[a>>2]=o;if(!o){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=f+16|0;if((k[b>>2]|0)==(i|0))k[b>>2]=o;else k[f+20>>2]=o;if(!o)break}a=k[151]|0;if(o>>>0>>0)Aa();k[o+24>>2]=f;b=k[i+16>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[o+16>>2]=b;k[b+24>>2]=o;break}while(0);b=k[i+20>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[o+20>>2]=b;k[b+24>>2]=o;break}}while(0);b:do if(h>>>0>=16){k[i+4>>2]=m|3;k[i+(m|4)>>2]=h|1;k[i+(h+m)>>2]=h;b=h>>>3;if(h>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{s=b;t=a}}else{k[147]=c|b;s=628+(a+2<<2)|0;t=d}k[s>>2]=g;k[t+12>>2]=g;k[i+(m+8)>>2]=t;k[i+(m+12)>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=892+(d<<2)|0;k[i+(m+28)>>2]=d;k[i+(m+20)>>2]=0;k[i+(m+16)>>2]=0;a=k[148]|0;c=1<>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break}b=k[b>>2]|0;c:do if((k[b+4>>2]&-8|0)!=(h|0)){d=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(h|0)){y=c;break c}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break b}}else y=b;while(0);b=y+8|0;a=k[b>>2]|0;M=k[151]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[i+(m+8)>>2]=a;k[i+(m+12)>>2]=y;k[i+(m+24)>>2]=0;break}else Aa()}else{M=h+m|0;k[i+4>>2]=M|3;M=i+(M+4)|0;k[M>>2]=k[M>>2]|1}while(0);M=i+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);c=k[149]|0;if(c>>>0>=q>>>0){b=c-q|0;a=k[152]|0;if(b>>>0>15){k[152]=a+q;k[149]=b;k[a+(q+4)>>2]=b|1;k[a+c>>2]=b;k[a+4>>2]=q|3}else{k[149]=0;k[152]=0;k[a+4>>2]=c|3;M=a+(c+4)|0;k[M>>2]=k[M>>2]|1}M=a+8|0;return M|0}a=k[150]|0;if(a>>>0>q>>>0){L=a-q|0;k[150]=L;M=k[153]|0;k[153]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(k[265]|0)){a=Ma(30)|0;if(!(a+-1&a)){k[267]=a;k[266]=a;k[268]=-1;k[269]=-1;k[270]=0;k[258]=0;y=(Ea(0)|0)&-16^1431655768;k[265]=y;break}else Aa()}while(0);i=q+48|0;h=k[267]|0;j=q+47|0;g=h+j|0;h=0-h|0;l=g&h;if(l>>>0<=q>>>0){M=0;return M|0}a=k[257]|0;if((a|0)!=0?(t=k[255]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(k[258]&4)){a=k[153]|0;e:do if(a){e=1036;while(1){c=k[e>>2]|0;if(c>>>0<=a>>>0?(r=e+4|0,(c+(k[r>>2]|0)|0)>>>0>a>>>0):0){f=e;a=r;break}e=k[e+8>>2]|0;if(!e){v=174;break e}}c=g-(k[150]|0)&h;if(c>>>0<2147483647){e=Da(c|0)|0;y=(e|0)==((k[f>>2]|0)+(k[a>>2]|0)|0);a=y?c:0;if(y){if((e|0)!=(-1|0)){w=e;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){f=Da(0)|0;if((f|0)!=(-1|0)){a=f;c=k[266]|0;e=c+-1|0;if(!(e&a))c=l;else c=l-a+(e+a&0-c)|0;a=k[255]|0;e=a+c|0;if(c>>>0>q>>>0&c>>>0<2147483647){y=k[257]|0;if((y|0)!=0?e>>>0<=a>>>0|e>>>0>y>>>0:0){a=0;break}e=Da(c|0)|0;y=(e|0)==(f|0);a=y?c:0;if(y){w=f;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){f=0-c|0;do if(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))?(u=k[267]|0,u=j-c+u&0-u,u>>>0<2147483647):0)if((Da(u|0)|0)==(-1|0)){Da(f|0)|0;break f}else{c=u+c|0;break}while(0);if((e|0)!=(-1|0)){w=e;p=c;v=194;break d}}while(0);k[258]=k[258]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Da(l|0)|0,x=Da(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(k[255]|0)+p|0;k[255]=a;if(a>>>0>(k[256]|0)>>>0)k[256]=a;g=k[153]|0;g:do if(g){f=1036;do{a=k[f>>2]|0;c=f+4|0;e=k[c>>2]|0;if((w|0)==(a+e|0)){B=a;C=c;D=e;E=f;v=204;break}f=k[f+8>>2]|0}while((f|0)!=0);if(((v|0)==204?(k[E+12>>2]&8|0)==0:0)?g>>>0>>0&g>>>0>=B>>>0:0){k[C>>2]=D+p;M=(k[150]|0)+p|0;L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;k[153]=g+L;k[150]=K;k[g+(L+4)>>2]=K|1;k[g+(M+4)>>2]=40;k[154]=k[269];break}a=k[151]|0;if(w>>>0>>0){k[151]=w;a=w}c=w+p|0;f=1036;while(1){if((k[f>>2]|0)==(c|0)){e=f;c=f;v=212;break}f=k[f+8>>2]|0;if(!f){c=1036;break}}if((v|0)==212)if(!(k[c+12>>2]&8)){k[e>>2]=w;n=c+4|0;k[n>>2]=(k[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;j=w+(p+8)|0;j=(j&7|0)==0?0:0-j&7;b=w+(j+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;k[w+(n+4)>>2]=q|3;h:do if((b|0)!=(g|0)){if((b|0)==(k[152]|0)){M=(k[149]|0)+l|0;k[149]=M;k[152]=o;k[w+(m+4)>>2]=M|1;k[w+(M+m)>>2]=M;break}h=p+4|0;c=k[w+(h+j)>>2]|0;if((c&3|0)==1){i=c&-8;f=c>>>3;i:do if(c>>>0>=256){g=k[w+((j|24)+p)>>2]|0;d=k[w+(p+12+j)>>2]|0;do if((d|0)==(b|0)){e=j|16;d=w+(h+e)|0;c=k[d>>2]|0;if(!c){d=w+(e+p)|0;c=k[d>>2]|0;if(!c){J=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;J=c;break}}else{e=k[w+((j|8)+p)>>2]|0;if(e>>>0>>0)Aa();a=e+12|0;if((k[a>>2]|0)!=(b|0))Aa();c=d+8|0;if((k[c>>2]|0)==(b|0)){k[a>>2]=d;k[c>>2]=e;J=d;break}else Aa()}while(0);if(!g)break;a=k[w+(p+28+j)>>2]|0;c=892+(a<<2)|0;do if((b|0)!=(k[c>>2]|0)){if(g>>>0<(k[151]|0)>>>0)Aa();a=g+16|0;if((k[a>>2]|0)==(b|0))k[a>>2]=J;else k[g+20>>2]=J;if(!J)break i}else{k[c>>2]=J;if(J)break;k[148]=k[148]&~(1<>>0>>0)Aa();k[J+24>>2]=g;b=j|16;a=k[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)Aa();else{k[J+16>>2]=a;k[a+24>>2]=J;break}while(0);b=k[w+(h+b)>>2]|0;if(!b)break;if(b>>>0<(k[151]|0)>>>0)Aa();else{k[J+20>>2]=b;k[b+24>>2]=J;break}}else{d=k[w+((j|8)+p)>>2]|0;e=k[w+(p+12+j)>>2]|0;c=628+(f<<1<<2)|0;do if((d|0)!=(c|0)){if(d>>>0>>0)Aa();if((k[d+12>>2]|0)==(b|0))break;Aa()}while(0);if((e|0)==(d|0)){k[147]=k[147]&~(1<>>0>>0)Aa();a=e+8|0;if((k[a>>2]|0)==(b|0)){F=a;break}Aa()}while(0);k[d+12>>2]=e;k[F>>2]=d}while(0);b=w+((i|j)+p)|0;e=i+l|0}else e=l;b=b+4|0;k[b>>2]=k[b>>2]&-2;k[w+(m+4)>>2]=e|1;k[w+(e+m)>>2]=e;b=e>>>3;if(e>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0>=(k[151]|0)>>>0){K=b;L=a;break}Aa()}while(0);k[K>>2]=o;k[L+12>>2]=o;k[w+(m+8)>>2]=L;k[w+(m+12)>>2]=d;break}b=e>>>8;do if(!b)d=0;else{if(e>>>0>16777215){d=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=e>>>(d+7|0)&1|d<<1}while(0);b=892+(d<<2)|0;k[w+(m+28)>>2]=d;k[w+(m+20)>>2]=0;k[w+(m+16)>>2]=0;a=k[148]|0;c=1<>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break}b=k[b>>2]|0;j:do if((k[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(e|0)){M=c;break j}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=k[b>>2]|0;L=k[151]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){k[a+12>>2]=o;k[b>>2]=o;k[w+(m+8)>>2]=a;k[w+(m+12)>>2]=M;k[w+(m+24)>>2]=0;break}else Aa()}else{M=(k[150]|0)+l|0;k[150]=M;k[153]=o;k[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else c=1036;while(1){a=k[c>>2]|0;if(a>>>0<=g>>>0?(b=k[c+4>>2]|0,d=a+b|0,d>>>0>g>>>0):0)break;c=k[c+8>>2]|0}e=a+(b+-39)|0;a=a+(b+-47+((e&7|0)==0?0:0-e&7))|0;e=g+16|0;a=a>>>0>>0?g:a;b=a+8|0;c=w+8|0;c=(c&7|0)==0?0:0-c&7;M=p+-40-c|0;k[153]=w+c;k[150]=M;k[w+(c+4)>>2]=M|1;k[w+(p+-36)>>2]=40;k[154]=k[269];c=a+4|0;k[c>>2]=27;k[b>>2]=k[259];k[b+4>>2]=k[260];k[b+8>>2]=k[261];k[b+12>>2]=k[262];k[259]=w;k[260]=p;k[262]=0;k[261]=b;b=a+28|0;k[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;k[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(g|0)){f=a-g|0;k[c>>2]=k[c>>2]&-2;k[g+4>>2]=f|1;k[a>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{G=b;H=a}}else{k[147]=c|b;G=628+(a+2<<2)|0;H=d}k[G>>2]=g;k[H+12>>2]=g;k[g+8>>2]=H;k[g+12>>2]=d;break}b=f>>>8;if(b)if(f>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;c=892+(d<<2)|0;k[g+28>>2]=d;k[g+20>>2]=0;k[e>>2]=0;b=k[148]|0;a=1<>2]=g;k[g+24>>2]=c;k[g+12>>2]=g;k[g+8>>2]=g;break}b=k[c>>2]|0;k:do if((k[b+4>>2]&-8|0)!=(f|0)){d=f<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(f|0)){I=c;break k}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=g;k[g+24>>2]=b;k[g+12>>2]=g;k[g+8>>2]=g;break g}}else I=b;while(0);b=I+8|0;a=k[b>>2]|0;M=k[151]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[g+8>>2]=a;k[g+12>>2]=I;k[g+24>>2]=0;break}else Aa()}}else{M=k[151]|0;if((M|0)==0|w>>>0>>0)k[151]=w;k[259]=w;k[260]=p;k[262]=0;k[156]=k[265];k[155]=-1;b=0;do{M=b<<1;L=628+(M<<2)|0;k[628+(M+3<<2)>>2]=L;k[628+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;k[153]=w+M;k[150]=L;k[w+(M+4)>>2]=L|1;k[w+(p+-36)>>2]=40;k[154]=k[269]}while(0);b=k[150]|0;if(b>>>0>q>>>0){L=b-q|0;k[150]=L;M=k[153]|0;k[153]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}}M=mc()|0;k[M>>2]=12;M=0;return M|0}function Sc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;h=k[151]|0;if(b>>>0>>0)Aa();c=k[a+-4>>2]|0;d=c&3;if((d|0)==1)Aa();o=c&-8;q=a+(o+-8)|0;do if(!(c&1)){b=k[b>>2]|0;if(!d)return;i=-8-b|0;l=a+i|0;m=b+o|0;if(l>>>0>>0)Aa();if((l|0)==(k[152]|0)){b=a+(o+-4)|0;c=k[b>>2]|0;if((c&3|0)!=3){u=l;f=m;break}k[149]=m;k[b>>2]=c&-2;k[a+(i+4)>>2]=m|1;k[q>>2]=m;return}e=b>>>3;if(b>>>0<256){d=k[a+(i+8)>>2]|0;c=k[a+(i+12)>>2]|0;b=628+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0>>0)Aa();if((k[d+12>>2]|0)!=(l|0))Aa()}if((c|0)==(d|0)){k[147]=k[147]&~(1<>>0>>0)Aa();b=c+8|0;if((k[b>>2]|0)==(l|0))g=b;else Aa()}else g=c+8|0;k[d+12>>2]=c;k[g>>2]=d;u=l;f=m;break}g=k[a+(i+24)>>2]|0;d=k[a+(i+12)>>2]|0;do if((d|0)==(l|0)){c=a+(i+20)|0;b=k[c>>2]|0;if(!b){c=a+(i+16)|0;b=k[c>>2]|0;if(!b){j=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0>>0)Aa();else{k[c>>2]=0;j=b;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Aa();b=e+12|0;if((k[b>>2]|0)!=(l|0))Aa();c=d+8|0;if((k[c>>2]|0)==(l|0)){k[b>>2]=d;k[c>>2]=e;j=d;break}else Aa()}while(0);if(g){b=k[a+(i+28)>>2]|0;c=892+(b<<2)|0;if((l|0)==(k[c>>2]|0)){k[c>>2]=j;if(!j){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(l|0))k[b>>2]=j;else k[g+20>>2]=j;if(!j){u=l;f=m;break}}c=k[151]|0;if(j>>>0>>0)Aa();k[j+24>>2]=g;b=k[a+(i+16)>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[j+16>>2]=b;k[b+24>>2]=j;break}while(0);b=k[a+(i+20)>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[j+20>>2]=b;k[b+24>>2]=j;u=l;f=m;break}else{u=l;f=m}}else{u=l;f=m}}else{u=b;f=o}while(0);if(u>>>0>=q>>>0)Aa();b=a+(o+-4)|0;c=k[b>>2]|0;if(!(c&1))Aa();if(!(c&2)){if((q|0)==(k[153]|0)){t=(k[150]|0)+f|0;k[150]=t;k[153]=u;k[u+4>>2]=t|1;if((u|0)!=(k[152]|0))return;k[152]=0;k[149]=0;return}if((q|0)==(k[152]|0)){t=(k[149]|0)+f|0;k[149]=t;k[152]=u;k[u+4>>2]=t|1;k[u+t>>2]=t;return}f=(c&-8)+f|0;e=c>>>3;do if(c>>>0>=256){g=k[a+(o+16)>>2]|0;b=k[a+(o|4)>>2]|0;do if((b|0)==(q|0)){c=a+(o+12)|0;b=k[c>>2]|0;if(!b){c=a+(o+8)|0;b=k[c>>2]|0;if(!b){p=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<(k[151]|0)>>>0)Aa();else{k[c>>2]=0;p=b;break}}else{c=k[a+o>>2]|0;if(c>>>0<(k[151]|0)>>>0)Aa();d=c+12|0;if((k[d>>2]|0)!=(q|0))Aa();e=b+8|0;if((k[e>>2]|0)==(q|0)){k[d>>2]=b;k[e>>2]=c;p=b;break}else Aa()}while(0);if(g){b=k[a+(o+20)>>2]|0;c=892+(b<<2)|0;if((q|0)==(k[c>>2]|0)){k[c>>2]=p;if(!p){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(q|0))k[b>>2]=p;else k[g+20>>2]=p;if(!p)break}c=k[151]|0;if(p>>>0>>0)Aa();k[p+24>>2]=g;b=k[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[p+16>>2]=b;k[b+24>>2]=p;break}while(0);b=k[a+(o+12)>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[p+20>>2]=b;k[b+24>>2]=p;break}}}else{d=k[a+o>>2]|0;c=k[a+(o|4)>>2]|0;b=628+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0<(k[151]|0)>>>0)Aa();if((k[d+12>>2]|0)!=(q|0))Aa()}if((c|0)==(d|0)){k[147]=k[147]&~(1<>>0<(k[151]|0)>>>0)Aa();b=c+8|0;if((k[b>>2]|0)==(q|0))n=b;else Aa()}else n=c+8|0;k[d+12>>2]=c;k[n>>2]=d}while(0);k[u+4>>2]=f|1;k[u+f>>2]=f;if((u|0)==(k[152]|0)){k[149]=f;return}}else{k[b>>2]=c&-2;k[u+4>>2]=f|1;k[u+f>>2]=f}b=f>>>3;if(f>>>0<256){c=b<<1;e=628+(c<<2)|0;d=k[147]|0;b=1<>2]|0;if(c>>>0<(k[151]|0)>>>0)Aa();else{r=b;s=c}}else{k[147]=d|b;r=628+(c+2<<2)|0;s=e}k[r>>2]=u;k[s+12>>2]=u;k[u+8>>2]=s;k[u+12>>2]=e;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;e=14-(q|r|e)+(s<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=892+(e<<2)|0;k[u+28>>2]=e;k[u+20>>2]=0;k[u+16>>2]=0;c=k[148]|0;d=1<>2]|0;b:do if((k[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){c=b+16+(e>>>31<<2)|0;d=k[c>>2]|0;if(!d)break;if((k[d+4>>2]&-8|0)==(f|0)){t=d;break b}else{e=e<<1;b=d}}if(c>>>0<(k[151]|0)>>>0)Aa();else{k[c>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;c=k[b>>2]|0;s=k[151]|0;if(c>>>0>=s>>>0&t>>>0>=s>>>0){k[c+12>>2]=u;k[b>>2]=u;k[u+8>>2]=c;k[u+12>>2]=t;k[u+24>>2]=0;break}else Aa()}else{k[148]=c|d;k[b>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u}while(0);u=(k[155]|0)+-1|0;k[155]=u;if(!u)b=1044;else return;while(1){b=k[b>>2]|0;if(!b)break;else b=b+8|0}k[155]=-1;return}function Tc(a,b){a=a|0;b=b|0;var c=0,d=0;if(!a){a=Rc(b)|0;return a|0}if(b>>>0>4294967231){a=mc()|0;k[a>>2]=12;a=0;return a|0}c=Vc(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(c){a=c+8|0;return a|0}c=Rc(b)|0;if(!c){a=0;return a|0}d=k[a+-4>>2]|0;d=(d&-8)-((d&3|0)==0?8:4)|0;bd(c|0,a|0,(d>>>0>>0?d:b)|0)|0;Sc(a);a=c;return a|0}function Uc(a){a=a|0;var b=0;if(!a){b=0;return b|0}a=k[a+-4>>2]|0;b=a&3;if((b|0)==1){b=0;return b|0}b=(a&-8)-((b|0)==0?8:4)|0;return b|0}function Vc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=k[o>>2]|0;i=p&-8;l=a+i|0;h=k[151]|0;c=p&3;if(!((c|0)!=1&a>>>0>=h>>>0&a>>>0>>0))Aa();d=a+(i|4)|0;e=k[d>>2]|0;if(!(e&1))Aa();if(!c){if(b>>>0<256){a=0;return a|0}if(i>>>0>=(b+4|0)>>>0?(i-b|0)>>>0<=k[267]<<1>>>0:0)return a|0;a=0;return a|0}if(i>>>0>=b>>>0){c=i-b|0;if(c>>>0<=15)return a|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|3;k[d>>2]=k[d>>2]|1;Wc(a+b|0,c);return a|0}if((l|0)==(k[153]|0)){c=(k[150]|0)+i|0;if(c>>>0<=b>>>0){a=0;return a|0}n=c-b|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|1;k[153]=a+b;k[150]=n;return a|0}if((l|0)==(k[152]|0)){d=(k[149]|0)+i|0;if(d>>>0>>0){a=0;return a|0}c=d-b|0;if(c>>>0>15){k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|1;k[a+d>>2]=c;d=a+(d+4)|0;k[d>>2]=k[d>>2]&-2;d=a+b|0}else{k[o>>2]=p&1|d|2;d=a+(d+4)|0;k[d>>2]=k[d>>2]|1;d=0;c=0}k[149]=c;k[152]=d;return a|0}if(e&2){a=0;return a|0}m=(e&-8)+i|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;f=e>>>3;do if(e>>>0>=256){g=k[a+(i+24)>>2]|0;f=k[a+(i+12)>>2]|0;do if((f|0)==(l|0)){d=a+(i+20)|0;c=k[d>>2]|0;if(!c){d=a+(i+16)|0;c=k[d>>2]|0;if(!c){j=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;j=c;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Aa();c=e+12|0;if((k[c>>2]|0)!=(l|0))Aa();d=f+8|0;if((k[d>>2]|0)==(l|0)){k[c>>2]=f;k[d>>2]=e;j=f;break}else Aa()}while(0);if(g){c=k[a+(i+28)>>2]|0;d=892+(c<<2)|0;if((l|0)==(k[d>>2]|0)){k[d>>2]=j;if(!j){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=g+16|0;if((k[c>>2]|0)==(l|0))k[c>>2]=j;else k[g+20>>2]=j;if(!j)break}d=k[151]|0;if(j>>>0>>0)Aa();k[j+24>>2]=g;c=k[a+(i+16)>>2]|0;do if(c)if(c>>>0>>0)Aa();else{k[j+16>>2]=c;k[c+24>>2]=j;break}while(0);c=k[a+(i+20)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[j+20>>2]=c;k[c+24>>2]=j;break}}}else{e=k[a+(i+8)>>2]|0;d=k[a+(i+12)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(l|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(l|0))g=c;else Aa()}else g=d+8|0;k[e+12>>2]=d;k[g>>2]=e}while(0);if(n>>>0<16){k[o>>2]=m|p&1|2;b=a+(m|4)|0;k[b>>2]=k[b>>2]|1;return a|0}else{k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|3;p=a+(m|4)|0;k[p>>2]=k[p>>2]|1;Wc(a+b|0,n);return a|0}return 0}function Wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;c=k[a+4>>2]|0;do if(!(c&1)){j=k[a>>2]|0;if(!(c&3))return;n=a+(0-j)|0;m=j+b|0;i=k[151]|0;if(n>>>0>>0)Aa();if((n|0)==(k[152]|0)){d=a+(b+4)|0;c=k[d>>2]|0;if((c&3|0)!=3){t=n;g=m;break}k[149]=m;k[d>>2]=c&-2;k[a+(4-j)>>2]=m|1;k[q>>2]=m;return}f=j>>>3;if(j>>>0<256){e=k[a+(8-j)>>2]|0;d=k[a+(12-j)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(n|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(n|0))h=c;else Aa()}else h=d+8|0;k[e+12>>2]=d;k[h>>2]=e;t=n;g=m;break}h=k[a+(24-j)>>2]|0;e=k[a+(12-j)>>2]|0;do if((e|0)==(n|0)){e=16-j|0;d=a+(e+4)|0;c=k[d>>2]|0;if(!c){d=a+e|0;c=k[d>>2]|0;if(!c){l=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;l=c;break}}else{f=k[a+(8-j)>>2]|0;if(f>>>0>>0)Aa();c=f+12|0;if((k[c>>2]|0)!=(n|0))Aa();d=e+8|0;if((k[d>>2]|0)==(n|0)){k[c>>2]=e;k[d>>2]=f;l=e;break}else Aa()}while(0);if(h){c=k[a+(28-j)>>2]|0;d=892+(c<<2)|0;if((n|0)==(k[d>>2]|0)){k[d>>2]=l;if(!l){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=h+16|0;if((k[c>>2]|0)==(n|0))k[c>>2]=l;else k[h+20>>2]=l;if(!l){t=n;g=m;break}}e=k[151]|0;if(l>>>0>>0)Aa();k[l+24>>2]=h;c=16-j|0;d=k[a+c>>2]|0;do if(d)if(d>>>0>>0)Aa();else{k[l+16>>2]=d;k[d+24>>2]=l;break}while(0);c=k[a+(c+4)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[l+20>>2]=c;k[c+24>>2]=l;t=n;g=m;break}else{t=n;g=m}}else{t=n;g=m}}else{t=a;g=b}while(0);i=k[151]|0;if(q>>>0>>0)Aa();c=a+(b+4)|0;d=k[c>>2]|0;if(!(d&2)){if((q|0)==(k[153]|0)){s=(k[150]|0)+g|0;k[150]=s;k[153]=t;k[t+4>>2]=s|1;if((t|0)!=(k[152]|0))return;k[152]=0;k[149]=0;return}if((q|0)==(k[152]|0)){s=(k[149]|0)+g|0;k[149]=s;k[152]=t;k[t+4>>2]=s|1;k[t+s>>2]=s;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=k[a+(b+24)>>2]|0;e=k[a+(b+12)>>2]|0;do if((e|0)==(q|0)){d=a+(b+20)|0;c=k[d>>2]|0;if(!c){d=a+(b+16)|0;c=k[d>>2]|0;if(!c){p=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;p=c;break}}else{f=k[a+(b+8)>>2]|0;if(f>>>0>>0)Aa();c=f+12|0;if((k[c>>2]|0)!=(q|0))Aa();d=e+8|0;if((k[d>>2]|0)==(q|0)){k[c>>2]=e;k[d>>2]=f;p=e;break}else Aa()}while(0);if(h){c=k[a+(b+28)>>2]|0;d=892+(c<<2)|0;if((q|0)==(k[d>>2]|0)){k[d>>2]=p;if(!p){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=h+16|0;if((k[c>>2]|0)==(q|0))k[c>>2]=p;else k[h+20>>2]=p;if(!p)break}d=k[151]|0;if(p>>>0>>0)Aa();k[p+24>>2]=h;c=k[a+(b+16)>>2]|0;do if(c)if(c>>>0>>0)Aa();else{k[p+16>>2]=c;k[c+24>>2]=p;break}while(0);c=k[a+(b+20)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[p+20>>2]=c;k[c+24>>2]=p;break}}}else{e=k[a+(b+8)>>2]|0;d=k[a+(b+12)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(q|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(q|0))o=c;else Aa()}else o=d+8|0;k[e+12>>2]=d;k[o>>2]=e}while(0);k[t+4>>2]=g|1;k[t+g>>2]=g;if((t|0)==(k[152]|0)){k[149]=g;return}}else{k[c>>2]=d&-2;k[t+4>>2]=g|1;k[t+g>>2]=g}c=g>>>3;if(g>>>0<256){d=c<<1;f=628+(d<<2)|0;e=k[147]|0;c=1<>2]|0;if(d>>>0<(k[151]|0)>>>0)Aa();else{r=c;s=d}}else{k[147]=e|c;r=628+(d+2<<2)|0;s=f}k[r>>2]=t;k[s+12>>2]=t;k[t+8>>2]=s;k[t+12>>2]=f;return}c=g>>>8;if(c)if(g>>>0>16777215)f=31;else{r=(c+1048320|0)>>>16&8;s=c<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;c=892+(f<<2)|0;k[t+28>>2]=f;k[t+20>>2]=0;k[t+16>>2]=0;d=k[148]|0;e=1<>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}c=k[c>>2]|0;a:do if((k[c+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=c+16+(f>>>31<<2)|0;e=k[d>>2]|0;if(!e)break;if((k[e+4>>2]&-8|0)==(g|0)){c=e;break a}else{f=f<<1;c=e}}if(d>>>0<(k[151]|0)>>>0)Aa();k[d>>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}while(0);d=c+8|0;e=k[d>>2]|0;s=k[151]|0;if(!(e>>>0>=s>>>0&c>>>0>=s>>>0))Aa();k[e+12>>2]=t;k[d>>2]=t;k[t+8>>2]=e;k[t+12>>2]=c;k[t+24>>2]=0;return}function Xc(){}function Yc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (L=d,a-c>>>0|0)|0}function Zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (L=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function _c(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function $c(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>>c;return a>>>c|(b&(1<>>c-32|0}function ad(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b<>>32-c;return a<=4096)return Ha(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function cd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>c;return a>>>c|(b&(1<>c-32|0}function dd(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return (i[v+(a>>>24)>>0]|0)+24|0}function ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ha(e,f)|0;d=a>>>16;a=(c>>>16)+(ha(e,d)|0)|0;e=b>>>16;b=ha(e,f)|0;return (L=(a>>>16)+(ha(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function fd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=Yc(j^a,i^b,j,i)|0;g=L;a=f^j;b=e^i;return Yc((kd(h,g,Yc(f^c,e^d,f,e)|0,L,0)|0)^a,L^b,a,b)|0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=Yc(g^a,f^b,g,f)|0;b=L;kd(a,b,Yc(j^c,i^d,j,i)|0,L,h)|0;d=Yc(k[h>>2]^g,k[h+4>>2]^f,g,f)|0;c=L;r=e;return (L=c,d)|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=ed(e,f)|0;a=L;return (L=(ha(b,f)|0)+(ha(d,e)|0)+a|a&0,c|0|0)|0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return kd(a,b,c,d,0)|0}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;kd(a,b,c,d,e)|0;r=f;return (L=k[e+4>>2]|0,k[e>>2]|0)|0}function kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return (L=n,e)|0}else{if(!f){n=0;e=0;return (L=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return (L=n,e)|0}}f=(h|0)==0;do if(g){if(!f){f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<>>(m>>>0)&b;f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return (L=n,e)|0}f=g-1|0;if(f&g){h=(ja(g|0)|0)+33-(ja(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<>>(o>>>0))&i|l<>31;break}if(e){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return (L=o,p)|0}else{p=dd(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return (L=o,p)|0}}else{if(f){if(e){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return (L=o,p)|0}if(!l){if(e){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return (L=o,p)|0}f=h-1|0;if(!(f&h)){if(e){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((dd(h|0)|0)>>>0);return (L=o,p)|0}f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return (L=o,p)|0}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=Zc(m|0,l|0,-1,-1)|0;c=L;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;Yc(j,c,d,n)|0;p=L;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=Yc(d,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=L;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return (L=o,p)|0}function ld(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ra[a&7](b|0,c|0,d|0)|0}function md(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Sa[a&3](b|0,c|0,d|0,e|0,f|0)}function nd(a,b){a=a|0;b=b|0;Ta[a&7](b|0)}function od(a,b){a=a|0;b=b|0;return Ua[a&1](b|0)|0}function pd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Va[a&0](b|0,c|0,d|0)}function qd(a){a=a|0;Wa[a&3]()}function rd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Xa[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function sd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ya[a&3](b|0,c|0,d|0,e|0)}function td(a,b,c){a=a|0;b=b|0;c=c|0;ka(0);return 0}function ud(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ka(1)}function vd(a){a=a|0;ka(2)}function wd(a){a=a|0;ka(3);return 0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;ka(4)}function yd(){ka(5)}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ka(6)}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(7)} + +// EMSCRIPTEN_END_FUNCS + var Ra=[td,Yb,Nc,Gc,Fc,Hc,td,td];var Sa=[ud,dc,cc,ud];var Ta=[vd,Tb,Wb,Ub,Vb,Xb,kc,Mc];var Ua=[wd,Ec];var Va=[xd];var Wa=[yd,ic,jc,yd];var Xa=[zd,fc,ec,zd];var Ya=[Ad,_b,$b,Ad];return{___cxa_can_catch:gc,_crn_get_levels:zb,_crn_get_uncompressed_size:Bb,_crn_decompress:Cb,_i64Add:Zc,_crn_get_width:xb,___cxa_is_pointer_type:hc,_i64Subtract:Yc,_memset:_c,_malloc:Rc,_memcpy:bd,_bitshift64Lshr:$c,_free:Sc,_bitshift64Shl:ad,_crn_get_height:yb,_crn_get_dxt_format:Ab,runPostSets:Xc,_emscripten_replace_memory:Qa,stackAlloc:Za,stackSave:_a,stackRestore:$a,establishStackSpace:ab,setThrew:bb,setTempRet0:eb,getTempRet0:fb,dynCall_iiii:ld,dynCall_viiiii:md,dynCall_vi:nd,dynCall_ii:od,dynCall_viii:pd,dynCall_v:qd,dynCall_viiiiii:rd,dynCall_viiii:sd}}) + + + // EMSCRIPTEN_END_ASM + (Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _crn_get_levels=Module["_crn_get_levels"]=asm["_crn_get_levels"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _crn_get_uncompressed_size=Module["_crn_get_uncompressed_size"]=asm["_crn_get_uncompressed_size"];var _crn_decompress=Module["_crn_decompress"]=asm["_crn_decompress"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _crn_get_height=Module["_crn_get_height"]=asm["_crn_get_height"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var _crn_get_dxt_format=Module["_crn_get_dxt_format"]=asm["_crn_get_dxt_format"];var _crn_get_width=Module["_crn_get_width"]=asm["_crn_get_width"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() + + return Module; +}); \ No newline at end of file From c67a2ca30012f89282d28fe66deadbf5ab2a5ca4 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 5 Jan 2017 15:15:39 -0500 Subject: [PATCH 11/26] Fix issue with binary glTF compressed textures. --- Source/Core/loadKTX.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Core/loadKTX.js b/Source/Core/loadKTX.js index 03622acc8819..85038080d13f 100644 --- a/Source/Core/loadKTX.js +++ b/Source/Core/loadKTX.js @@ -216,7 +216,12 @@ define([ var imageSize = view.getUint32(byteOffset, true); byteOffset += sizeOfUint32; - var texture = new Uint8Array(data, byteOffset, imageSize); + var texture; + if (defined(data.buffer)) { + texture = new Uint8Array(data.buffer, byteOffset, imageSize); + } else { + texture = new Uint8Array(data, byteOffset, imageSize); + } // Some tools use a sized internal format. // See table 2: https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml @@ -263,7 +268,7 @@ define([ // Only use the level 0 mipmap if (PixelFormat.isCompressedFormat(glInternalFormat) && numberOfMipmapLevels > 1) { var levelSize = PixelFormat.compressedTextureSize(glInternalFormat, pixelWidth, pixelHeight); - texture = new Uint8Array(texture.buffer, 0, levelSize); + texture = texture.slice(0, levelSize); } return new CompressedTextureBuffer(glInternalFormat, pixelWidth, pixelHeight, texture); From 68082c21f6dec169654880049fab57b421630785 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 5 Jan 2017 15:58:39 -0500 Subject: [PATCH 12/26] Move transcoding CRN to DXT to a web worker. --- Source/Core/CompressedTextureBuffer.js | 16 +++ Source/Core/loadCRN.js | 138 +++---------------------- Source/Workers/transcodeCRNToDXT.js | 134 ++++++++++++++++++++++++ 3 files changed, 167 insertions(+), 121 deletions(-) create mode 100644 Source/Workers/transcodeCRNToDXT.js diff --git a/Source/Core/CompressedTextureBuffer.js b/Source/Core/CompressedTextureBuffer.js index dc0835944667..7a7251dfb2ec 100644 --- a/Source/Core/CompressedTextureBuffer.js +++ b/Source/Core/CompressedTextureBuffer.js @@ -1,7 +1,9 @@ /*global define*/ define([ + './defined', './defineProperties' ], function( + defined, defineProperties ) { 'use strict'; @@ -64,5 +66,19 @@ define([ } }); + /** + * Creates a shallow clone of a compressed texture buffer. + * + * @param {CompressedTextureBuffer} object The compressed texture buffer to be cloned. + * @return {CompressedTextureBuffer} A shallow clone of the compressed texture buffer. + */ + CompressedTextureBuffer.clone = function(object) { + if (!defined(object)) { + return undefined; + } + + return new CompressedTextureBuffer(object._format, object._width, object._height, object._buffer); + }; + return CompressedTextureBuffer; }); \ No newline at end of file diff --git a/Source/Core/loadCRN.js b/Source/Core/loadCRN.js index f7466f41ed66..679dfa0fa82c 100644 --- a/Source/Core/loadCRN.js +++ b/Source/Core/loadCRN.js @@ -2,137 +2,20 @@ define([ './CompressedTextureBuffer', './defined', - './defineProperties', './DeveloperError', './loadArrayBuffer', - './PixelFormat', - './RuntimeError', - '../ThirdParty/crunch', + './TaskProcessor', '../ThirdParty/when' ], function( CompressedTextureBuffer, defined, - defineProperties, DeveloperError, loadArrayBuffer, - PixelFormat, - RuntimeError, - crunch, + TaskProcessor, when) { 'use strict'; - // Modified from: https://github.com/toji/texture-tester/blob/master/js/webgl-texture-util.js - // Also see: http://toji.github.io/texture-tester/ - - /* Copyright (c) 2014, Brandon Jones. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - - // Taken from crnlib.h - var CRN_FORMAT = { - cCRNFmtInvalid: -1, - - cCRNFmtDXT1: 0, - // cCRNFmtDXT3 is not currently supported when writing to CRN - only DDS. - cCRNFmtDXT3: 1, - cCRNFmtDXT5: 2 - - // Crunch supports more formats than this, but we can't use them here. - }; - - // Mapping of Crunch formats to DXT formats. - var DXT_FORMAT_MAP = {}; - DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = PixelFormat.RGB_DXT1; - DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = PixelFormat.RGBA_DXT3; - DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = PixelFormat.RGBA_DXT5; - - - var dst; - var dxtData; - var cachedDstSize = 0; - - // Copy an array of bytes into or out of the emscripten heap. - function arrayBufferCopy(src, dst, dstByteOffset, numBytes) { - var i; - var dst32Offset = dstByteOffset / 4; - var tail = (numBytes % 4); - var src32 = new Uint32Array(src.buffer, 0, (numBytes - tail) / 4); - var dst32 = new Uint32Array(dst.buffer); - for (i = 0; i < src32.length; i++) { - dst32[dst32Offset + i] = src32[i]; - } - for (i = numBytes - tail; i < numBytes; i++) { - dst[dstByteOffset + i] = src[i]; - } - } - - function decompressCRN(arrayBuffer) { - // Copy the contents of the arrayBuffer into emscriptens heap. - var srcSize = arrayBuffer.byteLength; - var bytes = new Uint8Array(arrayBuffer); - var src = crunch._malloc(srcSize); - arrayBufferCopy(bytes, crunch.HEAPU8, src, srcSize); - - // Determine what type of compressed data the file contains. - var crnFormat = crunch._crn_get_dxt_format(src, srcSize); - var format = DXT_FORMAT_MAP[crnFormat]; - if (!defined(format)) { - throw new RuntimeError("Unsupported DXT format"); - } - - // Gather basic metrics about the DXT data. - var levels = crunch._crn_get_levels(src, srcSize); - var width = crunch._crn_get_width(src, srcSize); - var height = crunch._crn_get_height(src, srcSize); - - // Determine the size of the decoded DXT data. - var dstSize = 0; - var i; - for (i = 0; i < levels; ++i) { - dstSize += PixelFormat.compressedTextureSize(format, width >> i, height >> i); - } - - // Allocate enough space on the emscripten heap to hold the decoded DXT data - // or reuse the existing allocation if a previous call to this function has - // already acquired a large enough buffer. - if(cachedDstSize < dstSize) { - if(defined(dst)) { - crunch._free(dst); - } - dst = crunch._malloc(dstSize); - dxtData = new Uint8Array(crunch.HEAPU8.buffer, dst, dstSize); - cachedDstSize = dstSize; - } - - // Decompress the DXT data from the Crunch file into the allocated space. - crunch._crn_decompress(src, srcSize, dst, dstSize, 0, levels); - - // Release the crunch file data from the emscripten heap. - crunch._free(src); - - // Mipmaps are unsupported, so copy the level 0 texture - // When mipmaps are supported, a copy will still be necessary as dxtData is a view on the heap. - var level0DXTData = dxtData.slice(0, PixelFormat.compressedTextureSize(format, width, height)); - return new CompressedTextureBuffer(format, width, height, level0DXTData); - } + var transcodeTaskProcessor = new TaskProcessor('transcodeCRNToDXT', Number.POSITIVE_INFINITY); function loadCRN(urlOrBuffer, headers) { //>>includeStart('debug', pragmas.debug); @@ -149,7 +32,20 @@ define([ } return loadPromise.then(function(data) { - return decompressCRN(data); + var transferrableObjects = []; + if (data instanceof ArrayBuffer) { + transferrableObjects.push(data); + } else if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) { + transferrableObjects.push(data.buffer); + } else { + // data is a view of an array buffer. need to copy so it is transferrable to web worker + data = data.slice(0, data.length); + transferrableObjects.push(data.buffer); + } + + return transcodeTaskProcessor.scheduleTask(data, transferrableObjects); + }).then(function(compressedTextureBuffer) { + return CompressedTextureBuffer.clone(compressedTextureBuffer); }); } diff --git a/Source/Workers/transcodeCRNToDXT.js b/Source/Workers/transcodeCRNToDXT.js new file mode 100644 index 000000000000..094d93f1f69d --- /dev/null +++ b/Source/Workers/transcodeCRNToDXT.js @@ -0,0 +1,134 @@ +/*global define*/ +define([ + '../Core/CompressedTextureBuffer', + '../Core/defined', + '../Core/PixelFormat', + '../Core/RuntimeError', + '../ThirdParty/crunch', + './createTaskProcessorWorker' +], function( + CompressedTextureBuffer, + defined, + PixelFormat, + RuntimeError, + crunch, + createTaskProcessorWorker +) { + 'use strict'; + + // Modified from: https://github.com/toji/texture-tester/blob/master/js/webgl-texture-util.js + // Also see: http://toji.github.io/texture-tester/ + + /* Copyright (c) 2014, Brandon Jones. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + + // Taken from crnlib.h + var CRN_FORMAT = { + cCRNFmtInvalid: -1, + + cCRNFmtDXT1: 0, + // cCRNFmtDXT3 is not currently supported when writing to CRN - only DDS. + cCRNFmtDXT3: 1, + cCRNFmtDXT5: 2 + + // Crunch supports more formats than this, but we can't use them here. + }; + + // Mapping of Crunch formats to DXT formats. + var DXT_FORMAT_MAP = {}; + DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = PixelFormat.RGB_DXT1; + DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = PixelFormat.RGBA_DXT3; + DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = PixelFormat.RGBA_DXT5; + + + var dst; + var dxtData; + var cachedDstSize = 0; + + // Copy an array of bytes into or out of the emscripten heap. + function arrayBufferCopy(src, dst, dstByteOffset, numBytes) { + var i; + var dst32Offset = dstByteOffset / 4; + var tail = (numBytes % 4); + var src32 = new Uint32Array(src.buffer, 0, (numBytes - tail) / 4); + var dst32 = new Uint32Array(dst.buffer); + for (i = 0; i < src32.length; i++) { + dst32[dst32Offset + i] = src32[i]; + } + for (i = numBytes - tail; i < numBytes; i++) { + dst[dstByteOffset + i] = src[i]; + } + } + + function transcodeCRNToDXT(arrayBuffer, transferableObjects) { + // Copy the contents of the arrayBuffer into emscriptens heap. + var srcSize = arrayBuffer.byteLength; + var bytes = new Uint8Array(arrayBuffer); + var src = crunch._malloc(srcSize); + arrayBufferCopy(bytes, crunch.HEAPU8, src, srcSize); + + // Determine what type of compressed data the file contains. + var crnFormat = crunch._crn_get_dxt_format(src, srcSize); + var format = DXT_FORMAT_MAP[crnFormat]; + if (!defined(format)) { + throw new RuntimeError("Unsupported DXT format"); + } + + // Gather basic metrics about the DXT data. + var levels = crunch._crn_get_levels(src, srcSize); + var width = crunch._crn_get_width(src, srcSize); + var height = crunch._crn_get_height(src, srcSize); + + // Determine the size of the decoded DXT data. + var dstSize = 0; + var i; + for (i = 0; i < levels; ++i) { + dstSize += PixelFormat.compressedTextureSize(format, width >> i, height >> i); + } + + // Allocate enough space on the emscripten heap to hold the decoded DXT data + // or reuse the existing allocation if a previous call to this function has + // already acquired a large enough buffer. + if(cachedDstSize < dstSize) { + if(defined(dst)) { + crunch._free(dst); + } + dst = crunch._malloc(dstSize); + dxtData = new Uint8Array(crunch.HEAPU8.buffer, dst, dstSize); + cachedDstSize = dstSize; + } + + // Decompress the DXT data from the Crunch file into the allocated space. + crunch._crn_decompress(src, srcSize, dst, dstSize, 0, levels); + + // Release the crunch file data from the emscripten heap. + crunch._free(src); + + // Mipmaps are unsupported, so copy the level 0 texture + // When mipmaps are supported, a copy will still be necessary as dxtData is a view on the heap. + var level0DXTData = dxtData.slice(0, PixelFormat.compressedTextureSize(format, width, height)); + transferableObjects.push(level0DXTData.buffer); + return new CompressedTextureBuffer(format, width, height, level0DXTData); + } + + return createTaskProcessorWorker(transcodeCRNToDXT); +}); From 5875390afaa078c52bb59435d88e995e69806643 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 5 Jan 2017 16:10:29 -0500 Subject: [PATCH 13/26] Add support for embedded crunch textures in binary glTF. Update the doc. --- Source/Core/loadCRN.js | 31 +++++++++++++++++++++++++++++ Source/Scene/Model.js | 3 +++ Source/Workers/transcodeCRNToDXT.js | 2 +- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/Source/Core/loadCRN.js b/Source/Core/loadCRN.js index 679dfa0fa82c..f50ebefbfb38 100644 --- a/Source/Core/loadCRN.js +++ b/Source/Core/loadCRN.js @@ -17,6 +17,37 @@ define([ var transcodeTaskProcessor = new TaskProcessor('transcodeCRNToDXT', Number.POSITIVE_INFINITY); + /** + * Asynchronously loads and parses the given URL to a CRN file or parses the raw binary data of a CRN file. + * Returns a promise that will resolve to an object containing the image buffer, width, height and format once loaded, + * or reject if the URL failed to load or failed to parse the data. The data is loaded + * using XMLHttpRequest, which means that in order to make requests to another origin, + * the server must have Cross-Origin Resource Sharing (CORS) headers enabled. + * + * @exports loadCRN + * + * @param {String|Promise.|ArrayBuffer} urlOrBuffer The URL of the binary data, a promise for the URL, or an ArrayBuffer. + * @param {Object} [headers] HTTP headers to send with the requests. + * @returns {Promise.} A promise that will resolve to the requested data when loaded. + * + * @exception {RuntimeError} Unsupported compressed format. + * + * @example + * // load a single URL asynchronously + * Cesium.loadCRN('some/url').then(function(textureData) { + * var width = textureData.width; + * var height = textureData.height; + * var format = textureData.internalFormat; + * var arrayBufferView = textureData.bufferView; + * // use the data to create a texture + * }).otherwise(function(error) { + * // an error occurred + * }); + * + * @see {@link https://github.com/BinomialLLC/crunch|crunch DXTc texture compression and transcoding library} + * @see {@link http://www.w3.org/TR/cors/|Cross-Origin Resource Sharing} + * @see {@link http://wiki.commonjs.org/wiki/Promises/A|CommonJS Promises/A} + */ function loadCRN(urlOrBuffer, headers) { //>>includeStart('debug', pragmas.debug); if (!defined(urlOrBuffer)) { diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index 8ab54a42628f..791639eb9a75 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -1973,6 +1973,9 @@ define([ if (gltfTexture.mimeType === 'image/ktx') { loadKTX(loadResources.getBuffer(bufferView)).then(imageLoad(model, gltfTexture.id)).otherwise(onerror); ++model._loadResources.pendingTextureLoads; + } else if (gltfTexture.mimeType === 'image/crn') { + loadCRN(loadResources.getBuffer(bufferView)).then(imageLoad(model, gltfTexture.id)).otherwise(onerror); + ++model._loadResources.pendingTextureLoads; } else { var onload = getOnImageCreatedFromTypedArray(loadResources, gltfTexture); loadImageFromTypedArray(loadResources.getBuffer(bufferView), gltfTexture.mimeType) diff --git a/Source/Workers/transcodeCRNToDXT.js b/Source/Workers/transcodeCRNToDXT.js index 094d93f1f69d..4f6c4f1c2a8f 100644 --- a/Source/Workers/transcodeCRNToDXT.js +++ b/Source/Workers/transcodeCRNToDXT.js @@ -90,7 +90,7 @@ define([ var crnFormat = crunch._crn_get_dxt_format(src, srcSize); var format = DXT_FORMAT_MAP[crnFormat]; if (!defined(format)) { - throw new RuntimeError("Unsupported DXT format"); + throw new RuntimeError('Unsupported compressed format.'); } // Gather basic metrics about the DXT data. From ee6856c26b858e270e134640fa7a2158d1e817a8 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 5 Jan 2017 17:08:33 -0500 Subject: [PATCH 14/26] Add crunch support to imagery provider and material. Add loadCRN tests. Update CHANGES.md. --- CHANGES.md | 3 +- Source/Scene/ImageryProvider.js | 7 +- Source/Scene/Material.js | 26 +++--- Specs/Core/loadCRNSpec.js | 150 ++++++++++++++++++++++++++++++++ Specs/Data/Images/Green4x4.crn | Bin 0 -> 138 bytes Specs/Scene/MaterialSpec.js | 23 ++++- server.js | 1 + web.config | 2 + 8 files changed, 197 insertions(+), 15 deletions(-) create mode 100644 Specs/Core/loadCRNSpec.js create mode 100644 Specs/Data/Images/Green4x4.crn diff --git a/CHANGES.md b/CHANGES.md index 4f78f90c10fa..25f3aead0a3b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,8 +4,9 @@ Change Log ### TODO * Added compressed texture support. - * glTF models and imagery layers can now reference [KTX](https://www.khronos.org/opengles/sdk/tools/KTX/) textures. + * glTF models and imagery layers can now reference [KTX](https://www.khronos.org/opengles/sdk/tools/KTX/) textures and textures compressed with [crunch](https://github.com/BinomialLLC/crunch). * Added `loadKTX` to load KTX textures. + * Added `loadCRN` to load crunch compressed textures. * Added new `PixelFormat` and `WebGLConstants` enums from WebGL extensions `WEBGL_compressed_s3tc`, `WEBGL_compressed_texture_pvrtc`, and `WEBGL_compressed_texture_etc1`. [#4758](https://github.com/AnalyticalGraphicsInc/cesium/pull/4758) ### 1.30 - 2017-02-01 diff --git a/Source/Scene/ImageryProvider.js b/Source/Scene/ImageryProvider.js index 974e820a52a3..9525eebfc2d6 100644 --- a/Source/Scene/ImageryProvider.js +++ b/Source/Scene/ImageryProvider.js @@ -3,6 +3,7 @@ define([ '../Core/defined', '../Core/defineProperties', '../Core/DeveloperError', + '../Core/loadCRN', '../Core/loadImage', '../Core/loadImageViaBlob', '../Core/loadKTX', @@ -11,6 +12,7 @@ define([ defined, defineProperties, DeveloperError, + loadCRN, loadImage, loadImageViaBlob, loadKTX, @@ -296,7 +298,8 @@ define([ */ ImageryProvider.prototype.pickFeatures = DeveloperError.throwInstantiationError; - var ktxRegex = /(^data:image\/ktx)|(\.ktx$)/i; + var ktxRegex = /\.ktx$/i; + var crnRegex = /\.crn$/i; /** * Loads an image from a given URL. If the server referenced by the URL already has @@ -312,6 +315,8 @@ define([ ImageryProvider.loadImage = function(imageryProvider, url) { if (ktxRegex.test(url)) { return throttleRequestByServer(url, loadKTX); + } else if (crnRegex.test(url)) { + return throttleRequestByServer(url, loadCRN); } else if (defined(imageryProvider.tileDiscardPolicy)) { return throttleRequestByServer(url, loadImageViaBlob); } diff --git a/Source/Scene/Material.js b/Source/Scene/Material.js index 18596e6d8825..11a8bf488089 100644 --- a/Source/Scene/Material.js +++ b/Source/Scene/Material.js @@ -11,6 +11,7 @@ define([ '../Core/destroyObject', '../Core/DeveloperError', '../Core/isArray', + '../Core/loadCRN', '../Core/loadImage', '../Core/loadKTX', '../Core/Matrix2', @@ -43,6 +44,7 @@ define([ destroyObject, DeveloperError, isArray, + loadCRN, loadImage, loadKTX, Matrix2, @@ -679,6 +681,7 @@ define([ }; var ktxRegex = /\.ktx$/i; + var crnRegex = /\.crn$/i; function createTexture2DUpdateFunction(uniformId) { var oldUniformValue; @@ -758,21 +761,20 @@ define([ if (uniformValue !== material._texturePaths[uniformId]) { if (typeof uniformValue === 'string') { + var promise; if (ktxRegex.test(uniformValue)) { - when(loadKTX(uniformValue), function(image) { - material._loadedImages.push({ - id : uniformId, - image : image - }); - }); + promise = loadKTX(uniformValue); + } else if (crnRegex.test(uniformValue)) { + promise = loadCRN(uniformValue); } else { - when(loadImage(uniformValue), function(image) { - material._loadedImages.push({ - id : uniformId, - image : image - }); - }); + promise = loadImage(uniformValue); } + when(promise, function(image) { + material._loadedImages.push({ + id : uniformId, + image : image + }); + }); } else if (uniformValue instanceof HTMLCanvasElement) { material._loadedImages.push({ id : uniformId, diff --git a/Specs/Core/loadCRNSpec.js b/Specs/Core/loadCRNSpec.js new file mode 100644 index 000000000000..40164fe346aa --- /dev/null +++ b/Specs/Core/loadCRNSpec.js @@ -0,0 +1,150 @@ +/*global defineSuite*/ +defineSuite([ + 'Core/loadCRN', + 'Core/PixelFormat', + 'Core/RequestErrorEvent', + 'Core/RuntimeError' +], function( + loadCRN, + PixelFormat, + RequestErrorEvent, + RuntimeError) { + 'use strict'; + + var validCompressed = new Uint8Array([72, 120, 0, 74, 227, 123, 0, 0, 0, 138, 92, 167, 0, 4, 0, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 22, 0, 1, 0, 0, 96, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 108, 0, 0, 0, 137, 0, 10, 96, 0, 0, 0, 0, 0, 0, 16, 4, 9, 130, 0, 0, 0, 0, 0, 0, 109, 4, 0, 0, 198, 96, 128, 0, 0, 0, 0, 0, 26, 80, 0, 0, 6, 96, 0, 0, 0, 0, 0, 0, 16, 0, 51, 0, 0, 0, 0, 0, 0, 0, 128, 1, 152, 0, 0, 0, 0, 0, 0, 4, 0]); + var fakeXHR; + + beforeEach(function() { + fakeXHR = jasmine.createSpyObj('XMLHttpRequest', ['send', 'open', 'setRequestHeader', 'abort', 'getAllResponseHeaders']); + fakeXHR.simulateLoad = function(response) { + fakeXHR.status = 200; + fakeXHR.response = response; + if (typeof fakeXHR.onload === 'function') { + fakeXHR.onload(); + } + }; + fakeXHR.simulateError = function() { + fakeXHR.response = ''; + if (typeof fakeXHR.onerror === 'function') { + fakeXHR.onerror(); + } + }; + fakeXHR.simulateHttpError = function(statusCode, response) { + fakeXHR.status = statusCode; + fakeXHR.response = response; + if (typeof fakeXHR.onload === 'function') { + fakeXHR.onload(); + } + }; + + spyOn(window, 'XMLHttpRequest').and.returnValue(fakeXHR); + }); + + it('throws with no url', function() { + expect(function() { + loadCRN(); + }).toThrowDeveloperError(); + }); + + it('creates and sends request without any custom headers', function() { + var testUrl = 'http://example.invalid/testuri'; + loadCRN(testUrl); + + expect(fakeXHR.open).toHaveBeenCalledWith('GET', testUrl, true); + expect(fakeXHR.setRequestHeader).not.toHaveBeenCalled(); + expect(fakeXHR.send).toHaveBeenCalled(); + }); + + it('creates and sends request with custom headers', function() { + var testUrl = 'http://example.invalid/testuri'; + loadCRN(testUrl, { + 'Accept' : 'application/json', + 'Cache-Control' : 'no-cache' + }); + + expect(fakeXHR.open).toHaveBeenCalledWith('GET', testUrl, true); + expect(fakeXHR.setRequestHeader.calls.count()).toEqual(2); + expect(fakeXHR.setRequestHeader).toHaveBeenCalledWith('Accept', 'application/json'); + expect(fakeXHR.setRequestHeader).toHaveBeenCalledWith('Cache-Control', 'no-cache'); + expect(fakeXHR.send).toHaveBeenCalled(); + }); + + it('returns a promise that rejects when the request errors', function() { + var testUrl = 'http://example.invalid/testuri'; + var promise = loadCRN(testUrl); + + expect(promise).toBeDefined(); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError).toBeUndefined(); + + fakeXHR.simulateError(); + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RequestErrorEvent).toBe(true); + expect(rejectedError.statusCode).toBeUndefined(); + expect(rejectedError.response).toBeUndefined(); + }); + + it('returns a promise that rejects when the request results in an HTTP error code', function() { + var testUrl = 'http://example.invalid/testuri'; + var promise = loadCRN(testUrl); + + expect(promise).toBeDefined(); + + var resolvedValue; + var rejectedError; + promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError).toBeUndefined(); + + var error = 'some error'; + fakeXHR.simulateHttpError(404, error); + expect(resolvedValue).toBeUndefined(); + expect(rejectedError instanceof RequestErrorEvent).toBe(true); + expect(rejectedError.statusCode).toEqual(404); + expect(rejectedError.response).toEqual(error); + }); + + it('returns a promise that resolves to an compressed texture when the request loads', function() { + var testUrl = 'http://example.invalid/testuri'; + var promise = loadCRN(testUrl); + + expect(promise).toBeDefined(); + + var resolvedValue; + var rejectedError; + var newPromise = promise.then(function(value) { + resolvedValue = value; + }, function(error) { + rejectedError = error; + }); + + expect(resolvedValue).toBeUndefined(); + expect(rejectedError).toBeUndefined(); + + var response = validCompressed.buffer; + fakeXHR.simulateLoad(response); + + return newPromise.then(function() { + expect(resolvedValue).toBeDefined(); + expect(resolvedValue.width).toEqual(4); + expect(resolvedValue.height).toEqual(4); + expect(PixelFormat.isCompressedFormat(resolvedValue.internalFormat)).toEqual(true); + expect(resolvedValue.bufferView).toBeDefined(); + expect(rejectedError).toBeUndefined(); + }); + }); +}); diff --git a/Specs/Data/Images/Green4x4.crn b/Specs/Data/Images/Green4x4.crn new file mode 100644 index 0000000000000000000000000000000000000000..d32561e1af3095b0c99b9bfe763dd1f3cbc54e6f GIT binary patch literal 138 zcmeaMVDNfe&A`CW6| + + From 252bb8b73691a0d8e82928ba4cd7dc8aeb733cab Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 5 Jan 2017 17:43:44 -0500 Subject: [PATCH 15/26] Add model tests with crunch compressed textures. --- .../CesiumTexturedBoxTest.glb | Bin 0 -> 10465 bytes .../Models/Box-Textured-CRN-Binary/Readme.txt | 1 + .../CesiumTexturedBoxTest.gltf | 275 ++++++++++++++ .../Box-Textured-CRN-Embedded/Readme.txt | 1 + .../CesiumTexturedBoxTest.bin | Bin 0 -> 840 bytes .../CesiumTexturedBoxTest.dae | 126 +++++++ .../CesiumTexturedBoxTest.gltf | 339 ++++++++++++++++++ .../CesiumTexturedBoxTest0FS.glsl | 18 + .../CesiumTexturedBoxTest0VS.glsl | 15 + .../Box-Textured-CRN/Cesium_Logo_Flat.crn | Bin 0 -> 5101 bytes .../Box-Textured-CRN/Cesium_Logo_Flat.png | Bin 0 -> 34222 bytes Specs/Scene/ModelSpec.js | 33 ++ 12 files changed, 808 insertions(+) create mode 100644 Specs/Data/Models/Box-Textured-CRN-Binary/CesiumTexturedBoxTest.glb create mode 100644 Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt create mode 100644 Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf create mode 100644 Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt create mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.bin create mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae create mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf create mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl create mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl create mode 100644 Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.crn create mode 100644 Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.png diff --git a/Specs/Data/Models/Box-Textured-CRN-Binary/CesiumTexturedBoxTest.glb b/Specs/Data/Models/Box-Textured-CRN-Binary/CesiumTexturedBoxTest.glb new file mode 100644 index 0000000000000000000000000000000000000000..1930d0d634ecaf095c743843fb17fb1069551ebe GIT binary patch literal 10465 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 literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt b/Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt new file mode 100644 index 000000000000..b0958ffb1be8 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt @@ -0,0 +1 @@ +This is the same as Box-Textured-CRN, except it is "Binary glTF" using the KHR_binary_glTF (CesiumTexturedBoxTest.glb) extensions. diff --git a/Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf new file mode 100644 index 000000000000..2db727d6f041 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf @@ -0,0 +1,275 @@ +{ + "accessors": { + "accessor_21": { + "bufferView": "bufferView_1", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5123, + "count": 36, + "type": "SCALAR", + "min": [ + 0 + ], + "max": [ + 23 + ] + }, + "accessor_23": { + "bufferView": "bufferView_0", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + "accessor_25": { + "bufferView": "bufferView_0", + "byteOffset": 288, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + "accessor_27": { + "bufferView": "bufferView_0", + "byteOffset": 576, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6, + 1 + ], + "min": [ + 0, + 0 + ], + "type": "VEC2" + } + }, + "animations": {}, + "asset": { + "generator": "collada2gltf@", + "premultipliedAlpha": true, + "profile": { + "api": "WebGL", + "version": "1.0.2" + }, + "version": "1.0" + }, + "bufferViews": { + "bufferView_0": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 768, + "byteOffset": 0, + "target": 34962 + }, + "bufferView_1": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 72, + "byteOffset": 768, + "target": 34963 + } + }, + "buffers": { + "CesiumTexturedBoxTest": { + "type": "arraybuffer", + "byteLength": 840, + "uri": "data:application/octet-stream;base64,AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAADAQAAAAAAAAKBAAAAAAAAAwED+/38/AACgQP7/fz8AAIBAAAAAAAAAoEAAAAAAAACAQAAAgD8AAKBAAACAPwAAAEAAAAAAAACAPwAAAAAAAABAAACAPwAAgD8AAIA/AABAQAAAAAAAAIBAAAAAAAAAQEAAAIA/AACAQAAAgD8AAEBAAAAAAAAAAEAAAAAAAABAQAAAgD8AAABAAACAPwAAAAAAAAAAAAAAAP7/fz8AAIA/AAAAAAAAgD/+/38/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA" + } + }, + "images": { + "Image0001": { + "name": "Image0001", + "uri": "data:image/crn;base64,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" + } + }, + "materials": { + "Effect-Texture": { + "name": "Texture", + "technique": "technique0", + "values": { + "diffuse": "texture_Image0001", + "shininess": 256, + "specular": [ + 0.20000000298023224, + 0.20000000298023224, + 0.20000000298023224, + 1 + ] + } + } + }, + "meshes": { + "Geometry-mesh002": { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": "accessor_25", + "POSITION": "accessor_23", + "TEXCOORD_0": "accessor_27" + }, + "indices": "accessor_21", + "material": "Effect-Texture", + "mode": 4 + } + ] + } + }, + "nodes": { + "rootNode": { + "children": [], + "meshes": [ + "Geometry-mesh002" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + } + }, + "programs": { + "program_0": { + "attributes": [ + "a_normal", + "a_position", + "a_texcoord0" + ], + "fragmentShader": "CesiumTexturedBoxTest0FS", + "vertexShader": "CesiumTexturedBoxTest0VS" + } + }, + "samplers": { + "sampler_0": { + "magFilter": 9729, + "minFilter": 9729, + "wrapS": 10497, + "wrapT": 10497 + } + }, + "scene": "defaultScene", + "scenes": { + "defaultScene": { + "nodes": [ + "rootNode" + ] + } + }, + "shaders": { + "CesiumTexturedBoxTest0FS": { + "type": 35632, + "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Ow0KdmFyeWluZyB2ZWMzIHZfbm9ybWFsOw0KdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOw0KdW5pZm9ybSBzYW1wbGVyMkQgdV9kaWZmdXNlOw0KdW5pZm9ybSB2ZWM0IHVfc3BlY3VsYXI7DQp1bmlmb3JtIGZsb2F0IHVfc2hpbmluZXNzOw0Kdm9pZCBtYWluKHZvaWQpIHsNCnZlYzMgbm9ybWFsID0gbm9ybWFsaXplKHZfbm9ybWFsKTsNCnZlYzQgY29sb3IgPSB2ZWM0KDAuLCAwLiwgMC4sIDAuKTsNCnZlYzQgZGlmZnVzZSA9IHZlYzQoMC4sIDAuLCAwLiwgMS4pOw0KdmVjNCBzcGVjdWxhcjsNCmRpZmZ1c2UgPSB0ZXh0dXJlMkQodV9kaWZmdXNlLCB2X3RleGNvb3JkMCk7DQpzcGVjdWxhciA9IHVfc3BlY3VsYXI7DQpkaWZmdXNlLnh5eiAqPSBtYXgoZG90KG5vcm1hbCx2ZWMzKDAuLDAuLDEuKSksIDAuKTsNCmNvbG9yLnh5eiArPSBkaWZmdXNlLnh5ejsNCmNvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBkaWZmdXNlLmEsIGRpZmZ1c2UuYSk7DQpnbF9GcmFnQ29sb3IgPSBjb2xvcjsNCn0NCg==" + }, + "CesiumTexturedBoxTest0VS": { + "type": 35633, + "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Ow0KYXR0cmlidXRlIHZlYzMgYV9wb3NpdGlvbjsNCmF0dHJpYnV0ZSB2ZWMzIGFfbm9ybWFsOw0KdmFyeWluZyB2ZWMzIHZfbm9ybWFsOw0KdW5pZm9ybSBtYXQzIHVfbm9ybWFsTWF0cml4Ow0KdW5pZm9ybSBtYXQ0IHVfbW9kZWxWaWV3TWF0cml4Ow0KdW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsNCmF0dHJpYnV0ZSB2ZWMyIGFfdGV4Y29vcmQwOw0KdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOw0Kdm9pZCBtYWluKHZvaWQpIHsNCnZlYzQgcG9zID0gdV9tb2RlbFZpZXdNYXRyaXggKiB2ZWM0KGFfcG9zaXRpb24sMS4wKTsNCnZfbm9ybWFsID0gdV9ub3JtYWxNYXRyaXggKiBhX25vcm1hbDsNCnZfdGV4Y29vcmQwID0gYV90ZXhjb29yZDA7DQpnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlvbk1hdHJpeCAqIHBvczsNCn0NCg==" + } + }, + "skins": {}, + "techniques": { + "technique0": { + "attributes": { + "a_normal": "normal", + "a_position": "position", + "a_texcoord0": "texcoord0" + }, + "parameters": { + "diffuse": { + "type": 35678 + }, + "modelViewMatrix": { + "semantic": "MODELVIEW", + "type": 35676 + }, + "normal": { + "semantic": "NORMAL", + "type": 35665 + }, + "normalMatrix": { + "semantic": "MODELVIEWINVERSETRANSPOSE", + "type": 35675 + }, + "position": { + "semantic": "POSITION", + "type": 35665 + }, + "projectionMatrix": { + "semantic": "PROJECTION", + "type": 35676 + }, + "shininess": { + "type": 5126 + }, + "specular": { + "type": 35666 + }, + "texcoord0": { + "semantic": "TEXCOORD_0", + "type": 35664 + } + }, + "program": "program_0", + "states": { + "enable": [ + 2929, + 2884 + ] + }, + "uniforms": { + "u_diffuse": "diffuse", + "u_modelViewMatrix": "modelViewMatrix", + "u_normalMatrix": "normalMatrix", + "u_projectionMatrix": "projectionMatrix", + "u_shininess": "shininess", + "u_specular": "specular" + } + } + }, + "textures": { + "texture_Image0001": { + "format": 6408, + "internalFormat": 6408, + "sampler": "sampler_0", + "source": "Image0001", + "target": 3553, + "type": 5121 + } + }, + "extensionsUsed": [], + "cameras": {} +} diff --git a/Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt b/Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt new file mode 100644 index 000000000000..1dd27843c641 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt @@ -0,0 +1 @@ +This is the same as Box-Textured-CRN, except the crunch compressed texture is embedded in the glTF. diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.bin b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.bin new file mode 100644 index 0000000000000000000000000000000000000000..79f5db410b75a82000ca02da98dd8e7dc1900e78 GIT binary patch literal 840 zcmb7A2@Zll5GyJwDk`4OfuG4!_=&tsox+rC2!c-1blT2rb{B{+!`u*Iff!4y3^CS7 zu))@lV22cY91JOr$Z*2hkl}(WZnzt+uzEUjV}d$l`QKRc%B9JIvXGfki^E=+q-I-vu_mWrU)E^{JT%P~{ literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae new file mode 100644 index 000000000000..b07a87d4aa98 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae @@ -0,0 +1,126 @@ + + + + + modo 801 [Build 77509], Microsoft Windows 7 Service Pack 1 (6.1.7601 Service Pack 1) + Plug-in: [Build 77509]; Use Absolute Path: No; Merge Reference Items: No; Save Hidden Items: No; Save Cameras: No; Save Lights: No; Save Locators: Yes; Save Triangles as Triangles: Yes; Order Vertex Maps Alphabetically: Yes; Bake Matrices: No; Save Vertex Normals: Yes; Save UV Texture Coordinates: Yes; Save Vertex Colors: No; Save Vertex Weights: No; Save Animation: Yes; Sample Animation: No; Sample Animation Start: 0; Sample Animation End: 120; Save modo Profile: No; Save Maya Profile: No; Save 3ds Max Profile: No; Formatted Arrays: No; + file:///C:/Users/Branden/Creative%20Cloud%20Files/03-2015%20Cesium%20Test%20Models/CesiumTexturedBoxTest.lxo + + 2015-03-04T16:58:00Z + 2015-03-04T16:58:00Z + Z_UP + + + + Cesium_Logo_Flat.png + + + + + + + + + + + + + Image0001 + A8R8G8B8 + + + + + Image0001-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + + + + 0.2 0.2 0.2 1 + + + 256 + + + + + + + + + + + -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 0.5 -0.5 0.5 0.5 0.5 0.5 + + + + + + + + + + 0 0 1 1 0 0 0 1 0 0 -1 0 -1 0 0 0 0 -1 + + + + + + + + + + 6 1 5 1 6 1.09011e-007 5 1.09011e-007 4 1 5 1 4 1.02033e-008 5 1.02033e-008 2 1 1 1 2 1.02033e-008 1 1.02033e-008 3 1 3 1.02033e-008 0 1 0 1.09011e-007 1 1 1 1.09011e-007 + + + + + + + + + + + + + + +

4 0 0 6 0 1 5 0 2 7 0 3 5 0 2 6 0 1 7 1 4 6 1 5 2 1 6 3 1 7 2 1 6 6 1 5 5 2 8 7 2 9 1 2 10 2 2 11 1 2 10 7 2 9 6 3 12 4 3 4 3 3 13 0 3 6 3 3 13 4 3 4 4 4 12 5 4 8 0 4 13 1 4 10 0 4 13 5 4 8 0 5 14 1 5 15 3 5 16 2 5 17 3 5 16 1 5 15

+ + + + + + + + + + + + + + + + + + + + 0 0 0 + 0 1 0 0 + 1 0 0 0 + 0 0 1 0 + 1 1 1 + + + + + + + + diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf new file mode 100644 index 000000000000..72efec30c86e --- /dev/null +++ b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf @@ -0,0 +1,339 @@ +{ + "accessors": { + "accessor_21": { + "bufferView": "bufferView_29", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5123, + "count": 36, + "type": "SCALAR" + }, + "accessor_23": { + "bufferView": "bufferView_30", + "byteOffset": 0, + "byteStride": 12, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + "accessor_25": { + "bufferView": "bufferView_30", + "byteOffset": 288, + "byteStride": 12, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + "accessor_27": { + "bufferView": "bufferView_30", + "byteOffset": 576, + "byteStride": 8, + "componentType": 5126, + "count": 24, + "max": [ + 6, + 1 + ], + "min": [ + 0, + 0 + ], + "type": "VEC2" + } + }, + "animations": {}, + "asset": { + "generator": "collada2gltf@", + "premultipliedAlpha": true, + "profile": { + "api": "WebGL", + "version": "1.0.2" + }, + "version": "1.0" + }, + "bufferViews": { + "bufferView_29": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 72, + "byteOffset": 0, + "target": 34963 + }, + "bufferView_30": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 768, + "byteOffset": 72, + "target": 34962 + } + }, + "buffers": { + "CesiumTexturedBoxTest": { + "byteLength": 840, + "type": "arraybuffer", + "uri": "CesiumTexturedBoxTest.bin" + } + }, + "images": { + "Image0001": { + "name": "Image0001", + "uri": "Cesium_Logo_Flat.crn" + } + }, + "materials": { + "Effect-Texture": { + "name": "Texture", + "technique": "technique0", + "values": { + "diffuse": "texture_Image0001", + "shininess": 256, + "specular": [ + 0.20000000298023224, + 0.20000000298023224, + 0.20000000298023224, + 1 + ] + } + } + }, + "meshes": { + "Geometry-mesh002": { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": "accessor_25", + "POSITION": "accessor_23", + "TEXCOORD_0": "accessor_27" + }, + "indices": "accessor_21", + "material": "Effect-Texture", + "mode": 4 + } + ] + } + }, + "nodes": { + "Geometry-mesh002Node": { + "children": [], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "meshes": [ + "Geometry-mesh002" + ], + "name": "Mesh" + }, + "groupLocator030Node": { + "children": [ + "txtrLocator026Node" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Texture_Group" + }, + "node_3": { + "children": [ + "Geometry-mesh002Node", + "groupLocator030Node" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 0, + -1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Y_UP_Transform" + }, + "txtrLocator026Node": { + "children": [], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "name": "Cesium_Logo_Flat__Image___Texture_" + } + }, + "programs": { + "program_0": { + "attributes": [ + "a_normal", + "a_position", + "a_texcoord0" + ], + "fragmentShader": "CesiumTexturedBoxTest0FS", + "vertexShader": "CesiumTexturedBoxTest0VS" + } + }, + "samplers": { + "sampler_0": { + "magFilter": 9729, + "minFilter": 9729, + "wrapS": 10497, + "wrapT": 10497 + } + }, + "scene": "defaultScene", + "scenes": { + "defaultScene": { + "nodes": [ + "node_3" + ] + } + }, + "shaders": { + "CesiumTexturedBoxTest0FS": { + "type": 35632, + "uri": "CesiumTexturedBoxTest0FS.glsl" + }, + "CesiumTexturedBoxTest0VS": { + "type": 35633, + "uri": "CesiumTexturedBoxTest0VS.glsl" + } + }, + "skins": {}, + "techniques": { + "technique0": { + "attributes": { + "a_normal": "normal", + "a_position": "position", + "a_texcoord0": "texcoord0" + }, + "parameters": { + "diffuse": { + "type": 35678 + }, + "modelViewMatrix": { + "semantic": "MODELVIEW", + "type": 35676 + }, + "normal": { + "semantic": "NORMAL", + "type": 35665 + }, + "normalMatrix": { + "semantic": "MODELVIEWINVERSETRANSPOSE", + "type": 35675 + }, + "position": { + "semantic": "POSITION", + "type": 35665 + }, + "projectionMatrix": { + "semantic": "PROJECTION", + "type": 35676 + }, + "shininess": { + "type": 5126 + }, + "specular": { + "type": 35666 + }, + "texcoord0": { + "semantic": "TEXCOORD_0", + "type": 35664 + } + }, + "program": "program_0", + "states": { + "enable": [ + 2929, + 2884 + ] + }, + "uniforms": { + "u_diffuse": "diffuse", + "u_modelViewMatrix": "modelViewMatrix", + "u_normalMatrix": "normalMatrix", + "u_projectionMatrix": "projectionMatrix", + "u_shininess": "shininess", + "u_specular": "specular" + } + } + }, + "textures": { + "texture_Image0001": { + "format": 6408, + "internalFormat": 6408, + "sampler": "sampler_0", + "source": "Image0001", + "target": 3553, + "type": 5121 + } + } +} diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl new file mode 100644 index 000000000000..782e1f41628c --- /dev/null +++ b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl @@ -0,0 +1,18 @@ +precision highp float; +varying vec3 v_normal; +varying vec2 v_texcoord0; +uniform sampler2D u_diffuse; +uniform vec4 u_specular; +uniform float u_shininess; +void main(void) { +vec3 normal = normalize(v_normal); +vec4 color = vec4(0., 0., 0., 0.); +vec4 diffuse = vec4(0., 0., 0., 1.); +vec4 specular; +diffuse = texture2D(u_diffuse, v_texcoord0); +specular = u_specular; +diffuse.xyz *= max(dot(normal,vec3(0.,0.,1.)), 0.); +color.xyz += diffuse.xyz; +color = vec4(color.rgb * diffuse.a, diffuse.a); +gl_FragColor = color; +} diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl new file mode 100644 index 000000000000..cacc9ed997a3 --- /dev/null +++ b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl @@ -0,0 +1,15 @@ +precision highp float; +attribute vec3 a_position; +attribute vec3 a_normal; +varying vec3 v_normal; +uniform mat3 u_normalMatrix; +uniform mat4 u_modelViewMatrix; +uniform mat4 u_projectionMatrix; +attribute vec2 a_texcoord0; +varying vec2 v_texcoord0; +void main(void) { +vec4 pos = u_modelViewMatrix * vec4(a_position,1.0); +v_normal = u_normalMatrix * a_normal; +v_texcoord0 = a_texcoord0; +gl_Position = u_projectionMatrix * pos; +} diff --git a/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.crn b/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.crn new file mode 100644 index 0000000000000000000000000000000000000000..5a5b9111152cfb1baa77a62c14bb7f9592826f60 GIT binary patch literal 5101 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 AO8@`> literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.png b/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.png new file mode 100644 index 0000000000000000000000000000000000000000..a3a8cc9d60d0b6d48114b31057ba0ad7ec471852 GIT binary patch literal 34222 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 YAIvPT{2mlMlK=n!07*qoM6N<$g3Fl*bN~PV literal 0 HcmV?d00001 diff --git a/Specs/Scene/ModelSpec.js b/Specs/Scene/ModelSpec.js index 209ee97f8b31..864fc6acea1a 100644 --- a/Specs/Scene/ModelSpec.js +++ b/Specs/Scene/ModelSpec.js @@ -77,6 +77,9 @@ defineSuite([ var texturedBoxKTXUrl = './Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf'; var texturedBoxKTXBinaryUrl = './Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb'; var texturedBoxKTXEmbeddedUrl = './Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf'; + var texturedBoxCRNUrl = './Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf'; + var texturedBoxCRNBinaryUrl = './Data/Models/Box-Textured-CRN-Binary/CesiumTexturedBoxTest.glb'; + var texturedBoxCRNEmbeddedUrl = './Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf'; var texturedBoxCustomUrl = './Data/Models/Box-Textured-Custom/CesiumTexturedBoxTest.gltf'; var texturedBoxKhrBinaryUrl = './Data/Models/Box-Textured-Binary/CesiumTexturedBoxTest.glb'; var boxRtcUrl = './Data/Models/Box-RTC/Box.gltf'; @@ -764,6 +767,36 @@ defineSuite([ }); }); + it('renders textured box with external CRN texture', function() { + if (!(scene.context.s3tc)) { + return; + } + return loadModel(texturedBoxCRNUrl).then(function(m) { + verifyRender(m); + primitives.remove(m); + }); + }); + + it('renders textured box with embedded binary CRN texture', function() { + if (!(scene.context.s3tc)) { + return; + } + return loadModel(texturedBoxCRNBinaryUrl).then(function(m) { + verifyRender(m); + primitives.remove(m); + }); + }); + + it('renders textured box with embedded base64 encoded CRN texture', function() { + if (!(scene.context.s3tc)) { + return; + } + return loadModel(texturedBoxCRNEmbeddedUrl).then(function(m) { + verifyRender(m); + primitives.remove(m); + }); + }); + /////////////////////////////////////////////////////////////////////////// it('loads cesiumAir', function() { From f6cf9553aa335973760433a2a720791de68acfc2 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Mon, 9 Jan 2017 14:00:22 -0500 Subject: [PATCH 16/26] Updates from review. --- CHANGES.md | 1 + LICENSE.md | 53 ++++++++++++++++++++++++++ Source/Core/CompressedTextureBuffer.js | 9 +++++ Source/Workers/transcodeCRNToDXT.js | 32 ++++------------ 4 files changed, 70 insertions(+), 25 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 25f3aead0a3b..2ec80ff51a8b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,6 +8,7 @@ Change Log * Added `loadKTX` to load KTX textures. * Added `loadCRN` to load crunch compressed textures. * Added new `PixelFormat` and `WebGLConstants` enums from WebGL extensions `WEBGL_compressed_s3tc`, `WEBGL_compressed_texture_pvrtc`, and `WEBGL_compressed_texture_etc1`. [#4758](https://github.com/AnalyticalGraphicsInc/cesium/pull/4758) + * Added `CompressedTextureBuffer`. ### 1.30 - 2017-02-01 diff --git a/LICENSE.md b/LICENSE.md index 4fe332029945..8ac1d62e7e55 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -288,6 +288,59 @@ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +### crunch + +https://github.com/BinomialLLC/crunch + +>crunch/crnlib uses the ZLIB license: +>http://opensource.org/licenses/Zlib +> +>Copyright (c) 2010-2016 Richard Geldreich, Jr. and Binomial LLC +> +>This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. +> +>Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: +> +>1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software +in a product, an acknowledgment in the product documentation would be +appreciated but is not required. +> +>2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. +> +>3. This notice may not be removed or altered from any source distribution. + +### texture-tester + +https://github.com/toji/texture-tester + +>Copyright (c) 2014, Brandon Jones. All rights reserved. +> +>Redistribution and use in source and binary forms, with or without modification, +>are permitted provided that the following conditions are met: +> +>* Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +>* Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +> +>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Tests ===== diff --git a/Source/Core/CompressedTextureBuffer.js b/Source/Core/CompressedTextureBuffer.js index 7a7251dfb2ec..2bee0c470813 100644 --- a/Source/Core/CompressedTextureBuffer.js +++ b/Source/Core/CompressedTextureBuffer.js @@ -80,5 +80,14 @@ define([ return new CompressedTextureBuffer(object._format, object._width, object._height, object._buffer); }; + /** + * Creates a shallow clone of this compressed texture buffer. + * + * @return {CompressedTextureBuffer} A shallow clone of the compressed texture buffer. + */ + CompressedTextureBuffer.prototype.clone = function() { + return CompressedTextureBuffer.clone(this); + }; + return CompressedTextureBuffer; }); \ No newline at end of file diff --git a/Source/Workers/transcodeCRNToDXT.js b/Source/Workers/transcodeCRNToDXT.js index 4f6c4f1c2a8f..985e68fe9fbf 100644 --- a/Source/Workers/transcodeCRNToDXT.js +++ b/Source/Workers/transcodeCRNToDXT.js @@ -16,30 +16,10 @@ define([ ) { 'use strict'; - // Modified from: https://github.com/toji/texture-tester/blob/master/js/webgl-texture-util.js - // Also see: http://toji.github.io/texture-tester/ - - /* Copyright (c) 2014, Brandon Jones. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + // Modified from texture-tester + // See: + // https://github.com/toji/texture-tester/blob/master/js/webgl-texture-util.js + // http://toji.github.io/texture-tester/ // Taken from crnlib.h var CRN_FORMAT = { @@ -59,7 +39,6 @@ define([ DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = PixelFormat.RGBA_DXT3; DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = PixelFormat.RGBA_DXT5; - var dst; var dxtData; var cachedDstSize = 0; @@ -79,6 +58,9 @@ define([ } } + /** + * @private + */ function transcodeCRNToDXT(arrayBuffer, transferableObjects) { // Copy the contents of the arrayBuffer into emscriptens heap. var srcSize = arrayBuffer.byteLength; From 73fc5890920b8a752bda7770e0988036457e35dd Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Mon, 9 Jan 2017 14:56:21 -0500 Subject: [PATCH 17/26] Update crunch.js and update licenses. --- LICENSE.md | 26 ++++++++++++++ Source/ThirdParty/crunch.js | 55 ++++++++++++++++++++++------- Source/Workers/transcodeCRNToDXT.js | 26 ++++++++++++++ 3 files changed, 94 insertions(+), 13 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 8ac1d62e7e55..62984317a872 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -315,6 +315,32 @@ misrepresented as being the original software. > >3. This notice may not be removed or altered from any source distribution. +### crunch_lib.cpp + +https://github.com/Apress/html5-game-dev-insights/blob/master/jones_ch21/crunch_webgl/crunch_js/crunch_lib.cpp + +>Copyright (c) 2013, Evan Parker, Brandon Jones. All rights reserved. +> +>Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: +> +> * Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +> * Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +> +>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + ### texture-tester https://github.com/toji/texture-tester diff --git a/Source/ThirdParty/crunch.js b/Source/ThirdParty/crunch.js index 48b28bc45c8c..9bc5362a1ce9 100644 --- a/Source/ThirdParty/crunch.js +++ b/Source/ThirdParty/crunch.js @@ -1,28 +1,57 @@ +/** + * @licence + * + * crunch/crnlib v1.04 - Advanced DXTn texture compression library + * Copyright (C) 2010-2016 Richard Geldreich, Jr. and Binomial LLC http://binomial.info + */ + +/** + * @license + * + * crunch_lib.cpp + * + * Copyright (c) 2013, Evan Parker, Brandon Jones. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// The C++ code was compiled to Javascript with Emcripten. +// For instructions, see: +// https://github.com/AnalyticalGraphicsInc/crunch + /*global define*/ define([], function() { - // crunch/crnlib v1.04 - Advanced DXTn texture compression library - // Copyright (C) 2010-2016 Richard Geldreich, Jr. and Binomial LLC http://binomial.info - - // This software uses the ZLIB license, which is located in license.txt. - // http://opensource.org/licenses/Zlib - - // The crunch C++ code was compiled to Javascript with Emcripten: - // emcc -O3 crn.cpp -I./inc -s EXPORTED_FUNCTIONS="['_malloc', '_free', '_crn_get_width', '_crn_get_height', '_crn_get_levels', '_crn_get_dxt_format', '_crn_get_bytes_per_block', '_crn_get_uncompressed_size', '_crn_decompress']" -s NO_EXIT_RUNTIME=1 -s NO_FILESYSTEM=1 -s ELIMINATE_DUPLICATE_FUNCTIONS=1 -s ALLOW_MEMORY_GROWTH=1 --memory-init-file 0 -o crunch.js - - var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var OLD_TOTAL_MEMORY=TOTAL_MEMORY;var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY=LIMIT)return false;try{if(ArrayBuffer.transfer){buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY)}else{var oldHEAP8=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch(e){return false}var success=_emscripten_replace_memory(buffer);if(!success)return false;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer);if(!ArrayBuffer.transfer){HEAP8.set(oldHEAP8)}return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+5888;__ATINIT__.push();allocate([116,0,0,0,86,7,0,0,116,0,0,0,99,7,0,0,156,0,0,0,112,7,0,0,16,0,0,0,0,0,0,0,156,0,0,0,145,7,0,0,24,0,0,0,0,0,0,0,156,0,0,0,215,7,0,0,24,0,0,0,0,0,0,0,156,0,0,0,179,7,0,0,56,0,0,0,0,0,0,0,156,0,0,0,249,7,0,0,40,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,40,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,88,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,1,0,0,220,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,227,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,219,16,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,115,40,37,117,41,58,32,65,115,115,101,114,116,105,111,110,32,102,97,105,108,117,114,101,58,32,34,37,115,34,10,0,109,95,115,105,122,101,32,60,61,32,109,95,99,97,112,97,99,105,116,121,0,46,47,105,110,99,92,99,114,110,95,100,101,99,111,109,112,46,104,0,109,105,110,95,110,101,119,95,99,97,112,97,99,105,116,121,32,60,32,40,48,120,55,70,70,70,48,48,48,48,85,32,47,32,101,108,101,109,101,110,116,95,115,105,122,101,41,0,110,101,119,95,99,97,112,97,99,105,116,121,32,38,38,32,40,110,101,119,95,99,97,112,97,99,105,116,121,32,62,32,109,95,99,97,112,97,99,105,116,121,41,0,110,117,109,95,99,111,100,101,115,91,99,93,0,115,111,114,116,101,100,95,112,111,115,32,60,32,116,111,116,97,108,95,117,115,101,100,95,115,121,109,115,0,112,67,111,100,101,115,105,122,101,115,91,115,121,109,95,105,110,100,101,120,93,32,61,61,32,99,111,100,101,115,105,122,101,0,116,32,60,32,40,49,85,32,60,60,32,116,97,98,108,101,95,98,105,116,115,41,0,109,95,108,111,111,107,117,112,91,116,93,32,61,61,32,99,85,73,78,84,51,50,95,77,65,88,0,99,114,110,100,95,109,97,108,108,111,99,58,32,115,105,122,101,32,116,111,111,32,98,105,103,0,99,114,110,100,95,109,97,108,108,111,99,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,0,40,40,117,105,110,116,51,50,41,112,95,110,101,119,32,38,32,40,67,82,78,68,95,77,73,78,95,65,76,76,79,67,95,65,76,73,71,78,77,69,78,84,32,45,32,49,41,41,32,61,61,32,48,0,99,114,110,100,95,114,101,97,108,108,111,99,58,32,98,97,100,32,112,116,114,0,99,114,110,100,95,102,114,101,101,58,32,98,97,100,32,112,116,114,0,102,97,108,115,101,0,40,116,111,116,97,108,95,115,121,109,115,32,62,61,32,49,41,32,38,38,32,40,116,111,116,97,108,95,115,121,109,115,32,60,61,32,112,114,101,102,105,120,95,99,111,100,105,110,103,58,58,99,77,97,120,83,117,112,112,111,114,116,101,100,83,121,109,115,41,0,17,18,19,20,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,16,48,0,110,117,109,95,98,105,116,115,32,60,61,32,51,50,85,0,109,95,98,105,116,95,99,111,117,110,116,32,60,61,32,99,66,105,116,66,117,102,83,105,122,101,0,116,32,33,61,32,99,85,73,78,84,51,50,95,77,65,88,0,109,111,100,101,108,46,109,95,99,111,100,101,95,115,105,122,101,115,91,115,121,109,93,32,61,61,32,108,101,110,0,0,2,3,1,0,2,3,4,5,6,7,1,40,108,101,110,32,62,61,32,49,41,32,38,38,32,40,108,101,110,32,60,61,32,99,77,97,120,69,120,112,101,99,116,101,100,67,111,100,101,83,105,122,101,41,0,105,32,60,32,109,95,115,105,122,101,0,110,101,120,116,95,108,101,118,101,108,95,111,102,115,32,62,32,99,117,114,95,108,101,118,101,108,95,111,102,115,0,1,2,2,3,3,3,3,4,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,2,1,2,0,0,0,1,0,2,1,0,2,0,0,1,2,3,110,117,109,32,38,38,32,40,110,117,109,32,61,61,32,126,110,117,109,95,99,104,101,99,107,41,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}var _BDtoIHigh=true;Module["_i64Subtract"]=_i64Subtract;Module["_i64Add"]=_i64Add;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}Module["_memset"]=_memset;var _BDtoILow=true;Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _abort(){Module["abort"]()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var _BItoD=true;var PATH=undefined;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer)___syscall146.buffer=[];var buffer=___syscall146.buffer;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j2147483648)return false;i=new a(newBuffer);j=new b(newBuffer);k=new c(newBuffer);l=new d(newBuffer);m=new e(newBuffer);n=new f(newBuffer);o=new g(newBuffer);p=new h(newBuffer);buffer=newBuffer;return true} // EMSCRIPTEN_START_FUNCS - function Za(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function _a(){return r|0}function $a(a){a=a|0;r=a}function ab(a,b){a=a|0;b=b|0;r=a;s=b}function bb(a,b){a=a|0;b=b|0;if(!w){w=a;x=b}}function cb(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function db(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function eb(a){a=a|0;L=a}function fb(){return L|0}function gb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+576|0;l=o+48|0;h=o+32|0;g=o+16|0;f=o;j=o+64|0;m=o+60|0;i=a+4|0;n=a+8|0;if((k[i>>2]|0)>>>0>(k[n>>2]|0)>>>0){k[f>>2]=1138;k[f+4>>2]=2119;k[f+8>>2]=1117;xc(j,1084,f)|0;wc(j)|0}if((2147418112/(d>>>0)|0)>>>0<=b>>>0){k[g>>2]=1138;k[g+4>>2]=2120;k[g+8>>2]=1157;xc(j,1084,g)|0;wc(j)|0}g=k[n>>2]|0;if(g>>>0>=b>>>0){n=1;r=o;return n|0}do if(c){if(b){f=b+-1|0;if(!(f&b)){f=11;break}else b=f}else b=-1;b=b>>>16|b;b=b>>>8|b;b=b>>>4|b;b=b>>>2|b;b=(b>>>1|b)+1|0;f=10}else f=10;while(0);if((f|0)==10)if(!b){b=0;f=12}else f=11;if((f|0)==11)if(b>>>0<=g>>>0)f=12;if((f|0)==12){k[h>>2]=1138;k[h+4>>2]=2129;k[h+8>>2]=1205;xc(j,1084,h)|0;wc(j)|0}c=ha(b,d)|0;do if(!e){f=hb(k[a>>2]|0,c,m,1)|0;if(!f){n=0;r=o;return n|0}else{k[a>>2]=f;break}}else{g=ib(c,m)|0;if(!g){n=0;r=o;return n|0}Va[e&0](g,k[a>>2]|0,k[i>>2]|0);f=k[a>>2]|0;do if(f)if(!(f&7)){kb(f,0,0,1,0)|0;break}else{k[l>>2]=1138;k[l+4>>2]=2502;k[l+8>>2]=1504;xc(j,1084,l)|0;wc(j)|0;break}while(0);k[a>>2]=g}while(0);f=k[m>>2]|0;if(f>>>0>c>>>0)b=(f>>>0)/(d>>>0)|0;k[n>>2]=b;n=1;r=o;return n|0}function hb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+560|0;i=j+32|0;f=j+16|0;e=j;h=j+48|0;g=j+44|0;if(a&7){k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1482;xc(h,1084,e)|0;wc(h)|0;i=0;r=j;return i|0}if(b>>>0>2147418112){k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1375;xc(h,1084,f)|0;wc(h)|0;i=0;r=j;return i|0}k[g>>2]=b;d=kb(a,b,g,d,0)|0;if(c)k[c>>2]=k[g>>2];if(!(d&7)){i=d;r=j;return i|0}k[i>>2]=1138;k[i+4>>2]=2554;k[i+8>>2]=1428;xc(h,1084,i)|0;wc(h)|0;i=d;r=j;return i|0}function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+560|0;h=i+32|0;g=i+16|0;c=i;f=i+48|0;e=i+44|0;d=a+3&-4;d=(d|0)!=0?d:4;if(d>>>0>2147418112){k[c>>2]=1138;k[c+4>>2]=2502;k[c+8>>2]=1375;xc(f,1084,c)|0;wc(f)|0;h=0;r=i;return h|0}k[e>>2]=d;c=kb(0,d,e,1,0)|0;a=k[e>>2]|0;if(b)k[b>>2]=a;if((c|0)==0|a>>>0>>0){k[g>>2]=1138;k[g+4>>2]=2502;k[g+8>>2]=1401;xc(f,1084,g)|0;wc(f)|0;h=0;r=i;return h|0}if(!(c&7)){h=c;r=i;return h|0}k[h>>2]=1138;k[h+4>>2]=2529;k[h+8>>2]=1428;xc(f,1084,h)|0;wc(f)|0;h=c;r=i;return h|0}function jb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=r;r=r+880|0;I=L+144|0;H=L+128|0;G=L+112|0;F=L+96|0;C=L+80|0;w=L+64|0;u=L+48|0;v=L+32|0;q=L+16|0;p=L;E=L+360|0;J=L+296|0;K=L+224|0;t=L+156|0;if((b|0)==0|d>>>0>11){a=0;r=L;return a|0}k[a>>2]=b;e=K;f=e+68|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(f|0));f=0;do{e=i[c+f>>0]|0;if(e<<24>>24){D=K+((e&255)<<2)|0;k[D>>2]=(k[D>>2]|0)+1}f=f+1|0}while((f|0)!=(b|0));f=0;o=1;g=0;h=-1;n=0;while(1){e=k[K+(o<<2)>>2]|0;if(!e)k[a+28+(o+-1<<2)>>2]=0;else{D=o+-1|0;k[J+(D<<2)>>2]=f;f=e+f|0;B=16-o|0;k[a+28+(D<<2)>>2]=(f+-1<>2]=n;k[t+(o<<2)>>2]=n;g=g>>>0>o>>>0?g:o;h=h>>>0>>0?h:o;n=e+n|0}o=o+1|0;if((o|0)==17){D=g;break}else f=f<<1}k[a+4>>2]=n;f=a+172|0;do if(n>>>0>(k[f>>2]|0)>>>0){k[f>>2]=n;if(n){e=n+-1|0;if(e&n)s=14}else{e=-1;s=14}if((s|0)==14){B=e>>>16|e;B=B>>>8|B;B=B>>>4|B;B=B>>>2|B;B=(B>>>1|B)+1|0;k[f>>2]=B>>>0>b>>>0?b:B}g=a+176|0;e=k[g>>2]|0;do if(e){B=k[e+-4>>2]|0;e=e+-8|0;if(!((B|0)!=0?(B|0)==(~k[e>>2]|0):0)){k[p>>2]=1138;k[p+4>>2]=647;k[p+8>>2]=1851;xc(E,1084,p)|0;wc(E)|0}if(!(e&7)){kb(e,0,0,1,0)|0;break}else{k[q>>2]=1138;k[q+4>>2]=2502;k[q+8>>2]=1504;xc(E,1084,q)|0;wc(E)|0;break}}while(0);f=k[f>>2]|0;f=(f|0)!=0?f:1;e=ib((f<<1)+8|0,0)|0;if(!e){k[g>>2]=0;e=0;break}else{k[e+4>>2]=f;k[e>>2]=~f;k[g>>2]=e+8;s=25;break}}else s=25;while(0);a:do if((s|0)==25){B=a+24|0;i[B>>0]=h;i[a+25>>0]=D;f=a+176|0;g=0;do{A=i[c+g>>0]|0;e=A&255;if(A<<24>>24){if(!(k[K+(e<<2)>>2]|0)){k[v>>2]=1138;k[v+4>>2]=2272;k[v+8>>2]=1249;xc(E,1084,v)|0;wc(E)|0}A=t+(e<<2)|0;e=k[A>>2]|0;k[A>>2]=e+1;if(e>>>0>=n>>>0){k[u>>2]=1138;k[u+4>>2]=2276;k[u+8>>2]=1262;xc(E,1084,u)|0;wc(E)|0}j[(k[f>>2]|0)+(e<<1)>>1]=g}g=g+1|0}while((g|0)!=(b|0));e=i[B>>0]|0;z=(e&255)>>>0>>0?d:0;A=a+8|0;k[A>>2]=z;y=(z|0)!=0;if(y){x=1<>>0>(k[e>>2]|0)>>>0){k[e>>2]=x;g=a+168|0;e=k[g>>2]|0;do if(e){v=k[e+-4>>2]|0;e=e+-8|0;if(!((v|0)!=0?(v|0)==(~k[e>>2]|0):0)){k[w>>2]=1138;k[w+4>>2]=647;k[w+8>>2]=1851;xc(E,1084,w)|0;wc(E)|0}if(!(e&7)){kb(e,0,0,1,0)|0;break}else{k[C>>2]=1138;k[C+4>>2]=2502;k[C+8>>2]=1504;xc(E,1084,C)|0;wc(E)|0;break}}while(0);e=x<<2;f=ib(e+8|0,0)|0;if(!f){k[g>>2]=0;e=0;break a}else{C=f+8|0;k[f+4>>2]=x;k[f>>2]=~x;k[g>>2]=C;f=C;break}}else{f=a+168|0;e=x<<2;g=f;f=k[f>>2]|0}while(0);_c(f|0,-1,e|0)|0;t=a+176|0;w=1;do{if(k[K+(w<<2)>>2]|0){u=z-w|0;v=1<>2]|0;if(f>>>0>=16){k[F>>2]=1138;k[F+4>>2]=1956;k[F+8>>2]=1725;xc(E,1084,F)|0;wc(E)|0}e=k[a+28+(f<<2)>>2]|0;if(!e)b=-1;else b=(e+-1|0)>>>(16-w|0);if(h>>>0<=b>>>0){q=(k[a+96+(f<<2)>>2]|0)-h|0;s=w<<16;do{e=m[(k[t>>2]|0)+(q+h<<1)>>1]|0;if((l[c+e>>0]|0|0)!=(w|0)){k[G>>2]=1138;k[G+4>>2]=2318;k[G+8>>2]=1291;xc(E,1084,G)|0;wc(E)|0}p=h<>>0>=x>>>0){k[H>>2]=1138;k[H+4>>2]=2324;k[H+8>>2]=1325;xc(E,1084,H)|0;wc(E)|0}e=k[g>>2]|0;if((k[e+(n<<2)>>2]|0)!=-1){k[I>>2]=1138;k[I+4>>2]=2326;k[I+8>>2]=1348;xc(E,1084,I)|0;wc(E)|0;e=k[g>>2]|0}k[e+(n<<2)>>2]=f;o=o+1|0}while(o>>>0>>0);h=h+1|0}while(h>>>0<=b>>>0)}}w=w+1|0}while(z>>>0>=w>>>0);e=i[B>>0]|0}f=a+96|0;k[f>>2]=(k[f>>2]|0)-(k[J>>2]|0);f=a+100|0;k[f>>2]=(k[f>>2]|0)-(k[J+4>>2]|0);f=a+104|0;k[f>>2]=(k[f>>2]|0)-(k[J+8>>2]|0);f=a+108|0;k[f>>2]=(k[f>>2]|0)-(k[J+12>>2]|0);f=a+112|0;k[f>>2]=(k[f>>2]|0)-(k[J+16>>2]|0);f=a+116|0;k[f>>2]=(k[f>>2]|0)-(k[J+20>>2]|0);f=a+120|0;k[f>>2]=(k[f>>2]|0)-(k[J+24>>2]|0);f=a+124|0;k[f>>2]=(k[f>>2]|0)-(k[J+28>>2]|0);f=a+128|0;k[f>>2]=(k[f>>2]|0)-(k[J+32>>2]|0);f=a+132|0;k[f>>2]=(k[f>>2]|0)-(k[J+36>>2]|0);f=a+136|0;k[f>>2]=(k[f>>2]|0)-(k[J+40>>2]|0);f=a+140|0;k[f>>2]=(k[f>>2]|0)-(k[J+44>>2]|0);f=a+144|0;k[f>>2]=(k[f>>2]|0)-(k[J+48>>2]|0);f=a+148|0;k[f>>2]=(k[f>>2]|0)-(k[J+52>>2]|0);f=a+152|0;k[f>>2]=(k[f>>2]|0)-(k[J+56>>2]|0);f=a+156|0;k[f>>2]=(k[f>>2]|0)-(k[J+60>>2]|0);f=a+16|0;k[f>>2]=0;g=a+20|0;k[g>>2]=e&255;b:do if(y){while(1){if(!d)break b;e=d+-1|0;if(!(k[K+(d<<2)>>2]|0))d=e;else break}k[f>>2]=k[a+28+(e<<2)>>2];e=z+1|0;k[g>>2]=e;if(e>>>0<=D>>>0){while(1){if(k[K+(e<<2)>>2]|0)break;e=e+1|0;if(e>>>0>D>>>0)break b}k[g>>2]=e}}while(0);k[a+92>>2]=-1;k[a+160>>2]=1048575;k[a+12>>2]=32-(k[A>>2]|0);e=1}while(0);a=e;r=L;return a|0}function kb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;do if(!a){d=Rc(b)|0;if(c){if(!d)a=0;else a=Uc(d)|0;k[c>>2]=a}}else{if(!b){Sc(a);if(!c){d=0;break}k[c>>2]=0;d=0;break}if(d){d=Tc(a,b)|0;a=(d|0)==0?a:d}else d=0;if(c){b=Uc(a)|0;k[c>>2]=b}}while(0);return d|0}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!((a|0)!=0&b>>>0>73&(c|0)!=0)){c=0;return c|0}if((k[c>>2]|0)!=40|b>>>0<74){c=0;return c|0}if(((l[a>>0]|0)<<8|(l[a+1>>0]|0)|0)!=18552){c=0;return c|0}if(((l[a+2>>0]|0)<<8|(l[a+3>>0]|0))>>>0<74){c=0;return c|0}if(((l[a+7>>0]|0)<<16|(l[a+6>>0]|0)<<24|(l[a+8>>0]|0)<<8|(l[a+9>>0]|0))>>>0>b>>>0){c=0;return c|0}k[c+4>>2]=(l[a+12>>0]|0)<<8|(l[a+13>>0]|0);k[c+8>>2]=(l[a+14>>0]|0)<<8|(l[a+15>>0]|0);k[c+12>>2]=l[a+16>>0];k[c+16>>2]=l[a+17>>0];b=a+18|0;d=c+32|0;k[d>>2]=l[b>>0];k[d+4>>2]=0;b=i[b>>0]|0;k[c+20>>2]=b<<24>>24==0|b<<24>>24==9?8:16;k[c+24>>2]=(l[a+26>>0]|0)<<16|(l[a+25>>0]|0)<<24|(l[a+27>>0]|0)<<8|(l[a+28>>0]|0);k[c+28>>2]=(l[a+30>>0]|0)<<16|(l[a+29>>0]|0)<<24|(l[a+31>>0]|0)<<8|(l[a+32>>0]|0);c=1;return c|0}function mb(a){a=a|0;Oa(a|0)|0;Rb()}function nb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;f=r;r=r+528|0;e=f;d=f+16|0;b=k[a+20>>2]|0;if(b)ob(b);b=a+4|0;c=k[b>>2]|0;if(!c){e=a+16|0;i[e>>0]=0;r=f;return}if(!(c&7))kb(c,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;xc(d,1084,e)|0;wc(d)|0}k[b>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;e=a+16|0;i[e>>0]=0;r=f;return}function ob(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=r;r=r+592|0;g=i+64|0;f=i+48|0;h=i+32|0;d=i+16|0;c=i;e=i+80|0;if(!a){r=i;return}b=k[a+168>>2]|0;do if(b){j=k[b+-4>>2]|0;b=b+-8|0;if(!((j|0)!=0?(j|0)==(~k[b>>2]|0):0)){k[c>>2]=1138;k[c+4>>2]=647;k[c+8>>2]=1851;xc(e,1084,c)|0;wc(e)|0}if(!(b&7)){kb(b,0,0,1,0)|0;break}else{k[d>>2]=1138;k[d+4>>2]=2502;k[d+8>>2]=1504;xc(e,1084,d)|0;wc(e)|0;break}}while(0);b=k[a+176>>2]|0;do if(b){j=k[b+-4>>2]|0;b=b+-8|0;if(!((j|0)!=0?(j|0)==(~k[b>>2]|0):0)){k[h>>2]=1138;k[h+4>>2]=647;k[h+8>>2]=1851;xc(e,1084,h)|0;wc(e)|0}if(!(b&7)){kb(b,0,0,1,0)|0;break}else{k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1504;xc(e,1084,f)|0;wc(e)|0;break}}while(0);if(!(a&7)){kb(a,0,0,1,0)|0;r=i;return}else{k[g>>2]=1138;k[g+4>>2]=2502;k[g+8>>2]=1504;xc(e,1084,g)|0;wc(e)|0;r=i;return}}function pb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+544|0;g=i+16|0;b=i;f=i+32|0;e=a+8|0;c=k[e>>2]|0;if((c+-1|0)>>>0>=8192){k[b>>2]=1138;k[b+4>>2]=3002;k[b+8>>2]=1529;xc(f,1084,b)|0;wc(f)|0}k[a>>2]=c;d=a+20|0;b=k[d>>2]|0;if(!b){b=ib(180,0)|0;if(!b)b=0;else{h=b+164|0;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;k[h+12>>2]=0}k[d>>2]=b;h=k[a>>2]|0}else h=c;if(!(k[e>>2]|0)){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;xc(f,1084,g)|0;wc(f)|0;g=k[a>>2]|0}else g=h;f=k[a+4>>2]|0;if(g>>>0>16){d=g;c=0}else{a=0;a=jb(b,h,f,a)|0;r=i;return a|0}while(1){e=c+1|0;if(d>>>0>3){d=d>>>1;c=e}else{d=e;break}}a=c+2+((d|0)!=32&1<>>0>>0&1)|0;a=a>>>0<11?a&255:11;a=jb(b,h,f,a)|0;r=i;return a|0}function qb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=r;r=r+720|0;z=E+160|0;y=E+144|0;x=E+128|0;w=E+112|0;v=E+96|0;u=E+80|0;t=E+64|0;s=E+48|0;n=E+32|0;h=E+16|0;e=E;C=E+200|0;D=E+176|0;A=rb(a,14)|0;if(!A){k[b>>2]=0;c=b+4|0;d=k[c>>2]|0;if(d){if(!(d&7))kb(d,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;xc(C,1084,e)|0;wc(C)|0}k[c>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0}i[b+16>>0]=0;c=b+20|0;d=k[c>>2]|0;if(!d){b=1;r=E;return b|0}ob(d);k[c>>2]=0;b=1;r=E;return b|0}p=b+4|0;q=b+8|0;c=k[q>>2]|0;if((c|0)!=(A|0)){if(c>>>0<=A>>>0){do if((k[b+12>>2]|0)>>>0>>0){if(gb(p,A,(c+1|0)==(A|0),1,0)|0){c=k[q>>2]|0;break}i[b+16>>0]=1;b=0;r=E;return b|0}while(0);_c((k[p>>2]|0)+c|0,0,A-c|0)|0}k[q>>2]=A}_c(k[p>>2]|0,0,A|0)|0;o=a+20|0;c=k[o>>2]|0;if((c|0)<5){f=a+4|0;g=a+8|0;e=a+16|0;do{d=k[f>>2]|0;if((d|0)==(k[g>>2]|0))d=0;else{k[f>>2]=d+1;d=l[d>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[h>>2]=1138;k[h+4>>2]=3204;k[h+8>>2]=1638;xc(C,1084,h)|0;wc(C)|0;c=k[o>>2]|0}d=d<<32-c|k[e>>2];k[e>>2]=d}while((c|0)<5)}else{d=a+16|0;e=d;d=k[d>>2]|0}m=d>>>27;k[e>>2]=d<<5;k[o>>2]=c+-5;if((m+-1|0)>>>0>20){b=0;r=E;return b|0}k[D+20>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;k[D+12>>2]=0;i[D+16>>0]=0;c=D+4|0;d=D+8|0;a:do if(gb(c,21,0,1,0)|0){h=k[d>>2]|0;j=k[c>>2]|0;_c(j+h|0,0,21-h|0)|0;k[d>>2]=21;if(m){e=a+4|0;f=a+8|0;g=a+16|0;h=0;do{c=k[o>>2]|0;if((c|0)<3)do{d=k[e>>2]|0;if((d|0)==(k[f>>2]|0))d=0;else{k[e>>2]=d+1;d=l[d>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[n>>2]=1138;k[n+4>>2]=3204;k[n+8>>2]=1638;xc(C,1084,n)|0;wc(C)|0;c=k[o>>2]|0}d=d<<32-c|k[g>>2];k[g>>2]=d}while((c|0)<3);else d=k[g>>2]|0;k[g>>2]=d<<3;k[o>>2]=c+-3;i[j+(l[1599+h>>0]|0)>>0]=d>>>29;h=h+1|0}while((h|0)!=(m|0))}if(pb(D)|0){m=a+4|0;h=a+8|0;j=a+16|0;d=0;b:while(1){g=A-d|0;c=sb(a,D)|0;c:do if(c>>>0<17){if((k[q>>2]|0)>>>0<=d>>>0){k[s>>2]=1138;k[s+4>>2]=906;k[s+8>>2]=1769;xc(C,1084,s)|0;wc(C)|0}i[(k[p>>2]|0)+d>>0]=c;c=d+1|0}else switch(c|0){case 17:{c=k[o>>2]|0;if((c|0)<3)do{e=k[m>>2]|0;if((e|0)==(k[h>>2]|0))e=0;else{k[m>>2]=e+1;e=l[e>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[t>>2]=1138;k[t+4>>2]=3204;k[t+8>>2]=1638;xc(C,1084,t)|0;wc(C)|0;c=k[o>>2]|0}e=e<<32-c|k[j>>2];k[j>>2]=e}while((c|0)<3);else e=k[j>>2]|0;k[j>>2]=e<<3;k[o>>2]=c+-3;c=(e>>>29)+3|0;if(c>>>0>g>>>0){c=0;break a}c=c+d|0;break c}case 18:{c=k[o>>2]|0;if((c|0)<7)do{e=k[m>>2]|0;if((e|0)==(k[h>>2]|0))e=0;else{k[m>>2]=e+1;e=l[e>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[u>>2]=1138;k[u+4>>2]=3204;k[u+8>>2]=1638;xc(C,1084,u)|0;wc(C)|0;c=k[o>>2]|0}e=e<<32-c|k[j>>2];k[j>>2]=e}while((c|0)<7);else e=k[j>>2]|0;k[j>>2]=e<<7;k[o>>2]=c+-7;c=(e>>>25)+11|0;if(c>>>0>g>>>0){c=0;break a}c=c+d|0;break c}default:{if((c+-19|0)>>>0>=2){B=90;break b}f=k[o>>2]|0;if((c|0)==19){if((f|0)<2){e=f;while(1){c=k[m>>2]|0;if((c|0)==(k[h>>2]|0))f=0;else{k[m>>2]=c+1;f=l[c>>0]|0}c=e+8|0;k[o>>2]=c;if((c|0)>=33){k[v>>2]=1138;k[v+4>>2]=3204;k[v+8>>2]=1638;xc(C,1084,v)|0;wc(C)|0;c=k[o>>2]|0}e=f<<32-c|k[j>>2];k[j>>2]=e;if((c|0)<2)e=c;else break}}else{e=k[j>>2]|0;c=f}k[j>>2]=e<<2;k[o>>2]=c+-2;f=(e>>>30)+3|0}else{if((f|0)<6){e=f;while(1){c=k[m>>2]|0;if((c|0)==(k[h>>2]|0))f=0;else{k[m>>2]=c+1;f=l[c>>0]|0}c=e+8|0;k[o>>2]=c;if((c|0)>=33){k[w>>2]=1138;k[w+4>>2]=3204;k[w+8>>2]=1638;xc(C,1084,w)|0;wc(C)|0;c=k[o>>2]|0}e=f<<32-c|k[j>>2];k[j>>2]=e;if((c|0)<6)e=c;else break}}else{e=k[j>>2]|0;c=f}k[j>>2]=e<<6;k[o>>2]=c+-6;f=(e>>>26)+7|0}if((d|0)==0|f>>>0>g>>>0){c=0;break a}c=d+-1|0;if((k[q>>2]|0)>>>0<=c>>>0){k[x>>2]=1138;k[x+4>>2]=906;k[x+8>>2]=1769;xc(C,1084,x)|0;wc(C)|0}e=i[(k[p>>2]|0)+c>>0]|0;if(!(e<<24>>24)){c=0;break a}c=f+d|0;if(d>>>0>=c>>>0){c=d;break c}do{if((k[q>>2]|0)>>>0<=d>>>0){k[y>>2]=1138;k[y+4>>2]=906;k[y+8>>2]=1769;xc(C,1084,y)|0;wc(C)|0}i[(k[p>>2]|0)+d>>0]=e;d=d+1|0}while((d|0)!=(c|0))}}while(0);if(A>>>0>c>>>0)d=c;else break}if((B|0)==90){k[z>>2]=1138;k[z+4>>2]=3145;k[z+8>>2]=1620;xc(C,1084,z)|0;wc(C)|0;c=0;break}if((A|0)==(c|0))c=pb(b)|0;else c=0}else c=0}else{i[D+16>>0]=1;c=0}while(0);nb(D);b=c;r=E;return b|0}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+528|0;g=j;f=j+16|0;if(!b){i=0;r=j;return i|0}if(b>>>0<=16){i=tb(a,b)|0;r=j;return i|0}h=tb(a,b+-16|0)|0;i=a+20|0;b=k[i>>2]|0;if((b|0)<16){d=a+4|0;e=a+8|0;c=a+16|0;do{a=k[d>>2]|0;if((a|0)==(k[e>>2]|0))a=0;else{k[d>>2]=a+1;a=l[a>>0]|0}b=b+8|0;k[i>>2]=b;if((b|0)>=33){k[g>>2]=1138;k[g+4>>2]=3204;k[g+8>>2]=1638;xc(f,1084,g)|0;wc(f)|0;b=k[i>>2]|0}a=a<<32-b|k[c>>2];k[c>>2]=a}while((b|0)<16)}else{a=a+16|0;c=a;a=k[a>>2]|0}k[c>>2]=a<<16;k[i>>2]=b+-16;i=a>>>16|h<<16;r=j;return i|0}function sb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,n=0,o=0,p=0,q=0,s=0,t=0;t=r;r=r+576|0;o=t+48|0;n=t+32|0;j=t+16|0;i=t;q=t+64|0;p=k[b+20>>2]|0;s=a+20|0;h=k[s>>2]|0;do if((h|0)<24){g=a+4|0;d=k[g>>2]|0;e=k[a+8>>2]|0;c=d>>>0>>0;if((h|0)>=16){if(c){k[g>>2]=d+1;c=l[d>>0]|0}else c=0;k[s>>2]=h+8;g=a+16|0;f=c<<24-h|k[g>>2];k[g>>2]=f;break}if(c){f=(l[d>>0]|0)<<8;c=d+1|0}else{f=0;c=d}if(c>>>0>>0){d=l[c>>0]|0;c=c+1|0}else d=0;k[g>>2]=c;k[s>>2]=h+16;g=a+16|0;f=(d|f)<<16-h|k[g>>2];k[g>>2]=f}else{f=a+16|0;g=f;f=k[f>>2]|0}while(0);e=(f>>>16)+1|0;do if(e>>>0<=(k[p+16>>2]|0)>>>0){d=k[(k[p+168>>2]|0)+(f>>>(32-(k[p+8>>2]|0)|0)<<2)>>2]|0;if((d|0)==-1){k[i>>2]=1138;k[i+4>>2]=3249;k[i+8>>2]=1665;xc(q,1084,i)|0;wc(q)|0}c=d&65535;d=d>>>16;if((k[b+8>>2]|0)>>>0<=c>>>0){k[j>>2]=1138;k[j+4>>2]=905;k[j+8>>2]=1769;xc(q,1084,j)|0;wc(q)|0}if((l[(k[b+4>>2]|0)+c>>0]|0|0)!=(d|0)){k[n>>2]=1138;k[n+4>>2]=3253;k[n+8>>2]=1682;xc(q,1084,n)|0;wc(q)|0}}else{d=k[p+20>>2]|0;while(1){c=d+-1|0;if(e>>>0>(k[p+28+(c<<2)>>2]|0)>>>0)d=d+1|0;else break}c=(f>>>(32-d|0))+(k[p+96+(c<<2)>>2]|0)|0;if(c>>>0<(k[b>>2]|0)>>>0){c=m[(k[p+176>>2]|0)+(c<<1)>>1]|0;break}k[o>>2]=1138;k[o+4>>2]=3271;k[o+8>>2]=1620;xc(q,1084,o)|0;wc(q)|0;s=0;r=t;return s|0}while(0);k[g>>2]=k[g>>2]<>2]=(k[s>>2]|0)-d;s=c;r=t;return s|0}function tb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+544|0;h=j+16|0;c=j;g=j+32|0;if(b>>>0>=33){k[c>>2]=1138;k[c+4>>2]=3195;k[c+8>>2]=1622;xc(g,1084,c)|0;wc(g)|0}i=a+20|0;c=k[i>>2]|0;if((c|0)>=(b|0)){e=a+16|0;f=e;e=k[e>>2]|0;g=c;h=32-b|0;h=e>>>h;e=e<>2]=e;b=g-b|0;k[i>>2]=b;r=j;return h|0}e=a+4|0;f=a+8|0;d=a+16|0;do{a=k[e>>2]|0;if((a|0)==(k[f>>2]|0))a=0;else{k[e>>2]=a+1;a=l[a>>0]|0}c=c+8|0;k[i>>2]=c;if((c|0)>=33){k[h>>2]=1138;k[h+4>>2]=3204;k[h+8>>2]=1638;xc(g,1084,h)|0;wc(g)|0;c=k[i>>2]|0}a=a<<32-c|k[d>>2];k[d>>2]=a}while((c|0)<(b|0));h=32-b|0;h=a>>>h;g=a<>2]=g;b=c-b|0;k[i>>2]=b;r=j;return h|0}function ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+528|0;o=q;n=q+16|0;if((a|0)==0|b>>>0<62){p=0;r=q;return p|0}m=ib(300,0)|0;if(!m){p=0;r=q;return p|0}k[m>>2]=519686845;c=m+4|0;k[c>>2]=0;d=m+8|0;k[d>>2]=0;j=m+88|0;e=m+136|0;f=m+160|0;g=j;h=g+44|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(h|0));i[j+44>>0]=0;s=m+184|0;g=m+208|0;h=m+232|0;t=m+252|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;t=m+268|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;t=m+284|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[e+16>>2]=0;i[e+20>>0]=0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[f+16>>2]=0;i[f+20>>0]=0;k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;k[s+12>>2]=0;k[s+16>>2]=0;i[s+20>>0]=0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;i[g+20>>0]=0;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;k[h+12>>2]=0;i[h+16>>0]=0;do if(((b>>>0>=74?((l[a>>0]|0)<<8|(l[a+1>>0]|0)|0)==18552:0)?((l[a+2>>0]|0)<<8|(l[a+3>>0]|0))>>>0>=74:0)?((l[a+7>>0]|0)<<16|(l[a+6>>0]|0)<<24|(l[a+8>>0]|0)<<8|(l[a+9>>0]|0))>>>0<=b>>>0:0){k[j>>2]=a;k[c>>2]=a;k[d>>2]=b;if(Db(m)|0){c=k[j>>2]|0;if((l[c+39>>0]|0)<<8|(l[c+40>>0]|0)){if(!(Eb(m)|0))break;if(!(Fb(m)|0))break;c=k[j>>2]|0}if(!((l[c+55>>0]|0)<<8|(l[c+56>>0]|0))){t=m;r=q;return t|0}if(Gb(m)|0?Hb(m)|0:0){t=m;r=q;return t|0}}}else p=7;while(0);if((p|0)==7)k[j>>2]=0;Mb(m);if(!(m&7)){kb(m,0,0,1,0)|0;t=0;r=q;return t|0}else{k[o>>2]=1138;k[o+4>>2]=2502;k[o+8>>2]=1504;xc(n,1084,o)|0;wc(n)|0;t=0;r=q;return t|0}return 0}function vb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,m=0;m=r;r=r+528|0;j=m;i=m+16|0;f=k[a+88>>2]|0;h=(l[f+70+(e<<2)+1>>0]|0)<<16|(l[f+70+(e<<2)>>0]|0)<<24|(l[f+70+(e<<2)+2>>0]|0)<<8|(l[f+70+(e<<2)+3>>0]|0);g=e+1|0;if(g>>>0<(l[f+16>>0]|0)>>>0)f=(l[f+70+(g<<2)+1>>0]|0)<<16|(l[f+70+(g<<2)>>0]|0)<<24|(l[f+70+(g<<2)+2>>0]|0)<<8|(l[f+70+(g<<2)+3>>0]|0);else f=k[a+8>>2]|0;if(f>>>0>h>>>0){i=a+4|0;i=k[i>>2]|0;i=i+h|0;j=f-h|0;j=wb(a,i,j,b,c,d,e)|0;r=m;return j|0}k[j>>2]=1138;k[j+4>>2]=3690;k[j+8>>2]=1780;xc(i,1084,j)|0;wc(i)|0;i=a+4|0;i=k[i>>2]|0;i=i+h|0;j=f-h|0;j=wb(a,i,j,b,c,d,e)|0;r=m;return j|0}function wb(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,m=0,n=0;n=k[a+88>>2]|0;j=((l[n+12>>0]|0)<<8|(l[n+13>>0]|0))>>>g;m=((l[n+14>>0]|0)<<8|(l[n+15>>0]|0))>>>g;j=j>>>0>1?(j+3|0)>>>2:1;m=m>>>0>1?(m+3|0)>>>2:1;n=n+18|0;g=i[n>>0]|0;g=ha(g<<24>>24==0|g<<24>>24==9?8:16,j)|0;if(f)if((f&3|0)==0&g>>>0<=f>>>0)g=f;else{a=0;return a|0}if((ha(g,m)|0)>>>0>e>>>0){a=0;return a|0}f=(j+1|0)>>>1;h=(m+1|0)>>>1;if(!c){a=0;return a|0}k[a+92>>2]=b;k[a+96>>2]=b;k[a+104>>2]=c;k[a+100>>2]=b+c;k[a+108>>2]=0;k[a+112>>2]=0;switch(l[n>>0]|0|0){case 0:{Ib(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 4:case 6:case 5:case 3:case 2:{Jb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 9:{Kb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 8:case 7:{Lb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}default:{a=0;return a|0}}return 0}function xb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+4>>2]|0}function yb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+8>>2]|0}function zb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+12>>2]|0}function Ab(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+32>>2]|0}function Bb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=r;r=r+576|0;e=g+40|0;d=g+56|0;h=g;k[h>>2]=40;lb(a,b,h)|0;b=((k[h+4>>2]|0)+3|0)>>>2;c=((k[h+8>>2]|0)+3|0)>>>2;h=h+32|0;a=k[h+4>>2]|0;do switch(k[h>>2]|0){case 0:{if(!a)a=8;else f=14;break}case 1:{if(!a)f=13;else f=14;break}case 2:{if(!a)f=13;else f=14;break}case 3:{if(!a)f=13;else f=14;break}case 4:{if(!a)f=13;else f=14;break}case 5:{if(!a)f=13;else f=14;break}case 6:{if(!a)f=13;else f=14;break}case 7:{if(!a)f=13;else f=14;break}case 8:{if(!a)f=13;else f=14;break}case 9:{if(!a)a=8;else f=14;break}case 10:{if(!a)a=8;else f=14;break}default:f=14}while(0);if((f|0)==13)a=16;else if((f|0)==14){k[e>>2]=1138;k[e+4>>2]=2668;k[e+8>>2]=1523;xc(d,1084,e)|0;wc(d)|0;a=0}h=ha(ha(c,b)|0,a)|0;r=g;return h|0}function Cb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;m=r;r=r+592|0;l=m+56|0;f=m+40|0;i=m+72|0;n=m;j=m+68|0;k[n>>2]=40;lb(a,b,n)|0;g=((k[n+4>>2]|0)+3|0)>>>2;n=n+32|0;e=k[n+4>>2]|0;do switch(k[n>>2]|0){case 0:{if(!e)e=8;else h=14;break}case 1:{if(!e)h=13;else h=14;break}case 2:{if(!e)h=13;else h=14;break}case 3:{if(!e)h=13;else h=14;break}case 4:{if(!e)h=13;else h=14;break}case 5:{if(!e)h=13;else h=14;break}case 6:{if(!e)h=13;else h=14;break}case 7:{if(!e)h=13;else h=14;break}case 8:{if(!e)h=13;else h=14;break}case 9:{if(!e)e=8;else h=14;break}case 10:{if(!e)e=8;else h=14;break}default:h=14}while(0);if((h|0)==13)e=16;else if((h|0)==14){k[f>>2]=1138;k[f+4>>2]=2668;k[f+8>>2]=1523;xc(i,1084,f)|0;wc(i)|0;e=0}g=ha(e,g)|0;f=ub(a,b)|0;k[j>>2]=c;e=(f|0)==0;if(!(d>>>0<8|e)?(k[f>>2]|0)==519686845:0)vb(f,j,d,g,0)|0;if(e){r=m;return}if((k[f>>2]|0)!=519686845){r=m;return}Mb(f);if(!(f&7)){kb(f,0,0,1,0)|0;r=m;return}else{k[l>>2]=1138;k[l+4>>2]=2502;k[l+8>>2]=1504;xc(i,1084,l)|0;wc(i)|0;r=m;return}}function Db(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;g=a+92|0;d=k[a+4>>2]|0;f=a+88|0;e=k[f>>2]|0;b=(l[e+68>>0]|0)<<8|(l[e+67>>0]|0)<<16|(l[e+69>>0]|0);c=d+b|0;e=(l[e+65>>0]|0)<<8|(l[e+66>>0]|0);if(!e){a=0;return a|0}k[g>>2]=c;k[a+96>>2]=c;k[a+104>>2]=e;k[a+100>>2]=d+(e+b);k[a+108>>2]=0;k[a+112>>2]=0;if(!(qb(g,a+116|0)|0)){a=0;return a|0}b=k[f>>2]|0;do if(!((l[b+39>>0]|0)<<8|(l[b+40>>0]|0))){if(!((l[b+55>>0]|0)<<8|(l[b+56>>0]|0))){a=0;return a|0}}else{if(!(qb(g,a+140|0)|0)){a=0;return a|0}if(qb(g,a+188|0)|0){b=k[f>>2]|0;break}else{a=0;return a|0}}while(0);if((l[b+55>>0]|0)<<8|(l[b+56>>0]|0)){if(!(qb(g,a+164|0)|0)){a=0;return a|0}if(!(qb(g,a+212|0)|0)){a=0;return a|0}}a=1;return a|0}function Eb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+576|0;h=q;g=q+64|0;p=q+16|0;d=a+88|0;b=k[d>>2]|0;o=(l[b+39>>0]|0)<<8|(l[b+40>>0]|0);m=a+236|0;f=a+240|0;c=k[f>>2]|0;if((c|0)!=(o|0)){if(c>>>0<=o>>>0){do if((k[a+244>>2]|0)>>>0>>0){if(gb(m,o,(c+1|0)==(o|0),4,0)|0){b=k[f>>2]|0;break}i[a+248>>0]=1;p=0;r=q;return p|0}else b=c;while(0);_c((k[m>>2]|0)+(b<<2)|0,0,o-b<<2|0)|0;b=k[d>>2]|0}k[f>>2]=o}j=a+92|0;c=k[a+4>>2]|0;d=(l[b+34>>0]|0)<<8|(l[b+33>>0]|0)<<16|(l[b+35>>0]|0);e=c+d|0;b=(l[b+37>>0]|0)<<8|(l[b+36>>0]|0)<<16|(l[b+38>>0]|0);if(!b){p=0;r=q;return p|0}k[j>>2]=e;k[a+96>>2]=e;k[a+104>>2]=b;k[a+100>>2]=c+(b+d);k[a+108>>2]=0;k[a+112>>2]=0;k[p+20>>2]=0;k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;k[p+12>>2]=0;i[p+16>>0]=0;a=p+24|0;k[p+44>>2]=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;i[a+16>>0]=0;if(qb(j,p)|0?(n=p+24|0,qb(j,n)|0):0){if(!(k[f>>2]|0)){k[h>>2]=1138;k[h+4>>2]=906;k[h+8>>2]=1769;xc(g,1084,h)|0;wc(g)|0}if(!o)b=1;else{d=0;e=0;f=0;b=0;g=0;a=0;h=0;c=k[m>>2]|0;while(1){d=(sb(j,p)|0)+d&31;e=(sb(j,n)|0)+e&63;f=(sb(j,p)|0)+f&31;b=(sb(j,p)|0)+b|0;g=(sb(j,n)|0)+g&63;a=(sb(j,p)|0)+a&31;k[c>>2]=e<<5|d<<11|f|b<<27|g<<21|a<<16;h=h+1|0;if((h|0)==(o|0)){b=1;break}else{b=b&31;c=c+4|0}}}}else b=0;nb(p+24|0);nb(p);p=b;r=q;return p|0}function Fb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;D=r;r=r+1008|0;g=D;f=D+496|0;C=D+472|0;A=D+276|0;B=D+80|0;z=D+16|0;e=k[a+88>>2]|0;y=(l[e+47>>0]|0)<<8|(l[e+48>>0]|0);x=a+92|0;b=k[a+4>>2]|0;c=(l[e+42>>0]|0)<<8|(l[e+41>>0]|0)<<16|(l[e+43>>0]|0);d=b+c|0;e=(l[e+45>>0]|0)<<8|(l[e+44>>0]|0)<<16|(l[e+46>>0]|0);if(!e){C=0;r=D;return C|0}k[x>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[C+20>>2]=0;k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[C+12>>2]=0;i[C+16>>0]=0;if(qb(x,C)|0){c=0;d=-3;e=-3;while(1){k[A+(c<<2)>>2]=d;k[B+(c<<2)>>2]=e;b=(d|0)>2;c=c+1|0;if((c|0)==49)break;else{d=b?-3:d+1|0;e=(b&1)+e|0}}b=z;c=b+64|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(c|0));w=a+252|0;c=a+256|0;b=k[c>>2]|0;a:do if((b|0)==(y|0))h=13;else{if(b>>>0<=y>>>0){do if((k[a+260>>2]|0)>>>0>>0)if(gb(w,y,(b+1|0)==(y|0),4,0)|0){b=k[c>>2]|0;break}else{i[a+264>>0]=1;b=0;break a}while(0);_c((k[w>>2]|0)+(b<<2)|0,0,y-b<<2|0)|0}k[c>>2]=y;h=13}while(0);do if((h|0)==13){if(!y){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;xc(f,1084,g)|0;wc(f)|0;b=1;break}d=z+4|0;e=z+8|0;a=z+12|0;f=z+16|0;g=z+20|0;h=z+24|0;j=z+28|0;m=z+32|0;n=z+36|0;o=z+40|0;p=z+44|0;q=z+48|0;s=z+52|0;t=z+56|0;u=z+60|0;v=0;c=k[w>>2]|0;while(1){b=0;do{E=sb(x,C)|0;w=b<<1;F=z+(w<<2)|0;k[F>>2]=(k[F>>2]|0)+(k[A+(E<<2)>>2]|0)&3;w=z+((w|1)<<2)|0;k[w>>2]=(k[w>>2]|0)+(k[B+(E<<2)>>2]|0)&3;b=b+1|0}while((b|0)!=8);k[c>>2]=(l[1713+(k[d>>2]|0)>>0]|0)<<2|(l[1713+(k[z>>2]|0)>>0]|0)|(l[1713+(k[e>>2]|0)>>0]|0)<<4|(l[1713+(k[a>>2]|0)>>0]|0)<<6|(l[1713+(k[f>>2]|0)>>0]|0)<<8|(l[1713+(k[g>>2]|0)>>0]|0)<<10|(l[1713+(k[h>>2]|0)>>0]|0)<<12|(l[1713+(k[j>>2]|0)>>0]|0)<<14|(l[1713+(k[m>>2]|0)>>0]|0)<<16|(l[1713+(k[n>>2]|0)>>0]|0)<<18|(l[1713+(k[o>>2]|0)>>0]|0)<<20|(l[1713+(k[p>>2]|0)>>0]|0)<<22|(l[1713+(k[q>>2]|0)>>0]|0)<<24|(l[1713+(k[s>>2]|0)>>0]|0)<<26|(l[1713+(k[t>>2]|0)>>0]|0)<<28|(l[1713+(k[u>>2]|0)>>0]|0)<<30;v=v+1|0;if((v|0)==(y|0)){b=1;break}else c=c+4|0}}while(0)}else b=0;nb(C);F=b;r=D;return F|0}function Gb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,m=0,n=0,o=0,p=0;p=r;r=r+560|0;h=p;g=p+40|0;o=p+16|0;e=k[a+88>>2]|0;n=(l[e+55>>0]|0)<<8|(l[e+56>>0]|0);m=a+92|0;b=k[a+4>>2]|0;c=(l[e+50>>0]|0)<<8|(l[e+49>>0]|0)<<16|(l[e+51>>0]|0);d=b+c|0;e=(l[e+53>>0]|0)<<8|(l[e+52>>0]|0)<<16|(l[e+54>>0]|0);if(!e){o=0;r=p;return o|0}k[m>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[o+20>>2]=0;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;k[o+12>>2]=0;i[o+16>>0]=0;a:do if(qb(m,o)|0){f=a+268|0;c=a+272|0;b=k[c>>2]|0;if((b|0)!=(n|0)){if(b>>>0<=n>>>0){do if((k[a+276>>2]|0)>>>0>>0)if(gb(f,n,(b+1|0)==(n|0),2,0)|0){b=k[c>>2]|0;break}else{i[a+280>>0]=1;b=0;break a}while(0);_c((k[f>>2]|0)+(b<<1)|0,0,n-b<<1|0)|0}k[c>>2]=n}if(!n){k[h>>2]=1138;k[h+4>>2]=906;k[h+8>>2]=1769;xc(g,1084,h)|0;wc(g)|0;b=1;break}c=0;d=0;e=0;b=k[f>>2]|0;while(1){h=sb(m,o)|0;c=h+c&255;d=(sb(m,o)|0)+d&255;j[b>>1]=d<<8|c;e=e+1|0;if((e|0)==(n|0)){b=1;break}else b=b+2|0}}else b=0;while(0);nb(o);o=b;r=p;return o|0}function Hb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;E=r;r=r+2416|0;g=E;f=E+1904|0;D=E+1880|0;B=E+980|0;C=E+80|0;A=E+16|0;e=k[a+88>>2]|0;z=(l[e+63>>0]|0)<<8|(l[e+64>>0]|0);y=a+92|0;b=k[a+4>>2]|0;c=(l[e+58>>0]|0)<<8|(l[e+57>>0]|0)<<16|(l[e+59>>0]|0);d=b+c|0;e=(l[e+61>>0]|0)<<8|(l[e+60>>0]|0)<<16|(l[e+62>>0]|0);if(!e){D=0;r=E;return D|0}k[y>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[D+20>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;k[D+12>>2]=0;i[D+16>>0]=0;if(qb(y,D)|0){c=0;d=-7;e=-7;while(1){k[B+(c<<2)>>2]=d;k[C+(c<<2)>>2]=e;b=(d|0)>6;c=c+1|0;if((c|0)==225)break;else{d=b?-7:d+1|0;e=(b&1)+e|0}}b=A;c=b+64|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(c|0));x=a+284|0;c=z*3|0;d=a+288|0;b=k[d>>2]|0;a:do if((b|0)==(c|0))h=13;else{if(b>>>0<=c>>>0){do if((k[a+292>>2]|0)>>>0>>0)if(gb(x,c,(b+1|0)==(c|0),2,0)|0){b=k[d>>2]|0;break}else{i[a+296>>0]=1;b=0;break a}while(0);_c((k[x>>2]|0)+(b<<1)|0,0,c-b<<1|0)|0}k[d>>2]=c;h=13}while(0);do if((h|0)==13){if(!z){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;xc(f,1084,g)|0;wc(f)|0;b=1;break}d=A+4|0;e=A+8|0;a=A+12|0;f=A+16|0;g=A+20|0;h=A+24|0;m=A+28|0;n=A+32|0;o=A+36|0;p=A+40|0;q=A+44|0;s=A+48|0;t=A+52|0;u=A+56|0;v=A+60|0;w=0;c=k[x>>2]|0;while(1){b=0;do{F=sb(y,D)|0;x=b<<1;G=A+(x<<2)|0;k[G>>2]=(k[G>>2]|0)+(k[B+(F<<2)>>2]|0)&7;x=A+((x|1)<<2)|0;k[x>>2]=(k[x>>2]|0)+(k[C+(F<<2)>>2]|0)&7;b=b+1|0}while((b|0)!=8);F=l[1717+(k[g>>2]|0)>>0]|0;j[c>>1]=(l[1717+(k[d>>2]|0)>>0]|0)<<3|(l[1717+(k[A>>2]|0)>>0]|0)|(l[1717+(k[e>>2]|0)>>0]|0)<<6|(l[1717+(k[a>>2]|0)>>0]|0)<<9|(l[1717+(k[f>>2]|0)>>0]|0)<<12|F<<15;G=l[1717+(k[p>>2]|0)>>0]|0;j[c+2>>1]=(l[1717+(k[h>>2]|0)>>0]|0)<<2|F>>>1|(l[1717+(k[m>>2]|0)>>0]|0)<<5|(l[1717+(k[n>>2]|0)>>0]|0)<<8|(l[1717+(k[o>>2]|0)>>0]|0)<<11|G<<14;j[c+4>>1]=(l[1717+(k[q>>2]|0)>>0]|0)<<1|G>>>2|(l[1717+(k[s>>2]|0)>>0]|0)<<4|(l[1717+(k[t>>2]|0)>>0]|0)<<7|(l[1717+(k[u>>2]|0)>>0]|0)<<10|(l[1717+(k[v>>2]|0)>>0]|0)<<13;w=w+1|0;if((w|0)==(z|0)){b=1;break}else c=c+6|0}}while(0)}else b=0;nb(D);G=b;r=E;return G|0}function Ib(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ia=0,ja=0;ga=r;r=r+656|0;ea=ga+112|0;ca=ga+96|0;ba=ga+80|0;aa=ga+64|0;$=ga+48|0;fa=ga+32|0;da=ga+16|0;_=ga;Y=ga+144|0;Z=ga+128|0;R=a+240|0;S=k[R>>2]|0;V=a+256|0;W=k[V>>2]|0;c=i[(k[a+88>>2]|0)+17>>0]|0;X=d>>>2;if(!(c<<24>>24)){r=ga;return 1}T=(h|0)==0;U=h+-1|0;K=(f&1|0)!=0;L=d<<1;M=a+92|0;N=a+116|0;O=a+140|0;P=a+236|0;Q=g+-1|0;J=(e&1|0)!=0;I=a+188|0;D=a+252|0;E=X+1|0;F=X+2|0;G=X+3|0;H=Q<<4;B=c&255;c=0;f=0;e=1;C=0;do{if(!T){z=k[b+(C<<2)>>2]|0;A=0;while(1){w=A&1;j=(w|0)==0;v=(w<<5^32)+-16|0;w=(w<<1^2)+-1|0;y=j?g:-1;m=j?0:Q;a=(A|0)==(U|0);x=K&a;if((m|0)!=(y|0)){u=K&a^1;t=j?z:z+H|0;while(1){if((e|0)==1)e=sb(M,N)|0|512;s=e&7;e=e>>>3;j=l[1811+s>>0]|0;a=0;do{p=(sb(M,O)|0)+f|0;q=p-S|0;f=q>>31;f=f&p|q&~f;if((k[R>>2]|0)>>>0<=f>>>0){k[_>>2]=1138;k[_+4>>2]=906;k[_+8>>2]=1769;xc(Y,1084,_)|0;wc(Y)|0}k[Z+(a<<2)>>2]=k[(k[P>>2]|0)+(f<<2)>>2];a=a+1|0}while(a>>>0>>0);q=J&(m|0)==(Q|0);if(x|q){p=0;do{n=ha(p,d)|0;a=t+n|0;j=(p|0)==0|u;o=p<<1;ja=(sb(M,I)|0)+c|0;ia=ja-W|0;c=ia>>31;c=c&ja|ia&~c;do if(q){if(!j){ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;break}k[a>>2]=k[Z+((l[1819+(s<<2)+o>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ca>>2]=1138;k[ca+4>>2]=906;k[ca+8>>2]=1769;xc(Y,1084,ca)|0;wc(Y)|0}k[t+(n+4)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c}else{if(!j){ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;break}k[a>>2]=k[Z+((l[1819+(s<<2)+o>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ba>>2]=1138;k[ba+4>>2]=906;k[ba+8>>2]=1769;xc(Y,1084,ba)|0;wc(Y)|0}k[t+(n+4)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;k[t+(n+8)>>2]=k[Z+((l[(o|1)+(1819+(s<<2))>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ea>>2]=1138;k[ea+4>>2]=906;k[ea+8>>2]=1769;xc(Y,1084,ea)|0;wc(Y)|0}k[t+(n+12)>>2]=k[(k[D>>2]|0)+(c<<2)>>2]}while(0);p=p+1|0}while((p|0)!=2)}else{k[t>>2]=k[Z+((l[1819+(s<<2)>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[da>>2]=1138;k[da+4>>2]=906;k[da+8>>2]=1769;xc(Y,1084,da)|0;wc(Y)|0}k[t+4>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+8>>2]=k[Z+((l[1819+(s<<2)+1>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[fa>>2]=1138;k[fa+4>>2]=906;k[fa+8>>2]=1769;xc(Y,1084,fa)|0;wc(Y)|0}k[t+12>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+(X<<2)>>2]=k[Z+((l[1819+(s<<2)+2>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[$>>2]=1138;k[$+4>>2]=906;k[$+8>>2]=1769;xc(Y,1084,$)|0;wc(Y)|0}k[t+(E<<2)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+(F<<2)>>2]=k[Z+((l[1819+(s<<2)+3>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[aa>>2]=1138;k[aa+4>>2]=906;k[aa+8>>2]=1769;xc(Y,1084,aa)|0;wc(Y)|0}k[t+(G<<2)>>2]=k[(k[D>>2]|0)+(c<<2)>>2]}m=m+w|0;if((m|0)==(y|0))break;else t=t+v|0}}A=A+1|0;if((A|0)==(h|0))break;else z=z+L|0}}C=C+1|0}while((C|0)!=(B|0));r=ga;return 1}function Jb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;ma=r;r=r+608|0;ja=ma+48|0;la=ma+32|0;ka=ma+16|0;ia=ma;ga=ma+96|0;ha=ma+80|0;fa=ma+64|0;S=a+240|0;T=k[S>>2]|0;W=a+256|0;ca=k[W>>2]|0;da=a+272|0;ea=k[da>>2]|0;c=k[a+88>>2]|0;U=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=ma;return 1}V=(h|0)==0;X=h+-1|0;Y=d<<1;Z=a+92|0;_=a+116|0;$=g+-1|0;aa=a+212|0;ba=a+188|0;R=(e&1|0)==0;Q=(f&1|0)==0;K=a+288|0;L=a+284|0;M=a+252|0;N=a+140|0;O=a+236|0;P=a+164|0;I=a+268|0;J=$<<5;G=c&255;c=0;e=0;f=0;a=0;j=1;H=0;do{if(!V){E=k[b+(H<<2)>>2]|0;F=0;while(1){C=F&1;n=(C|0)==0;B=(C<<6^64)+-32|0;C=(C<<1^2)+-1|0;D=n?g:-1;o=n?0:$;if((o|0)!=(D|0)){A=Q|(F|0)!=(X|0);z=n?E:E+J|0;while(1){if((j|0)==1)j=sb(Z,_)|0|512;y=j&7;j=j>>>3;p=l[1811+y>>0]|0;n=0;do{w=(sb(Z,P)|0)+e|0;x=w-ea|0;e=x>>31;e=e&w|x&~e;if((k[da>>2]|0)>>>0<=e>>>0){k[ia>>2]=1138;k[ia+4>>2]=906;k[ia+8>>2]=1769;xc(ga,1084,ia)|0;wc(ga)|0}k[fa+(n<<2)>>2]=m[(k[I>>2]|0)+(e<<1)>>1];n=n+1|0}while(n>>>0

>>0);n=0;do{w=(sb(Z,N)|0)+a|0;x=w-T|0;a=x>>31;a=a&w|x&~a;if((k[S>>2]|0)>>>0<=a>>>0){k[ka>>2]=1138;k[ka+4>>2]=906;k[ka+8>>2]=1769;xc(ga,1084,ka)|0;wc(ga)|0}k[ha+(n<<2)>>2]=k[(k[O>>2]|0)+(a<<2)>>2];n=n+1|0}while(n>>>0

>>0);x=R|(o|0)!=($|0);v=0;w=z;while(1){u=A|(v|0)==0;t=v<<1;q=0;s=w;while(1){p=(sb(Z,aa)|0)+c|0;n=p-U|0;c=n>>31;c=c&p|n&~c;n=(sb(Z,ba)|0)+f|0;p=n-ca|0;f=p>>31;f=f&n|p&~f;if((x|(q|0)==0)&u){n=l[q+t+(1819+(y<<2))>>0]|0;p=c*3|0;if((k[K>>2]|0)>>>0<=p>>>0){k[la>>2]=1138;k[la+4>>2]=906;k[la+8>>2]=1769;xc(ga,1084,la)|0;wc(ga)|0}na=k[L>>2]|0;k[s>>2]=(m[na+(p<<1)>>1]|0)<<16|k[fa+(n<<2)>>2];k[s+4>>2]=(m[na+(p+2<<1)>>1]|0)<<16|(m[na+(p+1<<1)>>1]|0);k[s+8>>2]=k[ha+(n<<2)>>2];if((k[W>>2]|0)>>>0<=f>>>0){k[ja>>2]=1138;k[ja+4>>2]=906;k[ja+8>>2]=1769;xc(ga,1084,ja)|0;wc(ga)|0}k[s+12>>2]=k[(k[M>>2]|0)+(f<<2)>>2]}q=q+1|0;if((q|0)==2)break;else s=s+16|0}v=v+1|0;if((v|0)==2)break;else w=w+d|0}o=o+C|0;if((o|0)==(D|0))break;else z=z+B|0}}F=F+1|0;if((F|0)==(h|0))break;else E=E+Y|0}}H=H+1|0}while((H|0)!=(G|0));r=ma;return 1}function Kb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=r;r=r+576|0;_=$+32|0;Z=$+16|0;Y=$;X=$+64|0;W=$+48|0;M=a+272|0;N=k[M>>2]|0;c=k[a+88>>2]|0;O=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=$;return 1}P=(h|0)==0;Q=h+-1|0;R=d<<1;S=a+92|0;T=a+116|0;U=g+-1|0;V=a+212|0;L=(f&1|0)==0;I=a+288|0;J=a+284|0;K=a+164|0;G=a+268|0;H=U<<4;F=c&255;E=(e&1|0)!=0;c=0;f=0;a=1;D=0;do{if(!P){B=k[b+(D<<2)>>2]|0;C=0;while(1){z=C&1;e=(z|0)==0;y=(z<<5^32)+-16|0;z=(z<<1^2)+-1|0;A=e?g:-1;j=e?0:U;if((j|0)!=(A|0)){x=L|(C|0)!=(Q|0);w=e?B:B+H|0;while(1){if((a|0)==1)a=sb(S,T)|0|512;v=a&7;a=a>>>3;n=l[1811+v>>0]|0;e=0;do{t=(sb(S,K)|0)+f|0;u=t-N|0;f=u>>31;f=f&t|u&~f;if((k[M>>2]|0)>>>0<=f>>>0){k[Y>>2]=1138;k[Y+4>>2]=906;k[Y+8>>2]=1769;xc(X,1084,Y)|0;wc(X)|0}k[W+(e<<2)>>2]=m[(k[G>>2]|0)+(f<<1)>>1];e=e+1|0}while(e>>>0>>0);u=(j|0)==(U|0)&E;s=0;t=w;while(1){q=x|(s|0)==0;p=s<<1;e=(sb(S,V)|0)+c|0;o=e-O|0;n=o>>31;n=n&e|o&~n;if(q){c=l[1819+(v<<2)+p>>0]|0;e=n*3|0;if((k[I>>2]|0)>>>0<=e>>>0){k[Z>>2]=1138;k[Z+4>>2]=906;k[Z+8>>2]=1769;xc(X,1084,Z)|0;wc(X)|0}o=k[J>>2]|0;k[t>>2]=(m[o+(e<<1)>>1]|0)<<16|k[W+(c<<2)>>2];k[t+4>>2]=(m[o+(e+2<<1)>>1]|0)<<16|(m[o+(e+1<<1)>>1]|0)}o=t+8|0;e=(sb(S,V)|0)+n|0;n=e-O|0;c=n>>31;c=c&e|n&~c;if(!(u|q^1)){e=l[(p|1)+(1819+(v<<2))>>0]|0;n=c*3|0;if((k[I>>2]|0)>>>0<=n>>>0){k[_>>2]=1138;k[_+4>>2]=906;k[_+8>>2]=1769;xc(X,1084,_)|0;wc(X)|0}q=k[J>>2]|0;k[o>>2]=(m[q+(n<<1)>>1]|0)<<16|k[W+(e<<2)>>2];k[t+12>>2]=(m[q+(n+2<<1)>>1]|0)<<16|(m[q+(n+1<<1)>>1]|0)}s=s+1|0;if((s|0)==2)break;else t=t+d|0}j=j+z|0;if((j|0)==(A|0))break;else w=w+y|0}}C=C+1|0;if((C|0)==(h|0))break;else B=B+R|0}}D=D+1|0}while((D|0)!=(F|0));r=$;return 1}function Lb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=r;r=r+608|0;ea=ha+48|0;ga=ha+32|0;fa=ha+16|0;da=ha;ca=ha+96|0;aa=ha+80|0;ba=ha+64|0;S=a+272|0;T=k[S>>2]|0;c=k[a+88>>2]|0;U=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=ha;return 1}V=(h|0)==0;W=h+-1|0;X=d<<1;Y=a+92|0;Z=a+116|0;_=g+-1|0;$=a+212|0;R=(e&1|0)==0;Q=(f&1|0)==0;N=a+288|0;O=a+284|0;P=a+164|0;L=a+268|0;M=_<<5;J=c&255;c=0;e=0;f=0;a=0;j=1;K=0;do{if(!V){H=k[b+(K<<2)>>2]|0;I=0;while(1){F=I&1;n=(F|0)==0;E=(F<<6^64)+-32|0;F=(F<<1^2)+-1|0;G=n?g:-1;o=n?0:_;if((o|0)!=(G|0)){D=Q|(I|0)!=(W|0);C=n?H:H+M|0;while(1){if((j|0)==1)j=sb(Y,Z)|0|512;B=j&7;j=j>>>3;p=l[1811+B>>0]|0;n=0;do{z=(sb(Y,P)|0)+a|0;A=z-T|0;a=A>>31;a=a&z|A&~a;if((k[S>>2]|0)>>>0<=a>>>0){k[da>>2]=1138;k[da+4>>2]=906;k[da+8>>2]=1769;xc(ca,1084,da)|0;wc(ca)|0}k[aa+(n<<2)>>2]=m[(k[L>>2]|0)+(a<<1)>>1];n=n+1|0}while(n>>>0

>>0);n=0;do{z=(sb(Y,P)|0)+e|0;A=z-T|0;e=A>>31;e=e&z|A&~e;if((k[S>>2]|0)>>>0<=e>>>0){k[fa>>2]=1138;k[fa+4>>2]=906;k[fa+8>>2]=1769;xc(ca,1084,fa)|0;wc(ca)|0}k[ba+(n<<2)>>2]=m[(k[L>>2]|0)+(e<<1)>>1];n=n+1|0}while(n>>>0

>>0);A=R|(o|0)!=(_|0);y=0;z=C;while(1){x=D|(y|0)==0;w=y<<1;u=0;v=z;while(1){t=(sb(Y,$)|0)+f|0;s=t-U|0;f=s>>31;f=f&t|s&~f;s=(sb(Y,$)|0)+c|0;t=s-U|0;c=t>>31;c=c&s|t&~c;if((A|(u|0)==0)&x){s=l[u+w+(1819+(B<<2))>>0]|0;t=f*3|0;n=k[N>>2]|0;if(n>>>0<=t>>>0){k[ga>>2]=1138;k[ga+4>>2]=906;k[ga+8>>2]=1769;xc(ca,1084,ga)|0;wc(ca)|0;n=k[N>>2]|0}p=k[O>>2]|0;q=c*3|0;if(n>>>0>q>>>0)n=p;else{k[ea>>2]=1138;k[ea+4>>2]=906;k[ea+8>>2]=1769;xc(ca,1084,ea)|0;wc(ca)|0;n=k[O>>2]|0}k[v>>2]=(m[p+(t<<1)>>1]|0)<<16|k[aa+(s<<2)>>2];k[v+4>>2]=(m[p+(t+2<<1)>>1]|0)<<16|(m[p+(t+1<<1)>>1]|0);k[v+8>>2]=(m[n+(q<<1)>>1]|0)<<16|k[ba+(s<<2)>>2];k[v+12>>2]=(m[n+(q+2<<1)>>1]|0)<<16|(m[n+(q+1<<1)>>1]|0)}u=u+1|0;if((u|0)==2)break;else v=v+16|0}y=y+1|0;if((y|0)==2)break;else z=z+d|0}o=o+F|0;if((o|0)==(G|0))break;else C=C+E|0}}I=I+1|0;if((I|0)==(h|0))break;else H=H+X|0}}K=K+1|0}while((K|0)!=(J|0));r=ha;return 1}function Mb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+576|0;h=j+48|0;f=j+32|0;e=j+16|0;d=j;g=j+64|0;k[a>>2]=0;b=a+284|0;c=k[b>>2]|0;if(c){if(!(c&7))kb(c,0,0,1,0)|0;else{k[d>>2]=1138;k[d+4>>2]=2502;k[d+8>>2]=1504;xc(g,1084,d)|0;wc(g)|0}k[b>>2]=0;k[a+288>>2]=0;k[a+292>>2]=0}i[a+296>>0]=0;c=a+268|0;b=k[c>>2]|0;if(b){if(!(b&7))kb(b,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;xc(g,1084,e)|0;wc(g)|0}k[c>>2]=0;k[a+272>>2]=0;k[a+276>>2]=0}i[a+280>>0]=0;b=a+252|0;c=k[b>>2]|0;if(c){if(!(c&7))kb(c,0,0,1,0)|0;else{k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1504;xc(g,1084,f)|0;wc(g)|0}k[b>>2]=0;k[a+256>>2]=0;k[a+260>>2]=0}i[a+264>>0]=0;b=a+236|0;c=k[b>>2]|0;if(!c){h=a+248|0;i[h>>0]=0;h=a+212|0;nb(h);h=a+188|0;nb(h);h=a+164|0;nb(h);h=a+140|0;nb(h);h=a+116|0;nb(h);r=j;return}if(!(c&7))kb(c,0,0,1,0)|0;else{k[h>>2]=1138;k[h+4>>2]=2502;k[h+8>>2]=1504;xc(g,1084,h)|0;wc(g)|0}k[b>>2]=0;k[a+240>>2]=0;k[a+244>>2]=0;h=a+248|0;i[h>>0]=0;h=a+212|0;nb(h);h=a+188|0;nb(h);h=a+164|0;nb(h);h=a+140|0;nb(h);h=a+116|0;nb(h);r=j;return}function Nb(a,b){a=a|0;b=b|0;var c=0;c=r;r=r+16|0;k[c>>2]=b;b=k[60]|0;yc(b,a,c)|0;sc(10,b)|0;Aa()}function Ob(){var a=0,b=0;a=r;r=r+16|0;if(!(Ka(192,2)|0)){b=va(k[47]|0)|0;r=a;return b|0}else Nb(2078,a);return 0}function Pb(a){a=a|0;Sc(a);return}function Qb(a){a=a|0;var b=0;b=r;r=r+16|0;Wa[a&3]();Nb(2127,b)}function Rb(){var a=0,b=0;a=Ob()|0;if(((a|0)!=0?(b=k[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(k[a>>2]&-256|0)==1126902528?(k[a+4>>2]|0)==1129074247:0):0)Qb(k[b+12>>2]|0);b=k[26]|0;k[26]=b+0;Qb(b)}function Sb(a){a=a|0;return}function Tb(a){a=a|0;return}function Ub(a){a=a|0;return}function Vb(a){a=a|0;return}function Wb(a){a=a|0;Pb(a);return}function Xb(a){a=a|0;Pb(a);return}function Yb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=ac(b,24,40,0)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;Ya[k[(k[e>>2]|0)+28>>2]&3](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function Zb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=b+16|0;e=k[a>>2]|0;do if(e){if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1}while(0);return}function _b(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Zb(0,b,c,d);return}function $b(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Zb(0,b,c,d);else{a=k[a+8>>2]|0;Ya[k[(k[a>>2]|0)+28>>2]&3](a,b,c,d)}return}function ac(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+64|0;p=q;o=k[a>>2]|0;n=a+(k[o+-8>>2]|0)|0;o=k[o+-4>>2]|0;k[p>>2]=c;k[p+4>>2]=a;k[p+8>>2]=b;k[p+12>>2]=d;d=p+16|0;a=p+20|0;b=p+24|0;e=p+28|0;f=p+32|0;g=p+40|0;h=(o|0)==(c|0);l=d;m=l+36|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j[d+36>>1]=0;i[d+38>>0]=0;a:do if(h){k[p+48>>2]=1;Xa[k[(k[c>>2]|0)+20>>2]&3](c,p,n,n,1,0);d=(k[b>>2]|0)==1?n:0}else{Sa[k[(k[o>>2]|0)+24>>2]&3](o,p,n,1,0);switch(k[p+36>>2]|0){case 0:{d=(k[g>>2]|0)==1&(k[e>>2]|0)==1&(k[f>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((k[b>>2]|0)!=1?!((k[g>>2]|0)==0&(k[e>>2]|0)==1&(k[f>>2]|0)==1):0){d=0;break}d=k[d>>2]|0}while(0);r=q;return d|0}function bc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;i[b+53>>0]=1;do if((k[b+4>>2]|0)==(d|0)){i[b+52>>0]=1;d=b+16|0;a=k[d>>2]|0;if(!a){k[d>>2]=c;k[b+24>>2]=e;k[b+36>>2]=1;if(!((e|0)==1?(k[b+48>>2]|0)==1:0))break;i[b+54>>0]=1;break}if((a|0)!=(c|0)){e=b+36|0;k[e>>2]=(k[e>>2]|0)+1;i[b+54>>0]=1;break}a=b+24|0;d=k[a>>2]|0;if((d|0)==2){k[a>>2]=e;d=e}if((d|0)==1?(k[b+48>>2]|0)==1:0)i[b+54>>0]=1}while(0);return}function cc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;Sa[k[(k[h>>2]|0)+24>>2]&3](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(g=b+20|0,(k[g>>2]|0)!=(c|0)):0){k[b+32>>2]=d;d=b+44|0;if((k[d>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;j=b+53|0;i[j>>0]=0;a=k[a+8>>2]|0;Xa[k[(k[a>>2]|0)+20>>2]&3](a,b,c,c,1,e);if(i[j>>0]|0){if(!(i[f>>0]|0)){f=1;h=13}}else{f=0;h=13}do if((h|0)==13){k[g>>2]=c;j=b+40|0;k[j>>2]=(k[j>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f)break}else h=16;if((h|0)==16?f:0)break;k[d>>2]=4;break a}while(0);k[d>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function dc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function ec(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))bc(0,b,c,d,e);else{a=k[a+8>>2]|0;Xa[k[(k[a>>2]|0)+20>>2]&3](a,b,c,d,e,f)}return}function fc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))bc(0,b,c,d,e);return}function gc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=Ra[k[(k[a>>2]|0)+16>>2]&7](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function hc(a){a=a|0;if(!a)a=0;else a=(ac(a,24,72,0)|0)!=0;return a&1|0}function ic(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+48|0;g=e+32|0;c=e+24|0;h=e+16|0;f=e;e=e+36|0;a=Ob()|0;if((a|0)!=0?(d=k[a>>2]|0,(d|0)!=0):0){a=d+48|0;b=k[a>>2]|0;a=k[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){k[c>>2]=2406;Nb(2356,c)}if((b|0)==1126902529&(a|0)==1129074247)a=k[d+44>>2]|0;else a=d+80|0;k[e>>2]=a;d=k[d>>2]|0;a=k[d+4>>2]|0;if(Ra[k[(k[8>>2]|0)+16>>2]&7](8,d,e)|0){h=k[e>>2]|0;h=Ua[k[(k[h>>2]|0)+8>>2]&1](h)|0;k[f>>2]=2406;k[f+4>>2]=a;k[f+8>>2]=h;Nb(2270,f)}else{k[h>>2]=2406;k[h+4>>2]=a;Nb(2315,h)}}Nb(2394,g)}function jc(){var a=0;a=r;r=r+16|0;if(!(Fa(188,6)|0)){r=a;return}else Nb(2167,a)}function kc(a){a=a|0;var b=0;b=r;r=r+16|0;Sc(a);if(!(wa(k[47]|0,0)|0)){r=b;return}else Nb(2217,b)}function lc(a){a=a|0;var b=0,c=0;b=0;while(1){if((l[2415+b>>0]|0)==(a|0)){c=2;break}b=b+1|0;if((b|0)==87){b=87;a=2503;c=5;break}}if((c|0)==2)if(!b)a=2503;else{a=2503;c=5}if((c|0)==5)while(1){c=a;while(1){a=c+1|0;if(!(i[c>>0]|0))break;else c=a}b=b+-1|0;if(!b)break;else c=5}return a|0}function mc(){var a=0;if(!0)a=248;else{a=(za()|0)+60|0;a=k[a>>2]|0}return a|0}function nc(a){a=a|0;var b=0;if(a>>>0>4294963200){b=mc()|0;k[b>>2]=0-a;a=-1}return a|0}function oc(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[t>>3]=a;c=k[t>>2]|0;d=k[t+4>>2]|0;e=$c(c|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{if(a!=0.0){a=+oc(a*18446744073709552.0e3,b);c=(k[b>>2]|0)+-64|0}else c=0;k[b>>2]=c;break}case 2047:break;default:{k[b>>2]=e+-1022;k[t>>2]=c;k[t+4>>2]=d&-2146435073|1071644672;a=+p[t>>3]}}return +a}function pc(a,b){a=+a;b=b|0;return +(+oc(a,b))}function qc(a,b,c){a=a|0;b=b|0;c=c|0;do if(a){if(b>>>0<128){i[a>>0]=b;a=1;break}if(b>>>0<2048){i[a>>0]=b>>>6|192;i[a+1>>0]=b&63|128;a=2;break}if(b>>>0<55296|(b&-8192|0)==57344){i[a>>0]=b>>>12|224;i[a+1>>0]=b>>>6&63|128;i[a+2>>0]=b&63|128;a=3;break}if((b+-65536|0)>>>0<1048576){i[a>>0]=b>>>18|240;i[a+1>>0]=b>>>12&63|128;i[a+2>>0]=b>>>6&63|128;i[a+3>>0]=b&63|128;a=4;break}else{a=mc()|0;k[a>>2]=84;a=-1;break}}else a=1;while(0);return a|0}function rc(a,b){a=a|0;b=b|0;if(!a)a=0;else a=qc(a,b,0)|0;return a|0}function sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((k[b+76>>2]|0)>=0?(Bc(b)|0)!=0:0){if((i[b+75>>0]|0)!=(a|0)?(d=b+20|0,e=k[d>>2]|0,e>>>0<(k[b+16>>2]|0)>>>0):0){k[d>>2]=e+1;i[e>>0]=a;c=a&255}else c=Dc(b,a)|0;Cc(b)}else g=3;do if((g|0)==3){if((i[b+75>>0]|0)!=(a|0)?(f=b+20|0,c=k[f>>2]|0,c>>>0<(k[b+16>>2]|0)>>>0):0){k[f>>2]=c+1;i[c>>0]=a;c=a&255;break}c=Dc(b,a)|0}while(0);return c|0}function tc(a,b){a=a|0;b=b|0;return (vc(a,Kc(a)|0,1,b)|0)+-1|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=c+16|0;e=k[d>>2]|0;if(!e)if(!(Ic(c)|0)){e=k[d>>2]|0;f=4}else d=0;else f=4;a:do if((f|0)==4){g=c+20|0;f=k[g>>2]|0;if((e-f|0)>>>0>>0){d=Ra[k[c+36>>2]&7](c,a,b)|0;break}b:do if((i[c+75>>0]|0)>-1){d=b;while(1){if(!d){e=f;d=0;break b}e=d+-1|0;if((i[a+e>>0]|0)==10)break;else d=e}if((Ra[k[c+36>>2]&7](c,a,d)|0)>>>0>>0)break a;b=b-d|0;a=a+d|0;e=k[g>>2]|0}else{e=f;d=0}while(0);bd(e|0,a|0,b|0)|0;k[g>>2]=(k[g>>2]|0)+b;d=d+b|0}while(0);return d|0}function vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ha(c,b)|0;if((k[d+76>>2]|0)>-1){f=(Bc(d)|0)==0;a=uc(a,e,d)|0;if(!f)Cc(d)}else a=uc(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function wc(a){a=a|0;var b=0,c=0,d=0,e=0;d=k[61]|0;if((k[d+76>>2]|0)>-1)e=Bc(d)|0;else e=0;do if((tc(a,d)|0)<0)b=1;else{if((i[d+75>>0]|0)!=10?(b=d+20|0,c=k[b>>2]|0,c>>>0<(k[d+16>>2]|0)>>>0):0){k[b>>2]=c+1;i[c>>0]=10;b=0;break}b=(Dc(d,10)|0)<0}while(0);if(e)Cc(d);return b<<31>>31|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;k[e>>2]=c;c=Ac(a,b,e)|0;r=d;return c|0}function yc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+224|0;n=s+120|0;q=s+80|0;p=s;o=s+136|0;d=q;e=d+40|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[n>>2]=k[c>>2];if((Lc(0,b,n,p,q)|0)<0)c=-1;else{if((k[a+76>>2]|0)>-1)l=Bc(a)|0;else l=0;c=k[a>>2]|0;m=c&32;if((i[a+74>>0]|0)<1)k[a>>2]=c&-33;c=a+48|0;if(!(k[c>>2]|0)){e=a+44|0;f=k[e>>2]|0;k[e>>2]=o;g=a+28|0;k[g>>2]=o;h=a+20|0;k[h>>2]=o;k[c>>2]=80;j=a+16|0;k[j>>2]=o+80;d=Lc(a,b,n,p,q)|0;if(f){Ra[k[a+36>>2]&7](a,0,0)|0;d=(k[h>>2]|0)==0?-1:d;k[e>>2]=f;k[c>>2]=0;k[j>>2]=0;k[g>>2]=0;k[h>>2]=0}}else d=Lc(a,b,n,p,q)|0;c=k[a>>2]|0;k[a>>2]=c|m;if(l)Cc(a);c=(c&32|0)==0?d:-1}r=s;return c|0}function zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+128|0;e=m+112|0;l=m;f=l;g=252;h=f+112|0;do{k[f>>2]=k[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if((b+-1|0)>>>0>2147483646)if(!b){b=1;j=4}else{b=mc()|0;k[b>>2]=75;b=-1}else{e=a;j=4}if((j|0)==4){j=-2-e|0;j=b>>>0>j>>>0?j:b;k[l+48>>2]=j;a=l+20|0;k[a>>2]=e;k[l+44>>2]=e;b=e+j|0;e=l+16|0;k[e>>2]=b;k[l+28>>2]=b;b=yc(l,c,d)|0;if(j){c=k[a>>2]|0;i[c+(((c|0)==(k[e>>2]|0))<<31>>31)>>0]=0}}r=m;return b|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;return zc(a,2147483647,b,c)|0}function Bc(a){a=a|0;return 0}function Cc(a){a=a|0;return}function Dc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;g=b&255;i[h>>0]=g;d=a+16|0;e=k[d>>2]|0;if(!e)if(!(Ic(a)|0)){e=k[d>>2]|0;f=4}else c=-1;else f=4;do if((f|0)==4){d=a+20|0;f=k[d>>2]|0;if(f>>>0>>0?(c=b&255,(c|0)!=(i[a+75>>0]|0)):0){k[d>>2]=f+1;i[f>>0]=g;break}if((Ra[k[a+36>>2]&7](a,h,1)|0)==1)c=l[h>>0]|0;else c=-1}while(0);r=j;return c|0}function Ec(a){a=a|0;var b=0,c=0;b=r;r=r+16|0;c=b;k[c>>2]=k[a+60>>2];a=nc(Ca(6,c|0)|0)|0;r=b;return a|0}function Fc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;f=e;d=e+20|0;k[f>>2]=k[a+60>>2];k[f+4>>2]=0;k[f+8>>2]=b;k[f+12>>2]=d;k[f+16>>2]=c;if((nc(Ja(140,f|0)|0)|0)<0){k[d>>2]=-1;a=-1}else a=k[d>>2]|0;r=e;return a|0}function Gc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;p=r;r=r+48|0;m=p+16|0;l=p;d=p+32|0;n=a+28|0;e=k[n>>2]|0;k[d>>2]=e;o=a+20|0;e=(k[o>>2]|0)-e|0;k[d+4>>2]=e;k[d+8>>2]=b;k[d+12>>2]=c;i=a+60|0;j=a+44|0;b=2;e=e+c|0;while(1){if(!(k[49]|0)){k[m>>2]=k[i>>2];k[m+4>>2]=d;k[m+8>>2]=b;g=nc(Na(146,m|0)|0)|0}else{Ba(7,a|0);k[l>>2]=k[i>>2];k[l+4>>2]=d;k[l+8>>2]=b;g=nc(Na(146,l|0)|0)|0;ua(0)}if((e|0)==(g|0)){e=6;break}if((g|0)<0){e=8;break}e=e-g|0;f=k[d+4>>2]|0;if(g>>>0<=f>>>0)if((b|0)==2){k[n>>2]=(k[n>>2]|0)+g;h=f;b=2}else h=f;else{h=k[j>>2]|0;k[n>>2]=h;k[o>>2]=h;h=k[d+12>>2]|0;g=g-f|0;d=d+8|0;b=b+-1|0}k[d>>2]=(k[d>>2]|0)+g;k[d+4>>2]=h-g}if((e|0)==6){m=k[j>>2]|0;k[a+16>>2]=m+(k[a+48>>2]|0);a=m;k[n>>2]=a;k[o>>2]=a}else if((e|0)==8){k[a+16>>2]=0;k[n>>2]=0;k[o>>2]=0;k[a>>2]=k[a>>2]|32;if((b|0)==2)c=0;else c=c-(k[d+4>>2]|0)|0}r=p;return c|0}function Hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+80|0;d=e;k[a+36>>2]=3;if((k[a>>2]&64|0)==0?(k[d>>2]=k[a+60>>2],k[d+4>>2]=21505,k[d+8>>2]=e+12,(Ia(54,d|0)|0)!=0):0)i[a+75>>0]=-1;d=Gc(a,b,c)|0;r=e;return d|0}function Ic(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=k[a>>2]|0;if(!(b&8)){k[a+8>>2]=0;k[a+4>>2]=0;b=k[a+44>>2]|0;k[a+28>>2]=b;k[a+20>>2]=b;k[a+16>>2]=b+(k[a+48>>2]|0);b=0}else{k[a>>2]=b|32;b=-1}return b|0}function Jc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b&255;d=(c|0)!=0;a:do if(d&(a&3|0)!=0){e=b&255;while(1){if((i[a>>0]|0)==e<<24>>24){g=6;break a}a=a+1|0;c=c+-1|0;d=(c|0)!=0;if(!(d&(a&3|0)!=0)){g=5;break}}}else g=5;while(0);if((g|0)==5)if(d)g=6;else c=0;b:do if((g|0)==6){e=b&255;if((i[a>>0]|0)!=e<<24>>24){d=ha(f,16843009)|0;c:do if(c>>>0>3)while(1){f=k[a>>2]^d;if((f&-2139062144^-2139062144)&f+-16843009)break;a=a+4|0;c=c+-4|0;if(c>>>0<=3){g=11;break c}}else g=11;while(0);if((g|0)==11)if(!c){c=0;break}while(1){if((i[a>>0]|0)==e<<24>>24)break b;a=a+1|0;c=c+-1|0;if(!c){c=0;break}}}}while(0);return ((c|0)!=0?a:0)|0}function Kc(a){a=a|0;var b=0,c=0,d=0;d=a;a:do if(!(d&3))c=4;else{b=a;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do a=a+1|0;while((i[a>>0]|0)!=0)}return a-d|0}function Lc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0.0,o=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=r;r=r+624|0;ba=ga+24|0;da=ga+16|0;ca=ga+588|0;Y=ga+576|0;aa=ga;V=ga+536|0;fa=ga+8|0;ea=ga+528|0;M=(a|0)!=0;N=V+40|0;U=N;V=V+39|0;W=fa+4|0;X=Y+12|0;Y=Y+11|0;Z=ca;_=X;$=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ba+288|0;R=ca+9|0;S=R;T=ca+8|0;f=0;w=b;g=0;b=0;a:while(1){do if((f|0)>-1)if((g|0)>(2147483647-f|0)){f=mc()|0;k[f>>2]=75;f=-1;break}else{f=g+f|0;break}while(0);g=i[w>>0]|0;if(!(g<<24>>24)){K=245;break}else h=w;b:while(1){switch(g<<24>>24){case 37:{g=h;K=9;break b}case 0:{g=h;break b}default:{}}J=h+1|0;g=i[J>>0]|0;h=J}c:do if((K|0)==9)while(1){K=0;if((i[g+1>>0]|0)!=37)break c;h=h+1|0;g=g+2|0;if((i[g>>0]|0)==37)K=9;else break}while(0);y=h-w|0;if(M?(k[a>>2]&32|0)==0:0)uc(w,y,a)|0;if((h|0)!=(w|0)){w=g;g=y;continue}o=g+1|0;h=i[o>>0]|0;m=(h<<24>>24)+-48|0;if(m>>>0<10){J=(i[g+2>>0]|0)==36;o=J?g+3|0:o;h=i[o>>0]|0;u=J?m:-1;b=J?1:b}else u=-1;g=h<<24>>24;d:do if((g&-32|0)==32){m=0;while(1){if(!(1<>24)+-32|m;o=o+1|0;h=i[o>>0]|0;g=h<<24>>24;if((g&-32|0)!=32){q=m;g=o;break}}}else{q=0;g=o}while(0);do if(h<<24>>24==42){m=g+1|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[e+(h<<2)>>2]=10;b=1;g=g+3|0;h=k[d+((i[m>>0]|0)+-48<<3)>>2]|0}else{if(b){f=-1;break a}if(!M){x=q;g=m;b=0;J=0;break}b=(k[c>>2]|0)+(4-1)&~(4-1);h=k[b>>2]|0;k[c>>2]=b+4;b=0;g=m}if((h|0)<0){x=q|8192;J=0-h|0}else{x=q;J=h}}else{m=(h<<24>>24)+-48|0;if(m>>>0<10){h=0;do{h=(h*10|0)+m|0;g=g+1|0;m=(i[g>>0]|0)+-48|0}while(m>>>0<10);if((h|0)<0){f=-1;break a}else{x=q;J=h}}else{x=q;J=0}}while(0);e:do if((i[g>>0]|0)==46){m=g+1|0;h=i[m>>0]|0;if(h<<24>>24!=42){o=(h<<24>>24)+-48|0;if(o>>>0<10){g=m;h=0}else{g=m;o=0;break}while(1){h=(h*10|0)+o|0;g=g+1|0;o=(i[g>>0]|0)+-48|0;if(o>>>0>=10){o=h;break e}}}m=g+2|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+3>>0]|0)==36:0){k[e+(h<<2)>>2]=10;g=g+4|0;o=k[d+((i[m>>0]|0)+-48<<3)>>2]|0;break}if(b){f=-1;break a}if(M){g=(k[c>>2]|0)+(4-1)&~(4-1);o=k[g>>2]|0;k[c>>2]=g+4;g=m}else{g=m;o=0}}else o=-1;while(0);s=0;while(1){h=(i[g>>0]|0)+-65|0;if(h>>>0>57){f=-1;break a}m=g+1|0;h=i[5347+(s*58|0)+h>>0]|0;q=h&255;if((q+-1|0)>>>0<8){g=m;s=q}else{I=m;break}}if(!(h<<24>>24)){f=-1;break}m=(u|0)>-1;do if(h<<24>>24==19)if(m){f=-1;break a}else K=52;else{if(m){k[e+(u<<2)>>2]=q;G=d+(u<<3)|0;H=k[G+4>>2]|0;K=aa;k[K>>2]=k[G>>2];k[K+4>>2]=H;K=52;break}if(!M){f=0;break a}Oc(aa,q,c)}while(0);if((K|0)==52?(K=0,!M):0){w=I;g=y;continue}u=i[g>>0]|0;u=(s|0)!=0&(u&15|0)==3?u&-33:u;m=x&-65537;H=(x&8192|0)==0?x:m;f:do switch(u|0){case 110:switch(s|0){case 0:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 1:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 2:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}case 3:{j[k[aa>>2]>>1]=f;w=I;g=y;continue a}case 4:{i[k[aa>>2]>>0]=f;w=I;g=y;continue a}case 6:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 7:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}default:{w=I;g=y;continue a}}case 112:{s=H|8;o=o>>>0>8?o:8;u=120;K=64;break}case 88:case 120:{s=H;K=64;break}case 111:{m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;if((h|0)==0&(m|0)==0)g=N;else{g=N;do{g=g+-1|0;i[g>>0]=h&7|48;h=$c(h|0,m|0,3)|0;m=L}while(!((h|0)==0&(m|0)==0))}if(!(H&8)){h=H;s=0;q=5827;K=77}else{s=U-g+1|0;h=H;o=(o|0)<(s|0)?s:o;s=0;q=5827;K=77}break}case 105:case 100:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;if((h|0)<0){g=Yc(0,0,g|0,h|0)|0;h=L;m=aa;k[m>>2]=g;k[m+4>>2]=h;m=1;q=5827;K=76;break f}if(!(H&2048)){q=H&1;m=q;q=(q|0)==0?5827:5829;K=76}else{m=1;q=5828;K=76}break}case 117:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;m=0;q=5827;K=76;break}case 99:{i[V>>0]=k[aa>>2];w=V;h=1;s=0;u=5827;g=N;break}case 109:{g=mc()|0;g=lc(k[g>>2]|0)|0;K=82;break}case 115:{g=k[aa>>2]|0;g=(g|0)!=0?g:5837;K=82;break}case 67:{k[fa>>2]=k[aa>>2];k[W>>2]=0;k[aa>>2]=fa;o=-1;K=86;break}case 83:{if(!o){Qc(a,32,J,0,H);g=0;K=98}else K=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{n=+p[aa>>3];k[da>>2]=0;p[t>>3]=n;if((k[t+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?5845:5850}else{F=1;G=5847}else{n=-n;F=1;G=5844}p[t>>3]=n;E=k[t+4>>2]&2146435072;do if(E>>>0<2146435072|(E|0)==2146435072&0<0){v=+pc(n,da)*2.0;h=v!=0.0;if(h)k[da>>2]=(k[da>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?G:G+9|0;x=F|2;g=12-o|0;do if(!(o>>>0>11|(g|0)==0)){n=8.0;do{g=g+-1|0;n=n*16.0}while((g|0)!=0);if((i[y>>0]|0)==45){n=-(n+(-v-n));break}else{n=v+n-n;break}}else n=v;while(0);h=k[da>>2]|0;g=(h|0)<0?0-h|0:h;g=Pc(g,((g|0)<0)<<31>>31,X)|0;if((g|0)==(X|0)){i[Y>>0]=48;g=Y}i[g+-1>>0]=(h>>31&2)+43;s=g+-2|0;i[s>>0]=u+15;q=(o|0)<1;m=(H&8|0)==0;h=ca;while(1){G=~~n;g=h+1|0;i[h>>0]=l[5811+G>>0]|w;n=(n-+(G|0))*16.0;do if((g-Z|0)==1){if(m&(q&n==0.0))break;i[g>>0]=46;g=h+2|0}while(0);if(!(n!=0.0))break;else h=g}o=(o|0)!=0&(O+g|0)<(o|0)?P+o-s|0:$-s+g|0;m=o+x|0;Qc(a,32,J,m,H);if(!(k[a>>2]&32))uc(y,x,a)|0;Qc(a,48,J,m,H^65536);g=g-Z|0;if(!(k[a>>2]&32))uc(ca,g,a)|0;h=_-s|0;Qc(a,48,o-(g+h)|0,0,0);if(!(k[a>>2]&32))uc(s,h,a)|0;Qc(a,32,J,m,H^8192);g=(m|0)<(J|0)?J:m;break}g=(o|0)<0?6:o;if(h){h=(k[da>>2]|0)+-28|0;k[da>>2]=h;n=v*268435456.0}else{n=v;h=k[da>>2]|0}E=(h|0)<0?ba:Q;D=E;h=E;do{B=~~n>>>0;k[h>>2]=B;h=h+4|0;n=(n-+(B>>>0))*1.0e9}while(n!=0.0);m=h;h=k[da>>2]|0;if((h|0)>0){q=E;while(1){s=(h|0)>29?29:h;o=m+-4|0;do if(o>>>0>>0)o=q;else{h=0;do{B=ad(k[o>>2]|0,0,s|0)|0;B=Zc(B|0,L|0,h|0,0)|0;h=L;A=jd(B|0,h|0,1e9,0)|0;k[o>>2]=A;h=id(B|0,h|0,1e9,0)|0;o=o+-4|0}while(o>>>0>=q>>>0);if(!h){o=q;break}o=q+-4|0;k[o>>2]=h}while(0);while(1){if(m>>>0<=o>>>0)break;h=m+-4|0;if(!(k[h>>2]|0))m=h;else break}h=(k[da>>2]|0)-s|0;k[da>>2]=h;if((h|0)>0)q=o;else break}}else o=E;if((h|0)<0){y=((g+25|0)/9|0)+1|0;z=(C|0)==102;w=o;while(1){x=0-h|0;x=(x|0)>9?9:x;do if(w>>>0>>0){h=(1<>>x;o=0;s=w;do{B=k[s>>2]|0;k[s>>2]=(B>>>x)+o;o=ha(B&h,q)|0;s=s+4|0}while(s>>>0>>0);h=(k[w>>2]|0)==0?w+4|0:w;if(!o){o=h;break}k[m>>2]=o;o=h;m=m+4|0}else o=(k[w>>2]|0)==0?w+4|0:w;while(0);h=z?E:o;m=(m-h>>2|0)>(y|0)?h+(y<<2)|0:m;h=(k[da>>2]|0)+x|0;k[da>>2]=h;if((h|0)>=0){w=o;break}else w=o}}else w=o;do if(w>>>0>>0){h=(D-w>>2)*9|0;q=k[w>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;h=h+1|0}while(q>>>0>=o>>>0)}else h=0;while(0);A=(C|0)==103;B=(g|0)!=0;o=g-((C|0)!=102?h:0)+((B&A)<<31>>31)|0;if((o|0)<(((m-D>>2)*9|0)+-9|0)){s=o+9216|0;z=(s|0)/9|0;o=E+(z+-1023<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){q=10;do{q=q*10|0;s=s+1|0}while((s|0)!=9)}else q=10;x=k[o>>2]|0;y=(x>>>0)%(q>>>0)|0;if((y|0)==0?(E+(z+-1022<<2)|0)==(m|0):0)q=w;else K=163;do if((K|0)==163){K=0;v=(((x>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;do if(y>>>0>>0)n=.5;else{if((y|0)==(s|0)?(E+(z+-1022<<2)|0)==(m|0):0){n=1.0;break}n=1.5}while(0);do if(F){if((i[G>>0]|0)!=45)break;v=-v;n=-n}while(0);s=x-y|0;k[o>>2]=s;if(!(v+n!=v)){q=w;break}C=s+q|0;k[o>>2]=C;if(C>>>0>999999999){h=w;while(1){q=o+-4|0;k[o>>2]=0;if(q>>>0>>0){h=h+-4|0;k[h>>2]=0}C=(k[q>>2]|0)+1|0;k[q>>2]=C;if(C>>>0>999999999)o=q;else{w=h;o=q;break}}}h=(D-w>>2)*9|0;s=k[w>>2]|0;if(s>>>0<10){q=w;break}else q=10;do{q=q*10|0;h=h+1|0}while(s>>>0>=q>>>0);q=w}while(0);C=o+4|0;w=q;m=m>>>0>C>>>0?C:m}y=0-h|0;while(1){if(m>>>0<=w>>>0){z=0;C=m;break}o=m+-4|0;if(!(k[o>>2]|0))m=o;else{z=1;C=m;break}}do if(A){g=(B&1^1)+g|0;if((g|0)>(h|0)&(h|0)>-5){u=u+-1|0;g=g+-1-h|0}else{u=u+-2|0;g=g+-1|0}m=H&8;if(m)break;do if(z){m=k[C+-4>>2]|0;if(!m){o=9;break}if(!((m>>>0)%10|0)){q=10;o=0}else{o=0;break}do{q=q*10|0;o=o+1|0}while(((m>>>0)%(q>>>0)|0|0)==0)}else o=9;while(0);m=((C-D>>2)*9|0)+-9|0;if((u|32|0)==102){m=m-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}else{m=m+h-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}}else m=H&8;while(0);x=g|m;q=(x|0)!=0&1;s=(u|32|0)==102;if(s){h=(h|0)>0?h:0;u=0}else{o=(h|0)<0?y:h;o=Pc(o,((o|0)<0)<<31>>31,X)|0;if((_-o|0)<2)do{o=o+-1|0;i[o>>0]=48}while((_-o|0)<2);i[o+-1>>0]=(h>>31&2)+43;D=o+-2|0;i[D>>0]=u;h=_-D|0;u=D}y=F+1+g+q+h|0;Qc(a,32,J,y,H);if(!(k[a>>2]&32))uc(G,F,a)|0;Qc(a,48,J,y,H^65536);do if(s){o=w>>>0>E>>>0?E:w;h=o;do{m=Pc(k[h>>2]|0,0,R)|0;do if((h|0)==(o|0)){if((m|0)!=(R|0))break;i[T>>0]=48;m=T}else{if(m>>>0<=ca>>>0)break;do{m=m+-1|0;i[m>>0]=48}while(m>>>0>ca>>>0)}while(0);if(!(k[a>>2]&32))uc(m,S-m|0,a)|0;h=h+4|0}while(h>>>0<=E>>>0);do if(x){if(k[a>>2]&32)break;uc(5879,1,a)|0}while(0);if((g|0)>0&h>>>0>>0){m=h;while(1){h=Pc(k[m>>2]|0,0,R)|0;if(h>>>0>ca>>>0)do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0);if(!(k[a>>2]&32))uc(h,(g|0)>9?9:g,a)|0;m=m+4|0;h=g+-9|0;if(!((g|0)>9&m>>>0>>0)){g=h;break}else g=h}}Qc(a,48,g+9|0,9,0)}else{s=z?C:w+4|0;if((g|0)>-1){q=(m|0)==0;o=w;do{h=Pc(k[o>>2]|0,0,R)|0;if((h|0)==(R|0)){i[T>>0]=48;h=T}do if((o|0)==(w|0)){m=h+1|0;if(!(k[a>>2]&32))uc(h,1,a)|0;if(q&(g|0)<1){h=m;break}if(k[a>>2]&32){h=m;break}uc(5879,1,a)|0;h=m}else{if(h>>>0<=ca>>>0)break;do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0)}while(0);m=S-h|0;if(!(k[a>>2]&32))uc(h,(g|0)>(m|0)?m:g,a)|0;g=g-m|0;o=o+4|0}while(o>>>0>>0&(g|0)>-1)}Qc(a,48,g+18|0,18,0);if(k[a>>2]&32)break;uc(u,_-u|0,a)|0}while(0);Qc(a,32,J,y,H^8192);g=(y|0)<(J|0)?J:y}else{s=(u&32|0)!=0;q=n!=n|0.0!=0.0;h=q?0:F;o=h+3|0;Qc(a,32,J,o,m);g=k[a>>2]|0;if(!(g&32)){uc(G,h,a)|0;g=k[a>>2]|0}if(!(g&32))uc(q?(s?5871:5875):s?5863:5867,3,a)|0;Qc(a,32,J,o,H^8192);g=(o|0)<(J|0)?J:o}while(0);w=I;continue a}default:{m=H;h=o;s=0;u=5827;g=N}}while(0);g:do if((K|0)==64){m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;q=u&32;if(!((h|0)==0&(m|0)==0)){g=N;do{g=g+-1|0;i[g>>0]=l[5811+(h&15)>>0]|q;h=$c(h|0,m|0,4)|0;m=L}while(!((h|0)==0&(m|0)==0));K=aa;if((s&8|0)==0|(k[K>>2]|0)==0&(k[K+4>>2]|0)==0){h=s;s=0;q=5827;K=77}else{h=s;s=2;q=5827+(u>>4)|0;K=77}}else{g=N;h=s;s=0;q=5827;K=77}}else if((K|0)==76){g=Pc(g,h,N)|0;h=H;s=m;K=77}else if((K|0)==82){K=0;H=Jc(g,0,o)|0;G=(H|0)==0;w=g;h=G?o:H-g|0;s=0;u=5827;g=G?g+o|0:H}else if((K|0)==86){K=0;h=0;g=0;q=k[aa>>2]|0;while(1){m=k[q>>2]|0;if(!m)break;g=rc(ea,m)|0;if((g|0)<0|g>>>0>(o-h|0)>>>0)break;h=g+h|0;if(o>>>0>h>>>0)q=q+4|0;else break}if((g|0)<0){f=-1;break a}Qc(a,32,J,h,H);if(!h){g=0;K=98}else{m=0;o=k[aa>>2]|0;while(1){g=k[o>>2]|0;if(!g){g=h;K=98;break g}g=rc(ea,g)|0;m=g+m|0;if((m|0)>(h|0)){g=h;K=98;break g}if(!(k[a>>2]&32))uc(ea,g,a)|0;if(m>>>0>=h>>>0){g=h;K=98;break}else o=o+4|0}}}while(0);if((K|0)==98){K=0;Qc(a,32,J,g,H^8192);w=I;g=(J|0)>(g|0)?J:g;continue}if((K|0)==77){K=0;m=(o|0)>-1?h&-65537:h;h=aa;h=(k[h>>2]|0)!=0|(k[h+4>>2]|0)!=0;if((o|0)!=0|h){h=(h&1^1)+(U-g)|0;w=g;h=(o|0)>(h|0)?o:h;u=q;g=N}else{w=N;h=0;u=q;g=N}}q=g-w|0;h=(h|0)<(q|0)?q:h;o=s+h|0;g=(J|0)<(o|0)?o:J;Qc(a,32,g,o,m);if(!(k[a>>2]&32))uc(u,s,a)|0;Qc(a,48,g,o,m^65536);Qc(a,48,h,q,0);if(!(k[a>>2]&32))uc(w,q,a)|0;Qc(a,32,g,o,m^8192);w=I}h:do if((K|0)==245)if(!a)if(b){f=1;while(1){b=k[e+(f<<2)>>2]|0;if(!b)break;Oc(d+(f<<3)|0,b,c);f=f+1|0;if((f|0)>=10){f=1;break h}}if((f|0)<10)while(1){if(k[e+(f<<2)>>2]|0){f=-1;break h}f=f+1|0;if((f|0)>=10){f=1;break}}else f=1}else f=0;while(0);r=ga;return f|0}function Mc(a){a=a|0;if(!(k[a+68>>2]|0))Cc(a);return}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=k[d>>2]|0;a=(k[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;bd(e|0,b|0,a|0)|0;k[d>>2]=(k[d>>2]|0)+a;return c|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;k[a>>2]=b;break a}case 10:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=0;break a}case 12:{d=(k[c>>2]|0)+(8-1)&~(8-1);b=d;e=k[b>>2]|0;b=k[b+4>>2]|0;k[c>>2]=d+8;d=a;k[d>>2]=e;k[d+4>>2]=b;break a}case 13:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&65535;k[e+4>>2]=0;break a}case 15:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&255)<<24>>24;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&255;k[e+4>>2]=0;break a}case 17:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}case 18:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}default:break a}while(0);while(0);return}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295)while(1){d=jd(a|0,b|0,10,0)|0;c=c+-1|0;i[c>>0]=d|48;d=id(a|0,b|0,10,0)|0;if(b>>>0>9|(b|0)==9&a>>>0>4294967295){a=d;b=L}else{a=d;break}}if(a)while(1){c=c+-1|0;i[c>>0]=(a>>>0)%10|0|48;if(a>>>0<10)break;else a=(a>>>0)/10|0}return c|0}function Qc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=r;r=r+256|0;g=h;do if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;_c(g|0,b|0,(e>>>0>256?256:e)|0)|0;b=k[a>>2]|0;f=(b&32|0)==0;if(e>>>0>255){d=c-d|0;do{if(f){uc(g,256,a)|0;b=k[a>>2]|0}e=e+-256|0;f=(b&32|0)==0}while(e>>>0>255);if(f)e=d&255;else break}else if(!f)break;uc(g,e,a)|0}while(0);r=h;return}function Rc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;h=k[147]|0;c=h>>>a;if(c&3){a=(c&1^1)+a|0;d=a<<1;c=628+(d<<2)|0;d=628+(d+2<<2)|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do if((c|0)!=(g|0)){if(g>>>0<(k[151]|0)>>>0)Aa();b=g+12|0;if((k[b>>2]|0)==(e|0)){k[b>>2]=c;k[d>>2]=g;break}else Aa()}else k[147]=h&~(1<>2]=M|3;M=e+(M|4)|0;k[M>>2]=k[M>>2]|1;M=f;return M|0}g=k[149]|0;if(o>>>0>g>>>0){if(c){d=2<>>12&16;d=d>>>i;e=d>>>5&8;d=d>>>e;f=d>>>2&4;d=d>>>f;c=d>>>1&2;d=d>>>c;a=d>>>1&1;a=(e|i|f|c|a)+(d>>>a)|0;d=a<<1;c=628+(d<<2)|0;d=628+(d+2<<2)|0;f=k[d>>2]|0;i=f+8|0;e=k[i>>2]|0;do if((c|0)!=(e|0)){if(e>>>0<(k[151]|0)>>>0)Aa();b=e+12|0;if((k[b>>2]|0)==(f|0)){k[b>>2]=c;k[d>>2]=e;j=k[149]|0;break}else Aa()}else{k[147]=h&~(1<>2]=o|3;h=f+o|0;k[f+(o|4)>>2]=g|1;k[f+M>>2]=g;if(j){e=k[152]|0;c=j>>>3;b=c<<1;d=628+(b<<2)|0;a=k[147]|0;c=1<>2]|0;if(b>>>0<(k[151]|0)>>>0)Aa();else{l=a;m=b}}else{k[147]=a|c;l=628+(b+2<<2)|0;m=d}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=d}k[149]=g;k[152]=h;M=i;return M|0}a=k[148]|0;if(a){c=(a&0-a)+-1|0;L=c>>>12&16;c=c>>>L;K=c>>>5&8;c=c>>>K;M=c>>>2&4;c=c>>>M;a=c>>>1&2;c=c>>>a;d=c>>>1&1;d=k[892+((K|L|M|a|d)+(c>>>d)<<2)>>2]|0;c=(k[d+4>>2]&-8)-o|0;a=d;while(1){b=k[a+16>>2]|0;if(!b){b=k[a+20>>2]|0;if(!b){i=c;break}}a=(k[b+4>>2]&-8)-o|0;M=a>>>0>>0;c=M?a:c;a=b;d=M?b:d}f=k[151]|0;if(d>>>0>>0)Aa();h=d+o|0;if(d>>>0>=h>>>0)Aa();g=k[d+24>>2]|0;c=k[d+12>>2]|0;do if((c|0)==(d|0)){a=d+20|0;b=k[a>>2]|0;if(!b){a=d+16|0;b=k[a>>2]|0;if(!b){n=0;break}}while(1){c=b+20|0;e=k[c>>2]|0;if(e){b=e;a=c;continue}c=b+16|0;e=k[c>>2]|0;if(!e)break;else{b=e;a=c}}if(a>>>0>>0)Aa();else{k[a>>2]=0;n=b;break}}else{e=k[d+8>>2]|0;if(e>>>0>>0)Aa();b=e+12|0;if((k[b>>2]|0)!=(d|0))Aa();a=c+8|0;if((k[a>>2]|0)==(d|0)){k[b>>2]=c;k[a>>2]=e;n=c;break}else Aa()}while(0);do if(g){b=k[d+28>>2]|0;a=892+(b<<2)|0;if((d|0)==(k[a>>2]|0)){k[a>>2]=n;if(!n){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(d|0))k[b>>2]=n;else k[g+20>>2]=n;if(!n)break}a=k[151]|0;if(n>>>0>>0)Aa();k[n+24>>2]=g;b=k[d+16>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[n+16>>2]=b;k[b+24>>2]=n;break}while(0);b=k[d+20>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[n+20>>2]=b;k[b+24>>2]=n;break}}while(0);if(i>>>0<16){M=i+o|0;k[d+4>>2]=M|3;M=d+(M+4)|0;k[M>>2]=k[M>>2]|1}else{k[d+4>>2]=o|3;k[d+(o|4)>>2]=i|1;k[d+(i+o)>>2]=i;b=k[149]|0;if(b){f=k[152]|0;c=b>>>3;b=c<<1;e=628+(b<<2)|0;a=k[147]|0;c=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{p=b;q=a}}else{k[147]=a|c;p=628+(b+2<<2)|0;q=e}k[p>>2]=f;k[q+12>>2]=f;k[f+8>>2]=q;k[f+12>>2]=e}k[149]=i;k[152]=h}M=d+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=k[148]|0;if(l){c=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;j=14-(p|q|j)+(v<>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;a=k[892+(j<<2)>>2]|0;a:do if(!a){e=0;a=0;v=86}else{g=c;e=0;h=m<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){f=k[i+4>>2]&-8;c=f-m|0;if(c>>>0>>0)if((f|0)==(m|0)){f=i;a=i;v=90;break a}else a=i;else c=g;v=k[i+20>>2]|0;i=k[i+16+(h>>>31<<2)>>2]|0;e=(v|0)==0|(v|0)==(i|0)?e:v;if(!i){v=86;break}else{g=c;h=h<<1}}}while(0);if((v|0)==86){if((e|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;e=a>>>1&1;e=k[892+((l|n|p|q|e)+(a>>>e)<<2)>>2]|0;a=0}if(!e){h=c;i=a}else{f=e;v=90}}if((v|0)==90)while(1){v=0;q=(k[f+4>>2]&-8)-m|0;e=q>>>0>>0;c=e?q:c;a=e?f:a;e=k[f+16>>2]|0;if(e){f=e;v=90;continue}f=k[f+20>>2]|0;if(!f){h=c;i=a;break}else v=90}if((i|0)!=0?h>>>0<((k[149]|0)-m|0)>>>0:0){e=k[151]|0;if(i>>>0>>0)Aa();g=i+m|0;if(i>>>0>=g>>>0)Aa();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;b=k[a>>2]|0;if(!b){a=i+16|0;b=k[a>>2]|0;if(!b){o=0;break}}while(1){c=b+20|0;d=k[c>>2]|0;if(d){b=d;a=c;continue}c=b+16|0;d=k[c>>2]|0;if(!d)break;else{b=d;a=c}}if(a>>>0>>0)Aa();else{k[a>>2]=0;o=b;break}}else{d=k[i+8>>2]|0;if(d>>>0>>0)Aa();b=d+12|0;if((k[b>>2]|0)!=(i|0))Aa();a=c+8|0;if((k[a>>2]|0)==(i|0)){k[b>>2]=c;k[a>>2]=d;o=c;break}else Aa()}while(0);do if(f){b=k[i+28>>2]|0;a=892+(b<<2)|0;if((i|0)==(k[a>>2]|0)){k[a>>2]=o;if(!o){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=f+16|0;if((k[b>>2]|0)==(i|0))k[b>>2]=o;else k[f+20>>2]=o;if(!o)break}a=k[151]|0;if(o>>>0>>0)Aa();k[o+24>>2]=f;b=k[i+16>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[o+16>>2]=b;k[b+24>>2]=o;break}while(0);b=k[i+20>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[o+20>>2]=b;k[b+24>>2]=o;break}}while(0);b:do if(h>>>0>=16){k[i+4>>2]=m|3;k[i+(m|4)>>2]=h|1;k[i+(h+m)>>2]=h;b=h>>>3;if(h>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{s=b;t=a}}else{k[147]=c|b;s=628+(a+2<<2)|0;t=d}k[s>>2]=g;k[t+12>>2]=g;k[i+(m+8)>>2]=t;k[i+(m+12)>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=892+(d<<2)|0;k[i+(m+28)>>2]=d;k[i+(m+20)>>2]=0;k[i+(m+16)>>2]=0;a=k[148]|0;c=1<>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break}b=k[b>>2]|0;c:do if((k[b+4>>2]&-8|0)!=(h|0)){d=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(h|0)){y=c;break c}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break b}}else y=b;while(0);b=y+8|0;a=k[b>>2]|0;M=k[151]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[i+(m+8)>>2]=a;k[i+(m+12)>>2]=y;k[i+(m+24)>>2]=0;break}else Aa()}else{M=h+m|0;k[i+4>>2]=M|3;M=i+(M+4)|0;k[M>>2]=k[M>>2]|1}while(0);M=i+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);c=k[149]|0;if(c>>>0>=q>>>0){b=c-q|0;a=k[152]|0;if(b>>>0>15){k[152]=a+q;k[149]=b;k[a+(q+4)>>2]=b|1;k[a+c>>2]=b;k[a+4>>2]=q|3}else{k[149]=0;k[152]=0;k[a+4>>2]=c|3;M=a+(c+4)|0;k[M>>2]=k[M>>2]|1}M=a+8|0;return M|0}a=k[150]|0;if(a>>>0>q>>>0){L=a-q|0;k[150]=L;M=k[153]|0;k[153]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(k[265]|0)){a=Ma(30)|0;if(!(a+-1&a)){k[267]=a;k[266]=a;k[268]=-1;k[269]=-1;k[270]=0;k[258]=0;y=(Ea(0)|0)&-16^1431655768;k[265]=y;break}else Aa()}while(0);i=q+48|0;h=k[267]|0;j=q+47|0;g=h+j|0;h=0-h|0;l=g&h;if(l>>>0<=q>>>0){M=0;return M|0}a=k[257]|0;if((a|0)!=0?(t=k[255]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(k[258]&4)){a=k[153]|0;e:do if(a){e=1036;while(1){c=k[e>>2]|0;if(c>>>0<=a>>>0?(r=e+4|0,(c+(k[r>>2]|0)|0)>>>0>a>>>0):0){f=e;a=r;break}e=k[e+8>>2]|0;if(!e){v=174;break e}}c=g-(k[150]|0)&h;if(c>>>0<2147483647){e=Da(c|0)|0;y=(e|0)==((k[f>>2]|0)+(k[a>>2]|0)|0);a=y?c:0;if(y){if((e|0)!=(-1|0)){w=e;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){f=Da(0)|0;if((f|0)!=(-1|0)){a=f;c=k[266]|0;e=c+-1|0;if(!(e&a))c=l;else c=l-a+(e+a&0-c)|0;a=k[255]|0;e=a+c|0;if(c>>>0>q>>>0&c>>>0<2147483647){y=k[257]|0;if((y|0)!=0?e>>>0<=a>>>0|e>>>0>y>>>0:0){a=0;break}e=Da(c|0)|0;y=(e|0)==(f|0);a=y?c:0;if(y){w=f;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){f=0-c|0;do if(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))?(u=k[267]|0,u=j-c+u&0-u,u>>>0<2147483647):0)if((Da(u|0)|0)==(-1|0)){Da(f|0)|0;break f}else{c=u+c|0;break}while(0);if((e|0)!=(-1|0)){w=e;p=c;v=194;break d}}while(0);k[258]=k[258]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Da(l|0)|0,x=Da(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(k[255]|0)+p|0;k[255]=a;if(a>>>0>(k[256]|0)>>>0)k[256]=a;g=k[153]|0;g:do if(g){f=1036;do{a=k[f>>2]|0;c=f+4|0;e=k[c>>2]|0;if((w|0)==(a+e|0)){B=a;C=c;D=e;E=f;v=204;break}f=k[f+8>>2]|0}while((f|0)!=0);if(((v|0)==204?(k[E+12>>2]&8|0)==0:0)?g>>>0>>0&g>>>0>=B>>>0:0){k[C>>2]=D+p;M=(k[150]|0)+p|0;L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;k[153]=g+L;k[150]=K;k[g+(L+4)>>2]=K|1;k[g+(M+4)>>2]=40;k[154]=k[269];break}a=k[151]|0;if(w>>>0>>0){k[151]=w;a=w}c=w+p|0;f=1036;while(1){if((k[f>>2]|0)==(c|0)){e=f;c=f;v=212;break}f=k[f+8>>2]|0;if(!f){c=1036;break}}if((v|0)==212)if(!(k[c+12>>2]&8)){k[e>>2]=w;n=c+4|0;k[n>>2]=(k[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;j=w+(p+8)|0;j=(j&7|0)==0?0:0-j&7;b=w+(j+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;k[w+(n+4)>>2]=q|3;h:do if((b|0)!=(g|0)){if((b|0)==(k[152]|0)){M=(k[149]|0)+l|0;k[149]=M;k[152]=o;k[w+(m+4)>>2]=M|1;k[w+(M+m)>>2]=M;break}h=p+4|0;c=k[w+(h+j)>>2]|0;if((c&3|0)==1){i=c&-8;f=c>>>3;i:do if(c>>>0>=256){g=k[w+((j|24)+p)>>2]|0;d=k[w+(p+12+j)>>2]|0;do if((d|0)==(b|0)){e=j|16;d=w+(h+e)|0;c=k[d>>2]|0;if(!c){d=w+(e+p)|0;c=k[d>>2]|0;if(!c){J=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;J=c;break}}else{e=k[w+((j|8)+p)>>2]|0;if(e>>>0>>0)Aa();a=e+12|0;if((k[a>>2]|0)!=(b|0))Aa();c=d+8|0;if((k[c>>2]|0)==(b|0)){k[a>>2]=d;k[c>>2]=e;J=d;break}else Aa()}while(0);if(!g)break;a=k[w+(p+28+j)>>2]|0;c=892+(a<<2)|0;do if((b|0)!=(k[c>>2]|0)){if(g>>>0<(k[151]|0)>>>0)Aa();a=g+16|0;if((k[a>>2]|0)==(b|0))k[a>>2]=J;else k[g+20>>2]=J;if(!J)break i}else{k[c>>2]=J;if(J)break;k[148]=k[148]&~(1<>>0>>0)Aa();k[J+24>>2]=g;b=j|16;a=k[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)Aa();else{k[J+16>>2]=a;k[a+24>>2]=J;break}while(0);b=k[w+(h+b)>>2]|0;if(!b)break;if(b>>>0<(k[151]|0)>>>0)Aa();else{k[J+20>>2]=b;k[b+24>>2]=J;break}}else{d=k[w+((j|8)+p)>>2]|0;e=k[w+(p+12+j)>>2]|0;c=628+(f<<1<<2)|0;do if((d|0)!=(c|0)){if(d>>>0>>0)Aa();if((k[d+12>>2]|0)==(b|0))break;Aa()}while(0);if((e|0)==(d|0)){k[147]=k[147]&~(1<>>0>>0)Aa();a=e+8|0;if((k[a>>2]|0)==(b|0)){F=a;break}Aa()}while(0);k[d+12>>2]=e;k[F>>2]=d}while(0);b=w+((i|j)+p)|0;e=i+l|0}else e=l;b=b+4|0;k[b>>2]=k[b>>2]&-2;k[w+(m+4)>>2]=e|1;k[w+(e+m)>>2]=e;b=e>>>3;if(e>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0>=(k[151]|0)>>>0){K=b;L=a;break}Aa()}while(0);k[K>>2]=o;k[L+12>>2]=o;k[w+(m+8)>>2]=L;k[w+(m+12)>>2]=d;break}b=e>>>8;do if(!b)d=0;else{if(e>>>0>16777215){d=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=e>>>(d+7|0)&1|d<<1}while(0);b=892+(d<<2)|0;k[w+(m+28)>>2]=d;k[w+(m+20)>>2]=0;k[w+(m+16)>>2]=0;a=k[148]|0;c=1<>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break}b=k[b>>2]|0;j:do if((k[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(e|0)){M=c;break j}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=k[b>>2]|0;L=k[151]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){k[a+12>>2]=o;k[b>>2]=o;k[w+(m+8)>>2]=a;k[w+(m+12)>>2]=M;k[w+(m+24)>>2]=0;break}else Aa()}else{M=(k[150]|0)+l|0;k[150]=M;k[153]=o;k[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else c=1036;while(1){a=k[c>>2]|0;if(a>>>0<=g>>>0?(b=k[c+4>>2]|0,d=a+b|0,d>>>0>g>>>0):0)break;c=k[c+8>>2]|0}e=a+(b+-39)|0;a=a+(b+-47+((e&7|0)==0?0:0-e&7))|0;e=g+16|0;a=a>>>0>>0?g:a;b=a+8|0;c=w+8|0;c=(c&7|0)==0?0:0-c&7;M=p+-40-c|0;k[153]=w+c;k[150]=M;k[w+(c+4)>>2]=M|1;k[w+(p+-36)>>2]=40;k[154]=k[269];c=a+4|0;k[c>>2]=27;k[b>>2]=k[259];k[b+4>>2]=k[260];k[b+8>>2]=k[261];k[b+12>>2]=k[262];k[259]=w;k[260]=p;k[262]=0;k[261]=b;b=a+28|0;k[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;k[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(g|0)){f=a-g|0;k[c>>2]=k[c>>2]&-2;k[g+4>>2]=f|1;k[a>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{G=b;H=a}}else{k[147]=c|b;G=628+(a+2<<2)|0;H=d}k[G>>2]=g;k[H+12>>2]=g;k[g+8>>2]=H;k[g+12>>2]=d;break}b=f>>>8;if(b)if(f>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;c=892+(d<<2)|0;k[g+28>>2]=d;k[g+20>>2]=0;k[e>>2]=0;b=k[148]|0;a=1<>2]=g;k[g+24>>2]=c;k[g+12>>2]=g;k[g+8>>2]=g;break}b=k[c>>2]|0;k:do if((k[b+4>>2]&-8|0)!=(f|0)){d=f<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(f|0)){I=c;break k}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=g;k[g+24>>2]=b;k[g+12>>2]=g;k[g+8>>2]=g;break g}}else I=b;while(0);b=I+8|0;a=k[b>>2]|0;M=k[151]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[g+8>>2]=a;k[g+12>>2]=I;k[g+24>>2]=0;break}else Aa()}}else{M=k[151]|0;if((M|0)==0|w>>>0>>0)k[151]=w;k[259]=w;k[260]=p;k[262]=0;k[156]=k[265];k[155]=-1;b=0;do{M=b<<1;L=628+(M<<2)|0;k[628+(M+3<<2)>>2]=L;k[628+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;k[153]=w+M;k[150]=L;k[w+(M+4)>>2]=L|1;k[w+(p+-36)>>2]=40;k[154]=k[269]}while(0);b=k[150]|0;if(b>>>0>q>>>0){L=b-q|0;k[150]=L;M=k[153]|0;k[153]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}}M=mc()|0;k[M>>2]=12;M=0;return M|0}function Sc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;h=k[151]|0;if(b>>>0>>0)Aa();c=k[a+-4>>2]|0;d=c&3;if((d|0)==1)Aa();o=c&-8;q=a+(o+-8)|0;do if(!(c&1)){b=k[b>>2]|0;if(!d)return;i=-8-b|0;l=a+i|0;m=b+o|0;if(l>>>0>>0)Aa();if((l|0)==(k[152]|0)){b=a+(o+-4)|0;c=k[b>>2]|0;if((c&3|0)!=3){u=l;f=m;break}k[149]=m;k[b>>2]=c&-2;k[a+(i+4)>>2]=m|1;k[q>>2]=m;return}e=b>>>3;if(b>>>0<256){d=k[a+(i+8)>>2]|0;c=k[a+(i+12)>>2]|0;b=628+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0>>0)Aa();if((k[d+12>>2]|0)!=(l|0))Aa()}if((c|0)==(d|0)){k[147]=k[147]&~(1<>>0>>0)Aa();b=c+8|0;if((k[b>>2]|0)==(l|0))g=b;else Aa()}else g=c+8|0;k[d+12>>2]=c;k[g>>2]=d;u=l;f=m;break}g=k[a+(i+24)>>2]|0;d=k[a+(i+12)>>2]|0;do if((d|0)==(l|0)){c=a+(i+20)|0;b=k[c>>2]|0;if(!b){c=a+(i+16)|0;b=k[c>>2]|0;if(!b){j=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0>>0)Aa();else{k[c>>2]=0;j=b;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Aa();b=e+12|0;if((k[b>>2]|0)!=(l|0))Aa();c=d+8|0;if((k[c>>2]|0)==(l|0)){k[b>>2]=d;k[c>>2]=e;j=d;break}else Aa()}while(0);if(g){b=k[a+(i+28)>>2]|0;c=892+(b<<2)|0;if((l|0)==(k[c>>2]|0)){k[c>>2]=j;if(!j){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(l|0))k[b>>2]=j;else k[g+20>>2]=j;if(!j){u=l;f=m;break}}c=k[151]|0;if(j>>>0>>0)Aa();k[j+24>>2]=g;b=k[a+(i+16)>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[j+16>>2]=b;k[b+24>>2]=j;break}while(0);b=k[a+(i+20)>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[j+20>>2]=b;k[b+24>>2]=j;u=l;f=m;break}else{u=l;f=m}}else{u=l;f=m}}else{u=b;f=o}while(0);if(u>>>0>=q>>>0)Aa();b=a+(o+-4)|0;c=k[b>>2]|0;if(!(c&1))Aa();if(!(c&2)){if((q|0)==(k[153]|0)){t=(k[150]|0)+f|0;k[150]=t;k[153]=u;k[u+4>>2]=t|1;if((u|0)!=(k[152]|0))return;k[152]=0;k[149]=0;return}if((q|0)==(k[152]|0)){t=(k[149]|0)+f|0;k[149]=t;k[152]=u;k[u+4>>2]=t|1;k[u+t>>2]=t;return}f=(c&-8)+f|0;e=c>>>3;do if(c>>>0>=256){g=k[a+(o+16)>>2]|0;b=k[a+(o|4)>>2]|0;do if((b|0)==(q|0)){c=a+(o+12)|0;b=k[c>>2]|0;if(!b){c=a+(o+8)|0;b=k[c>>2]|0;if(!b){p=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<(k[151]|0)>>>0)Aa();else{k[c>>2]=0;p=b;break}}else{c=k[a+o>>2]|0;if(c>>>0<(k[151]|0)>>>0)Aa();d=c+12|0;if((k[d>>2]|0)!=(q|0))Aa();e=b+8|0;if((k[e>>2]|0)==(q|0)){k[d>>2]=b;k[e>>2]=c;p=b;break}else Aa()}while(0);if(g){b=k[a+(o+20)>>2]|0;c=892+(b<<2)|0;if((q|0)==(k[c>>2]|0)){k[c>>2]=p;if(!p){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(q|0))k[b>>2]=p;else k[g+20>>2]=p;if(!p)break}c=k[151]|0;if(p>>>0>>0)Aa();k[p+24>>2]=g;b=k[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[p+16>>2]=b;k[b+24>>2]=p;break}while(0);b=k[a+(o+12)>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[p+20>>2]=b;k[b+24>>2]=p;break}}}else{d=k[a+o>>2]|0;c=k[a+(o|4)>>2]|0;b=628+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0<(k[151]|0)>>>0)Aa();if((k[d+12>>2]|0)!=(q|0))Aa()}if((c|0)==(d|0)){k[147]=k[147]&~(1<>>0<(k[151]|0)>>>0)Aa();b=c+8|0;if((k[b>>2]|0)==(q|0))n=b;else Aa()}else n=c+8|0;k[d+12>>2]=c;k[n>>2]=d}while(0);k[u+4>>2]=f|1;k[u+f>>2]=f;if((u|0)==(k[152]|0)){k[149]=f;return}}else{k[b>>2]=c&-2;k[u+4>>2]=f|1;k[u+f>>2]=f}b=f>>>3;if(f>>>0<256){c=b<<1;e=628+(c<<2)|0;d=k[147]|0;b=1<>2]|0;if(c>>>0<(k[151]|0)>>>0)Aa();else{r=b;s=c}}else{k[147]=d|b;r=628+(c+2<<2)|0;s=e}k[r>>2]=u;k[s+12>>2]=u;k[u+8>>2]=s;k[u+12>>2]=e;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;e=14-(q|r|e)+(s<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=892+(e<<2)|0;k[u+28>>2]=e;k[u+20>>2]=0;k[u+16>>2]=0;c=k[148]|0;d=1<>2]|0;b:do if((k[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){c=b+16+(e>>>31<<2)|0;d=k[c>>2]|0;if(!d)break;if((k[d+4>>2]&-8|0)==(f|0)){t=d;break b}else{e=e<<1;b=d}}if(c>>>0<(k[151]|0)>>>0)Aa();else{k[c>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;c=k[b>>2]|0;s=k[151]|0;if(c>>>0>=s>>>0&t>>>0>=s>>>0){k[c+12>>2]=u;k[b>>2]=u;k[u+8>>2]=c;k[u+12>>2]=t;k[u+24>>2]=0;break}else Aa()}else{k[148]=c|d;k[b>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u}while(0);u=(k[155]|0)+-1|0;k[155]=u;if(!u)b=1044;else return;while(1){b=k[b>>2]|0;if(!b)break;else b=b+8|0}k[155]=-1;return}function Tc(a,b){a=a|0;b=b|0;var c=0,d=0;if(!a){a=Rc(b)|0;return a|0}if(b>>>0>4294967231){a=mc()|0;k[a>>2]=12;a=0;return a|0}c=Vc(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(c){a=c+8|0;return a|0}c=Rc(b)|0;if(!c){a=0;return a|0}d=k[a+-4>>2]|0;d=(d&-8)-((d&3|0)==0?8:4)|0;bd(c|0,a|0,(d>>>0>>0?d:b)|0)|0;Sc(a);a=c;return a|0}function Uc(a){a=a|0;var b=0;if(!a){b=0;return b|0}a=k[a+-4>>2]|0;b=a&3;if((b|0)==1){b=0;return b|0}b=(a&-8)-((b|0)==0?8:4)|0;return b|0}function Vc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=k[o>>2]|0;i=p&-8;l=a+i|0;h=k[151]|0;c=p&3;if(!((c|0)!=1&a>>>0>=h>>>0&a>>>0>>0))Aa();d=a+(i|4)|0;e=k[d>>2]|0;if(!(e&1))Aa();if(!c){if(b>>>0<256){a=0;return a|0}if(i>>>0>=(b+4|0)>>>0?(i-b|0)>>>0<=k[267]<<1>>>0:0)return a|0;a=0;return a|0}if(i>>>0>=b>>>0){c=i-b|0;if(c>>>0<=15)return a|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|3;k[d>>2]=k[d>>2]|1;Wc(a+b|0,c);return a|0}if((l|0)==(k[153]|0)){c=(k[150]|0)+i|0;if(c>>>0<=b>>>0){a=0;return a|0}n=c-b|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|1;k[153]=a+b;k[150]=n;return a|0}if((l|0)==(k[152]|0)){d=(k[149]|0)+i|0;if(d>>>0>>0){a=0;return a|0}c=d-b|0;if(c>>>0>15){k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|1;k[a+d>>2]=c;d=a+(d+4)|0;k[d>>2]=k[d>>2]&-2;d=a+b|0}else{k[o>>2]=p&1|d|2;d=a+(d+4)|0;k[d>>2]=k[d>>2]|1;d=0;c=0}k[149]=c;k[152]=d;return a|0}if(e&2){a=0;return a|0}m=(e&-8)+i|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;f=e>>>3;do if(e>>>0>=256){g=k[a+(i+24)>>2]|0;f=k[a+(i+12)>>2]|0;do if((f|0)==(l|0)){d=a+(i+20)|0;c=k[d>>2]|0;if(!c){d=a+(i+16)|0;c=k[d>>2]|0;if(!c){j=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;j=c;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Aa();c=e+12|0;if((k[c>>2]|0)!=(l|0))Aa();d=f+8|0;if((k[d>>2]|0)==(l|0)){k[c>>2]=f;k[d>>2]=e;j=f;break}else Aa()}while(0);if(g){c=k[a+(i+28)>>2]|0;d=892+(c<<2)|0;if((l|0)==(k[d>>2]|0)){k[d>>2]=j;if(!j){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=g+16|0;if((k[c>>2]|0)==(l|0))k[c>>2]=j;else k[g+20>>2]=j;if(!j)break}d=k[151]|0;if(j>>>0>>0)Aa();k[j+24>>2]=g;c=k[a+(i+16)>>2]|0;do if(c)if(c>>>0>>0)Aa();else{k[j+16>>2]=c;k[c+24>>2]=j;break}while(0);c=k[a+(i+20)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[j+20>>2]=c;k[c+24>>2]=j;break}}}else{e=k[a+(i+8)>>2]|0;d=k[a+(i+12)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(l|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(l|0))g=c;else Aa()}else g=d+8|0;k[e+12>>2]=d;k[g>>2]=e}while(0);if(n>>>0<16){k[o>>2]=m|p&1|2;b=a+(m|4)|0;k[b>>2]=k[b>>2]|1;return a|0}else{k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|3;p=a+(m|4)|0;k[p>>2]=k[p>>2]|1;Wc(a+b|0,n);return a|0}return 0}function Wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;c=k[a+4>>2]|0;do if(!(c&1)){j=k[a>>2]|0;if(!(c&3))return;n=a+(0-j)|0;m=j+b|0;i=k[151]|0;if(n>>>0>>0)Aa();if((n|0)==(k[152]|0)){d=a+(b+4)|0;c=k[d>>2]|0;if((c&3|0)!=3){t=n;g=m;break}k[149]=m;k[d>>2]=c&-2;k[a+(4-j)>>2]=m|1;k[q>>2]=m;return}f=j>>>3;if(j>>>0<256){e=k[a+(8-j)>>2]|0;d=k[a+(12-j)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(n|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(n|0))h=c;else Aa()}else h=d+8|0;k[e+12>>2]=d;k[h>>2]=e;t=n;g=m;break}h=k[a+(24-j)>>2]|0;e=k[a+(12-j)>>2]|0;do if((e|0)==(n|0)){e=16-j|0;d=a+(e+4)|0;c=k[d>>2]|0;if(!c){d=a+e|0;c=k[d>>2]|0;if(!c){l=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;l=c;break}}else{f=k[a+(8-j)>>2]|0;if(f>>>0>>0)Aa();c=f+12|0;if((k[c>>2]|0)!=(n|0))Aa();d=e+8|0;if((k[d>>2]|0)==(n|0)){k[c>>2]=e;k[d>>2]=f;l=e;break}else Aa()}while(0);if(h){c=k[a+(28-j)>>2]|0;d=892+(c<<2)|0;if((n|0)==(k[d>>2]|0)){k[d>>2]=l;if(!l){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=h+16|0;if((k[c>>2]|0)==(n|0))k[c>>2]=l;else k[h+20>>2]=l;if(!l){t=n;g=m;break}}e=k[151]|0;if(l>>>0>>0)Aa();k[l+24>>2]=h;c=16-j|0;d=k[a+c>>2]|0;do if(d)if(d>>>0>>0)Aa();else{k[l+16>>2]=d;k[d+24>>2]=l;break}while(0);c=k[a+(c+4)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[l+20>>2]=c;k[c+24>>2]=l;t=n;g=m;break}else{t=n;g=m}}else{t=n;g=m}}else{t=a;g=b}while(0);i=k[151]|0;if(q>>>0>>0)Aa();c=a+(b+4)|0;d=k[c>>2]|0;if(!(d&2)){if((q|0)==(k[153]|0)){s=(k[150]|0)+g|0;k[150]=s;k[153]=t;k[t+4>>2]=s|1;if((t|0)!=(k[152]|0))return;k[152]=0;k[149]=0;return}if((q|0)==(k[152]|0)){s=(k[149]|0)+g|0;k[149]=s;k[152]=t;k[t+4>>2]=s|1;k[t+s>>2]=s;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=k[a+(b+24)>>2]|0;e=k[a+(b+12)>>2]|0;do if((e|0)==(q|0)){d=a+(b+20)|0;c=k[d>>2]|0;if(!c){d=a+(b+16)|0;c=k[d>>2]|0;if(!c){p=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;p=c;break}}else{f=k[a+(b+8)>>2]|0;if(f>>>0>>0)Aa();c=f+12|0;if((k[c>>2]|0)!=(q|0))Aa();d=e+8|0;if((k[d>>2]|0)==(q|0)){k[c>>2]=e;k[d>>2]=f;p=e;break}else Aa()}while(0);if(h){c=k[a+(b+28)>>2]|0;d=892+(c<<2)|0;if((q|0)==(k[d>>2]|0)){k[d>>2]=p;if(!p){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=h+16|0;if((k[c>>2]|0)==(q|0))k[c>>2]=p;else k[h+20>>2]=p;if(!p)break}d=k[151]|0;if(p>>>0>>0)Aa();k[p+24>>2]=h;c=k[a+(b+16)>>2]|0;do if(c)if(c>>>0>>0)Aa();else{k[p+16>>2]=c;k[c+24>>2]=p;break}while(0);c=k[a+(b+20)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[p+20>>2]=c;k[c+24>>2]=p;break}}}else{e=k[a+(b+8)>>2]|0;d=k[a+(b+12)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(q|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(q|0))o=c;else Aa()}else o=d+8|0;k[e+12>>2]=d;k[o>>2]=e}while(0);k[t+4>>2]=g|1;k[t+g>>2]=g;if((t|0)==(k[152]|0)){k[149]=g;return}}else{k[c>>2]=d&-2;k[t+4>>2]=g|1;k[t+g>>2]=g}c=g>>>3;if(g>>>0<256){d=c<<1;f=628+(d<<2)|0;e=k[147]|0;c=1<>2]|0;if(d>>>0<(k[151]|0)>>>0)Aa();else{r=c;s=d}}else{k[147]=e|c;r=628+(d+2<<2)|0;s=f}k[r>>2]=t;k[s+12>>2]=t;k[t+8>>2]=s;k[t+12>>2]=f;return}c=g>>>8;if(c)if(g>>>0>16777215)f=31;else{r=(c+1048320|0)>>>16&8;s=c<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;c=892+(f<<2)|0;k[t+28>>2]=f;k[t+20>>2]=0;k[t+16>>2]=0;d=k[148]|0;e=1<>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}c=k[c>>2]|0;a:do if((k[c+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=c+16+(f>>>31<<2)|0;e=k[d>>2]|0;if(!e)break;if((k[e+4>>2]&-8|0)==(g|0)){c=e;break a}else{f=f<<1;c=e}}if(d>>>0<(k[151]|0)>>>0)Aa();k[d>>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}while(0);d=c+8|0;e=k[d>>2]|0;s=k[151]|0;if(!(e>>>0>=s>>>0&c>>>0>=s>>>0))Aa();k[e+12>>2]=t;k[d>>2]=t;k[t+8>>2]=e;k[t+12>>2]=c;k[t+24>>2]=0;return}function Xc(){}function Yc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (L=d,a-c>>>0|0)|0}function Zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (L=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function _c(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function $c(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>>c;return a>>>c|(b&(1<>>c-32|0}function ad(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b<>>32-c;return a<=4096)return Ha(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function cd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>c;return a>>>c|(b&(1<>c-32|0}function dd(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return (i[v+(a>>>24)>>0]|0)+24|0}function ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ha(e,f)|0;d=a>>>16;a=(c>>>16)+(ha(e,d)|0)|0;e=b>>>16;b=ha(e,f)|0;return (L=(a>>>16)+(ha(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function fd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=Yc(j^a,i^b,j,i)|0;g=L;a=f^j;b=e^i;return Yc((kd(h,g,Yc(f^c,e^d,f,e)|0,L,0)|0)^a,L^b,a,b)|0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=Yc(g^a,f^b,g,f)|0;b=L;kd(a,b,Yc(j^c,i^d,j,i)|0,L,h)|0;d=Yc(k[h>>2]^g,k[h+4>>2]^f,g,f)|0;c=L;r=e;return (L=c,d)|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=ed(e,f)|0;a=L;return (L=(ha(b,f)|0)+(ha(d,e)|0)+a|a&0,c|0|0)|0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return kd(a,b,c,d,0)|0}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;kd(a,b,c,d,e)|0;r=f;return (L=k[e+4>>2]|0,k[e>>2]|0)|0}function kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return (L=n,e)|0}else{if(!f){n=0;e=0;return (L=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return (L=n,e)|0}}f=(h|0)==0;do if(g){if(!f){f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<>>(m>>>0)&b;f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return (L=n,e)|0}f=g-1|0;if(f&g){h=(ja(g|0)|0)+33-(ja(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<>>(o>>>0))&i|l<>31;break}if(e){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return (L=o,p)|0}else{p=dd(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return (L=o,p)|0}}else{if(f){if(e){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return (L=o,p)|0}if(!l){if(e){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return (L=o,p)|0}f=h-1|0;if(!(f&h)){if(e){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((dd(h|0)|0)>>>0);return (L=o,p)|0}f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return (L=o,p)|0}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=Zc(m|0,l|0,-1,-1)|0;c=L;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;Yc(j,c,d,n)|0;p=L;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=Yc(d,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=L;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return (L=o,p)|0}function ld(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ra[a&7](b|0,c|0,d|0)|0}function md(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Sa[a&3](b|0,c|0,d|0,e|0,f|0)}function nd(a,b){a=a|0;b=b|0;Ta[a&7](b|0)}function od(a,b){a=a|0;b=b|0;return Ua[a&1](b|0)|0}function pd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Va[a&0](b|0,c|0,d|0)}function qd(a){a=a|0;Wa[a&3]()}function rd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Xa[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function sd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ya[a&3](b|0,c|0,d|0,e|0)}function td(a,b,c){a=a|0;b=b|0;c=c|0;ka(0);return 0}function ud(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ka(1)}function vd(a){a=a|0;ka(2)}function wd(a){a=a|0;ka(3);return 0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;ka(4)}function yd(){ka(5)}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ka(6)}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(7)} + function Za(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function _a(){return r|0}function $a(a){a=a|0;r=a}function ab(a,b){a=a|0;b=b|0;r=a;s=b}function bb(a,b){a=a|0;b=b|0;if(!w){w=a;x=b}}function cb(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function db(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function eb(a){a=a|0;L=a}function fb(){return L|0}function gb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+576|0;l=o+48|0;h=o+32|0;g=o+16|0;f=o;j=o+64|0;m=o+60|0;i=a+4|0;n=a+8|0;if((k[i>>2]|0)>>>0>(k[n>>2]|0)>>>0){k[f>>2]=1138;k[f+4>>2]=2119;k[f+8>>2]=1117;yc(j,1084,f)|0;xc(j)|0}if((2147418112/(d>>>0)|0)>>>0<=b>>>0){k[g>>2]=1138;k[g+4>>2]=2120;k[g+8>>2]=1157;yc(j,1084,g)|0;xc(j)|0}g=k[n>>2]|0;if(g>>>0>=b>>>0){n=1;r=o;return n|0}do if(c){if(b){f=b+-1|0;if(!(f&b)){f=11;break}else b=f}else b=-1;b=b>>>16|b;b=b>>>8|b;b=b>>>4|b;b=b>>>2|b;b=(b>>>1|b)+1|0;f=10}else f=10;while(0);if((f|0)==10)if(!b){b=0;f=12}else f=11;if((f|0)==11)if(b>>>0<=g>>>0)f=12;if((f|0)==12){k[h>>2]=1138;k[h+4>>2]=2129;k[h+8>>2]=1205;yc(j,1084,h)|0;xc(j)|0}c=ha(b,d)|0;do if(!e){f=hb(k[a>>2]|0,c,m,1)|0;if(!f){n=0;r=o;return n|0}else{k[a>>2]=f;break}}else{g=ib(c,m)|0;if(!g){n=0;r=o;return n|0}Va[e&0](g,k[a>>2]|0,k[i>>2]|0);f=k[a>>2]|0;do if(f)if(!(f&7)){kb(f,0,0,1,0)|0;break}else{k[l>>2]=1138;k[l+4>>2]=2502;k[l+8>>2]=1504;yc(j,1084,l)|0;xc(j)|0;break}while(0);k[a>>2]=g}while(0);f=k[m>>2]|0;if(f>>>0>c>>>0)b=(f>>>0)/(d>>>0)|0;k[n>>2]=b;n=1;r=o;return n|0}function hb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+560|0;i=j+32|0;f=j+16|0;e=j;h=j+48|0;g=j+44|0;if(a&7){k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1482;yc(h,1084,e)|0;xc(h)|0;i=0;r=j;return i|0}if(b>>>0>2147418112){k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1375;yc(h,1084,f)|0;xc(h)|0;i=0;r=j;return i|0}k[g>>2]=b;d=kb(a,b,g,d,0)|0;if(c)k[c>>2]=k[g>>2];if(!(d&7)){i=d;r=j;return i|0}k[i>>2]=1138;k[i+4>>2]=2554;k[i+8>>2]=1428;yc(h,1084,i)|0;xc(h)|0;i=d;r=j;return i|0}function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+560|0;h=i+32|0;g=i+16|0;c=i;f=i+48|0;e=i+44|0;d=a+3&-4;d=(d|0)!=0?d:4;if(d>>>0>2147418112){k[c>>2]=1138;k[c+4>>2]=2502;k[c+8>>2]=1375;yc(f,1084,c)|0;xc(f)|0;h=0;r=i;return h|0}k[e>>2]=d;c=kb(0,d,e,1,0)|0;a=k[e>>2]|0;if(b)k[b>>2]=a;if((c|0)==0|a>>>0>>0){k[g>>2]=1138;k[g+4>>2]=2502;k[g+8>>2]=1401;yc(f,1084,g)|0;xc(f)|0;h=0;r=i;return h|0}if(!(c&7)){h=c;r=i;return h|0}k[h>>2]=1138;k[h+4>>2]=2529;k[h+8>>2]=1428;yc(f,1084,h)|0;xc(f)|0;h=c;r=i;return h|0}function jb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=r;r=r+880|0;I=L+144|0;H=L+128|0;G=L+112|0;F=L+96|0;C=L+80|0;w=L+64|0;u=L+48|0;v=L+32|0;q=L+16|0;p=L;E=L+360|0;J=L+296|0;K=L+224|0;t=L+156|0;if((b|0)==0|d>>>0>11){a=0;r=L;return a|0}k[a>>2]=b;e=K;f=e+68|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(f|0));f=0;do{e=i[c+f>>0]|0;if(e<<24>>24){D=K+((e&255)<<2)|0;k[D>>2]=(k[D>>2]|0)+1}f=f+1|0}while((f|0)!=(b|0));f=0;o=1;g=0;h=-1;n=0;while(1){e=k[K+(o<<2)>>2]|0;if(!e)k[a+28+(o+-1<<2)>>2]=0;else{D=o+-1|0;k[J+(D<<2)>>2]=f;f=e+f|0;B=16-o|0;k[a+28+(D<<2)>>2]=(f+-1<>2]=n;k[t+(o<<2)>>2]=n;g=g>>>0>o>>>0?g:o;h=h>>>0>>0?h:o;n=e+n|0}o=o+1|0;if((o|0)==17){D=g;break}else f=f<<1}k[a+4>>2]=n;f=a+172|0;do if(n>>>0>(k[f>>2]|0)>>>0){k[f>>2]=n;if(n){e=n+-1|0;if(e&n)s=14}else{e=-1;s=14}if((s|0)==14){B=e>>>16|e;B=B>>>8|B;B=B>>>4|B;B=B>>>2|B;B=(B>>>1|B)+1|0;k[f>>2]=B>>>0>b>>>0?b:B}g=a+176|0;e=k[g>>2]|0;do if(e){B=k[e+-4>>2]|0;e=e+-8|0;if(!((B|0)!=0?(B|0)==(~k[e>>2]|0):0)){k[p>>2]=1138;k[p+4>>2]=647;k[p+8>>2]=1851;yc(E,1084,p)|0;xc(E)|0}if(!(e&7)){kb(e,0,0,1,0)|0;break}else{k[q>>2]=1138;k[q+4>>2]=2502;k[q+8>>2]=1504;yc(E,1084,q)|0;xc(E)|0;break}}while(0);f=k[f>>2]|0;f=(f|0)!=0?f:1;e=ib((f<<1)+8|0,0)|0;if(!e){k[g>>2]=0;e=0;break}else{k[e+4>>2]=f;k[e>>2]=~f;k[g>>2]=e+8;s=25;break}}else s=25;while(0);a:do if((s|0)==25){B=a+24|0;i[B>>0]=h;i[a+25>>0]=D;f=a+176|0;g=0;do{A=i[c+g>>0]|0;e=A&255;if(A<<24>>24){if(!(k[K+(e<<2)>>2]|0)){k[v>>2]=1138;k[v+4>>2]=2272;k[v+8>>2]=1249;yc(E,1084,v)|0;xc(E)|0}A=t+(e<<2)|0;e=k[A>>2]|0;k[A>>2]=e+1;if(e>>>0>=n>>>0){k[u>>2]=1138;k[u+4>>2]=2276;k[u+8>>2]=1262;yc(E,1084,u)|0;xc(E)|0}j[(k[f>>2]|0)+(e<<1)>>1]=g}g=g+1|0}while((g|0)!=(b|0));e=i[B>>0]|0;z=(e&255)>>>0>>0?d:0;A=a+8|0;k[A>>2]=z;y=(z|0)!=0;if(y){x=1<>>0>(k[e>>2]|0)>>>0){k[e>>2]=x;g=a+168|0;e=k[g>>2]|0;do if(e){v=k[e+-4>>2]|0;e=e+-8|0;if(!((v|0)!=0?(v|0)==(~k[e>>2]|0):0)){k[w>>2]=1138;k[w+4>>2]=647;k[w+8>>2]=1851;yc(E,1084,w)|0;xc(E)|0}if(!(e&7)){kb(e,0,0,1,0)|0;break}else{k[C>>2]=1138;k[C+4>>2]=2502;k[C+8>>2]=1504;yc(E,1084,C)|0;xc(E)|0;break}}while(0);e=x<<2;f=ib(e+8|0,0)|0;if(!f){k[g>>2]=0;e=0;break a}else{C=f+8|0;k[f+4>>2]=x;k[f>>2]=~x;k[g>>2]=C;f=C;break}}else{f=a+168|0;e=x<<2;g=f;f=k[f>>2]|0}while(0);$c(f|0,-1,e|0)|0;t=a+176|0;w=1;do{if(k[K+(w<<2)>>2]|0){u=z-w|0;v=1<>2]|0;if(f>>>0>=16){k[F>>2]=1138;k[F+4>>2]=1956;k[F+8>>2]=1725;yc(E,1084,F)|0;xc(E)|0}e=k[a+28+(f<<2)>>2]|0;if(!e)b=-1;else b=(e+-1|0)>>>(16-w|0);if(h>>>0<=b>>>0){q=(k[a+96+(f<<2)>>2]|0)-h|0;s=w<<16;do{e=m[(k[t>>2]|0)+(q+h<<1)>>1]|0;if((l[c+e>>0]|0|0)!=(w|0)){k[G>>2]=1138;k[G+4>>2]=2318;k[G+8>>2]=1291;yc(E,1084,G)|0;xc(E)|0}p=h<>>0>=x>>>0){k[H>>2]=1138;k[H+4>>2]=2324;k[H+8>>2]=1325;yc(E,1084,H)|0;xc(E)|0}e=k[g>>2]|0;if((k[e+(n<<2)>>2]|0)!=-1){k[I>>2]=1138;k[I+4>>2]=2326;k[I+8>>2]=1348;yc(E,1084,I)|0;xc(E)|0;e=k[g>>2]|0}k[e+(n<<2)>>2]=f;o=o+1|0}while(o>>>0>>0);h=h+1|0}while(h>>>0<=b>>>0)}}w=w+1|0}while(z>>>0>=w>>>0);e=i[B>>0]|0}f=a+96|0;k[f>>2]=(k[f>>2]|0)-(k[J>>2]|0);f=a+100|0;k[f>>2]=(k[f>>2]|0)-(k[J+4>>2]|0);f=a+104|0;k[f>>2]=(k[f>>2]|0)-(k[J+8>>2]|0);f=a+108|0;k[f>>2]=(k[f>>2]|0)-(k[J+12>>2]|0);f=a+112|0;k[f>>2]=(k[f>>2]|0)-(k[J+16>>2]|0);f=a+116|0;k[f>>2]=(k[f>>2]|0)-(k[J+20>>2]|0);f=a+120|0;k[f>>2]=(k[f>>2]|0)-(k[J+24>>2]|0);f=a+124|0;k[f>>2]=(k[f>>2]|0)-(k[J+28>>2]|0);f=a+128|0;k[f>>2]=(k[f>>2]|0)-(k[J+32>>2]|0);f=a+132|0;k[f>>2]=(k[f>>2]|0)-(k[J+36>>2]|0);f=a+136|0;k[f>>2]=(k[f>>2]|0)-(k[J+40>>2]|0);f=a+140|0;k[f>>2]=(k[f>>2]|0)-(k[J+44>>2]|0);f=a+144|0;k[f>>2]=(k[f>>2]|0)-(k[J+48>>2]|0);f=a+148|0;k[f>>2]=(k[f>>2]|0)-(k[J+52>>2]|0);f=a+152|0;k[f>>2]=(k[f>>2]|0)-(k[J+56>>2]|0);f=a+156|0;k[f>>2]=(k[f>>2]|0)-(k[J+60>>2]|0);f=a+16|0;k[f>>2]=0;g=a+20|0;k[g>>2]=e&255;b:do if(y){while(1){if(!d)break b;e=d+-1|0;if(!(k[K+(d<<2)>>2]|0))d=e;else break}k[f>>2]=k[a+28+(e<<2)>>2];e=z+1|0;k[g>>2]=e;if(e>>>0<=D>>>0){while(1){if(k[K+(e<<2)>>2]|0)break;e=e+1|0;if(e>>>0>D>>>0)break b}k[g>>2]=e}}while(0);k[a+92>>2]=-1;k[a+160>>2]=1048575;k[a+12>>2]=32-(k[A>>2]|0);e=1}while(0);a=e;r=L;return a|0}function kb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;do if(!a){d=Sc(b)|0;if(c){if(!d)a=0;else a=Vc(d)|0;k[c>>2]=a}}else{if(!b){Tc(a);if(!c){d=0;break}k[c>>2]=0;d=0;break}if(d){d=Uc(a,b)|0;a=(d|0)==0?a:d}else d=0;if(c){b=Vc(a)|0;k[c>>2]=b}}while(0);return d|0}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!((a|0)!=0&b>>>0>73&(c|0)!=0)){c=0;return c|0}if((k[c>>2]|0)!=40|b>>>0<74){c=0;return c|0}if(((l[a>>0]|0)<<8|(l[a+1>>0]|0)|0)!=18552){c=0;return c|0}if(((l[a+2>>0]|0)<<8|(l[a+3>>0]|0))>>>0<74){c=0;return c|0}if(((l[a+7>>0]|0)<<16|(l[a+6>>0]|0)<<24|(l[a+8>>0]|0)<<8|(l[a+9>>0]|0))>>>0>b>>>0){c=0;return c|0}k[c+4>>2]=(l[a+12>>0]|0)<<8|(l[a+13>>0]|0);k[c+8>>2]=(l[a+14>>0]|0)<<8|(l[a+15>>0]|0);k[c+12>>2]=l[a+16>>0];k[c+16>>2]=l[a+17>>0];b=a+18|0;d=c+32|0;k[d>>2]=l[b>>0];k[d+4>>2]=0;b=i[b>>0]|0;k[c+20>>2]=b<<24>>24==0|b<<24>>24==9?8:16;k[c+24>>2]=(l[a+26>>0]|0)<<16|(l[a+25>>0]|0)<<24|(l[a+27>>0]|0)<<8|(l[a+28>>0]|0);k[c+28>>2]=(l[a+30>>0]|0)<<16|(l[a+29>>0]|0)<<24|(l[a+31>>0]|0)<<8|(l[a+32>>0]|0);c=1;return c|0}function mb(a){a=a|0;Oa(a|0)|0;Sb()}function nb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;f=r;r=r+528|0;e=f;d=f+16|0;b=k[a+20>>2]|0;if(b)ob(b);b=a+4|0;c=k[b>>2]|0;if(!c){e=a+16|0;i[e>>0]=0;r=f;return}if(!(c&7))kb(c,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;yc(d,1084,e)|0;xc(d)|0}k[b>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;e=a+16|0;i[e>>0]=0;r=f;return}function ob(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=r;r=r+592|0;g=i+64|0;f=i+48|0;h=i+32|0;d=i+16|0;c=i;e=i+80|0;if(!a){r=i;return}b=k[a+168>>2]|0;do if(b){j=k[b+-4>>2]|0;b=b+-8|0;if(!((j|0)!=0?(j|0)==(~k[b>>2]|0):0)){k[c>>2]=1138;k[c+4>>2]=647;k[c+8>>2]=1851;yc(e,1084,c)|0;xc(e)|0}if(!(b&7)){kb(b,0,0,1,0)|0;break}else{k[d>>2]=1138;k[d+4>>2]=2502;k[d+8>>2]=1504;yc(e,1084,d)|0;xc(e)|0;break}}while(0);b=k[a+176>>2]|0;do if(b){j=k[b+-4>>2]|0;b=b+-8|0;if(!((j|0)!=0?(j|0)==(~k[b>>2]|0):0)){k[h>>2]=1138;k[h+4>>2]=647;k[h+8>>2]=1851;yc(e,1084,h)|0;xc(e)|0}if(!(b&7)){kb(b,0,0,1,0)|0;break}else{k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1504;yc(e,1084,f)|0;xc(e)|0;break}}while(0);if(!(a&7)){kb(a,0,0,1,0)|0;r=i;return}else{k[g>>2]=1138;k[g+4>>2]=2502;k[g+8>>2]=1504;yc(e,1084,g)|0;xc(e)|0;r=i;return}}function pb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+544|0;g=i+16|0;b=i;f=i+32|0;e=a+8|0;c=k[e>>2]|0;if((c+-1|0)>>>0>=8192){k[b>>2]=1138;k[b+4>>2]=3002;k[b+8>>2]=1529;yc(f,1084,b)|0;xc(f)|0}k[a>>2]=c;d=a+20|0;b=k[d>>2]|0;if(!b){b=ib(180,0)|0;if(!b)b=0;else{h=b+164|0;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;k[h+12>>2]=0}k[d>>2]=b;h=k[a>>2]|0}else h=c;if(!(k[e>>2]|0)){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;yc(f,1084,g)|0;xc(f)|0;g=k[a>>2]|0}else g=h;f=k[a+4>>2]|0;if(g>>>0>16){d=g;c=0}else{a=0;a=jb(b,h,f,a)|0;r=i;return a|0}while(1){e=c+1|0;if(d>>>0>3){d=d>>>1;c=e}else{d=e;break}}a=c+2+((d|0)!=32&1<>>0>>0&1)|0;a=a>>>0<11?a&255:11;a=jb(b,h,f,a)|0;r=i;return a|0}function qb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=r;r=r+720|0;z=E+160|0;y=E+144|0;x=E+128|0;w=E+112|0;v=E+96|0;u=E+80|0;t=E+64|0;s=E+48|0;n=E+32|0;h=E+16|0;e=E;C=E+200|0;D=E+176|0;A=rb(a,14)|0;if(!A){k[b>>2]=0;c=b+4|0;d=k[c>>2]|0;if(d){if(!(d&7))kb(d,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;yc(C,1084,e)|0;xc(C)|0}k[c>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0}i[b+16>>0]=0;c=b+20|0;d=k[c>>2]|0;if(!d){b=1;r=E;return b|0}ob(d);k[c>>2]=0;b=1;r=E;return b|0}p=b+4|0;q=b+8|0;c=k[q>>2]|0;if((c|0)!=(A|0)){if(c>>>0<=A>>>0){do if((k[b+12>>2]|0)>>>0>>0){if(gb(p,A,(c+1|0)==(A|0),1,0)|0){c=k[q>>2]|0;break}i[b+16>>0]=1;b=0;r=E;return b|0}while(0);$c((k[p>>2]|0)+c|0,0,A-c|0)|0}k[q>>2]=A}$c(k[p>>2]|0,0,A|0)|0;o=a+20|0;c=k[o>>2]|0;if((c|0)<5){f=a+4|0;g=a+8|0;e=a+16|0;do{d=k[f>>2]|0;if((d|0)==(k[g>>2]|0))d=0;else{k[f>>2]=d+1;d=l[d>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[h>>2]=1138;k[h+4>>2]=3204;k[h+8>>2]=1638;yc(C,1084,h)|0;xc(C)|0;c=k[o>>2]|0}d=d<<32-c|k[e>>2];k[e>>2]=d}while((c|0)<5)}else{d=a+16|0;e=d;d=k[d>>2]|0}m=d>>>27;k[e>>2]=d<<5;k[o>>2]=c+-5;if((m+-1|0)>>>0>20){b=0;r=E;return b|0}k[D+20>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;k[D+12>>2]=0;i[D+16>>0]=0;c=D+4|0;d=D+8|0;a:do if(gb(c,21,0,1,0)|0){h=k[d>>2]|0;j=k[c>>2]|0;$c(j+h|0,0,21-h|0)|0;k[d>>2]=21;if(m){e=a+4|0;f=a+8|0;g=a+16|0;h=0;do{c=k[o>>2]|0;if((c|0)<3)do{d=k[e>>2]|0;if((d|0)==(k[f>>2]|0))d=0;else{k[e>>2]=d+1;d=l[d>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[n>>2]=1138;k[n+4>>2]=3204;k[n+8>>2]=1638;yc(C,1084,n)|0;xc(C)|0;c=k[o>>2]|0}d=d<<32-c|k[g>>2];k[g>>2]=d}while((c|0)<3);else d=k[g>>2]|0;k[g>>2]=d<<3;k[o>>2]=c+-3;i[j+(l[1599+h>>0]|0)>>0]=d>>>29;h=h+1|0}while((h|0)!=(m|0))}if(pb(D)|0){m=a+4|0;h=a+8|0;j=a+16|0;d=0;b:while(1){g=A-d|0;c=sb(a,D)|0;c:do if(c>>>0<17){if((k[q>>2]|0)>>>0<=d>>>0){k[s>>2]=1138;k[s+4>>2]=906;k[s+8>>2]=1769;yc(C,1084,s)|0;xc(C)|0}i[(k[p>>2]|0)+d>>0]=c;c=d+1|0}else switch(c|0){case 17:{c=k[o>>2]|0;if((c|0)<3)do{e=k[m>>2]|0;if((e|0)==(k[h>>2]|0))e=0;else{k[m>>2]=e+1;e=l[e>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[t>>2]=1138;k[t+4>>2]=3204;k[t+8>>2]=1638;yc(C,1084,t)|0;xc(C)|0;c=k[o>>2]|0}e=e<<32-c|k[j>>2];k[j>>2]=e}while((c|0)<3);else e=k[j>>2]|0;k[j>>2]=e<<3;k[o>>2]=c+-3;c=(e>>>29)+3|0;if(c>>>0>g>>>0){c=0;break a}c=c+d|0;break c}case 18:{c=k[o>>2]|0;if((c|0)<7)do{e=k[m>>2]|0;if((e|0)==(k[h>>2]|0))e=0;else{k[m>>2]=e+1;e=l[e>>0]|0}c=c+8|0;k[o>>2]=c;if((c|0)>=33){k[u>>2]=1138;k[u+4>>2]=3204;k[u+8>>2]=1638;yc(C,1084,u)|0;xc(C)|0;c=k[o>>2]|0}e=e<<32-c|k[j>>2];k[j>>2]=e}while((c|0)<7);else e=k[j>>2]|0;k[j>>2]=e<<7;k[o>>2]=c+-7;c=(e>>>25)+11|0;if(c>>>0>g>>>0){c=0;break a}c=c+d|0;break c}default:{if((c+-19|0)>>>0>=2){B=90;break b}f=k[o>>2]|0;if((c|0)==19){if((f|0)<2){e=f;while(1){c=k[m>>2]|0;if((c|0)==(k[h>>2]|0))f=0;else{k[m>>2]=c+1;f=l[c>>0]|0}c=e+8|0;k[o>>2]=c;if((c|0)>=33){k[v>>2]=1138;k[v+4>>2]=3204;k[v+8>>2]=1638;yc(C,1084,v)|0;xc(C)|0;c=k[o>>2]|0}e=f<<32-c|k[j>>2];k[j>>2]=e;if((c|0)<2)e=c;else break}}else{e=k[j>>2]|0;c=f}k[j>>2]=e<<2;k[o>>2]=c+-2;f=(e>>>30)+3|0}else{if((f|0)<6){e=f;while(1){c=k[m>>2]|0;if((c|0)==(k[h>>2]|0))f=0;else{k[m>>2]=c+1;f=l[c>>0]|0}c=e+8|0;k[o>>2]=c;if((c|0)>=33){k[w>>2]=1138;k[w+4>>2]=3204;k[w+8>>2]=1638;yc(C,1084,w)|0;xc(C)|0;c=k[o>>2]|0}e=f<<32-c|k[j>>2];k[j>>2]=e;if((c|0)<6)e=c;else break}}else{e=k[j>>2]|0;c=f}k[j>>2]=e<<6;k[o>>2]=c+-6;f=(e>>>26)+7|0}if((d|0)==0|f>>>0>g>>>0){c=0;break a}c=d+-1|0;if((k[q>>2]|0)>>>0<=c>>>0){k[x>>2]=1138;k[x+4>>2]=906;k[x+8>>2]=1769;yc(C,1084,x)|0;xc(C)|0}e=i[(k[p>>2]|0)+c>>0]|0;if(!(e<<24>>24)){c=0;break a}c=f+d|0;if(d>>>0>=c>>>0){c=d;break c}do{if((k[q>>2]|0)>>>0<=d>>>0){k[y>>2]=1138;k[y+4>>2]=906;k[y+8>>2]=1769;yc(C,1084,y)|0;xc(C)|0}i[(k[p>>2]|0)+d>>0]=e;d=d+1|0}while((d|0)!=(c|0))}}while(0);if(A>>>0>c>>>0)d=c;else break}if((B|0)==90){k[z>>2]=1138;k[z+4>>2]=3145;k[z+8>>2]=1620;yc(C,1084,z)|0;xc(C)|0;c=0;break}if((A|0)==(c|0))c=pb(b)|0;else c=0}else c=0}else{i[D+16>>0]=1;c=0}while(0);nb(D);b=c;r=E;return b|0}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+528|0;g=j;f=j+16|0;if(!b){i=0;r=j;return i|0}if(b>>>0<=16){i=tb(a,b)|0;r=j;return i|0}h=tb(a,b+-16|0)|0;i=a+20|0;b=k[i>>2]|0;if((b|0)<16){d=a+4|0;e=a+8|0;c=a+16|0;do{a=k[d>>2]|0;if((a|0)==(k[e>>2]|0))a=0;else{k[d>>2]=a+1;a=l[a>>0]|0}b=b+8|0;k[i>>2]=b;if((b|0)>=33){k[g>>2]=1138;k[g+4>>2]=3204;k[g+8>>2]=1638;yc(f,1084,g)|0;xc(f)|0;b=k[i>>2]|0}a=a<<32-b|k[c>>2];k[c>>2]=a}while((b|0)<16)}else{a=a+16|0;c=a;a=k[a>>2]|0}k[c>>2]=a<<16;k[i>>2]=b+-16;i=a>>>16|h<<16;r=j;return i|0}function sb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,n=0,o=0,p=0,q=0,s=0,t=0;t=r;r=r+576|0;o=t+48|0;n=t+32|0;j=t+16|0;i=t;q=t+64|0;p=k[b+20>>2]|0;s=a+20|0;h=k[s>>2]|0;do if((h|0)<24){g=a+4|0;d=k[g>>2]|0;e=k[a+8>>2]|0;c=d>>>0>>0;if((h|0)>=16){if(c){k[g>>2]=d+1;c=l[d>>0]|0}else c=0;k[s>>2]=h+8;g=a+16|0;f=c<<24-h|k[g>>2];k[g>>2]=f;break}if(c){f=(l[d>>0]|0)<<8;c=d+1|0}else{f=0;c=d}if(c>>>0>>0){d=l[c>>0]|0;c=c+1|0}else d=0;k[g>>2]=c;k[s>>2]=h+16;g=a+16|0;f=(d|f)<<16-h|k[g>>2];k[g>>2]=f}else{f=a+16|0;g=f;f=k[f>>2]|0}while(0);e=(f>>>16)+1|0;do if(e>>>0<=(k[p+16>>2]|0)>>>0){d=k[(k[p+168>>2]|0)+(f>>>(32-(k[p+8>>2]|0)|0)<<2)>>2]|0;if((d|0)==-1){k[i>>2]=1138;k[i+4>>2]=3249;k[i+8>>2]=1665;yc(q,1084,i)|0;xc(q)|0}c=d&65535;d=d>>>16;if((k[b+8>>2]|0)>>>0<=c>>>0){k[j>>2]=1138;k[j+4>>2]=905;k[j+8>>2]=1769;yc(q,1084,j)|0;xc(q)|0}if((l[(k[b+4>>2]|0)+c>>0]|0|0)!=(d|0)){k[n>>2]=1138;k[n+4>>2]=3253;k[n+8>>2]=1682;yc(q,1084,n)|0;xc(q)|0}}else{d=k[p+20>>2]|0;while(1){c=d+-1|0;if(e>>>0>(k[p+28+(c<<2)>>2]|0)>>>0)d=d+1|0;else break}c=(f>>>(32-d|0))+(k[p+96+(c<<2)>>2]|0)|0;if(c>>>0<(k[b>>2]|0)>>>0){c=m[(k[p+176>>2]|0)+(c<<1)>>1]|0;break}k[o>>2]=1138;k[o+4>>2]=3271;k[o+8>>2]=1620;yc(q,1084,o)|0;xc(q)|0;s=0;r=t;return s|0}while(0);k[g>>2]=k[g>>2]<>2]=(k[s>>2]|0)-d;s=c;r=t;return s|0}function tb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=r;r=r+544|0;h=j+16|0;c=j;g=j+32|0;if(b>>>0>=33){k[c>>2]=1138;k[c+4>>2]=3195;k[c+8>>2]=1622;yc(g,1084,c)|0;xc(g)|0}i=a+20|0;c=k[i>>2]|0;if((c|0)>=(b|0)){e=a+16|0;f=e;e=k[e>>2]|0;g=c;h=32-b|0;h=e>>>h;e=e<>2]=e;b=g-b|0;k[i>>2]=b;r=j;return h|0}e=a+4|0;f=a+8|0;d=a+16|0;do{a=k[e>>2]|0;if((a|0)==(k[f>>2]|0))a=0;else{k[e>>2]=a+1;a=l[a>>0]|0}c=c+8|0;k[i>>2]=c;if((c|0)>=33){k[h>>2]=1138;k[h+4>>2]=3204;k[h+8>>2]=1638;yc(g,1084,h)|0;xc(g)|0;c=k[i>>2]|0}a=a<<32-c|k[d>>2];k[d>>2]=a}while((c|0)<(b|0));h=32-b|0;h=a>>>h;g=a<>2]=g;b=c-b|0;k[i>>2]=b;r=j;return h|0}function ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+528|0;o=q;n=q+16|0;if((a|0)==0|b>>>0<62){p=0;r=q;return p|0}m=ib(300,0)|0;if(!m){p=0;r=q;return p|0}k[m>>2]=519686845;c=m+4|0;k[c>>2]=0;d=m+8|0;k[d>>2]=0;j=m+88|0;e=m+136|0;f=m+160|0;g=j;h=g+44|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(h|0));i[j+44>>0]=0;s=m+184|0;g=m+208|0;h=m+232|0;t=m+252|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;t=m+268|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;t=m+284|0;k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;i[t+12>>0]=0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[e+16>>2]=0;i[e+20>>0]=0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[f+16>>2]=0;i[f+20>>0]=0;k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;k[s+12>>2]=0;k[s+16>>2]=0;i[s+20>>0]=0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;i[g+20>>0]=0;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;k[h+12>>2]=0;i[h+16>>0]=0;do if(((b>>>0>=74?((l[a>>0]|0)<<8|(l[a+1>>0]|0)|0)==18552:0)?((l[a+2>>0]|0)<<8|(l[a+3>>0]|0))>>>0>=74:0)?((l[a+7>>0]|0)<<16|(l[a+6>>0]|0)<<24|(l[a+8>>0]|0)<<8|(l[a+9>>0]|0))>>>0<=b>>>0:0){k[j>>2]=a;k[c>>2]=a;k[d>>2]=b;if(Eb(m)|0){c=k[j>>2]|0;if((l[c+39>>0]|0)<<8|(l[c+40>>0]|0)){if(!(Fb(m)|0))break;if(!(Gb(m)|0))break;c=k[j>>2]|0}if(!((l[c+55>>0]|0)<<8|(l[c+56>>0]|0))){t=m;r=q;return t|0}if(Hb(m)|0?Ib(m)|0:0){t=m;r=q;return t|0}}}else p=7;while(0);if((p|0)==7)k[j>>2]=0;Nb(m);if(!(m&7)){kb(m,0,0,1,0)|0;t=0;r=q;return t|0}else{k[o>>2]=1138;k[o+4>>2]=2502;k[o+8>>2]=1504;yc(n,1084,o)|0;xc(n)|0;t=0;r=q;return t|0}return 0}function vb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,m=0;m=r;r=r+528|0;j=m;i=m+16|0;f=k[a+88>>2]|0;h=(l[f+70+(e<<2)+1>>0]|0)<<16|(l[f+70+(e<<2)>>0]|0)<<24|(l[f+70+(e<<2)+2>>0]|0)<<8|(l[f+70+(e<<2)+3>>0]|0);g=e+1|0;if(g>>>0<(l[f+16>>0]|0)>>>0)f=(l[f+70+(g<<2)+1>>0]|0)<<16|(l[f+70+(g<<2)>>0]|0)<<24|(l[f+70+(g<<2)+2>>0]|0)<<8|(l[f+70+(g<<2)+3>>0]|0);else f=k[a+8>>2]|0;if(f>>>0>h>>>0){i=a+4|0;i=k[i>>2]|0;i=i+h|0;j=f-h|0;j=wb(a,i,j,b,c,d,e)|0;r=m;return j|0}k[j>>2]=1138;k[j+4>>2]=3690;k[j+8>>2]=1780;yc(i,1084,j)|0;xc(i)|0;i=a+4|0;i=k[i>>2]|0;i=i+h|0;j=f-h|0;j=wb(a,i,j,b,c,d,e)|0;r=m;return j|0}function wb(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,m=0,n=0;n=k[a+88>>2]|0;j=((l[n+12>>0]|0)<<8|(l[n+13>>0]|0))>>>g;m=((l[n+14>>0]|0)<<8|(l[n+15>>0]|0))>>>g;j=j>>>0>1?(j+3|0)>>>2:1;m=m>>>0>1?(m+3|0)>>>2:1;n=n+18|0;g=i[n>>0]|0;g=ha(g<<24>>24==0|g<<24>>24==9?8:16,j)|0;if(f)if((f&3|0)==0&g>>>0<=f>>>0)g=f;else{a=0;return a|0}if((ha(g,m)|0)>>>0>e>>>0){a=0;return a|0}f=(j+1|0)>>>1;h=(m+1|0)>>>1;if(!c){a=0;return a|0}k[a+92>>2]=b;k[a+96>>2]=b;k[a+104>>2]=c;k[a+100>>2]=b+c;k[a+108>>2]=0;k[a+112>>2]=0;switch(l[n>>0]|0|0){case 0:{Jb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 4:case 6:case 5:case 3:case 2:{Kb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 9:{Lb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}case 8:case 7:{Mb(a,d,e,g,j,m,f,h)|0;a=1;return a|0}default:{a=0;return a|0}}return 0}function xb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+4>>2]|0}function yb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+8>>2]|0}function zb(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+12>>2]|0}function Ab(a,b){a=a|0;b=b|0;var c=0,d=0;d=r;r=r+48|0;c=d;k[c>>2]=40;lb(a,b,c)|0;r=d;return k[c+32>>2]|0}function Bb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;e=r;r=r+576|0;d=e+40|0;c=e+56|0;f=e;k[f>>2]=40;lb(a,b,f)|0;b=f+32|0;a=k[b+4>>2]|0;do switch(k[b>>2]|0){case 0:{if(!a){f=8;r=e;return f|0}else a=14;break}case 1:{if(!a)a=13;else a=14;break}case 2:{if(!a)a=13;else a=14;break}case 3:{if(!a)a=13;else a=14;break}case 4:{if(!a)a=13;else a=14;break}case 5:{if(!a)a=13;else a=14;break}case 6:{if(!a)a=13;else a=14;break}case 7:{if(!a)a=13;else a=14;break}case 8:{if(!a)a=13;else a=14;break}case 9:{if(!a){f=8;r=e;return f|0}else a=14;break}case 10:{if(!a){f=8;r=e;return f|0}else a=14;break}default:a=14}while(0);if((a|0)==13){f=16;r=e;return f|0}else if((a|0)==14){k[d>>2]=1138;k[d+4>>2]=2668;k[d+8>>2]=1523;yc(c,1084,d)|0;xc(c)|0;f=0;r=e;return f|0}return 0}function Cb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=r;r=r+576|0;f=h+40|0;e=h+56|0;i=h;k[i>>2]=40;lb(a,b,i)|0;d=(((k[i+4>>2]|0)>>>c)+3|0)>>>2;b=(((k[i+8>>2]|0)>>>c)+3|0)>>>2;c=i+32|0;a=k[c+4>>2]|0;do switch(k[c>>2]|0){case 0:{if(!a)a=8;else g=14;break}case 1:{if(!a)g=13;else g=14;break}case 2:{if(!a)g=13;else g=14;break}case 3:{if(!a)g=13;else g=14;break}case 4:{if(!a)g=13;else g=14;break}case 5:{if(!a)g=13;else g=14;break}case 6:{if(!a)g=13;else g=14;break}case 7:{if(!a)g=13;else g=14;break}case 8:{if(!a)g=13;else g=14;break}case 9:{if(!a)a=8;else g=14;break}case 10:{if(!a)a=8;else g=14;break}default:g=14}while(0);if((g|0)==13)a=16;else if((g|0)==14){k[f>>2]=1138;k[f+4>>2]=2668;k[f+8>>2]=1523;yc(e,1084,f)|0;xc(e)|0;a=0}i=ha(ha(b,d)|0,a)|0;r=h;return i|0}function Db(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+592|0;p=q+56|0;g=q+40|0;n=q+72|0;m=q;o=q+68|0;k[m>>2]=40;lb(a,b,m)|0;h=(k[m+4>>2]|0)>>>e;i=(k[m+8>>2]|0)>>>e;m=m+32|0;d=k[m+4>>2]|0;do switch(k[m>>2]|0){case 0:{if(!d)m=8;else j=14;break}case 1:{if(!d)j=13;else j=14;break}case 2:{if(!d)j=13;else j=14;break}case 3:{if(!d)j=13;else j=14;break}case 4:{if(!d)j=13;else j=14;break}case 5:{if(!d)j=13;else j=14;break}case 6:{if(!d)j=13;else j=14;break}case 7:{if(!d)j=13;else j=14;break}case 8:{if(!d)j=13;else j=14;break}case 9:{if(!d)m=8;else j=14;break}case 10:{if(!d)m=8;else j=14;break}default:j=14}while(0);if((j|0)==13)m=16;else if((j|0)==14){k[g>>2]=1138;k[g+4>>2]=2668;k[g+8>>2]=1523;yc(n,1084,g)|0;xc(n)|0;m=0}k[o>>2]=c;l=ub(a,b)|0;b=f+e|0;if(b>>>0>e>>>0){j=(l|0)==0;a=c;while(1){d=ha((h+3|0)>>>2,m)|0;g=ha(d,(i+3|0)>>>2)|0;if(!(e>>>0>15|(j|g>>>0<8))?(k[l>>2]|0)==519686845:0)vb(l,o,g,d,e)|0;a=a+g|0;k[o>>2]=a;e=e+1|0;if((e|0)==(b|0))break;else{i=i>>>1;h=h>>>1}}}if(!l){r=q;return}if((k[l>>2]|0)!=519686845){r=q;return}Nb(l);if(!(l&7)){kb(l,0,0,1,0)|0;r=q;return}else{k[p>>2]=1138;k[p+4>>2]=2502;k[p+8>>2]=1504;yc(n,1084,p)|0;xc(n)|0;r=q;return}}function Eb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;g=a+92|0;d=k[a+4>>2]|0;f=a+88|0;e=k[f>>2]|0;b=(l[e+68>>0]|0)<<8|(l[e+67>>0]|0)<<16|(l[e+69>>0]|0);c=d+b|0;e=(l[e+65>>0]|0)<<8|(l[e+66>>0]|0);if(!e){a=0;return a|0}k[g>>2]=c;k[a+96>>2]=c;k[a+104>>2]=e;k[a+100>>2]=d+(e+b);k[a+108>>2]=0;k[a+112>>2]=0;if(!(qb(g,a+116|0)|0)){a=0;return a|0}b=k[f>>2]|0;do if(!((l[b+39>>0]|0)<<8|(l[b+40>>0]|0))){if(!((l[b+55>>0]|0)<<8|(l[b+56>>0]|0))){a=0;return a|0}}else{if(!(qb(g,a+140|0)|0)){a=0;return a|0}if(qb(g,a+188|0)|0){b=k[f>>2]|0;break}else{a=0;return a|0}}while(0);if((l[b+55>>0]|0)<<8|(l[b+56>>0]|0)){if(!(qb(g,a+164|0)|0)){a=0;return a|0}if(!(qb(g,a+212|0)|0)){a=0;return a|0}}a=1;return a|0}function Fb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+576|0;h=q;g=q+64|0;p=q+16|0;d=a+88|0;b=k[d>>2]|0;o=(l[b+39>>0]|0)<<8|(l[b+40>>0]|0);m=a+236|0;f=a+240|0;c=k[f>>2]|0;if((c|0)!=(o|0)){if(c>>>0<=o>>>0){do if((k[a+244>>2]|0)>>>0>>0){if(gb(m,o,(c+1|0)==(o|0),4,0)|0){b=k[f>>2]|0;break}i[a+248>>0]=1;p=0;r=q;return p|0}else b=c;while(0);$c((k[m>>2]|0)+(b<<2)|0,0,o-b<<2|0)|0;b=k[d>>2]|0}k[f>>2]=o}j=a+92|0;c=k[a+4>>2]|0;d=(l[b+34>>0]|0)<<8|(l[b+33>>0]|0)<<16|(l[b+35>>0]|0);e=c+d|0;b=(l[b+37>>0]|0)<<8|(l[b+36>>0]|0)<<16|(l[b+38>>0]|0);if(!b){p=0;r=q;return p|0}k[j>>2]=e;k[a+96>>2]=e;k[a+104>>2]=b;k[a+100>>2]=c+(b+d);k[a+108>>2]=0;k[a+112>>2]=0;k[p+20>>2]=0;k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;k[p+12>>2]=0;i[p+16>>0]=0;a=p+24|0;k[p+44>>2]=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;i[a+16>>0]=0;if(qb(j,p)|0?(n=p+24|0,qb(j,n)|0):0){if(!(k[f>>2]|0)){k[h>>2]=1138;k[h+4>>2]=906;k[h+8>>2]=1769;yc(g,1084,h)|0;xc(g)|0}if(!o)b=1;else{d=0;e=0;f=0;b=0;g=0;a=0;h=0;c=k[m>>2]|0;while(1){d=(sb(j,p)|0)+d&31;e=(sb(j,n)|0)+e&63;f=(sb(j,p)|0)+f&31;b=(sb(j,p)|0)+b|0;g=(sb(j,n)|0)+g&63;a=(sb(j,p)|0)+a&31;k[c>>2]=e<<5|d<<11|f|b<<27|g<<21|a<<16;h=h+1|0;if((h|0)==(o|0)){b=1;break}else{b=b&31;c=c+4|0}}}}else b=0;nb(p+24|0);nb(p);p=b;r=q;return p|0}function Gb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;D=r;r=r+1008|0;g=D;f=D+496|0;C=D+472|0;A=D+276|0;B=D+80|0;z=D+16|0;e=k[a+88>>2]|0;y=(l[e+47>>0]|0)<<8|(l[e+48>>0]|0);x=a+92|0;b=k[a+4>>2]|0;c=(l[e+42>>0]|0)<<8|(l[e+41>>0]|0)<<16|(l[e+43>>0]|0);d=b+c|0;e=(l[e+45>>0]|0)<<8|(l[e+44>>0]|0)<<16|(l[e+46>>0]|0);if(!e){C=0;r=D;return C|0}k[x>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[C+20>>2]=0;k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[C+12>>2]=0;i[C+16>>0]=0;if(qb(x,C)|0){c=0;d=-3;e=-3;while(1){k[A+(c<<2)>>2]=d;k[B+(c<<2)>>2]=e;b=(d|0)>2;c=c+1|0;if((c|0)==49)break;else{d=b?-3:d+1|0;e=(b&1)+e|0}}b=z;c=b+64|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(c|0));w=a+252|0;c=a+256|0;b=k[c>>2]|0;a:do if((b|0)==(y|0))h=13;else{if(b>>>0<=y>>>0){do if((k[a+260>>2]|0)>>>0>>0)if(gb(w,y,(b+1|0)==(y|0),4,0)|0){b=k[c>>2]|0;break}else{i[a+264>>0]=1;b=0;break a}while(0);$c((k[w>>2]|0)+(b<<2)|0,0,y-b<<2|0)|0}k[c>>2]=y;h=13}while(0);do if((h|0)==13){if(!y){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;yc(f,1084,g)|0;xc(f)|0;b=1;break}d=z+4|0;e=z+8|0;a=z+12|0;f=z+16|0;g=z+20|0;h=z+24|0;j=z+28|0;m=z+32|0;n=z+36|0;o=z+40|0;p=z+44|0;q=z+48|0;s=z+52|0;t=z+56|0;u=z+60|0;v=0;c=k[w>>2]|0;while(1){b=0;do{E=sb(x,C)|0;w=b<<1;F=z+(w<<2)|0;k[F>>2]=(k[F>>2]|0)+(k[A+(E<<2)>>2]|0)&3;w=z+((w|1)<<2)|0;k[w>>2]=(k[w>>2]|0)+(k[B+(E<<2)>>2]|0)&3;b=b+1|0}while((b|0)!=8);k[c>>2]=(l[1713+(k[d>>2]|0)>>0]|0)<<2|(l[1713+(k[z>>2]|0)>>0]|0)|(l[1713+(k[e>>2]|0)>>0]|0)<<4|(l[1713+(k[a>>2]|0)>>0]|0)<<6|(l[1713+(k[f>>2]|0)>>0]|0)<<8|(l[1713+(k[g>>2]|0)>>0]|0)<<10|(l[1713+(k[h>>2]|0)>>0]|0)<<12|(l[1713+(k[j>>2]|0)>>0]|0)<<14|(l[1713+(k[m>>2]|0)>>0]|0)<<16|(l[1713+(k[n>>2]|0)>>0]|0)<<18|(l[1713+(k[o>>2]|0)>>0]|0)<<20|(l[1713+(k[p>>2]|0)>>0]|0)<<22|(l[1713+(k[q>>2]|0)>>0]|0)<<24|(l[1713+(k[s>>2]|0)>>0]|0)<<26|(l[1713+(k[t>>2]|0)>>0]|0)<<28|(l[1713+(k[u>>2]|0)>>0]|0)<<30;v=v+1|0;if((v|0)==(y|0)){b=1;break}else c=c+4|0}}while(0)}else b=0;nb(C);F=b;r=D;return F|0}function Hb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,m=0,n=0,o=0,p=0;p=r;r=r+560|0;h=p;g=p+40|0;o=p+16|0;e=k[a+88>>2]|0;n=(l[e+55>>0]|0)<<8|(l[e+56>>0]|0);m=a+92|0;b=k[a+4>>2]|0;c=(l[e+50>>0]|0)<<8|(l[e+49>>0]|0)<<16|(l[e+51>>0]|0);d=b+c|0;e=(l[e+53>>0]|0)<<8|(l[e+52>>0]|0)<<16|(l[e+54>>0]|0);if(!e){o=0;r=p;return o|0}k[m>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[o+20>>2]=0;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;k[o+12>>2]=0;i[o+16>>0]=0;a:do if(qb(m,o)|0){f=a+268|0;c=a+272|0;b=k[c>>2]|0;if((b|0)!=(n|0)){if(b>>>0<=n>>>0){do if((k[a+276>>2]|0)>>>0>>0)if(gb(f,n,(b+1|0)==(n|0),2,0)|0){b=k[c>>2]|0;break}else{i[a+280>>0]=1;b=0;break a}while(0);$c((k[f>>2]|0)+(b<<1)|0,0,n-b<<1|0)|0}k[c>>2]=n}if(!n){k[h>>2]=1138;k[h+4>>2]=906;k[h+8>>2]=1769;yc(g,1084,h)|0;xc(g)|0;b=1;break}c=0;d=0;e=0;b=k[f>>2]|0;while(1){h=sb(m,o)|0;c=h+c&255;d=(sb(m,o)|0)+d&255;j[b>>1]=d<<8|c;e=e+1|0;if((e|0)==(n|0)){b=1;break}else b=b+2|0}}else b=0;while(0);nb(o);o=b;r=p;return o|0}function Ib(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;E=r;r=r+2416|0;g=E;f=E+1904|0;D=E+1880|0;B=E+980|0;C=E+80|0;A=E+16|0;e=k[a+88>>2]|0;z=(l[e+63>>0]|0)<<8|(l[e+64>>0]|0);y=a+92|0;b=k[a+4>>2]|0;c=(l[e+58>>0]|0)<<8|(l[e+57>>0]|0)<<16|(l[e+59>>0]|0);d=b+c|0;e=(l[e+61>>0]|0)<<8|(l[e+60>>0]|0)<<16|(l[e+62>>0]|0);if(!e){D=0;r=E;return D|0}k[y>>2]=d;k[a+96>>2]=d;k[a+104>>2]=e;k[a+100>>2]=b+(e+c);k[a+108>>2]=0;k[a+112>>2]=0;k[D+20>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;k[D+12>>2]=0;i[D+16>>0]=0;if(qb(y,D)|0){c=0;d=-7;e=-7;while(1){k[B+(c<<2)>>2]=d;k[C+(c<<2)>>2]=e;b=(d|0)>6;c=c+1|0;if((c|0)==225)break;else{d=b?-7:d+1|0;e=(b&1)+e|0}}b=A;c=b+64|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(c|0));x=a+284|0;c=z*3|0;d=a+288|0;b=k[d>>2]|0;a:do if((b|0)==(c|0))h=13;else{if(b>>>0<=c>>>0){do if((k[a+292>>2]|0)>>>0>>0)if(gb(x,c,(b+1|0)==(c|0),2,0)|0){b=k[d>>2]|0;break}else{i[a+296>>0]=1;b=0;break a}while(0);$c((k[x>>2]|0)+(b<<1)|0,0,c-b<<1|0)|0}k[d>>2]=c;h=13}while(0);do if((h|0)==13){if(!z){k[g>>2]=1138;k[g+4>>2]=906;k[g+8>>2]=1769;yc(f,1084,g)|0;xc(f)|0;b=1;break}d=A+4|0;e=A+8|0;a=A+12|0;f=A+16|0;g=A+20|0;h=A+24|0;m=A+28|0;n=A+32|0;o=A+36|0;p=A+40|0;q=A+44|0;s=A+48|0;t=A+52|0;u=A+56|0;v=A+60|0;w=0;c=k[x>>2]|0;while(1){b=0;do{F=sb(y,D)|0;x=b<<1;G=A+(x<<2)|0;k[G>>2]=(k[G>>2]|0)+(k[B+(F<<2)>>2]|0)&7;x=A+((x|1)<<2)|0;k[x>>2]=(k[x>>2]|0)+(k[C+(F<<2)>>2]|0)&7;b=b+1|0}while((b|0)!=8);F=l[1717+(k[g>>2]|0)>>0]|0;j[c>>1]=(l[1717+(k[d>>2]|0)>>0]|0)<<3|(l[1717+(k[A>>2]|0)>>0]|0)|(l[1717+(k[e>>2]|0)>>0]|0)<<6|(l[1717+(k[a>>2]|0)>>0]|0)<<9|(l[1717+(k[f>>2]|0)>>0]|0)<<12|F<<15;G=l[1717+(k[p>>2]|0)>>0]|0;j[c+2>>1]=(l[1717+(k[h>>2]|0)>>0]|0)<<2|F>>>1|(l[1717+(k[m>>2]|0)>>0]|0)<<5|(l[1717+(k[n>>2]|0)>>0]|0)<<8|(l[1717+(k[o>>2]|0)>>0]|0)<<11|G<<14;j[c+4>>1]=(l[1717+(k[q>>2]|0)>>0]|0)<<1|G>>>2|(l[1717+(k[s>>2]|0)>>0]|0)<<4|(l[1717+(k[t>>2]|0)>>0]|0)<<7|(l[1717+(k[u>>2]|0)>>0]|0)<<10|(l[1717+(k[v>>2]|0)>>0]|0)<<13;w=w+1|0;if((w|0)==(z|0)){b=1;break}else c=c+6|0}}while(0)}else b=0;nb(D);G=b;r=E;return G|0}function Jb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ia=0,ja=0;ga=r;r=r+656|0;ea=ga+112|0;ca=ga+96|0;ba=ga+80|0;aa=ga+64|0;$=ga+48|0;fa=ga+32|0;da=ga+16|0;_=ga;Y=ga+144|0;Z=ga+128|0;R=a+240|0;S=k[R>>2]|0;V=a+256|0;W=k[V>>2]|0;c=i[(k[a+88>>2]|0)+17>>0]|0;X=d>>>2;if(!(c<<24>>24)){r=ga;return 1}T=(h|0)==0;U=h+-1|0;K=(f&1|0)!=0;L=d<<1;M=a+92|0;N=a+116|0;O=a+140|0;P=a+236|0;Q=g+-1|0;J=(e&1|0)!=0;I=a+188|0;D=a+252|0;E=X+1|0;F=X+2|0;G=X+3|0;H=Q<<4;B=c&255;c=0;f=0;e=1;C=0;do{if(!T){z=k[b+(C<<2)>>2]|0;A=0;while(1){w=A&1;j=(w|0)==0;v=(w<<5^32)+-16|0;w=(w<<1^2)+-1|0;y=j?g:-1;m=j?0:Q;a=(A|0)==(U|0);x=K&a;if((m|0)!=(y|0)){u=K&a^1;t=j?z:z+H|0;while(1){if((e|0)==1)e=sb(M,N)|0|512;s=e&7;e=e>>>3;j=l[1811+s>>0]|0;a=0;do{p=(sb(M,O)|0)+f|0;q=p-S|0;f=q>>31;f=f&p|q&~f;if((k[R>>2]|0)>>>0<=f>>>0){k[_>>2]=1138;k[_+4>>2]=906;k[_+8>>2]=1769;yc(Y,1084,_)|0;xc(Y)|0}k[Z+(a<<2)>>2]=k[(k[P>>2]|0)+(f<<2)>>2];a=a+1|0}while(a>>>0>>0);q=J&(m|0)==(Q|0);if(x|q){p=0;do{n=ha(p,d)|0;a=t+n|0;j=(p|0)==0|u;o=p<<1;ja=(sb(M,I)|0)+c|0;ia=ja-W|0;c=ia>>31;c=c&ja|ia&~c;do if(q){if(!j){ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;break}k[a>>2]=k[Z+((l[1819+(s<<2)+o>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ca>>2]=1138;k[ca+4>>2]=906;k[ca+8>>2]=1769;yc(Y,1084,ca)|0;xc(Y)|0}k[t+(n+4)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c}else{if(!j){ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;break}k[a>>2]=k[Z+((l[1819+(s<<2)+o>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ba>>2]=1138;k[ba+4>>2]=906;k[ba+8>>2]=1769;yc(Y,1084,ba)|0;xc(Y)|0}k[t+(n+4)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;k[t+(n+8)>>2]=k[Z+((l[(o|1)+(1819+(s<<2))>>0]|0)<<2)>>2];if((k[V>>2]|0)>>>0<=c>>>0){k[ea>>2]=1138;k[ea+4>>2]=906;k[ea+8>>2]=1769;yc(Y,1084,ea)|0;xc(Y)|0}k[t+(n+12)>>2]=k[(k[D>>2]|0)+(c<<2)>>2]}while(0);p=p+1|0}while((p|0)!=2)}else{k[t>>2]=k[Z+((l[1819+(s<<2)>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[da>>2]=1138;k[da+4>>2]=906;k[da+8>>2]=1769;yc(Y,1084,da)|0;xc(Y)|0}k[t+4>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+8>>2]=k[Z+((l[1819+(s<<2)+1>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[fa>>2]=1138;k[fa+4>>2]=906;k[fa+8>>2]=1769;yc(Y,1084,fa)|0;xc(Y)|0}k[t+12>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+(X<<2)>>2]=k[Z+((l[1819+(s<<2)+2>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[$>>2]=1138;k[$+4>>2]=906;k[$+8>>2]=1769;yc(Y,1084,$)|0;xc(Y)|0}k[t+(E<<2)>>2]=k[(k[D>>2]|0)+(c<<2)>>2];k[t+(F<<2)>>2]=k[Z+((l[1819+(s<<2)+3>>0]|0)<<2)>>2];ia=(sb(M,I)|0)+c|0;ja=ia-W|0;c=ja>>31;c=c&ia|ja&~c;if((k[V>>2]|0)>>>0<=c>>>0){k[aa>>2]=1138;k[aa+4>>2]=906;k[aa+8>>2]=1769;yc(Y,1084,aa)|0;xc(Y)|0}k[t+(G<<2)>>2]=k[(k[D>>2]|0)+(c<<2)>>2]}m=m+w|0;if((m|0)==(y|0))break;else t=t+v|0}}A=A+1|0;if((A|0)==(h|0))break;else z=z+L|0}}C=C+1|0}while((C|0)!=(B|0));r=ga;return 1}function Kb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;ma=r;r=r+608|0;ja=ma+48|0;la=ma+32|0;ka=ma+16|0;ia=ma;ga=ma+96|0;ha=ma+80|0;fa=ma+64|0;S=a+240|0;T=k[S>>2]|0;W=a+256|0;ca=k[W>>2]|0;da=a+272|0;ea=k[da>>2]|0;c=k[a+88>>2]|0;U=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=ma;return 1}V=(h|0)==0;X=h+-1|0;Y=d<<1;Z=a+92|0;_=a+116|0;$=g+-1|0;aa=a+212|0;ba=a+188|0;R=(e&1|0)==0;Q=(f&1|0)==0;K=a+288|0;L=a+284|0;M=a+252|0;N=a+140|0;O=a+236|0;P=a+164|0;I=a+268|0;J=$<<5;G=c&255;c=0;e=0;f=0;a=0;j=1;H=0;do{if(!V){E=k[b+(H<<2)>>2]|0;F=0;while(1){C=F&1;n=(C|0)==0;B=(C<<6^64)+-32|0;C=(C<<1^2)+-1|0;D=n?g:-1;o=n?0:$;if((o|0)!=(D|0)){A=Q|(F|0)!=(X|0);z=n?E:E+J|0;while(1){if((j|0)==1)j=sb(Z,_)|0|512;y=j&7;j=j>>>3;p=l[1811+y>>0]|0;n=0;do{w=(sb(Z,P)|0)+e|0;x=w-ea|0;e=x>>31;e=e&w|x&~e;if((k[da>>2]|0)>>>0<=e>>>0){k[ia>>2]=1138;k[ia+4>>2]=906;k[ia+8>>2]=1769;yc(ga,1084,ia)|0;xc(ga)|0}k[fa+(n<<2)>>2]=m[(k[I>>2]|0)+(e<<1)>>1];n=n+1|0}while(n>>>0

>>0);n=0;do{w=(sb(Z,N)|0)+a|0;x=w-T|0;a=x>>31;a=a&w|x&~a;if((k[S>>2]|0)>>>0<=a>>>0){k[ka>>2]=1138;k[ka+4>>2]=906;k[ka+8>>2]=1769;yc(ga,1084,ka)|0;xc(ga)|0}k[ha+(n<<2)>>2]=k[(k[O>>2]|0)+(a<<2)>>2];n=n+1|0}while(n>>>0

>>0);x=R|(o|0)!=($|0);v=0;w=z;while(1){u=A|(v|0)==0;t=v<<1;q=0;s=w;while(1){p=(sb(Z,aa)|0)+c|0;n=p-U|0;c=n>>31;c=c&p|n&~c;n=(sb(Z,ba)|0)+f|0;p=n-ca|0;f=p>>31;f=f&n|p&~f;if((x|(q|0)==0)&u){n=l[q+t+(1819+(y<<2))>>0]|0;p=c*3|0;if((k[K>>2]|0)>>>0<=p>>>0){k[la>>2]=1138;k[la+4>>2]=906;k[la+8>>2]=1769;yc(ga,1084,la)|0;xc(ga)|0}na=k[L>>2]|0;k[s>>2]=(m[na+(p<<1)>>1]|0)<<16|k[fa+(n<<2)>>2];k[s+4>>2]=(m[na+(p+2<<1)>>1]|0)<<16|(m[na+(p+1<<1)>>1]|0);k[s+8>>2]=k[ha+(n<<2)>>2];if((k[W>>2]|0)>>>0<=f>>>0){k[ja>>2]=1138;k[ja+4>>2]=906;k[ja+8>>2]=1769;yc(ga,1084,ja)|0;xc(ga)|0}k[s+12>>2]=k[(k[M>>2]|0)+(f<<2)>>2]}q=q+1|0;if((q|0)==2)break;else s=s+16|0}v=v+1|0;if((v|0)==2)break;else w=w+d|0}o=o+C|0;if((o|0)==(D|0))break;else z=z+B|0}}F=F+1|0;if((F|0)==(h|0))break;else E=E+Y|0}}H=H+1|0}while((H|0)!=(G|0));r=ma;return 1}function Lb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=r;r=r+576|0;_=$+32|0;Z=$+16|0;Y=$;X=$+64|0;W=$+48|0;M=a+272|0;N=k[M>>2]|0;c=k[a+88>>2]|0;O=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=$;return 1}P=(h|0)==0;Q=h+-1|0;R=d<<1;S=a+92|0;T=a+116|0;U=g+-1|0;V=a+212|0;L=(f&1|0)==0;I=a+288|0;J=a+284|0;K=a+164|0;G=a+268|0;H=U<<4;F=c&255;E=(e&1|0)!=0;c=0;f=0;a=1;D=0;do{if(!P){B=k[b+(D<<2)>>2]|0;C=0;while(1){z=C&1;e=(z|0)==0;y=(z<<5^32)+-16|0;z=(z<<1^2)+-1|0;A=e?g:-1;j=e?0:U;if((j|0)!=(A|0)){x=L|(C|0)!=(Q|0);w=e?B:B+H|0;while(1){if((a|0)==1)a=sb(S,T)|0|512;v=a&7;a=a>>>3;n=l[1811+v>>0]|0;e=0;do{t=(sb(S,K)|0)+f|0;u=t-N|0;f=u>>31;f=f&t|u&~f;if((k[M>>2]|0)>>>0<=f>>>0){k[Y>>2]=1138;k[Y+4>>2]=906;k[Y+8>>2]=1769;yc(X,1084,Y)|0;xc(X)|0}k[W+(e<<2)>>2]=m[(k[G>>2]|0)+(f<<1)>>1];e=e+1|0}while(e>>>0>>0);u=(j|0)==(U|0)&E;s=0;t=w;while(1){q=x|(s|0)==0;p=s<<1;e=(sb(S,V)|0)+c|0;o=e-O|0;n=o>>31;n=n&e|o&~n;if(q){c=l[1819+(v<<2)+p>>0]|0;e=n*3|0;if((k[I>>2]|0)>>>0<=e>>>0){k[Z>>2]=1138;k[Z+4>>2]=906;k[Z+8>>2]=1769;yc(X,1084,Z)|0;xc(X)|0}o=k[J>>2]|0;k[t>>2]=(m[o+(e<<1)>>1]|0)<<16|k[W+(c<<2)>>2];k[t+4>>2]=(m[o+(e+2<<1)>>1]|0)<<16|(m[o+(e+1<<1)>>1]|0)}o=t+8|0;e=(sb(S,V)|0)+n|0;n=e-O|0;c=n>>31;c=c&e|n&~c;if(!(u|q^1)){e=l[(p|1)+(1819+(v<<2))>>0]|0;n=c*3|0;if((k[I>>2]|0)>>>0<=n>>>0){k[_>>2]=1138;k[_+4>>2]=906;k[_+8>>2]=1769;yc(X,1084,_)|0;xc(X)|0}q=k[J>>2]|0;k[o>>2]=(m[q+(n<<1)>>1]|0)<<16|k[W+(e<<2)>>2];k[t+12>>2]=(m[q+(n+2<<1)>>1]|0)<<16|(m[q+(n+1<<1)>>1]|0)}s=s+1|0;if((s|0)==2)break;else t=t+d|0}j=j+z|0;if((j|0)==(A|0))break;else w=w+y|0}}C=C+1|0;if((C|0)==(h|0))break;else B=B+R|0}}D=D+1|0}while((D|0)!=(F|0));r=$;return 1}function Mb(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=r;r=r+608|0;ea=ha+48|0;ga=ha+32|0;fa=ha+16|0;da=ha;ca=ha+96|0;aa=ha+80|0;ba=ha+64|0;S=a+272|0;T=k[S>>2]|0;c=k[a+88>>2]|0;U=(l[c+63>>0]|0)<<8|(l[c+64>>0]|0);c=i[c+17>>0]|0;if(!(c<<24>>24)){r=ha;return 1}V=(h|0)==0;W=h+-1|0;X=d<<1;Y=a+92|0;Z=a+116|0;_=g+-1|0;$=a+212|0;R=(e&1|0)==0;Q=(f&1|0)==0;N=a+288|0;O=a+284|0;P=a+164|0;L=a+268|0;M=_<<5;J=c&255;c=0;e=0;f=0;a=0;j=1;K=0;do{if(!V){H=k[b+(K<<2)>>2]|0;I=0;while(1){F=I&1;n=(F|0)==0;E=(F<<6^64)+-32|0;F=(F<<1^2)+-1|0;G=n?g:-1;o=n?0:_;if((o|0)!=(G|0)){D=Q|(I|0)!=(W|0);C=n?H:H+M|0;while(1){if((j|0)==1)j=sb(Y,Z)|0|512;B=j&7;j=j>>>3;p=l[1811+B>>0]|0;n=0;do{z=(sb(Y,P)|0)+a|0;A=z-T|0;a=A>>31;a=a&z|A&~a;if((k[S>>2]|0)>>>0<=a>>>0){k[da>>2]=1138;k[da+4>>2]=906;k[da+8>>2]=1769;yc(ca,1084,da)|0;xc(ca)|0}k[aa+(n<<2)>>2]=m[(k[L>>2]|0)+(a<<1)>>1];n=n+1|0}while(n>>>0

>>0);n=0;do{z=(sb(Y,P)|0)+e|0;A=z-T|0;e=A>>31;e=e&z|A&~e;if((k[S>>2]|0)>>>0<=e>>>0){k[fa>>2]=1138;k[fa+4>>2]=906;k[fa+8>>2]=1769;yc(ca,1084,fa)|0;xc(ca)|0}k[ba+(n<<2)>>2]=m[(k[L>>2]|0)+(e<<1)>>1];n=n+1|0}while(n>>>0

>>0);A=R|(o|0)!=(_|0);y=0;z=C;while(1){x=D|(y|0)==0;w=y<<1;u=0;v=z;while(1){t=(sb(Y,$)|0)+f|0;s=t-U|0;f=s>>31;f=f&t|s&~f;s=(sb(Y,$)|0)+c|0;t=s-U|0;c=t>>31;c=c&s|t&~c;if((A|(u|0)==0)&x){s=l[u+w+(1819+(B<<2))>>0]|0;t=f*3|0;n=k[N>>2]|0;if(n>>>0<=t>>>0){k[ga>>2]=1138;k[ga+4>>2]=906;k[ga+8>>2]=1769;yc(ca,1084,ga)|0;xc(ca)|0;n=k[N>>2]|0}p=k[O>>2]|0;q=c*3|0;if(n>>>0>q>>>0)n=p;else{k[ea>>2]=1138;k[ea+4>>2]=906;k[ea+8>>2]=1769;yc(ca,1084,ea)|0;xc(ca)|0;n=k[O>>2]|0}k[v>>2]=(m[p+(t<<1)>>1]|0)<<16|k[aa+(s<<2)>>2];k[v+4>>2]=(m[p+(t+2<<1)>>1]|0)<<16|(m[p+(t+1<<1)>>1]|0);k[v+8>>2]=(m[n+(q<<1)>>1]|0)<<16|k[ba+(s<<2)>>2];k[v+12>>2]=(m[n+(q+2<<1)>>1]|0)<<16|(m[n+(q+1<<1)>>1]|0)}u=u+1|0;if((u|0)==2)break;else v=v+16|0}y=y+1|0;if((y|0)==2)break;else z=z+d|0}o=o+F|0;if((o|0)==(G|0))break;else C=C+E|0}}I=I+1|0;if((I|0)==(h|0))break;else H=H+X|0}}K=K+1|0}while((K|0)!=(J|0));r=ha;return 1}function Nb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+576|0;h=j+48|0;f=j+32|0;e=j+16|0;d=j;g=j+64|0;k[a>>2]=0;b=a+284|0;c=k[b>>2]|0;if(c){if(!(c&7))kb(c,0,0,1,0)|0;else{k[d>>2]=1138;k[d+4>>2]=2502;k[d+8>>2]=1504;yc(g,1084,d)|0;xc(g)|0}k[b>>2]=0;k[a+288>>2]=0;k[a+292>>2]=0}i[a+296>>0]=0;c=a+268|0;b=k[c>>2]|0;if(b){if(!(b&7))kb(b,0,0,1,0)|0;else{k[e>>2]=1138;k[e+4>>2]=2502;k[e+8>>2]=1504;yc(g,1084,e)|0;xc(g)|0}k[c>>2]=0;k[a+272>>2]=0;k[a+276>>2]=0}i[a+280>>0]=0;b=a+252|0;c=k[b>>2]|0;if(c){if(!(c&7))kb(c,0,0,1,0)|0;else{k[f>>2]=1138;k[f+4>>2]=2502;k[f+8>>2]=1504;yc(g,1084,f)|0;xc(g)|0}k[b>>2]=0;k[a+256>>2]=0;k[a+260>>2]=0}i[a+264>>0]=0;b=a+236|0;c=k[b>>2]|0;if(!c){h=a+248|0;i[h>>0]=0;h=a+212|0;nb(h);h=a+188|0;nb(h);h=a+164|0;nb(h);h=a+140|0;nb(h);h=a+116|0;nb(h);r=j;return}if(!(c&7))kb(c,0,0,1,0)|0;else{k[h>>2]=1138;k[h+4>>2]=2502;k[h+8>>2]=1504;yc(g,1084,h)|0;xc(g)|0}k[b>>2]=0;k[a+240>>2]=0;k[a+244>>2]=0;h=a+248|0;i[h>>0]=0;h=a+212|0;nb(h);h=a+188|0;nb(h);h=a+164|0;nb(h);h=a+140|0;nb(h);h=a+116|0;nb(h);r=j;return}function Ob(a,b){a=a|0;b=b|0;var c=0;c=r;r=r+16|0;k[c>>2]=b;b=k[60]|0;zc(b,a,c)|0;tc(10,b)|0;Aa()}function Pb(){var a=0,b=0;a=r;r=r+16|0;if(!(Ka(192,2)|0)){b=va(k[47]|0)|0;r=a;return b|0}else Ob(2078,a);return 0}function Qb(a){a=a|0;Tc(a);return}function Rb(a){a=a|0;var b=0;b=r;r=r+16|0;Wa[a&3]();Ob(2127,b)}function Sb(){var a=0,b=0;a=Pb()|0;if(((a|0)!=0?(b=k[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(k[a>>2]&-256|0)==1126902528?(k[a+4>>2]|0)==1129074247:0):0)Rb(k[b+12>>2]|0);b=k[26]|0;k[26]=b+0;Rb(b)}function Tb(a){a=a|0;return}function Ub(a){a=a|0;return}function Vb(a){a=a|0;return}function Wb(a){a=a|0;return}function Xb(a){a=a|0;Qb(a);return}function Yb(a){a=a|0;Qb(a);return}function Zb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=bc(b,24,40,0)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;Ya[k[(k[e>>2]|0)+28>>2]&3](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function _b(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=b+16|0;e=k[a>>2]|0;do if(e){if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1}while(0);return}function $b(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))_b(0,b,c,d);return}function ac(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))_b(0,b,c,d);else{a=k[a+8>>2]|0;Ya[k[(k[a>>2]|0)+28>>2]&3](a,b,c,d)}return}function bc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+64|0;p=q;o=k[a>>2]|0;n=a+(k[o+-8>>2]|0)|0;o=k[o+-4>>2]|0;k[p>>2]=c;k[p+4>>2]=a;k[p+8>>2]=b;k[p+12>>2]=d;d=p+16|0;a=p+20|0;b=p+24|0;e=p+28|0;f=p+32|0;g=p+40|0;h=(o|0)==(c|0);l=d;m=l+36|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j[d+36>>1]=0;i[d+38>>0]=0;a:do if(h){k[p+48>>2]=1;Xa[k[(k[c>>2]|0)+20>>2]&3](c,p,n,n,1,0);d=(k[b>>2]|0)==1?n:0}else{Sa[k[(k[o>>2]|0)+24>>2]&3](o,p,n,1,0);switch(k[p+36>>2]|0){case 0:{d=(k[g>>2]|0)==1&(k[e>>2]|0)==1&(k[f>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((k[b>>2]|0)!=1?!((k[g>>2]|0)==0&(k[e>>2]|0)==1&(k[f>>2]|0)==1):0){d=0;break}d=k[d>>2]|0}while(0);r=q;return d|0}function cc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;i[b+53>>0]=1;do if((k[b+4>>2]|0)==(d|0)){i[b+52>>0]=1;d=b+16|0;a=k[d>>2]|0;if(!a){k[d>>2]=c;k[b+24>>2]=e;k[b+36>>2]=1;if(!((e|0)==1?(k[b+48>>2]|0)==1:0))break;i[b+54>>0]=1;break}if((a|0)!=(c|0)){e=b+36|0;k[e>>2]=(k[e>>2]|0)+1;i[b+54>>0]=1;break}a=b+24|0;d=k[a>>2]|0;if((d|0)==2){k[a>>2]=e;d=e}if((d|0)==1?(k[b+48>>2]|0)==1:0)i[b+54>>0]=1}while(0);return}function dc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;Sa[k[(k[h>>2]|0)+24>>2]&3](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(g=b+20|0,(k[g>>2]|0)!=(c|0)):0){k[b+32>>2]=d;d=b+44|0;if((k[d>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;j=b+53|0;i[j>>0]=0;a=k[a+8>>2]|0;Xa[k[(k[a>>2]|0)+20>>2]&3](a,b,c,c,1,e);if(i[j>>0]|0){if(!(i[f>>0]|0)){f=1;h=13}}else{f=0;h=13}do if((h|0)==13){k[g>>2]=c;j=b+40|0;k[j>>2]=(k[j>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f)break}else h=16;if((h|0)==16?f:0)break;k[d>>2]=4;break a}while(0);k[d>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function ec(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function fc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))cc(0,b,c,d,e);else{a=k[a+8>>2]|0;Xa[k[(k[a>>2]|0)+20>>2]&3](a,b,c,d,e,f)}return}function gc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))cc(0,b,c,d,e);return}function hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=Ra[k[(k[a>>2]|0)+16>>2]&7](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function ic(a){a=a|0;if(!a)a=0;else a=(bc(a,24,72,0)|0)!=0;return a&1|0}function jc(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+48|0;g=e+32|0;c=e+24|0;h=e+16|0;f=e;e=e+36|0;a=Pb()|0;if((a|0)!=0?(d=k[a>>2]|0,(d|0)!=0):0){a=d+48|0;b=k[a>>2]|0;a=k[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){k[c>>2]=2406;Ob(2356,c)}if((b|0)==1126902529&(a|0)==1129074247)a=k[d+44>>2]|0;else a=d+80|0;k[e>>2]=a;d=k[d>>2]|0;a=k[d+4>>2]|0;if(Ra[k[(k[8>>2]|0)+16>>2]&7](8,d,e)|0){h=k[e>>2]|0;h=Ua[k[(k[h>>2]|0)+8>>2]&1](h)|0;k[f>>2]=2406;k[f+4>>2]=a;k[f+8>>2]=h;Ob(2270,f)}else{k[h>>2]=2406;k[h+4>>2]=a;Ob(2315,h)}}Ob(2394,g)}function kc(){var a=0;a=r;r=r+16|0;if(!(Fa(188,6)|0)){r=a;return}else Ob(2167,a)}function lc(a){a=a|0;var b=0;b=r;r=r+16|0;Tc(a);if(!(wa(k[47]|0,0)|0)){r=b;return}else Ob(2217,b)}function mc(a){a=a|0;var b=0,c=0;b=0;while(1){if((l[2415+b>>0]|0)==(a|0)){c=2;break}b=b+1|0;if((b|0)==87){b=87;a=2503;c=5;break}}if((c|0)==2)if(!b)a=2503;else{a=2503;c=5}if((c|0)==5)while(1){c=a;while(1){a=c+1|0;if(!(i[c>>0]|0))break;else c=a}b=b+-1|0;if(!b)break;else c=5}return a|0}function nc(){var a=0;if(!0)a=248;else{a=(za()|0)+60|0;a=k[a>>2]|0}return a|0}function oc(a){a=a|0;var b=0;if(a>>>0>4294963200){b=nc()|0;k[b>>2]=0-a;a=-1}return a|0}function pc(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[t>>3]=a;c=k[t>>2]|0;d=k[t+4>>2]|0;e=ad(c|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{if(a!=0.0){a=+pc(a*18446744073709552.0e3,b);c=(k[b>>2]|0)+-64|0}else c=0;k[b>>2]=c;break}case 2047:break;default:{k[b>>2]=e+-1022;k[t>>2]=c;k[t+4>>2]=d&-2146435073|1071644672;a=+p[t>>3]}}return +a}function qc(a,b){a=+a;b=b|0;return +(+pc(a,b))}function rc(a,b,c){a=a|0;b=b|0;c=c|0;do if(a){if(b>>>0<128){i[a>>0]=b;a=1;break}if(b>>>0<2048){i[a>>0]=b>>>6|192;i[a+1>>0]=b&63|128;a=2;break}if(b>>>0<55296|(b&-8192|0)==57344){i[a>>0]=b>>>12|224;i[a+1>>0]=b>>>6&63|128;i[a+2>>0]=b&63|128;a=3;break}if((b+-65536|0)>>>0<1048576){i[a>>0]=b>>>18|240;i[a+1>>0]=b>>>12&63|128;i[a+2>>0]=b>>>6&63|128;i[a+3>>0]=b&63|128;a=4;break}else{a=nc()|0;k[a>>2]=84;a=-1;break}}else a=1;while(0);return a|0}function sc(a,b){a=a|0;b=b|0;if(!a)a=0;else a=rc(a,b,0)|0;return a|0}function tc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((k[b+76>>2]|0)>=0?(Cc(b)|0)!=0:0){if((i[b+75>>0]|0)!=(a|0)?(d=b+20|0,e=k[d>>2]|0,e>>>0<(k[b+16>>2]|0)>>>0):0){k[d>>2]=e+1;i[e>>0]=a;c=a&255}else c=Ec(b,a)|0;Dc(b)}else g=3;do if((g|0)==3){if((i[b+75>>0]|0)!=(a|0)?(f=b+20|0,c=k[f>>2]|0,c>>>0<(k[b+16>>2]|0)>>>0):0){k[f>>2]=c+1;i[c>>0]=a;c=a&255;break}c=Ec(b,a)|0}while(0);return c|0}function uc(a,b){a=a|0;b=b|0;return (wc(a,Lc(a)|0,1,b)|0)+-1|0}function vc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=c+16|0;e=k[d>>2]|0;if(!e)if(!(Jc(c)|0)){e=k[d>>2]|0;f=4}else d=0;else f=4;a:do if((f|0)==4){g=c+20|0;f=k[g>>2]|0;if((e-f|0)>>>0>>0){d=Ra[k[c+36>>2]&7](c,a,b)|0;break}b:do if((i[c+75>>0]|0)>-1){d=b;while(1){if(!d){e=f;d=0;break b}e=d+-1|0;if((i[a+e>>0]|0)==10)break;else d=e}if((Ra[k[c+36>>2]&7](c,a,d)|0)>>>0>>0)break a;b=b-d|0;a=a+d|0;e=k[g>>2]|0}else{e=f;d=0}while(0);cd(e|0,a|0,b|0)|0;k[g>>2]=(k[g>>2]|0)+b;d=d+b|0}while(0);return d|0}function wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ha(c,b)|0;if((k[d+76>>2]|0)>-1){f=(Cc(d)|0)==0;a=vc(a,e,d)|0;if(!f)Dc(d)}else a=vc(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function xc(a){a=a|0;var b=0,c=0,d=0,e=0;d=k[61]|0;if((k[d+76>>2]|0)>-1)e=Cc(d)|0;else e=0;do if((uc(a,d)|0)<0)b=1;else{if((i[d+75>>0]|0)!=10?(b=d+20|0,c=k[b>>2]|0,c>>>0<(k[d+16>>2]|0)>>>0):0){k[b>>2]=c+1;i[c>>0]=10;b=0;break}b=(Ec(d,10)|0)<0}while(0);if(e)Dc(d);return b<<31>>31|0}function yc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;k[e>>2]=c;c=Bc(a,b,e)|0;r=d;return c|0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+224|0;n=s+120|0;q=s+80|0;p=s;o=s+136|0;d=q;e=d+40|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[n>>2]=k[c>>2];if((Mc(0,b,n,p,q)|0)<0)c=-1;else{if((k[a+76>>2]|0)>-1)l=Cc(a)|0;else l=0;c=k[a>>2]|0;m=c&32;if((i[a+74>>0]|0)<1)k[a>>2]=c&-33;c=a+48|0;if(!(k[c>>2]|0)){e=a+44|0;f=k[e>>2]|0;k[e>>2]=o;g=a+28|0;k[g>>2]=o;h=a+20|0;k[h>>2]=o;k[c>>2]=80;j=a+16|0;k[j>>2]=o+80;d=Mc(a,b,n,p,q)|0;if(f){Ra[k[a+36>>2]&7](a,0,0)|0;d=(k[h>>2]|0)==0?-1:d;k[e>>2]=f;k[c>>2]=0;k[j>>2]=0;k[g>>2]=0;k[h>>2]=0}}else d=Mc(a,b,n,p,q)|0;c=k[a>>2]|0;k[a>>2]=c|m;if(l)Dc(a);c=(c&32|0)==0?d:-1}r=s;return c|0}function Ac(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+128|0;e=m+112|0;l=m;f=l;g=252;h=f+112|0;do{k[f>>2]=k[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if((b+-1|0)>>>0>2147483646)if(!b){b=1;j=4}else{b=nc()|0;k[b>>2]=75;b=-1}else{e=a;j=4}if((j|0)==4){j=-2-e|0;j=b>>>0>j>>>0?j:b;k[l+48>>2]=j;a=l+20|0;k[a>>2]=e;k[l+44>>2]=e;b=e+j|0;e=l+16|0;k[e>>2]=b;k[l+28>>2]=b;b=zc(l,c,d)|0;if(j){c=k[a>>2]|0;i[c+(((c|0)==(k[e>>2]|0))<<31>>31)>>0]=0}}r=m;return b|0}function Bc(a,b,c){a=a|0;b=b|0;c=c|0;return Ac(a,2147483647,b,c)|0}function Cc(a){a=a|0;return 0}function Dc(a){a=a|0;return}function Ec(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;g=b&255;i[h>>0]=g;d=a+16|0;e=k[d>>2]|0;if(!e)if(!(Jc(a)|0)){e=k[d>>2]|0;f=4}else c=-1;else f=4;do if((f|0)==4){d=a+20|0;f=k[d>>2]|0;if(f>>>0>>0?(c=b&255,(c|0)!=(i[a+75>>0]|0)):0){k[d>>2]=f+1;i[f>>0]=g;break}if((Ra[k[a+36>>2]&7](a,h,1)|0)==1)c=l[h>>0]|0;else c=-1}while(0);r=j;return c|0}function Fc(a){a=a|0;var b=0,c=0;b=r;r=r+16|0;c=b;k[c>>2]=k[a+60>>2];a=oc(Ca(6,c|0)|0)|0;r=b;return a|0}function Gc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;f=e;d=e+20|0;k[f>>2]=k[a+60>>2];k[f+4>>2]=0;k[f+8>>2]=b;k[f+12>>2]=d;k[f+16>>2]=c;if((oc(Ja(140,f|0)|0)|0)<0){k[d>>2]=-1;a=-1}else a=k[d>>2]|0;r=e;return a|0}function Hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;p=r;r=r+48|0;m=p+16|0;l=p;d=p+32|0;n=a+28|0;e=k[n>>2]|0;k[d>>2]=e;o=a+20|0;e=(k[o>>2]|0)-e|0;k[d+4>>2]=e;k[d+8>>2]=b;k[d+12>>2]=c;i=a+60|0;j=a+44|0;b=2;e=e+c|0;while(1){if(!(k[49]|0)){k[m>>2]=k[i>>2];k[m+4>>2]=d;k[m+8>>2]=b;g=oc(Na(146,m|0)|0)|0}else{Ba(7,a|0);k[l>>2]=k[i>>2];k[l+4>>2]=d;k[l+8>>2]=b;g=oc(Na(146,l|0)|0)|0;ua(0)}if((e|0)==(g|0)){e=6;break}if((g|0)<0){e=8;break}e=e-g|0;f=k[d+4>>2]|0;if(g>>>0<=f>>>0)if((b|0)==2){k[n>>2]=(k[n>>2]|0)+g;h=f;b=2}else h=f;else{h=k[j>>2]|0;k[n>>2]=h;k[o>>2]=h;h=k[d+12>>2]|0;g=g-f|0;d=d+8|0;b=b+-1|0}k[d>>2]=(k[d>>2]|0)+g;k[d+4>>2]=h-g}if((e|0)==6){m=k[j>>2]|0;k[a+16>>2]=m+(k[a+48>>2]|0);a=m;k[n>>2]=a;k[o>>2]=a}else if((e|0)==8){k[a+16>>2]=0;k[n>>2]=0;k[o>>2]=0;k[a>>2]=k[a>>2]|32;if((b|0)==2)c=0;else c=c-(k[d+4>>2]|0)|0}r=p;return c|0}function Ic(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+80|0;d=e;k[a+36>>2]=3;if((k[a>>2]&64|0)==0?(k[d>>2]=k[a+60>>2],k[d+4>>2]=21505,k[d+8>>2]=e+12,(Ia(54,d|0)|0)!=0):0)i[a+75>>0]=-1;d=Hc(a,b,c)|0;r=e;return d|0}function Jc(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=k[a>>2]|0;if(!(b&8)){k[a+8>>2]=0;k[a+4>>2]=0;b=k[a+44>>2]|0;k[a+28>>2]=b;k[a+20>>2]=b;k[a+16>>2]=b+(k[a+48>>2]|0);b=0}else{k[a>>2]=b|32;b=-1}return b|0}function Kc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b&255;d=(c|0)!=0;a:do if(d&(a&3|0)!=0){e=b&255;while(1){if((i[a>>0]|0)==e<<24>>24){g=6;break a}a=a+1|0;c=c+-1|0;d=(c|0)!=0;if(!(d&(a&3|0)!=0)){g=5;break}}}else g=5;while(0);if((g|0)==5)if(d)g=6;else c=0;b:do if((g|0)==6){e=b&255;if((i[a>>0]|0)!=e<<24>>24){d=ha(f,16843009)|0;c:do if(c>>>0>3)while(1){f=k[a>>2]^d;if((f&-2139062144^-2139062144)&f+-16843009)break;a=a+4|0;c=c+-4|0;if(c>>>0<=3){g=11;break c}}else g=11;while(0);if((g|0)==11)if(!c){c=0;break}while(1){if((i[a>>0]|0)==e<<24>>24)break b;a=a+1|0;c=c+-1|0;if(!c){c=0;break}}}}while(0);return ((c|0)!=0?a:0)|0}function Lc(a){a=a|0;var b=0,c=0,d=0;d=a;a:do if(!(d&3))c=4;else{b=a;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do a=a+1|0;while((i[a>>0]|0)!=0)}return a-d|0}function Mc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0.0,o=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=r;r=r+624|0;ba=ga+24|0;da=ga+16|0;ca=ga+588|0;Y=ga+576|0;aa=ga;V=ga+536|0;fa=ga+8|0;ea=ga+528|0;M=(a|0)!=0;N=V+40|0;U=N;V=V+39|0;W=fa+4|0;X=Y+12|0;Y=Y+11|0;Z=ca;_=X;$=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ba+288|0;R=ca+9|0;S=R;T=ca+8|0;f=0;w=b;g=0;b=0;a:while(1){do if((f|0)>-1)if((g|0)>(2147483647-f|0)){f=nc()|0;k[f>>2]=75;f=-1;break}else{f=g+f|0;break}while(0);g=i[w>>0]|0;if(!(g<<24>>24)){K=245;break}else h=w;b:while(1){switch(g<<24>>24){case 37:{g=h;K=9;break b}case 0:{g=h;break b}default:{}}J=h+1|0;g=i[J>>0]|0;h=J}c:do if((K|0)==9)while(1){K=0;if((i[g+1>>0]|0)!=37)break c;h=h+1|0;g=g+2|0;if((i[g>>0]|0)==37)K=9;else break}while(0);y=h-w|0;if(M?(k[a>>2]&32|0)==0:0)vc(w,y,a)|0;if((h|0)!=(w|0)){w=g;g=y;continue}o=g+1|0;h=i[o>>0]|0;m=(h<<24>>24)+-48|0;if(m>>>0<10){J=(i[g+2>>0]|0)==36;o=J?g+3|0:o;h=i[o>>0]|0;u=J?m:-1;b=J?1:b}else u=-1;g=h<<24>>24;d:do if((g&-32|0)==32){m=0;while(1){if(!(1<>24)+-32|m;o=o+1|0;h=i[o>>0]|0;g=h<<24>>24;if((g&-32|0)!=32){q=m;g=o;break}}}else{q=0;g=o}while(0);do if(h<<24>>24==42){m=g+1|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[e+(h<<2)>>2]=10;b=1;g=g+3|0;h=k[d+((i[m>>0]|0)+-48<<3)>>2]|0}else{if(b){f=-1;break a}if(!M){x=q;g=m;b=0;J=0;break}b=(k[c>>2]|0)+(4-1)&~(4-1);h=k[b>>2]|0;k[c>>2]=b+4;b=0;g=m}if((h|0)<0){x=q|8192;J=0-h|0}else{x=q;J=h}}else{m=(h<<24>>24)+-48|0;if(m>>>0<10){h=0;do{h=(h*10|0)+m|0;g=g+1|0;m=(i[g>>0]|0)+-48|0}while(m>>>0<10);if((h|0)<0){f=-1;break a}else{x=q;J=h}}else{x=q;J=0}}while(0);e:do if((i[g>>0]|0)==46){m=g+1|0;h=i[m>>0]|0;if(h<<24>>24!=42){o=(h<<24>>24)+-48|0;if(o>>>0<10){g=m;h=0}else{g=m;o=0;break}while(1){h=(h*10|0)+o|0;g=g+1|0;o=(i[g>>0]|0)+-48|0;if(o>>>0>=10){o=h;break e}}}m=g+2|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+3>>0]|0)==36:0){k[e+(h<<2)>>2]=10;g=g+4|0;o=k[d+((i[m>>0]|0)+-48<<3)>>2]|0;break}if(b){f=-1;break a}if(M){g=(k[c>>2]|0)+(4-1)&~(4-1);o=k[g>>2]|0;k[c>>2]=g+4;g=m}else{g=m;o=0}}else o=-1;while(0);s=0;while(1){h=(i[g>>0]|0)+-65|0;if(h>>>0>57){f=-1;break a}m=g+1|0;h=i[5347+(s*58|0)+h>>0]|0;q=h&255;if((q+-1|0)>>>0<8){g=m;s=q}else{I=m;break}}if(!(h<<24>>24)){f=-1;break}m=(u|0)>-1;do if(h<<24>>24==19)if(m){f=-1;break a}else K=52;else{if(m){k[e+(u<<2)>>2]=q;G=d+(u<<3)|0;H=k[G+4>>2]|0;K=aa;k[K>>2]=k[G>>2];k[K+4>>2]=H;K=52;break}if(!M){f=0;break a}Pc(aa,q,c)}while(0);if((K|0)==52?(K=0,!M):0){w=I;g=y;continue}u=i[g>>0]|0;u=(s|0)!=0&(u&15|0)==3?u&-33:u;m=x&-65537;H=(x&8192|0)==0?x:m;f:do switch(u|0){case 110:switch(s|0){case 0:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 1:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 2:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}case 3:{j[k[aa>>2]>>1]=f;w=I;g=y;continue a}case 4:{i[k[aa>>2]>>0]=f;w=I;g=y;continue a}case 6:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 7:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}default:{w=I;g=y;continue a}}case 112:{s=H|8;o=o>>>0>8?o:8;u=120;K=64;break}case 88:case 120:{s=H;K=64;break}case 111:{m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;if((h|0)==0&(m|0)==0)g=N;else{g=N;do{g=g+-1|0;i[g>>0]=h&7|48;h=ad(h|0,m|0,3)|0;m=L}while(!((h|0)==0&(m|0)==0))}if(!(H&8)){h=H;s=0;q=5827;K=77}else{s=U-g+1|0;h=H;o=(o|0)<(s|0)?s:o;s=0;q=5827;K=77}break}case 105:case 100:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;if((h|0)<0){g=Zc(0,0,g|0,h|0)|0;h=L;m=aa;k[m>>2]=g;k[m+4>>2]=h;m=1;q=5827;K=76;break f}if(!(H&2048)){q=H&1;m=q;q=(q|0)==0?5827:5829;K=76}else{m=1;q=5828;K=76}break}case 117:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;m=0;q=5827;K=76;break}case 99:{i[V>>0]=k[aa>>2];w=V;h=1;s=0;u=5827;g=N;break}case 109:{g=nc()|0;g=mc(k[g>>2]|0)|0;K=82;break}case 115:{g=k[aa>>2]|0;g=(g|0)!=0?g:5837;K=82;break}case 67:{k[fa>>2]=k[aa>>2];k[W>>2]=0;k[aa>>2]=fa;o=-1;K=86;break}case 83:{if(!o){Rc(a,32,J,0,H);g=0;K=98}else K=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{n=+p[aa>>3];k[da>>2]=0;p[t>>3]=n;if((k[t+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?5845:5850}else{F=1;G=5847}else{n=-n;F=1;G=5844}p[t>>3]=n;E=k[t+4>>2]&2146435072;do if(E>>>0<2146435072|(E|0)==2146435072&0<0){v=+qc(n,da)*2.0;h=v!=0.0;if(h)k[da>>2]=(k[da>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?G:G+9|0;x=F|2;g=12-o|0;do if(!(o>>>0>11|(g|0)==0)){n=8.0;do{g=g+-1|0;n=n*16.0}while((g|0)!=0);if((i[y>>0]|0)==45){n=-(n+(-v-n));break}else{n=v+n-n;break}}else n=v;while(0);h=k[da>>2]|0;g=(h|0)<0?0-h|0:h;g=Qc(g,((g|0)<0)<<31>>31,X)|0;if((g|0)==(X|0)){i[Y>>0]=48;g=Y}i[g+-1>>0]=(h>>31&2)+43;s=g+-2|0;i[s>>0]=u+15;q=(o|0)<1;m=(H&8|0)==0;h=ca;while(1){G=~~n;g=h+1|0;i[h>>0]=l[5811+G>>0]|w;n=(n-+(G|0))*16.0;do if((g-Z|0)==1){if(m&(q&n==0.0))break;i[g>>0]=46;g=h+2|0}while(0);if(!(n!=0.0))break;else h=g}o=(o|0)!=0&(O+g|0)<(o|0)?P+o-s|0:$-s+g|0;m=o+x|0;Rc(a,32,J,m,H);if(!(k[a>>2]&32))vc(y,x,a)|0;Rc(a,48,J,m,H^65536);g=g-Z|0;if(!(k[a>>2]&32))vc(ca,g,a)|0;h=_-s|0;Rc(a,48,o-(g+h)|0,0,0);if(!(k[a>>2]&32))vc(s,h,a)|0;Rc(a,32,J,m,H^8192);g=(m|0)<(J|0)?J:m;break}g=(o|0)<0?6:o;if(h){h=(k[da>>2]|0)+-28|0;k[da>>2]=h;n=v*268435456.0}else{n=v;h=k[da>>2]|0}E=(h|0)<0?ba:Q;D=E;h=E;do{B=~~n>>>0;k[h>>2]=B;h=h+4|0;n=(n-+(B>>>0))*1.0e9}while(n!=0.0);m=h;h=k[da>>2]|0;if((h|0)>0){q=E;while(1){s=(h|0)>29?29:h;o=m+-4|0;do if(o>>>0>>0)o=q;else{h=0;do{B=bd(k[o>>2]|0,0,s|0)|0;B=_c(B|0,L|0,h|0,0)|0;h=L;A=kd(B|0,h|0,1e9,0)|0;k[o>>2]=A;h=jd(B|0,h|0,1e9,0)|0;o=o+-4|0}while(o>>>0>=q>>>0);if(!h){o=q;break}o=q+-4|0;k[o>>2]=h}while(0);while(1){if(m>>>0<=o>>>0)break;h=m+-4|0;if(!(k[h>>2]|0))m=h;else break}h=(k[da>>2]|0)-s|0;k[da>>2]=h;if((h|0)>0)q=o;else break}}else o=E;if((h|0)<0){y=((g+25|0)/9|0)+1|0;z=(C|0)==102;w=o;while(1){x=0-h|0;x=(x|0)>9?9:x;do if(w>>>0>>0){h=(1<>>x;o=0;s=w;do{B=k[s>>2]|0;k[s>>2]=(B>>>x)+o;o=ha(B&h,q)|0;s=s+4|0}while(s>>>0>>0);h=(k[w>>2]|0)==0?w+4|0:w;if(!o){o=h;break}k[m>>2]=o;o=h;m=m+4|0}else o=(k[w>>2]|0)==0?w+4|0:w;while(0);h=z?E:o;m=(m-h>>2|0)>(y|0)?h+(y<<2)|0:m;h=(k[da>>2]|0)+x|0;k[da>>2]=h;if((h|0)>=0){w=o;break}else w=o}}else w=o;do if(w>>>0>>0){h=(D-w>>2)*9|0;q=k[w>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;h=h+1|0}while(q>>>0>=o>>>0)}else h=0;while(0);A=(C|0)==103;B=(g|0)!=0;o=g-((C|0)!=102?h:0)+((B&A)<<31>>31)|0;if((o|0)<(((m-D>>2)*9|0)+-9|0)){s=o+9216|0;z=(s|0)/9|0;o=E+(z+-1023<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){q=10;do{q=q*10|0;s=s+1|0}while((s|0)!=9)}else q=10;x=k[o>>2]|0;y=(x>>>0)%(q>>>0)|0;if((y|0)==0?(E+(z+-1022<<2)|0)==(m|0):0)q=w;else K=163;do if((K|0)==163){K=0;v=(((x>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;do if(y>>>0>>0)n=.5;else{if((y|0)==(s|0)?(E+(z+-1022<<2)|0)==(m|0):0){n=1.0;break}n=1.5}while(0);do if(F){if((i[G>>0]|0)!=45)break;v=-v;n=-n}while(0);s=x-y|0;k[o>>2]=s;if(!(v+n!=v)){q=w;break}C=s+q|0;k[o>>2]=C;if(C>>>0>999999999){h=w;while(1){q=o+-4|0;k[o>>2]=0;if(q>>>0>>0){h=h+-4|0;k[h>>2]=0}C=(k[q>>2]|0)+1|0;k[q>>2]=C;if(C>>>0>999999999)o=q;else{w=h;o=q;break}}}h=(D-w>>2)*9|0;s=k[w>>2]|0;if(s>>>0<10){q=w;break}else q=10;do{q=q*10|0;h=h+1|0}while(s>>>0>=q>>>0);q=w}while(0);C=o+4|0;w=q;m=m>>>0>C>>>0?C:m}y=0-h|0;while(1){if(m>>>0<=w>>>0){z=0;C=m;break}o=m+-4|0;if(!(k[o>>2]|0))m=o;else{z=1;C=m;break}}do if(A){g=(B&1^1)+g|0;if((g|0)>(h|0)&(h|0)>-5){u=u+-1|0;g=g+-1-h|0}else{u=u+-2|0;g=g+-1|0}m=H&8;if(m)break;do if(z){m=k[C+-4>>2]|0;if(!m){o=9;break}if(!((m>>>0)%10|0)){q=10;o=0}else{o=0;break}do{q=q*10|0;o=o+1|0}while(((m>>>0)%(q>>>0)|0|0)==0)}else o=9;while(0);m=((C-D>>2)*9|0)+-9|0;if((u|32|0)==102){m=m-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}else{m=m+h-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}}else m=H&8;while(0);x=g|m;q=(x|0)!=0&1;s=(u|32|0)==102;if(s){h=(h|0)>0?h:0;u=0}else{o=(h|0)<0?y:h;o=Qc(o,((o|0)<0)<<31>>31,X)|0;if((_-o|0)<2)do{o=o+-1|0;i[o>>0]=48}while((_-o|0)<2);i[o+-1>>0]=(h>>31&2)+43;D=o+-2|0;i[D>>0]=u;h=_-D|0;u=D}y=F+1+g+q+h|0;Rc(a,32,J,y,H);if(!(k[a>>2]&32))vc(G,F,a)|0;Rc(a,48,J,y,H^65536);do if(s){o=w>>>0>E>>>0?E:w;h=o;do{m=Qc(k[h>>2]|0,0,R)|0;do if((h|0)==(o|0)){if((m|0)!=(R|0))break;i[T>>0]=48;m=T}else{if(m>>>0<=ca>>>0)break;do{m=m+-1|0;i[m>>0]=48}while(m>>>0>ca>>>0)}while(0);if(!(k[a>>2]&32))vc(m,S-m|0,a)|0;h=h+4|0}while(h>>>0<=E>>>0);do if(x){if(k[a>>2]&32)break;vc(5879,1,a)|0}while(0);if((g|0)>0&h>>>0>>0){m=h;while(1){h=Qc(k[m>>2]|0,0,R)|0;if(h>>>0>ca>>>0)do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0);if(!(k[a>>2]&32))vc(h,(g|0)>9?9:g,a)|0;m=m+4|0;h=g+-9|0;if(!((g|0)>9&m>>>0>>0)){g=h;break}else g=h}}Rc(a,48,g+9|0,9,0)}else{s=z?C:w+4|0;if((g|0)>-1){q=(m|0)==0;o=w;do{h=Qc(k[o>>2]|0,0,R)|0;if((h|0)==(R|0)){i[T>>0]=48;h=T}do if((o|0)==(w|0)){m=h+1|0;if(!(k[a>>2]&32))vc(h,1,a)|0;if(q&(g|0)<1){h=m;break}if(k[a>>2]&32){h=m;break}vc(5879,1,a)|0;h=m}else{if(h>>>0<=ca>>>0)break;do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0)}while(0);m=S-h|0;if(!(k[a>>2]&32))vc(h,(g|0)>(m|0)?m:g,a)|0;g=g-m|0;o=o+4|0}while(o>>>0>>0&(g|0)>-1)}Rc(a,48,g+18|0,18,0);if(k[a>>2]&32)break;vc(u,_-u|0,a)|0}while(0);Rc(a,32,J,y,H^8192);g=(y|0)<(J|0)?J:y}else{s=(u&32|0)!=0;q=n!=n|0.0!=0.0;h=q?0:F;o=h+3|0;Rc(a,32,J,o,m);g=k[a>>2]|0;if(!(g&32)){vc(G,h,a)|0;g=k[a>>2]|0}if(!(g&32))vc(q?(s?5871:5875):s?5863:5867,3,a)|0;Rc(a,32,J,o,H^8192);g=(o|0)<(J|0)?J:o}while(0);w=I;continue a}default:{m=H;h=o;s=0;u=5827;g=N}}while(0);g:do if((K|0)==64){m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;q=u&32;if(!((h|0)==0&(m|0)==0)){g=N;do{g=g+-1|0;i[g>>0]=l[5811+(h&15)>>0]|q;h=ad(h|0,m|0,4)|0;m=L}while(!((h|0)==0&(m|0)==0));K=aa;if((s&8|0)==0|(k[K>>2]|0)==0&(k[K+4>>2]|0)==0){h=s;s=0;q=5827;K=77}else{h=s;s=2;q=5827+(u>>4)|0;K=77}}else{g=N;h=s;s=0;q=5827;K=77}}else if((K|0)==76){g=Qc(g,h,N)|0;h=H;s=m;K=77}else if((K|0)==82){K=0;H=Kc(g,0,o)|0;G=(H|0)==0;w=g;h=G?o:H-g|0;s=0;u=5827;g=G?g+o|0:H}else if((K|0)==86){K=0;h=0;g=0;q=k[aa>>2]|0;while(1){m=k[q>>2]|0;if(!m)break;g=sc(ea,m)|0;if((g|0)<0|g>>>0>(o-h|0)>>>0)break;h=g+h|0;if(o>>>0>h>>>0)q=q+4|0;else break}if((g|0)<0){f=-1;break a}Rc(a,32,J,h,H);if(!h){g=0;K=98}else{m=0;o=k[aa>>2]|0;while(1){g=k[o>>2]|0;if(!g){g=h;K=98;break g}g=sc(ea,g)|0;m=g+m|0;if((m|0)>(h|0)){g=h;K=98;break g}if(!(k[a>>2]&32))vc(ea,g,a)|0;if(m>>>0>=h>>>0){g=h;K=98;break}else o=o+4|0}}}while(0);if((K|0)==98){K=0;Rc(a,32,J,g,H^8192);w=I;g=(J|0)>(g|0)?J:g;continue}if((K|0)==77){K=0;m=(o|0)>-1?h&-65537:h;h=aa;h=(k[h>>2]|0)!=0|(k[h+4>>2]|0)!=0;if((o|0)!=0|h){h=(h&1^1)+(U-g)|0;w=g;h=(o|0)>(h|0)?o:h;u=q;g=N}else{w=N;h=0;u=q;g=N}}q=g-w|0;h=(h|0)<(q|0)?q:h;o=s+h|0;g=(J|0)<(o|0)?o:J;Rc(a,32,g,o,m);if(!(k[a>>2]&32))vc(u,s,a)|0;Rc(a,48,g,o,m^65536);Rc(a,48,h,q,0);if(!(k[a>>2]&32))vc(w,q,a)|0;Rc(a,32,g,o,m^8192);w=I}h:do if((K|0)==245)if(!a)if(b){f=1;while(1){b=k[e+(f<<2)>>2]|0;if(!b)break;Pc(d+(f<<3)|0,b,c);f=f+1|0;if((f|0)>=10){f=1;break h}}if((f|0)<10)while(1){if(k[e+(f<<2)>>2]|0){f=-1;break h}f=f+1|0;if((f|0)>=10){f=1;break}}else f=1}else f=0;while(0);r=ga;return f|0}function Nc(a){a=a|0;if(!(k[a+68>>2]|0))Dc(a);return}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=k[d>>2]|0;a=(k[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;cd(e|0,b|0,a|0)|0;k[d>>2]=(k[d>>2]|0)+a;return c|0}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;k[a>>2]=b;break a}case 10:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=0;break a}case 12:{d=(k[c>>2]|0)+(8-1)&~(8-1);b=d;e=k[b>>2]|0;b=k[b+4>>2]|0;k[c>>2]=d+8;d=a;k[d>>2]=e;k[d+4>>2]=b;break a}case 13:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&65535;k[e+4>>2]=0;break a}case 15:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&255)<<24>>24;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&255;k[e+4>>2]=0;break a}case 17:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}case 18:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}default:break a}while(0);while(0);return}function Qc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295)while(1){d=kd(a|0,b|0,10,0)|0;c=c+-1|0;i[c>>0]=d|48;d=jd(a|0,b|0,10,0)|0;if(b>>>0>9|(b|0)==9&a>>>0>4294967295){a=d;b=L}else{a=d;break}}if(a)while(1){c=c+-1|0;i[c>>0]=(a>>>0)%10|0|48;if(a>>>0<10)break;else a=(a>>>0)/10|0}return c|0}function Rc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=r;r=r+256|0;g=h;do if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;$c(g|0,b|0,(e>>>0>256?256:e)|0)|0;b=k[a>>2]|0;f=(b&32|0)==0;if(e>>>0>255){d=c-d|0;do{if(f){vc(g,256,a)|0;b=k[a>>2]|0}e=e+-256|0;f=(b&32|0)==0}while(e>>>0>255);if(f)e=d&255;else break}else if(!f)break;vc(g,e,a)|0}while(0);r=h;return}function Sc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;h=k[147]|0;c=h>>>a;if(c&3){a=(c&1^1)+a|0;d=a<<1;c=628+(d<<2)|0;d=628+(d+2<<2)|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do if((c|0)!=(g|0)){if(g>>>0<(k[151]|0)>>>0)Aa();b=g+12|0;if((k[b>>2]|0)==(e|0)){k[b>>2]=c;k[d>>2]=g;break}else Aa()}else k[147]=h&~(1<>2]=M|3;M=e+(M|4)|0;k[M>>2]=k[M>>2]|1;M=f;return M|0}g=k[149]|0;if(o>>>0>g>>>0){if(c){d=2<>>12&16;d=d>>>i;e=d>>>5&8;d=d>>>e;f=d>>>2&4;d=d>>>f;c=d>>>1&2;d=d>>>c;a=d>>>1&1;a=(e|i|f|c|a)+(d>>>a)|0;d=a<<1;c=628+(d<<2)|0;d=628+(d+2<<2)|0;f=k[d>>2]|0;i=f+8|0;e=k[i>>2]|0;do if((c|0)!=(e|0)){if(e>>>0<(k[151]|0)>>>0)Aa();b=e+12|0;if((k[b>>2]|0)==(f|0)){k[b>>2]=c;k[d>>2]=e;j=k[149]|0;break}else Aa()}else{k[147]=h&~(1<>2]=o|3;h=f+o|0;k[f+(o|4)>>2]=g|1;k[f+M>>2]=g;if(j){e=k[152]|0;c=j>>>3;b=c<<1;d=628+(b<<2)|0;a=k[147]|0;c=1<>2]|0;if(b>>>0<(k[151]|0)>>>0)Aa();else{l=a;m=b}}else{k[147]=a|c;l=628+(b+2<<2)|0;m=d}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=d}k[149]=g;k[152]=h;M=i;return M|0}a=k[148]|0;if(a){c=(a&0-a)+-1|0;L=c>>>12&16;c=c>>>L;K=c>>>5&8;c=c>>>K;M=c>>>2&4;c=c>>>M;a=c>>>1&2;c=c>>>a;d=c>>>1&1;d=k[892+((K|L|M|a|d)+(c>>>d)<<2)>>2]|0;c=(k[d+4>>2]&-8)-o|0;a=d;while(1){b=k[a+16>>2]|0;if(!b){b=k[a+20>>2]|0;if(!b){i=c;break}}a=(k[b+4>>2]&-8)-o|0;M=a>>>0>>0;c=M?a:c;a=b;d=M?b:d}f=k[151]|0;if(d>>>0>>0)Aa();h=d+o|0;if(d>>>0>=h>>>0)Aa();g=k[d+24>>2]|0;c=k[d+12>>2]|0;do if((c|0)==(d|0)){a=d+20|0;b=k[a>>2]|0;if(!b){a=d+16|0;b=k[a>>2]|0;if(!b){n=0;break}}while(1){c=b+20|0;e=k[c>>2]|0;if(e){b=e;a=c;continue}c=b+16|0;e=k[c>>2]|0;if(!e)break;else{b=e;a=c}}if(a>>>0>>0)Aa();else{k[a>>2]=0;n=b;break}}else{e=k[d+8>>2]|0;if(e>>>0>>0)Aa();b=e+12|0;if((k[b>>2]|0)!=(d|0))Aa();a=c+8|0;if((k[a>>2]|0)==(d|0)){k[b>>2]=c;k[a>>2]=e;n=c;break}else Aa()}while(0);do if(g){b=k[d+28>>2]|0;a=892+(b<<2)|0;if((d|0)==(k[a>>2]|0)){k[a>>2]=n;if(!n){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(d|0))k[b>>2]=n;else k[g+20>>2]=n;if(!n)break}a=k[151]|0;if(n>>>0>>0)Aa();k[n+24>>2]=g;b=k[d+16>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[n+16>>2]=b;k[b+24>>2]=n;break}while(0);b=k[d+20>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[n+20>>2]=b;k[b+24>>2]=n;break}}while(0);if(i>>>0<16){M=i+o|0;k[d+4>>2]=M|3;M=d+(M+4)|0;k[M>>2]=k[M>>2]|1}else{k[d+4>>2]=o|3;k[d+(o|4)>>2]=i|1;k[d+(i+o)>>2]=i;b=k[149]|0;if(b){f=k[152]|0;c=b>>>3;b=c<<1;e=628+(b<<2)|0;a=k[147]|0;c=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{p=b;q=a}}else{k[147]=a|c;p=628+(b+2<<2)|0;q=e}k[p>>2]=f;k[q+12>>2]=f;k[f+8>>2]=q;k[f+12>>2]=e}k[149]=i;k[152]=h}M=d+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=k[148]|0;if(l){c=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;j=14-(p|q|j)+(v<>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;a=k[892+(j<<2)>>2]|0;a:do if(!a){e=0;a=0;v=86}else{g=c;e=0;h=m<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){f=k[i+4>>2]&-8;c=f-m|0;if(c>>>0>>0)if((f|0)==(m|0)){f=i;a=i;v=90;break a}else a=i;else c=g;v=k[i+20>>2]|0;i=k[i+16+(h>>>31<<2)>>2]|0;e=(v|0)==0|(v|0)==(i|0)?e:v;if(!i){v=86;break}else{g=c;h=h<<1}}}while(0);if((v|0)==86){if((e|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;e=a>>>1&1;e=k[892+((l|n|p|q|e)+(a>>>e)<<2)>>2]|0;a=0}if(!e){h=c;i=a}else{f=e;v=90}}if((v|0)==90)while(1){v=0;q=(k[f+4>>2]&-8)-m|0;e=q>>>0>>0;c=e?q:c;a=e?f:a;e=k[f+16>>2]|0;if(e){f=e;v=90;continue}f=k[f+20>>2]|0;if(!f){h=c;i=a;break}else v=90}if((i|0)!=0?h>>>0<((k[149]|0)-m|0)>>>0:0){e=k[151]|0;if(i>>>0>>0)Aa();g=i+m|0;if(i>>>0>=g>>>0)Aa();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;b=k[a>>2]|0;if(!b){a=i+16|0;b=k[a>>2]|0;if(!b){o=0;break}}while(1){c=b+20|0;d=k[c>>2]|0;if(d){b=d;a=c;continue}c=b+16|0;d=k[c>>2]|0;if(!d)break;else{b=d;a=c}}if(a>>>0>>0)Aa();else{k[a>>2]=0;o=b;break}}else{d=k[i+8>>2]|0;if(d>>>0>>0)Aa();b=d+12|0;if((k[b>>2]|0)!=(i|0))Aa();a=c+8|0;if((k[a>>2]|0)==(i|0)){k[b>>2]=c;k[a>>2]=d;o=c;break}else Aa()}while(0);do if(f){b=k[i+28>>2]|0;a=892+(b<<2)|0;if((i|0)==(k[a>>2]|0)){k[a>>2]=o;if(!o){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=f+16|0;if((k[b>>2]|0)==(i|0))k[b>>2]=o;else k[f+20>>2]=o;if(!o)break}a=k[151]|0;if(o>>>0>>0)Aa();k[o+24>>2]=f;b=k[i+16>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[o+16>>2]=b;k[b+24>>2]=o;break}while(0);b=k[i+20>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[o+20>>2]=b;k[b+24>>2]=o;break}}while(0);b:do if(h>>>0>=16){k[i+4>>2]=m|3;k[i+(m|4)>>2]=h|1;k[i+(h+m)>>2]=h;b=h>>>3;if(h>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{s=b;t=a}}else{k[147]=c|b;s=628+(a+2<<2)|0;t=d}k[s>>2]=g;k[t+12>>2]=g;k[i+(m+8)>>2]=t;k[i+(m+12)>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=892+(d<<2)|0;k[i+(m+28)>>2]=d;k[i+(m+20)>>2]=0;k[i+(m+16)>>2]=0;a=k[148]|0;c=1<>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break}b=k[b>>2]|0;c:do if((k[b+4>>2]&-8|0)!=(h|0)){d=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(h|0)){y=c;break c}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break b}}else y=b;while(0);b=y+8|0;a=k[b>>2]|0;M=k[151]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[i+(m+8)>>2]=a;k[i+(m+12)>>2]=y;k[i+(m+24)>>2]=0;break}else Aa()}else{M=h+m|0;k[i+4>>2]=M|3;M=i+(M+4)|0;k[M>>2]=k[M>>2]|1}while(0);M=i+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);c=k[149]|0;if(c>>>0>=q>>>0){b=c-q|0;a=k[152]|0;if(b>>>0>15){k[152]=a+q;k[149]=b;k[a+(q+4)>>2]=b|1;k[a+c>>2]=b;k[a+4>>2]=q|3}else{k[149]=0;k[152]=0;k[a+4>>2]=c|3;M=a+(c+4)|0;k[M>>2]=k[M>>2]|1}M=a+8|0;return M|0}a=k[150]|0;if(a>>>0>q>>>0){L=a-q|0;k[150]=L;M=k[153]|0;k[153]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(k[265]|0)){a=Ma(30)|0;if(!(a+-1&a)){k[267]=a;k[266]=a;k[268]=-1;k[269]=-1;k[270]=0;k[258]=0;y=(Ea(0)|0)&-16^1431655768;k[265]=y;break}else Aa()}while(0);i=q+48|0;h=k[267]|0;j=q+47|0;g=h+j|0;h=0-h|0;l=g&h;if(l>>>0<=q>>>0){M=0;return M|0}a=k[257]|0;if((a|0)!=0?(t=k[255]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(k[258]&4)){a=k[153]|0;e:do if(a){e=1036;while(1){c=k[e>>2]|0;if(c>>>0<=a>>>0?(r=e+4|0,(c+(k[r>>2]|0)|0)>>>0>a>>>0):0){f=e;a=r;break}e=k[e+8>>2]|0;if(!e){v=174;break e}}c=g-(k[150]|0)&h;if(c>>>0<2147483647){e=Da(c|0)|0;y=(e|0)==((k[f>>2]|0)+(k[a>>2]|0)|0);a=y?c:0;if(y){if((e|0)!=(-1|0)){w=e;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){f=Da(0)|0;if((f|0)!=(-1|0)){a=f;c=k[266]|0;e=c+-1|0;if(!(e&a))c=l;else c=l-a+(e+a&0-c)|0;a=k[255]|0;e=a+c|0;if(c>>>0>q>>>0&c>>>0<2147483647){y=k[257]|0;if((y|0)!=0?e>>>0<=a>>>0|e>>>0>y>>>0:0){a=0;break}e=Da(c|0)|0;y=(e|0)==(f|0);a=y?c:0;if(y){w=f;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){f=0-c|0;do if(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))?(u=k[267]|0,u=j-c+u&0-u,u>>>0<2147483647):0)if((Da(u|0)|0)==(-1|0)){Da(f|0)|0;break f}else{c=u+c|0;break}while(0);if((e|0)!=(-1|0)){w=e;p=c;v=194;break d}}while(0);k[258]=k[258]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Da(l|0)|0,x=Da(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(k[255]|0)+p|0;k[255]=a;if(a>>>0>(k[256]|0)>>>0)k[256]=a;g=k[153]|0;g:do if(g){f=1036;do{a=k[f>>2]|0;c=f+4|0;e=k[c>>2]|0;if((w|0)==(a+e|0)){B=a;C=c;D=e;E=f;v=204;break}f=k[f+8>>2]|0}while((f|0)!=0);if(((v|0)==204?(k[E+12>>2]&8|0)==0:0)?g>>>0>>0&g>>>0>=B>>>0:0){k[C>>2]=D+p;M=(k[150]|0)+p|0;L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;k[153]=g+L;k[150]=K;k[g+(L+4)>>2]=K|1;k[g+(M+4)>>2]=40;k[154]=k[269];break}a=k[151]|0;if(w>>>0>>0){k[151]=w;a=w}c=w+p|0;f=1036;while(1){if((k[f>>2]|0)==(c|0)){e=f;c=f;v=212;break}f=k[f+8>>2]|0;if(!f){c=1036;break}}if((v|0)==212)if(!(k[c+12>>2]&8)){k[e>>2]=w;n=c+4|0;k[n>>2]=(k[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;j=w+(p+8)|0;j=(j&7|0)==0?0:0-j&7;b=w+(j+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;k[w+(n+4)>>2]=q|3;h:do if((b|0)!=(g|0)){if((b|0)==(k[152]|0)){M=(k[149]|0)+l|0;k[149]=M;k[152]=o;k[w+(m+4)>>2]=M|1;k[w+(M+m)>>2]=M;break}h=p+4|0;c=k[w+(h+j)>>2]|0;if((c&3|0)==1){i=c&-8;f=c>>>3;i:do if(c>>>0>=256){g=k[w+((j|24)+p)>>2]|0;d=k[w+(p+12+j)>>2]|0;do if((d|0)==(b|0)){e=j|16;d=w+(h+e)|0;c=k[d>>2]|0;if(!c){d=w+(e+p)|0;c=k[d>>2]|0;if(!c){J=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;J=c;break}}else{e=k[w+((j|8)+p)>>2]|0;if(e>>>0>>0)Aa();a=e+12|0;if((k[a>>2]|0)!=(b|0))Aa();c=d+8|0;if((k[c>>2]|0)==(b|0)){k[a>>2]=d;k[c>>2]=e;J=d;break}else Aa()}while(0);if(!g)break;a=k[w+(p+28+j)>>2]|0;c=892+(a<<2)|0;do if((b|0)!=(k[c>>2]|0)){if(g>>>0<(k[151]|0)>>>0)Aa();a=g+16|0;if((k[a>>2]|0)==(b|0))k[a>>2]=J;else k[g+20>>2]=J;if(!J)break i}else{k[c>>2]=J;if(J)break;k[148]=k[148]&~(1<>>0>>0)Aa();k[J+24>>2]=g;b=j|16;a=k[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)Aa();else{k[J+16>>2]=a;k[a+24>>2]=J;break}while(0);b=k[w+(h+b)>>2]|0;if(!b)break;if(b>>>0<(k[151]|0)>>>0)Aa();else{k[J+20>>2]=b;k[b+24>>2]=J;break}}else{d=k[w+((j|8)+p)>>2]|0;e=k[w+(p+12+j)>>2]|0;c=628+(f<<1<<2)|0;do if((d|0)!=(c|0)){if(d>>>0>>0)Aa();if((k[d+12>>2]|0)==(b|0))break;Aa()}while(0);if((e|0)==(d|0)){k[147]=k[147]&~(1<>>0>>0)Aa();a=e+8|0;if((k[a>>2]|0)==(b|0)){F=a;break}Aa()}while(0);k[d+12>>2]=e;k[F>>2]=d}while(0);b=w+((i|j)+p)|0;e=i+l|0}else e=l;b=b+4|0;k[b>>2]=k[b>>2]&-2;k[w+(m+4)>>2]=e|1;k[w+(e+m)>>2]=e;b=e>>>3;if(e>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0>=(k[151]|0)>>>0){K=b;L=a;break}Aa()}while(0);k[K>>2]=o;k[L+12>>2]=o;k[w+(m+8)>>2]=L;k[w+(m+12)>>2]=d;break}b=e>>>8;do if(!b)d=0;else{if(e>>>0>16777215){d=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=e>>>(d+7|0)&1|d<<1}while(0);b=892+(d<<2)|0;k[w+(m+28)>>2]=d;k[w+(m+20)>>2]=0;k[w+(m+16)>>2]=0;a=k[148]|0;c=1<>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break}b=k[b>>2]|0;j:do if((k[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(e|0)){M=c;break j}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=k[b>>2]|0;L=k[151]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){k[a+12>>2]=o;k[b>>2]=o;k[w+(m+8)>>2]=a;k[w+(m+12)>>2]=M;k[w+(m+24)>>2]=0;break}else Aa()}else{M=(k[150]|0)+l|0;k[150]=M;k[153]=o;k[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else c=1036;while(1){a=k[c>>2]|0;if(a>>>0<=g>>>0?(b=k[c+4>>2]|0,d=a+b|0,d>>>0>g>>>0):0)break;c=k[c+8>>2]|0}e=a+(b+-39)|0;a=a+(b+-47+((e&7|0)==0?0:0-e&7))|0;e=g+16|0;a=a>>>0>>0?g:a;b=a+8|0;c=w+8|0;c=(c&7|0)==0?0:0-c&7;M=p+-40-c|0;k[153]=w+c;k[150]=M;k[w+(c+4)>>2]=M|1;k[w+(p+-36)>>2]=40;k[154]=k[269];c=a+4|0;k[c>>2]=27;k[b>>2]=k[259];k[b+4>>2]=k[260];k[b+8>>2]=k[261];k[b+12>>2]=k[262];k[259]=w;k[260]=p;k[262]=0;k[261]=b;b=a+28|0;k[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;k[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(g|0)){f=a-g|0;k[c>>2]=k[c>>2]&-2;k[g+4>>2]=f|1;k[a>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;d=628+(a<<2)|0;c=k[147]|0;b=1<>2]|0;if(a>>>0<(k[151]|0)>>>0)Aa();else{G=b;H=a}}else{k[147]=c|b;G=628+(a+2<<2)|0;H=d}k[G>>2]=g;k[H+12>>2]=g;k[g+8>>2]=H;k[g+12>>2]=d;break}b=f>>>8;if(b)if(f>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;c=892+(d<<2)|0;k[g+28>>2]=d;k[g+20>>2]=0;k[e>>2]=0;b=k[148]|0;a=1<>2]=g;k[g+24>>2]=c;k[g+12>>2]=g;k[g+8>>2]=g;break}b=k[c>>2]|0;k:do if((k[b+4>>2]&-8|0)!=(f|0)){d=f<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(f|0)){I=c;break k}else{d=d<<1;b=c}}if(a>>>0<(k[151]|0)>>>0)Aa();else{k[a>>2]=g;k[g+24>>2]=b;k[g+12>>2]=g;k[g+8>>2]=g;break g}}else I=b;while(0);b=I+8|0;a=k[b>>2]|0;M=k[151]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[g+8>>2]=a;k[g+12>>2]=I;k[g+24>>2]=0;break}else Aa()}}else{M=k[151]|0;if((M|0)==0|w>>>0>>0)k[151]=w;k[259]=w;k[260]=p;k[262]=0;k[156]=k[265];k[155]=-1;b=0;do{M=b<<1;L=628+(M<<2)|0;k[628+(M+3<<2)>>2]=L;k[628+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;k[153]=w+M;k[150]=L;k[w+(M+4)>>2]=L|1;k[w+(p+-36)>>2]=40;k[154]=k[269]}while(0);b=k[150]|0;if(b>>>0>q>>>0){L=b-q|0;k[150]=L;M=k[153]|0;k[153]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}}M=nc()|0;k[M>>2]=12;M=0;return M|0}function Tc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;h=k[151]|0;if(b>>>0>>0)Aa();c=k[a+-4>>2]|0;d=c&3;if((d|0)==1)Aa();o=c&-8;q=a+(o+-8)|0;do if(!(c&1)){b=k[b>>2]|0;if(!d)return;i=-8-b|0;l=a+i|0;m=b+o|0;if(l>>>0>>0)Aa();if((l|0)==(k[152]|0)){b=a+(o+-4)|0;c=k[b>>2]|0;if((c&3|0)!=3){u=l;f=m;break}k[149]=m;k[b>>2]=c&-2;k[a+(i+4)>>2]=m|1;k[q>>2]=m;return}e=b>>>3;if(b>>>0<256){d=k[a+(i+8)>>2]|0;c=k[a+(i+12)>>2]|0;b=628+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0>>0)Aa();if((k[d+12>>2]|0)!=(l|0))Aa()}if((c|0)==(d|0)){k[147]=k[147]&~(1<>>0>>0)Aa();b=c+8|0;if((k[b>>2]|0)==(l|0))g=b;else Aa()}else g=c+8|0;k[d+12>>2]=c;k[g>>2]=d;u=l;f=m;break}g=k[a+(i+24)>>2]|0;d=k[a+(i+12)>>2]|0;do if((d|0)==(l|0)){c=a+(i+20)|0;b=k[c>>2]|0;if(!b){c=a+(i+16)|0;b=k[c>>2]|0;if(!b){j=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0>>0)Aa();else{k[c>>2]=0;j=b;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Aa();b=e+12|0;if((k[b>>2]|0)!=(l|0))Aa();c=d+8|0;if((k[c>>2]|0)==(l|0)){k[b>>2]=d;k[c>>2]=e;j=d;break}else Aa()}while(0);if(g){b=k[a+(i+28)>>2]|0;c=892+(b<<2)|0;if((l|0)==(k[c>>2]|0)){k[c>>2]=j;if(!j){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(l|0))k[b>>2]=j;else k[g+20>>2]=j;if(!j){u=l;f=m;break}}c=k[151]|0;if(j>>>0>>0)Aa();k[j+24>>2]=g;b=k[a+(i+16)>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[j+16>>2]=b;k[b+24>>2]=j;break}while(0);b=k[a+(i+20)>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[j+20>>2]=b;k[b+24>>2]=j;u=l;f=m;break}else{u=l;f=m}}else{u=l;f=m}}else{u=b;f=o}while(0);if(u>>>0>=q>>>0)Aa();b=a+(o+-4)|0;c=k[b>>2]|0;if(!(c&1))Aa();if(!(c&2)){if((q|0)==(k[153]|0)){t=(k[150]|0)+f|0;k[150]=t;k[153]=u;k[u+4>>2]=t|1;if((u|0)!=(k[152]|0))return;k[152]=0;k[149]=0;return}if((q|0)==(k[152]|0)){t=(k[149]|0)+f|0;k[149]=t;k[152]=u;k[u+4>>2]=t|1;k[u+t>>2]=t;return}f=(c&-8)+f|0;e=c>>>3;do if(c>>>0>=256){g=k[a+(o+16)>>2]|0;b=k[a+(o|4)>>2]|0;do if((b|0)==(q|0)){c=a+(o+12)|0;b=k[c>>2]|0;if(!b){c=a+(o+8)|0;b=k[c>>2]|0;if(!b){p=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<(k[151]|0)>>>0)Aa();else{k[c>>2]=0;p=b;break}}else{c=k[a+o>>2]|0;if(c>>>0<(k[151]|0)>>>0)Aa();d=c+12|0;if((k[d>>2]|0)!=(q|0))Aa();e=b+8|0;if((k[e>>2]|0)==(q|0)){k[d>>2]=b;k[e>>2]=c;p=b;break}else Aa()}while(0);if(g){b=k[a+(o+20)>>2]|0;c=892+(b<<2)|0;if((q|0)==(k[c>>2]|0)){k[c>>2]=p;if(!p){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();b=g+16|0;if((k[b>>2]|0)==(q|0))k[b>>2]=p;else k[g+20>>2]=p;if(!p)break}c=k[151]|0;if(p>>>0>>0)Aa();k[p+24>>2]=g;b=k[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)Aa();else{k[p+16>>2]=b;k[b+24>>2]=p;break}while(0);b=k[a+(o+12)>>2]|0;if(b)if(b>>>0<(k[151]|0)>>>0)Aa();else{k[p+20>>2]=b;k[b+24>>2]=p;break}}}else{d=k[a+o>>2]|0;c=k[a+(o|4)>>2]|0;b=628+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0<(k[151]|0)>>>0)Aa();if((k[d+12>>2]|0)!=(q|0))Aa()}if((c|0)==(d|0)){k[147]=k[147]&~(1<>>0<(k[151]|0)>>>0)Aa();b=c+8|0;if((k[b>>2]|0)==(q|0))n=b;else Aa()}else n=c+8|0;k[d+12>>2]=c;k[n>>2]=d}while(0);k[u+4>>2]=f|1;k[u+f>>2]=f;if((u|0)==(k[152]|0)){k[149]=f;return}}else{k[b>>2]=c&-2;k[u+4>>2]=f|1;k[u+f>>2]=f}b=f>>>3;if(f>>>0<256){c=b<<1;e=628+(c<<2)|0;d=k[147]|0;b=1<>2]|0;if(c>>>0<(k[151]|0)>>>0)Aa();else{r=b;s=c}}else{k[147]=d|b;r=628+(c+2<<2)|0;s=e}k[r>>2]=u;k[s+12>>2]=u;k[u+8>>2]=s;k[u+12>>2]=e;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;e=14-(q|r|e)+(s<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=892+(e<<2)|0;k[u+28>>2]=e;k[u+20>>2]=0;k[u+16>>2]=0;c=k[148]|0;d=1<>2]|0;b:do if((k[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){c=b+16+(e>>>31<<2)|0;d=k[c>>2]|0;if(!d)break;if((k[d+4>>2]&-8|0)==(f|0)){t=d;break b}else{e=e<<1;b=d}}if(c>>>0<(k[151]|0)>>>0)Aa();else{k[c>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;c=k[b>>2]|0;s=k[151]|0;if(c>>>0>=s>>>0&t>>>0>=s>>>0){k[c+12>>2]=u;k[b>>2]=u;k[u+8>>2]=c;k[u+12>>2]=t;k[u+24>>2]=0;break}else Aa()}else{k[148]=c|d;k[b>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u}while(0);u=(k[155]|0)+-1|0;k[155]=u;if(!u)b=1044;else return;while(1){b=k[b>>2]|0;if(!b)break;else b=b+8|0}k[155]=-1;return}function Uc(a,b){a=a|0;b=b|0;var c=0,d=0;if(!a){a=Sc(b)|0;return a|0}if(b>>>0>4294967231){a=nc()|0;k[a>>2]=12;a=0;return a|0}c=Wc(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(c){a=c+8|0;return a|0}c=Sc(b)|0;if(!c){a=0;return a|0}d=k[a+-4>>2]|0;d=(d&-8)-((d&3|0)==0?8:4)|0;cd(c|0,a|0,(d>>>0>>0?d:b)|0)|0;Tc(a);a=c;return a|0}function Vc(a){a=a|0;var b=0;if(!a){b=0;return b|0}a=k[a+-4>>2]|0;b=a&3;if((b|0)==1){b=0;return b|0}b=(a&-8)-((b|0)==0?8:4)|0;return b|0}function Wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=k[o>>2]|0;i=p&-8;l=a+i|0;h=k[151]|0;c=p&3;if(!((c|0)!=1&a>>>0>=h>>>0&a>>>0>>0))Aa();d=a+(i|4)|0;e=k[d>>2]|0;if(!(e&1))Aa();if(!c){if(b>>>0<256){a=0;return a|0}if(i>>>0>=(b+4|0)>>>0?(i-b|0)>>>0<=k[267]<<1>>>0:0)return a|0;a=0;return a|0}if(i>>>0>=b>>>0){c=i-b|0;if(c>>>0<=15)return a|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|3;k[d>>2]=k[d>>2]|1;Xc(a+b|0,c);return a|0}if((l|0)==(k[153]|0)){c=(k[150]|0)+i|0;if(c>>>0<=b>>>0){a=0;return a|0}n=c-b|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|1;k[153]=a+b;k[150]=n;return a|0}if((l|0)==(k[152]|0)){d=(k[149]|0)+i|0;if(d>>>0>>0){a=0;return a|0}c=d-b|0;if(c>>>0>15){k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|1;k[a+d>>2]=c;d=a+(d+4)|0;k[d>>2]=k[d>>2]&-2;d=a+b|0}else{k[o>>2]=p&1|d|2;d=a+(d+4)|0;k[d>>2]=k[d>>2]|1;d=0;c=0}k[149]=c;k[152]=d;return a|0}if(e&2){a=0;return a|0}m=(e&-8)+i|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;f=e>>>3;do if(e>>>0>=256){g=k[a+(i+24)>>2]|0;f=k[a+(i+12)>>2]|0;do if((f|0)==(l|0)){d=a+(i+20)|0;c=k[d>>2]|0;if(!c){d=a+(i+16)|0;c=k[d>>2]|0;if(!c){j=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;j=c;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Aa();c=e+12|0;if((k[c>>2]|0)!=(l|0))Aa();d=f+8|0;if((k[d>>2]|0)==(l|0)){k[c>>2]=f;k[d>>2]=e;j=f;break}else Aa()}while(0);if(g){c=k[a+(i+28)>>2]|0;d=892+(c<<2)|0;if((l|0)==(k[d>>2]|0)){k[d>>2]=j;if(!j){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=g+16|0;if((k[c>>2]|0)==(l|0))k[c>>2]=j;else k[g+20>>2]=j;if(!j)break}d=k[151]|0;if(j>>>0>>0)Aa();k[j+24>>2]=g;c=k[a+(i+16)>>2]|0;do if(c)if(c>>>0>>0)Aa();else{k[j+16>>2]=c;k[c+24>>2]=j;break}while(0);c=k[a+(i+20)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[j+20>>2]=c;k[c+24>>2]=j;break}}}else{e=k[a+(i+8)>>2]|0;d=k[a+(i+12)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(l|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(l|0))g=c;else Aa()}else g=d+8|0;k[e+12>>2]=d;k[g>>2]=e}while(0);if(n>>>0<16){k[o>>2]=m|p&1|2;b=a+(m|4)|0;k[b>>2]=k[b>>2]|1;return a|0}else{k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|3;p=a+(m|4)|0;k[p>>2]=k[p>>2]|1;Xc(a+b|0,n);return a|0}return 0}function Xc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;c=k[a+4>>2]|0;do if(!(c&1)){j=k[a>>2]|0;if(!(c&3))return;n=a+(0-j)|0;m=j+b|0;i=k[151]|0;if(n>>>0>>0)Aa();if((n|0)==(k[152]|0)){d=a+(b+4)|0;c=k[d>>2]|0;if((c&3|0)!=3){t=n;g=m;break}k[149]=m;k[d>>2]=c&-2;k[a+(4-j)>>2]=m|1;k[q>>2]=m;return}f=j>>>3;if(j>>>0<256){e=k[a+(8-j)>>2]|0;d=k[a+(12-j)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(n|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(n|0))h=c;else Aa()}else h=d+8|0;k[e+12>>2]=d;k[h>>2]=e;t=n;g=m;break}h=k[a+(24-j)>>2]|0;e=k[a+(12-j)>>2]|0;do if((e|0)==(n|0)){e=16-j|0;d=a+(e+4)|0;c=k[d>>2]|0;if(!c){d=a+e|0;c=k[d>>2]|0;if(!c){l=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;l=c;break}}else{f=k[a+(8-j)>>2]|0;if(f>>>0>>0)Aa();c=f+12|0;if((k[c>>2]|0)!=(n|0))Aa();d=e+8|0;if((k[d>>2]|0)==(n|0)){k[c>>2]=e;k[d>>2]=f;l=e;break}else Aa()}while(0);if(h){c=k[a+(28-j)>>2]|0;d=892+(c<<2)|0;if((n|0)==(k[d>>2]|0)){k[d>>2]=l;if(!l){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=h+16|0;if((k[c>>2]|0)==(n|0))k[c>>2]=l;else k[h+20>>2]=l;if(!l){t=n;g=m;break}}e=k[151]|0;if(l>>>0>>0)Aa();k[l+24>>2]=h;c=16-j|0;d=k[a+c>>2]|0;do if(d)if(d>>>0>>0)Aa();else{k[l+16>>2]=d;k[d+24>>2]=l;break}while(0);c=k[a+(c+4)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[l+20>>2]=c;k[c+24>>2]=l;t=n;g=m;break}else{t=n;g=m}}else{t=n;g=m}}else{t=a;g=b}while(0);i=k[151]|0;if(q>>>0>>0)Aa();c=a+(b+4)|0;d=k[c>>2]|0;if(!(d&2)){if((q|0)==(k[153]|0)){s=(k[150]|0)+g|0;k[150]=s;k[153]=t;k[t+4>>2]=s|1;if((t|0)!=(k[152]|0))return;k[152]=0;k[149]=0;return}if((q|0)==(k[152]|0)){s=(k[149]|0)+g|0;k[149]=s;k[152]=t;k[t+4>>2]=s|1;k[t+s>>2]=s;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=k[a+(b+24)>>2]|0;e=k[a+(b+12)>>2]|0;do if((e|0)==(q|0)){d=a+(b+20)|0;c=k[d>>2]|0;if(!c){d=a+(b+16)|0;c=k[d>>2]|0;if(!c){p=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Aa();else{k[d>>2]=0;p=c;break}}else{f=k[a+(b+8)>>2]|0;if(f>>>0>>0)Aa();c=f+12|0;if((k[c>>2]|0)!=(q|0))Aa();d=e+8|0;if((k[d>>2]|0)==(q|0)){k[c>>2]=e;k[d>>2]=f;p=e;break}else Aa()}while(0);if(h){c=k[a+(b+28)>>2]|0;d=892+(c<<2)|0;if((q|0)==(k[d>>2]|0)){k[d>>2]=p;if(!p){k[148]=k[148]&~(1<>>0<(k[151]|0)>>>0)Aa();c=h+16|0;if((k[c>>2]|0)==(q|0))k[c>>2]=p;else k[h+20>>2]=p;if(!p)break}d=k[151]|0;if(p>>>0>>0)Aa();k[p+24>>2]=h;c=k[a+(b+16)>>2]|0;do if(c)if(c>>>0>>0)Aa();else{k[p+16>>2]=c;k[c+24>>2]=p;break}while(0);c=k[a+(b+20)>>2]|0;if(c)if(c>>>0<(k[151]|0)>>>0)Aa();else{k[p+20>>2]=c;k[c+24>>2]=p;break}}}else{e=k[a+(b+8)>>2]|0;d=k[a+(b+12)>>2]|0;c=628+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Aa();if((k[e+12>>2]|0)!=(q|0))Aa()}if((d|0)==(e|0)){k[147]=k[147]&~(1<>>0>>0)Aa();c=d+8|0;if((k[c>>2]|0)==(q|0))o=c;else Aa()}else o=d+8|0;k[e+12>>2]=d;k[o>>2]=e}while(0);k[t+4>>2]=g|1;k[t+g>>2]=g;if((t|0)==(k[152]|0)){k[149]=g;return}}else{k[c>>2]=d&-2;k[t+4>>2]=g|1;k[t+g>>2]=g}c=g>>>3;if(g>>>0<256){d=c<<1;f=628+(d<<2)|0;e=k[147]|0;c=1<>2]|0;if(d>>>0<(k[151]|0)>>>0)Aa();else{r=c;s=d}}else{k[147]=e|c;r=628+(d+2<<2)|0;s=f}k[r>>2]=t;k[s+12>>2]=t;k[t+8>>2]=s;k[t+12>>2]=f;return}c=g>>>8;if(c)if(g>>>0>16777215)f=31;else{r=(c+1048320|0)>>>16&8;s=c<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;c=892+(f<<2)|0;k[t+28>>2]=f;k[t+20>>2]=0;k[t+16>>2]=0;d=k[148]|0;e=1<>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}c=k[c>>2]|0;a:do if((k[c+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=c+16+(f>>>31<<2)|0;e=k[d>>2]|0;if(!e)break;if((k[e+4>>2]&-8|0)==(g|0)){c=e;break a}else{f=f<<1;c=e}}if(d>>>0<(k[151]|0)>>>0)Aa();k[d>>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}while(0);d=c+8|0;e=k[d>>2]|0;s=k[151]|0;if(!(e>>>0>=s>>>0&c>>>0>=s>>>0))Aa();k[e+12>>2]=t;k[d>>2]=t;k[t+8>>2]=e;k[t+12>>2]=c;k[t+24>>2]=0;return}function Yc(){}function Zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (L=d,a-c>>>0|0)|0}function _c(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (L=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function $c(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function ad(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>>c;return a>>>c|(b&(1<>>c-32|0}function bd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b<>>32-c;return a<=4096)return Ha(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function dd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){L=b>>c;return a>>>c|(b&(1<>c-32|0}function ed(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return (i[v+(a>>>24)>>0]|0)+24|0}function fd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ha(e,f)|0;d=a>>>16;a=(c>>>16)+(ha(e,d)|0)|0;e=b>>>16;b=ha(e,f)|0;return (L=(a>>>16)+(ha(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=Zc(j^a,i^b,j,i)|0;g=L;a=f^j;b=e^i;return Zc((ld(h,g,Zc(f^c,e^d,f,e)|0,L,0)|0)^a,L^b,a,b)|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=Zc(g^a,f^b,g,f)|0;b=L;ld(a,b,Zc(j^c,i^d,j,i)|0,L,h)|0;d=Zc(k[h>>2]^g,k[h+4>>2]^f,g,f)|0;c=L;r=e;return (L=c,d)|0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=fd(e,f)|0;a=L;return (L=(ha(b,f)|0)+(ha(d,e)|0)+a|a&0,c|0|0)|0}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ld(a,b,c,d,0)|0}function kd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;ld(a,b,c,d,e)|0;r=f;return (L=k[e+4>>2]|0,k[e>>2]|0)|0}function ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return (L=n,e)|0}else{if(!f){n=0;e=0;return (L=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return (L=n,e)|0}}f=(h|0)==0;do if(g){if(!f){f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<>>(m>>>0)&b;f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return (L=n,e)|0}f=g-1|0;if(f&g){h=(ja(g|0)|0)+33-(ja(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<>>(o>>>0))&i|l<>31;break}if(e){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return (L=o,p)|0}else{p=ed(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return (L=o,p)|0}}else{if(f){if(e){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return (L=o,p)|0}if(!l){if(e){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return (L=o,p)|0}f=h-1|0;if(!(f&h)){if(e){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((ed(h|0)|0)>>>0);return (L=o,p)|0}f=(ja(h|0)|0)-(ja(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return (L=o,p)|0}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=_c(m|0,l|0,-1,-1)|0;c=L;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;Zc(j,c,d,n)|0;p=L;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=Zc(d,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=L;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return (L=o,p)|0}function md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ra[a&7](b|0,c|0,d|0)|0}function nd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Sa[a&3](b|0,c|0,d|0,e|0,f|0)}function od(a,b){a=a|0;b=b|0;Ta[a&7](b|0)}function pd(a,b){a=a|0;b=b|0;return Ua[a&1](b|0)|0}function qd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Va[a&0](b|0,c|0,d|0)}function rd(a){a=a|0;Wa[a&3]()}function sd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Xa[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function td(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ya[a&3](b|0,c|0,d|0,e|0)}function ud(a,b,c){a=a|0;b=b|0;c=c|0;ka(0);return 0}function vd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ka(1)}function wd(a){a=a|0;ka(2)}function xd(a){a=a|0;ka(3);return 0}function yd(a,b,c){a=a|0;b=b|0;c=c|0;ka(4)}function zd(){ka(5)}function Ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ka(6)}function Bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(7)} // EMSCRIPTEN_END_FUNCS - var Ra=[td,Yb,Nc,Gc,Fc,Hc,td,td];var Sa=[ud,dc,cc,ud];var Ta=[vd,Tb,Wb,Ub,Vb,Xb,kc,Mc];var Ua=[wd,Ec];var Va=[xd];var Wa=[yd,ic,jc,yd];var Xa=[zd,fc,ec,zd];var Ya=[Ad,_b,$b,Ad];return{___cxa_can_catch:gc,_crn_get_levels:zb,_crn_get_uncompressed_size:Bb,_crn_decompress:Cb,_i64Add:Zc,_crn_get_width:xb,___cxa_is_pointer_type:hc,_i64Subtract:Yc,_memset:_c,_malloc:Rc,_memcpy:bd,_bitshift64Lshr:$c,_free:Sc,_bitshift64Shl:ad,_crn_get_height:yb,_crn_get_dxt_format:Ab,runPostSets:Xc,_emscripten_replace_memory:Qa,stackAlloc:Za,stackSave:_a,stackRestore:$a,establishStackSpace:ab,setThrew:bb,setTempRet0:eb,getTempRet0:fb,dynCall_iiii:ld,dynCall_viiiii:md,dynCall_vi:nd,dynCall_ii:od,dynCall_viii:pd,dynCall_v:qd,dynCall_viiiiii:rd,dynCall_viiii:sd}}) + var Ra=[ud,Zb,Oc,Hc,Gc,Ic,ud,ud];var Sa=[vd,ec,dc,vd];var Ta=[wd,Ub,Xb,Vb,Wb,Yb,lc,Nc];var Ua=[xd,Fc];var Va=[yd];var Wa=[zd,jc,kc,zd];var Xa=[Ad,gc,fc,Ad];var Ya=[Bd,$b,ac,Bd];return{___cxa_can_catch:hc,_crn_get_levels:zb,_crn_get_uncompressed_size:Cb,_crn_decompress:Db,_i64Add:_c,_crn_get_width:xb,___cxa_is_pointer_type:ic,_crn_get_bytes_per_block:Bb,_memset:$c,_malloc:Sc,_memcpy:cd,_i64Subtract:Zc,_bitshift64Lshr:ad,_free:Tc,_bitshift64Shl:bd,_crn_get_height:yb,_crn_get_dxt_format:Ab,runPostSets:Yc,_emscripten_replace_memory:Qa,stackAlloc:Za,stackSave:_a,stackRestore:$a,establishStackSpace:ab,setThrew:bb,setTempRet0:eb,getTempRet0:fb,dynCall_iiii:md,dynCall_viiiii:nd,dynCall_vi:od,dynCall_ii:pd,dynCall_viii:qd,dynCall_v:rd,dynCall_viiiiii:sd,dynCall_viiii:td}}) // EMSCRIPTEN_END_ASM - (Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _crn_get_levels=Module["_crn_get_levels"]=asm["_crn_get_levels"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _crn_get_uncompressed_size=Module["_crn_get_uncompressed_size"]=asm["_crn_get_uncompressed_size"];var _crn_decompress=Module["_crn_decompress"]=asm["_crn_decompress"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _crn_get_height=Module["_crn_get_height"]=asm["_crn_get_height"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var _crn_get_dxt_format=Module["_crn_get_dxt_format"]=asm["_crn_get_dxt_format"];var _crn_get_width=Module["_crn_get_width"]=asm["_crn_get_width"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() + (Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _crn_get_levels=Module["_crn_get_levels"]=asm["_crn_get_levels"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _crn_get_uncompressed_size=Module["_crn_get_uncompressed_size"]=asm["_crn_get_uncompressed_size"];var _crn_decompress=Module["_crn_decompress"]=asm["_crn_decompress"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _crn_get_height=Module["_crn_get_height"]=asm["_crn_get_height"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _crn_get_bytes_per_block=Module["_crn_get_bytes_per_block"]=asm["_crn_get_bytes_per_block"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var _crn_get_dxt_format=Module["_crn_get_dxt_format"]=asm["_crn_get_dxt_format"];var _crn_get_width=Module["_crn_get_width"]=asm["_crn_get_width"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() return Module; }); \ No newline at end of file diff --git a/Source/Workers/transcodeCRNToDXT.js b/Source/Workers/transcodeCRNToDXT.js index 985e68fe9fbf..c1f57876e457 100644 --- a/Source/Workers/transcodeCRNToDXT.js +++ b/Source/Workers/transcodeCRNToDXT.js @@ -21,6 +21,32 @@ define([ // https://github.com/toji/texture-tester/blob/master/js/webgl-texture-util.js // http://toji.github.io/texture-tester/ + /** + * @license + * + * Copyright (c) 2014, Brandon Jones. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + // Taken from crnlib.h var CRN_FORMAT = { cCRNFmtInvalid: -1, From ee85f5cf35d863f551234bdf0dfb3bea05b95c30 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 26 Jan 2017 15:34:16 -0500 Subject: [PATCH 18/26] Update parsing glTF compressed textures. --- Source/Scene/Model.js | 53 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index 141d790fbb3d..7677f30991bc 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -1411,16 +1411,55 @@ define([ var ktxRegex = /(^data:image\/ktx)|(\.ktx$)/i; var crnRegex = /(^data:image\/crn)|(\.crn$)/i; - function parseTextures(model) { + function parseTextures(model, context) { var images = model.gltf.images; var textures = model.gltf.textures; for (var id in textures) { if (textures.hasOwnProperty(id)) { var gltfImage = images[textures[id].source]; + var extras = gltfImage.extras; + + var binary; + var uri; + + // First check for a compressed texture + if (defined(extras) && defined(extras.compressedImage3DTiles)) { + var s3tc = extras.compressedImage3DTiles.s3tc; + var pvrtc = extras.compressedImage3DTiles.pvrtc; + var etc1 = extras.compressedImage3DTiles.etc1; + + if (context.s3tc && defined(s3tc)) { + if (defined(s3tc.uri)) { + uri = s3tc.uri; + } else { + binary = s3tc; + } + } else if (context.pvrtc && defined(pvrtc)) { + if (defined(pvrtc.uri)) { + uri = pvrtc.uri; + } else { + binary = pvrtc; + } + } else if (context.etc1 && defined(etc1)) { + if (defined(etc1.uri)) { + uri = etc1.uri; + } else { + binary = etc1; + } + } + } + + // No compressed texture, so image references either uri (external or base64-encoded) or bufferView + if (!defined(binary) && !defined(uri)) { + if (defined(gltfImage.extensions) && defined(gltfImage.extensions.KHR_binary_glTF)) { + binary = gltfImage.extensions.KHR_binary_glTF; + } else { + uri = new Uri(gltfImage.uri); + } + } // Image references either uri (external or base64-encoded) or bufferView - if (defined(gltfImage.extensions) && defined(gltfImage.extensions.KHR_binary_glTF)) { - var binary = gltfImage.extensions.KHR_binary_glTF; + if (defined(binary)) { model._loadResources.texturesToCreateFromBufferView.enqueue({ id : id, image : undefined, @@ -1429,7 +1468,7 @@ define([ }); } else { ++model._loadResources.pendingTextureLoads; - var uri = new Uri(gltfImage.uri); + uri = new Uri(uri); var imagePath = uri.resolve(model._baseUri).toString(); if (ktxRegex.test(imagePath)) { @@ -1579,13 +1618,13 @@ define([ model._runtime.meshesByName = runtimeMeshesByName; } - function parse(model) { + function parse(model, context) { if (!model._loadRendererResourcesFromCache) { parseBuffers(model); parseBufferViews(model); parseShaders(model); parsePrograms(model); - parseTextures(model); + parseTextures(model, context); } parseMaterials(model); parseMeshes(model); @@ -4170,7 +4209,7 @@ define([ } this._loadResources = new LoadResources(); - parse(this); + parse(this, context); } } From d7d82d01878a93d1710a1f5e314eee8a49beba06 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Thu, 26 Jan 2017 16:09:20 -0500 Subject: [PATCH 19/26] Add getCompressedTextureFormatSupported to Scene. --- Apps/Sandcastle/gallery/Materials.html | 9 ++++----- Source/Renderer/Context.js | 2 +- Source/Scene/Scene.js | 12 ++++++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Apps/Sandcastle/gallery/Materials.html b/Apps/Sandcastle/gallery/Materials.html index ef0f13c94f12..e98c8f570e1f 100644 --- a/Apps/Sandcastle/gallery/Materials.html +++ b/Apps/Sandcastle/gallery/Materials.html @@ -206,12 +206,11 @@ Sandcastle.declare(applyCompressedTextureMaterial); // For highlighting in Sandcastle. var compressedImageUrl; - var context = scene.context; - if (context.s3tc) { + if (scene.getCompressedTextureFormatSupported('s3tc')) { compressedImageUrl = '../images/LogoDXT1.ktx'; - } else if (context.etc1) { + } else if (scene.getCompressedTextureFormatSupported('etc1')) { compressedImageUrl = '../images/LogoETC1.ktx'; - } else if (context.pvrtc) { + } else if (scene.getCompressedTextureFormatSupported('pvrtc')) { compressedImageUrl = '../images/LogoPVR.ktx'; } @@ -473,7 +472,7 @@ Sandcastle.highlight(applyPolylineOutlineMaterial); } }]); - + document.getElementById('toolbar').style.width = '10%'; } diff --git a/Source/Renderer/Context.js b/Source/Renderer/Context.js index d60df36489a2..185863313e31 100644 --- a/Source/Renderer/Context.js +++ b/Source/Renderer/Context.js @@ -273,7 +273,7 @@ define([ this._fragDepth = !!getExtension(gl, ['EXT_frag_depth']); this._debugShaders = getExtension(gl, ['WEBGL_debug_shaders']); - this._s3tc = !!getExtension(gl, ['WEBGL_compressed_s3tc', 'MOZ_WEBGL_compressed_texture_s3tc', 'WEBKIT_WEBGL_compressed_texture_s3tc']); + this._s3tc = !!getExtension(gl, ['WEBGL_compressed_texture_s3tc', 'MOZ_WEBGL_compressed_texture_s3tc', 'WEBKIT_WEBGL_compressed_texture_s3tc']); this._pvrtc = !!getExtension(gl, ['WEBGL_compressed_texture_pvrtc', 'WEBKIT_WEBGL_compressed_texture_pvrtc']); this._etc1 = !!getExtension(gl, ['WEBGL_compressed_texture_etc1']); diff --git a/Source/Scene/Scene.js b/Source/Scene/Scene.js index 430d088c68a5..c1194881b62f 100644 --- a/Source/Scene/Scene.js +++ b/Source/Scene/Scene.js @@ -1097,6 +1097,18 @@ define([ } }); + /** + * Determines if a compressed texture format is supported. + * @param {String} format The texture format. May be the name of the format or the WebGL extension name, e.g. s3tc or WEBGL_compressed_texture_s3tc. + * @return {boolean} Whether or not the format is supported. + */ + Scene.prototype.getCompressedTextureFormatSupported = function(format) { + var context = this.context; + return ((format === 'WEBGL_compressed_texture_s3tc' || format === 's3tc') && context.s3tc) || + ((format === 'WEBGL_compressed_texture_pvrtc' || format === 'pvrtc') && context.pvrtc) || + ((format === 'WEBGL_compressed_texture_etc1' || format === 'etc1') && context.etc1); + }; + var scratchPosition0 = new Cartesian3(); var scratchPosition1 = new Cartesian3(); function maxComponent(a, b) { From 7b9c700c8a290e1e415f2a3f38261db1e843c999 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Mon, 30 Jan 2017 16:07:46 -0500 Subject: [PATCH 20/26] Update test models with compressed textures. Fix binary glTF. --- Source/Scene/Model.js | 29 +- .../CesiumTexturedBoxTest.glb | Bin 10465 -> 7097 bytes .../Models/Box-Textured-CRN-Binary/Readme.txt | 1 - .../CesiumTexturedBoxTest.gltf | 21 +- .../Box-Textured-CRN-Embedded/Readme.txt | 1 - .../CesiumTexturedBoxTest.bin | Bin 840 -> 0 bytes .../CesiumTexturedBoxTest.dae | 126 ---- .../CesiumTexturedBoxTest.gltf | 583 ++++++++--------- .../CesiumTexturedBoxTest0FS.glsl | 18 - .../CesiumTexturedBoxTest0VS.glsl | 15 - .../Box-Textured-CRN/Cesium_Logo_Flat.crn | Bin 5101 -> 0 bytes .../Box-Textured-CRN/Cesium_Logo_Flat.png | Bin 34222 -> 0 bytes .../Box-Textured-CRN/Image0001-crunch.crn | Bin 0 -> 1429 bytes .../Models/Box-Textured-CRN/Image0001.png | Bin 0 -> 68 bytes .../CesiumTexturedBoxTest.glb | Bin 267852 -> 26832 bytes .../Models/Box-Textured-KTX-Binary/Readme.txt | 1 - .../CesiumTexturedBoxTest.gltf | 125 +--- .../Box-Textured-KTX-Embedded/Readme.txt | 1 - .../CesiumTexturedBoxTest.bin | Bin 840 -> 0 bytes .../CesiumTexturedBoxTest.dae | 126 ---- .../CesiumTexturedBoxTest.gltf | 589 ++++++++---------- .../CesiumTexturedBoxTest0FS.glsl | 18 - .../CesiumTexturedBoxTest0VS.glsl | 15 - .../Box-Textured-KTX/Cesium_Logo_Flat.ktx | Bin 262244 -> 0 bytes .../Box-Textured-KTX/Cesium_Logo_Flat.png | Bin 34222 -> 0 bytes .../Box-Textured-KTX/Image0001-etc1.ktx | Bin 0 -> 8260 bytes .../Box-Textured-KTX/Image0001-pvrtc1.ktx | Bin 0 -> 4196 bytes .../Box-Textured-KTX/Image0001-s3tc.ktx | Bin 0 -> 8312 bytes .../Models/Box-Textured-KTX/Image0001.png | Bin 0 -> 68 bytes 29 files changed, 582 insertions(+), 1087 deletions(-) delete mode 100644 Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt delete mode 100644 Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt delete mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.bin delete mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae delete mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl delete mode 100644 Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl delete mode 100644 Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.crn delete mode 100644 Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.png create mode 100644 Specs/Data/Models/Box-Textured-CRN/Image0001-crunch.crn create mode 100644 Specs/Data/Models/Box-Textured-CRN/Image0001.png delete mode 100644 Specs/Data/Models/Box-Textured-KTX-Binary/Readme.txt delete mode 100644 Specs/Data/Models/Box-Textured-KTX-Embedded/Readme.txt delete mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.bin delete mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae delete mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl delete mode 100644 Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl delete mode 100644 Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.ktx delete mode 100644 Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.png create mode 100644 Specs/Data/Models/Box-Textured-KTX/Image0001-etc1.ktx create mode 100644 Specs/Data/Models/Box-Textured-KTX/Image0001-pvrtc1.ktx create mode 100644 Specs/Data/Models/Box-Textured-KTX/Image0001-s3tc.ktx create mode 100644 Specs/Data/Models/Box-Textured-KTX/Image0001.png diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index 7677f30991bc..11f8f099634f 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -1424,27 +1424,34 @@ define([ // First check for a compressed texture if (defined(extras) && defined(extras.compressedImage3DTiles)) { + var crunch = extras.compressedImage3DTiles.crunch; var s3tc = extras.compressedImage3DTiles.s3tc; - var pvrtc = extras.compressedImage3DTiles.pvrtc; + var pvrtc = extras.compressedImage3DTiles.pvrtc1; var etc1 = extras.compressedImage3DTiles.etc1; - if (context.s3tc && defined(s3tc)) { - if (defined(s3tc.uri)) { - uri = s3tc.uri; + if (context.s3tc && defined(crunch)) { + if (defined(crunch.extensions)&& defined(crunch.extensions.KHR_binary_glTF)) { + binary = crunch.extensions.KHR_binary_glTF; + } else { + uri = crunch.uri; + } + } else if (context.s3tc && defined(s3tc)) { + if (defined(s3tc.extensions)&& defined(s3tc.extensions.KHR_binary_glTF)) { + binary = s3tc.extensions.KHR_binary_glTF; } else { - binary = s3tc; + uri = s3tc.uri; } } else if (context.pvrtc && defined(pvrtc)) { - if (defined(pvrtc.uri)) { - uri = pvrtc.uri; + if (defined(pvrtc.extensions)&& defined(pvrtc.extensions.KHR_binary_glTF)) { + binary = pvrtc.extensions.KHR_binary_glTF; } else { - binary = pvrtc; + uri = pvrtc.uri; } } else if (context.etc1 && defined(etc1)) { - if (defined(etc1.uri)) { - uri = etc1.uri; + if (defined(etc1.extensions)&& defined(etc1.extensions.KHR_binary_glTF)) { + binary = etc1.extensions.KHR_binary_glTF; } else { - binary = etc1; + uri = etc1.uri; } } } diff --git a/Specs/Data/Models/Box-Textured-CRN-Binary/CesiumTexturedBoxTest.glb b/Specs/Data/Models/Box-Textured-CRN-Binary/CesiumTexturedBoxTest.glb index 1930d0d634ecaf095c743843fb17fb1069551ebe..7e988e8b02101d460ae5f508183b068bc18828de 100644 GIT binary patch delta 1731 zcmZ8hdo>u*Dcc|nvO7-het!pyBPC3oFn2;XF^R! zUcC^Bh>JW<9uY%CagZd@VMv@KkM7Spcdfhb-G6-dckRz-?Y%#Hf7f?{QTv?&@9aqj z2mny420*>S6@|2i4_46nX69sVzw;3sI+q*HiO{w*Hm8^ikWgTVZ`gSszep~Z6Xp@f zi8c`l(YngUrUxzlpZ}eis19R`F)^VW5^ZAW`@?+0wJl?{{X_ZZ!Z_jK9JVvxm&Y-o zoeVt7`5Os~4Dk;@I3i0d9WoJJ!m2|8Q8U3#l!D#4>s$y=o2(rj$c{iL#$@dPP9QH} ztFg)gEDT|so8xUX`YxKl=$a@^ICC`*z>#1WmHXeSWAB^1JAkh4l%9)&nL zXPVu~m|_3*ue$*njRMkwyPilGI3IDPl^td!IK=>$wG9BUnIsy30Ss+r_+N7Ypa#$Z zgaVKOi1;ri{LfVYP=)}Yib29T&@WGY3XTqb$+y$k#z0k6qcD@ukBSMh;K?RQi)xA{ z5!u`Y`|zdlA#WIH?N`yc;U0TFrnI_suB$|S@x$J|mwUAl1(3hP*rhUpdz^RlyUUu0 zitS1PqXFn4Yl7jh`&_X|cI-!!uflHWjoU1&pR-#~aYE?fVvNG(^!0_lER6^f03@JQ zU1mXG>uD+?ZK8f7+b(5Xdmkln&U!Bq^B)1On0tXI{Zk?wZ-7DDSuk?k4hxPO#OY{E zDxH@;N)dms=w!nfh{aNZVVIcw=_!@j79*cQ{ruaQnF@T$Y+JgpSM8NGB)Ng>Rm1=+ zT<&>zbYOmV;uKcJH{_-U6aR|fBHOD>JmlNpf?NOLw5Erd8%>WQmv`c4^1FRUlao`K znZK(XDICOoi=WD6lvCBhcK$B^mkhY`lR2}!adx>h`1Ix{jARzQx>m0+K0H$z%q))t z@8rY{!QYoas=I_v&DFT=UFP!->HV%abH?H@x(cQ;6DtO7cvlI@%8E&?(fK$FLClAO zZ^wGFnjG^!M#(Qjrw1rFlB^!8)e?}gwQ&tr`WhB#6#UsSy3^s79goQ*tbXf){7*i? zB~!~blSOaLCr1|JC5>y9OYLtxJ_Fns|9Fc$g9^NbKDV^8D|BxeE7Blrgkn;HTTL?L zum__BCmTf)B8oce?{y~R={}Vu+2JW@K~psT8xsQqvz$_oZcjJf^Ku)iTjD14g2hnc z!vOd=QR+h?@72`i)##OGU42}f9kToStHK2%?y7s${F$6=>+q{r@Z5TUegobx0+@d^ z2xV*wGbOPTGIHXNOY@FVChY0p{K^CWY(f?eWMO=nUS}D9znCL1-Apr1g0V@G_%uSD zisR_}U(;Xv-J}9w3L^XFgC5jZ*JL;#ZwBB2fz_UPsPaNx>0=`)H~{tCI9RqaI^J*A zB26ZnJALwZK9kdn5M>l~+}DIwLe(fg%e!<{u%~upbk;i!K>##JKX7cO@v8^B>m_%p ztfr;q(8_qxav@v4|A--}&gUX7(X3Z}hZZ`YXWRC?~GmBdL7@V>NJrS0Y>#F0>YkMw^3~NaM_K z@qHVCnc`AV`}1|19yME0iS2stWMV{|6M6M+PDj{=;E#b%AyNE9Dz2lDY@LdIT-yC5 zGP^*ktQPu@i(IcW>l+fdpE_KfwbZh-(@LJJw4>Dq_W|0>u#{!wZ?(6j7Mz3fe>qlRBRdHFf05F{PtMp5dC;Gm_NXZogd-4$!x@2)T@0pV%?F zY5nA1HIquvi+k)^*YsmQPZL=Ph}bz`cq=T3?(R05rUC;&pX)QfgSW3)^~*oqxdpQc zl)a&g+5YkI>Dz)De;7)D@j%8U|Ci}^u9m{2?$v#w1e?=5FLB4s7c8(q`?y0@`9kiL vceZJKE@6*~bSs4h@=?{k(J7f;ZxR?Zcf?AvGcR#ot{M{?FjMI$7-9Sy9Rk=n delta 5267 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 Y)|$Hny`!RSYKJoshyGgPu^NE?0MdjdcmMzZ diff --git a/Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt b/Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt deleted file mode 100644 index b0958ffb1be8..000000000000 --- a/Specs/Data/Models/Box-Textured-CRN-Binary/Readme.txt +++ /dev/null @@ -1 +0,0 @@ -This is the same as Box-Textured-CRN, except it is "Binary glTF" using the KHR_binary_glTF (CesiumTexturedBoxTest.glb) extensions. diff --git a/Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf index 2db727d6f041..fa3a353d192c 100644 --- a/Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf +++ b/Specs/Data/Models/Box-Textured-CRN-Embedded/CesiumTexturedBoxTest.gltf @@ -6,13 +6,7 @@ "byteStride": 0, "componentType": 5123, "count": 36, - "type": "SCALAR", - "min": [ - 0 - ], - "max": [ - 23 - ] + "type": "SCALAR" }, "accessor_23": { "bufferView": "bufferView_0", @@ -101,7 +95,14 @@ "images": { "Image0001": { "name": "Image0001", - "uri": "data:image/crn;base64,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" + "uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=", + "extras": { + "compressedImage3DTiles": { + "crunch": { + "uri": "data:image/crn;base64,SHgASvv9AAAFlRpEAIAAgAEBAAAAAAAAAAAAAAAAAAAAAABKAAC4AE8AAQIAASsAdAAAAAAAAAAAAAAAAAAAAAAAfQACLQAAAqoAgnAA0wxAxABM1vqhQR4PUQKytgIE4wGEEIIKAL7+GiFANAMaDWRm8ENz89/XXoAAISoXJZtVe3l4rbbF7curHPHoJCSQ0CIAAAEBY0beiq4JVXxed+SQIAAACxESaN1oA9c9CS3aVe2qkwrehDP/ze+bpWAFYklTaqqCb0KqBA7+55nw0ZYedBoAABoAIbauOQlkKCAQAAAAAsMsP/OPmOZ2z0mW5s+abbQAZppmemfv989/372AAMZsANtQQQUAUCt8JR7jEnnvtIma6DnKZIAEAWBgEoCAgA2I8sRAWMZ4DI9A9MPeNheAVzYPjtAb2D0Bz5sG0BAEAAWAsFtC3dTu6uFXBRdhbp4eWAjYCUoK0BYNNWG9Sgb8gVkgVjZTRCgwC6BSjSzkJkyIiItYldwXRaPWBh0I5Z9RsEAbchXcDPgHAKaFOFjHv+r1rWtZ/vIEz+oD+fu8Dt/a6a1rWLB1AOQLmr1rWqsBGBlIwbYGEcs47rFP004GOFHx2gO1gEBYg7LWPmeUCYgWEIbFd6EGOX146KId3s6WwEeg63YM9QFZ1DAGGgooAsU6ACwFuXy9PCkeOYwwCGzeT0hCwhS3LBoFKcXwDIVfa6vl9T7jqeA449vxfs+/+7Pzx+JW9AAG3m1QwgxRQABeX6Qhl7InpDEQRAEFdBCGglO4iAFGIwQhgIgudQl0qcq8qMqCoCfEChpBCDADfcB3CBMzKys2na1WzVtTZ8ywPkBTg/4B0mBREm2AAABfSDC8bnWouLmguCitlpS3qpduH5nYo/AuZvlVte5cnZc9c5SRCGa8AAPgAOBRaFjsvQc/o5XPe+EHC5rr8+5HdjNk52uhsy9LwAAAAAAKgAiuKMqubSqaZX00/owxhoAFhs9+jAm7F0fd5pyO2WKeQAAANAB10e5qr7y2uI9GGgAAAAgACWDHgzWzerutty7vAC8B0Zsyrvbd39M2wu+ILDhI8mNJXJ3QAAAABxAlVfs8fxh2YjqnTxgAI7nb3epejAAAAAAB1k8vTem//1Zky9Vm5a64wsI19t+p9aNkKdNFLRq7X4cGlS54qxPXAKx+yCc636HiVrHISRhYTyKXfN6drc8AysbVW0MgOF3218sP4Q2yzRFVT/3Ox4r4aEMunXywVobH/QQ81Hpnq3/x8MWjk93Ba1gAAAhYc5qsPn02EPNqx8z8Ps4bP5OrP/zQ44N0fEgs+aedyHL9fezU8m52bYNABsijLD2LBbetzfp1l6LvFhtvO4dmXVz8/ch2wA5Xe6l3FLupd9tveFEln5btr6m9Dr/tyenLQzxgHlGVyy1S1tPd/Oat/e+HPv17yHL3ZGKLnSTUoaKs0sbqpr3eHHhtdAvdnDbwYO9eHlr70evJokZVMNvltY++zm3VPjBP31EGdalm9i0vv+5te/XpqV/tRZMAH7IpoprMibLvbkk59P7QT1VEGdnR+8tHDQneIUdDsfPN6TJTxZLWmKn1zgAAADzBk10anTk8fyfZjtq/XXdfPbT6Z7WmFtqeKZA9RwSan9aGFn3wgBv9oInjk4uL25FNEkwuW3MgmY+GHMal4vZ/1E/QAAAAAUrbmeEU3f49vrq44xIB0qhkuU6OTY3nDWAAAAAAAABwAC2kcmpPVVPqjBeAAH3RTsliMqWYPNMMxBUAAAAACTAkb/GXY35+jg9qv4HXgoAIAAdKoZLn5E46f4bN+SaTgj5ZZ12ayJ7SYADwROsUGBZ6n+VelzR+nwkjF+8AAAAAHgAAGrngJavn/MB9K8HIe8+XlYpl1fkxDb0E5Y4CgAAAAA==" + } + } + } } }, "materials": { @@ -270,6 +271,6 @@ "type": 5121 } }, - "extensionsUsed": [], - "cameras": {} + "cameras": {}, + "extensionsUsed": [] } diff --git a/Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt b/Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt deleted file mode 100644 index 1dd27843c641..000000000000 --- a/Specs/Data/Models/Box-Textured-CRN-Embedded/Readme.txt +++ /dev/null @@ -1 +0,0 @@ -This is the same as Box-Textured-CRN, except the crunch compressed texture is embedded in the glTF. diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.bin b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.bin deleted file mode 100644 index 79f5db410b75a82000ca02da98dd8e7dc1900e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmb7A2@Zll5GyJwDk`4OfuG4!_=&tsox+rC2!c-1blT2rb{B{+!`u*Iff!4y3^CS7 zu))@lV22cY91JOr$Z*2hkl}(WZnzt+uzEUjV}d$l`QKRc%B9JIvXGfki^E=+q-I-vu_mWrU)E^{JT%P~{ diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae deleted file mode 100644 index b07a87d4aa98..000000000000 --- a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.dae +++ /dev/null @@ -1,126 +0,0 @@ - - - - - modo 801 [Build 77509], Microsoft Windows 7 Service Pack 1 (6.1.7601 Service Pack 1) - Plug-in: [Build 77509]; Use Absolute Path: No; Merge Reference Items: No; Save Hidden Items: No; Save Cameras: No; Save Lights: No; Save Locators: Yes; Save Triangles as Triangles: Yes; Order Vertex Maps Alphabetically: Yes; Bake Matrices: No; Save Vertex Normals: Yes; Save UV Texture Coordinates: Yes; Save Vertex Colors: No; Save Vertex Weights: No; Save Animation: Yes; Sample Animation: No; Sample Animation Start: 0; Sample Animation End: 120; Save modo Profile: No; Save Maya Profile: No; Save 3ds Max Profile: No; Formatted Arrays: No; - file:///C:/Users/Branden/Creative%20Cloud%20Files/03-2015%20Cesium%20Test%20Models/CesiumTexturedBoxTest.lxo - - 2015-03-04T16:58:00Z - 2015-03-04T16:58:00Z - Z_UP - - - - Cesium_Logo_Flat.png - - - - - - - - - - - - - Image0001 - A8R8G8B8 - - - - - Image0001-surface - LINEAR_MIPMAP_LINEAR - LINEAR - - - - - - - - - 0.2 0.2 0.2 1 - - - 256 - - - - - - - - - - - -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 0.5 -0.5 0.5 0.5 0.5 0.5 - - - - - - - - - - 0 0 1 1 0 0 0 1 0 0 -1 0 -1 0 0 0 0 -1 - - - - - - - - - - 6 1 5 1 6 1.09011e-007 5 1.09011e-007 4 1 5 1 4 1.02033e-008 5 1.02033e-008 2 1 1 1 2 1.02033e-008 1 1.02033e-008 3 1 3 1.02033e-008 0 1 0 1.09011e-007 1 1 1 1.09011e-007 - - - - - - - - - - - - - - -

4 0 0 6 0 1 5 0 2 7 0 3 5 0 2 6 0 1 7 1 4 6 1 5 2 1 6 3 1 7 2 1 6 6 1 5 5 2 8 7 2 9 1 2 10 2 2 11 1 2 10 7 2 9 6 3 12 4 3 4 3 3 13 0 3 6 3 3 13 4 3 4 4 4 12 5 4 8 0 4 13 1 4 10 0 4 13 5 4 8 0 5 14 1 5 15 3 5 16 2 5 17 3 5 16 1 5 15

- - - - - - - - - - - - - - - - - - - - 0 0 0 - 0 1 0 0 - 1 0 0 0 - 0 0 1 0 - 1 1 1 - - - - - - - - diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf index 72efec30c86e..23be67a6fefb 100644 --- a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf +++ b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest.gltf @@ -1,339 +1,276 @@ { - "accessors": { - "accessor_21": { - "bufferView": "bufferView_29", - "byteOffset": 0, - "byteStride": 0, - "componentType": 5123, - "count": 36, - "type": "SCALAR" - }, - "accessor_23": { - "bufferView": "bufferView_30", - "byteOffset": 0, - "byteStride": 12, - "componentType": 5126, - "count": 24, - "max": [ - 0.5, - 0.5, - 0.5 - ], - "min": [ - -0.5, - -0.5, - -0.5 - ], - "type": "VEC3" - }, - "accessor_25": { - "bufferView": "bufferView_30", - "byteOffset": 288, - "byteStride": 12, - "componentType": 5126, - "count": 24, - "max": [ - 1, - 1, - 1 - ], - "min": [ - -1, - -1, - -1 - ], - "type": "VEC3" - }, - "accessor_27": { - "bufferView": "bufferView_30", - "byteOffset": 576, - "byteStride": 8, - "componentType": 5126, - "count": 24, - "max": [ - 6, - 1 - ], - "min": [ - 0, - 0 - ], - "type": "VEC2" - } + "accessors": { + "accessor_21": { + "bufferView": "bufferView_1", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5123, + "count": 36, + "type": "SCALAR" }, - "animations": {}, - "asset": { - "generator": "collada2gltf@", - "premultipliedAlpha": true, - "profile": { - "api": "WebGL", - "version": "1.0.2" - }, - "version": "1.0" + "accessor_23": { + "bufferView": "bufferView_0", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" }, - "bufferViews": { - "bufferView_29": { - "buffer": "CesiumTexturedBoxTest", - "byteLength": 72, - "byteOffset": 0, - "target": 34963 - }, - "bufferView_30": { - "buffer": "CesiumTexturedBoxTest", - "byteLength": 768, - "byteOffset": 72, - "target": 34962 - } + "accessor_25": { + "bufferView": "bufferView_0", + "byteOffset": 288, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" }, - "buffers": { - "CesiumTexturedBoxTest": { - "byteLength": 840, - "type": "arraybuffer", - "uri": "CesiumTexturedBoxTest.bin" - } + "accessor_27": { + "bufferView": "bufferView_0", + "byteOffset": 576, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6, + 1 + ], + "min": [ + 0, + 0 + ], + "type": "VEC2" + } + }, + "animations": {}, + "asset": { + "generator": "collada2gltf@", + "premultipliedAlpha": true, + "profile": { + "api": "WebGL", + "version": "1.0.2" }, - "images": { - "Image0001": { - "name": "Image0001", - "uri": "Cesium_Logo_Flat.crn" - } + "version": "1.0" + }, + "bufferViews": { + "bufferView_0": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 768, + "byteOffset": 0, + "target": 34962 }, - "materials": { - "Effect-Texture": { - "name": "Texture", - "technique": "technique0", - "values": { - "diffuse": "texture_Image0001", - "shininess": 256, - "specular": [ - 0.20000000298023224, - 0.20000000298023224, - 0.20000000298023224, - 1 - ] - } + "bufferView_1": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 72, + "byteOffset": 768, + "target": 34963 + } + }, + "buffers": { + "CesiumTexturedBoxTest": { + "type": "arraybuffer", + "byteLength": 840, + "uri": "data:application/octet-stream;base64,AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAADAQAAAAAAAAKBAAAAAAAAAwED+/38/AACgQP7/fz8AAIBAAAAAAAAAoEAAAAAAAACAQAAAgD8AAKBAAACAPwAAAEAAAAAAAACAPwAAAAAAAABAAACAPwAAgD8AAIA/AABAQAAAAAAAAIBAAAAAAAAAQEAAAIA/AACAQAAAgD8AAEBAAAAAAAAAAEAAAAAAAABAQAAAgD8AAABAAACAPwAAAAAAAAAAAAAAAP7/fz8AAIA/AAAAAAAAgD/+/38/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA" + } + }, + "images": { + "Image0001": { + "name": "Image0001", + "uri": "Image0001.png", + "extras": { + "compressedImage3DTiles": { + "crunch": { + "uri": "Image0001-crunch.crn" + } } - }, - "meshes": { - "Geometry-mesh002": { - "name": "Mesh", - "primitives": [ - { - "attributes": { - "NORMAL": "accessor_25", - "POSITION": "accessor_23", - "TEXCOORD_0": "accessor_27" - }, - "indices": "accessor_21", - "material": "Effect-Texture", - "mode": 4 - } - ] + } + } + }, + "materials": { + "Effect-Texture": { + "name": "Texture", + "technique": "technique0", + "values": { + "diffuse": "texture_Image0001", + "shininess": 256, + "specular": [ + 0.20000000298023224, + 0.20000000298023224, + 0.20000000298023224, + 1 + ] + } + } + }, + "meshes": { + "Geometry-mesh002": { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": "accessor_25", + "POSITION": "accessor_23", + "TEXCOORD_0": "accessor_27" + }, + "indices": "accessor_21", + "material": "Effect-Texture", + "mode": 4 } + ] + } + }, + "nodes": { + "rootNode": { + "children": [], + "meshes": [ + "Geometry-mesh002" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + } + }, + "programs": { + "program_0": { + "attributes": [ + "a_normal", + "a_position", + "a_texcoord0" + ], + "fragmentShader": "CesiumTexturedBoxTest0FS", + "vertexShader": "CesiumTexturedBoxTest0VS" + } + }, + "samplers": { + "sampler_0": { + "magFilter": 9729, + "minFilter": 9729, + "wrapS": 10497, + "wrapT": 10497 + } + }, + "scene": "defaultScene", + "scenes": { + "defaultScene": { + "nodes": [ + "rootNode" + ] + } + }, + "shaders": { + "CesiumTexturedBoxTest0FS": { + "type": 35632, + "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Ow0KdmFyeWluZyB2ZWMzIHZfbm9ybWFsOw0KdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOw0KdW5pZm9ybSBzYW1wbGVyMkQgdV9kaWZmdXNlOw0KdW5pZm9ybSB2ZWM0IHVfc3BlY3VsYXI7DQp1bmlmb3JtIGZsb2F0IHVfc2hpbmluZXNzOw0Kdm9pZCBtYWluKHZvaWQpIHsNCnZlYzMgbm9ybWFsID0gbm9ybWFsaXplKHZfbm9ybWFsKTsNCnZlYzQgY29sb3IgPSB2ZWM0KDAuLCAwLiwgMC4sIDAuKTsNCnZlYzQgZGlmZnVzZSA9IHZlYzQoMC4sIDAuLCAwLiwgMS4pOw0KdmVjNCBzcGVjdWxhcjsNCmRpZmZ1c2UgPSB0ZXh0dXJlMkQodV9kaWZmdXNlLCB2X3RleGNvb3JkMCk7DQpzcGVjdWxhciA9IHVfc3BlY3VsYXI7DQpkaWZmdXNlLnh5eiAqPSBtYXgoZG90KG5vcm1hbCx2ZWMzKDAuLDAuLDEuKSksIDAuKTsNCmNvbG9yLnh5eiArPSBkaWZmdXNlLnh5ejsNCmNvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBkaWZmdXNlLmEsIGRpZmZ1c2UuYSk7DQpnbF9GcmFnQ29sb3IgPSBjb2xvcjsNCn0NCg==" }, - "nodes": { - "Geometry-mesh002Node": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "meshes": [ - "Geometry-mesh002" - ], - "name": "Mesh" + "CesiumTexturedBoxTest0VS": { + "type": 35633, + "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Ow0KYXR0cmlidXRlIHZlYzMgYV9wb3NpdGlvbjsNCmF0dHJpYnV0ZSB2ZWMzIGFfbm9ybWFsOw0KdmFyeWluZyB2ZWMzIHZfbm9ybWFsOw0KdW5pZm9ybSBtYXQzIHVfbm9ybWFsTWF0cml4Ow0KdW5pZm9ybSBtYXQ0IHVfbW9kZWxWaWV3TWF0cml4Ow0KdW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsNCmF0dHJpYnV0ZSB2ZWMyIGFfdGV4Y29vcmQwOw0KdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOw0Kdm9pZCBtYWluKHZvaWQpIHsNCnZlYzQgcG9zID0gdV9tb2RlbFZpZXdNYXRyaXggKiB2ZWM0KGFfcG9zaXRpb24sMS4wKTsNCnZfbm9ybWFsID0gdV9ub3JtYWxNYXRyaXggKiBhX25vcm1hbDsNCnZfdGV4Y29vcmQwID0gYV90ZXhjb29yZDA7DQpnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlvbk1hdHJpeCAqIHBvczsNCn0NCg==" + } + }, + "skins": {}, + "techniques": { + "technique0": { + "attributes": { + "a_normal": "normal", + "a_position": "position", + "a_texcoord0": "texcoord0" + }, + "parameters": { + "diffuse": { + "type": 35678 }, - "groupLocator030Node": { - "children": [ - "txtrLocator026Node" - ], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Texture_Group" + "modelViewMatrix": { + "semantic": "MODELVIEW", + "type": 35676 }, - "node_3": { - "children": [ - "Geometry-mesh002Node", - "groupLocator030Node" - ], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 0, - -1, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Y_UP_Transform" + "normal": { + "semantic": "NORMAL", + "type": 35665 }, - "txtrLocator026Node": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Cesium_Logo_Flat__Image___Texture_" - } - }, - "programs": { - "program_0": { - "attributes": [ - "a_normal", - "a_position", - "a_texcoord0" - ], - "fragmentShader": "CesiumTexturedBoxTest0FS", - "vertexShader": "CesiumTexturedBoxTest0VS" - } - }, - "samplers": { - "sampler_0": { - "magFilter": 9729, - "minFilter": 9729, - "wrapS": 10497, - "wrapT": 10497 - } - }, - "scene": "defaultScene", - "scenes": { - "defaultScene": { - "nodes": [ - "node_3" - ] - } - }, - "shaders": { - "CesiumTexturedBoxTest0FS": { - "type": 35632, - "uri": "CesiumTexturedBoxTest0FS.glsl" + "normalMatrix": { + "semantic": "MODELVIEWINVERSETRANSPOSE", + "type": 35675 }, - "CesiumTexturedBoxTest0VS": { - "type": 35633, - "uri": "CesiumTexturedBoxTest0VS.glsl" - } - }, - "skins": {}, - "techniques": { - "technique0": { - "attributes": { - "a_normal": "normal", - "a_position": "position", - "a_texcoord0": "texcoord0" - }, - "parameters": { - "diffuse": { - "type": 35678 - }, - "modelViewMatrix": { - "semantic": "MODELVIEW", - "type": 35676 - }, - "normal": { - "semantic": "NORMAL", - "type": 35665 - }, - "normalMatrix": { - "semantic": "MODELVIEWINVERSETRANSPOSE", - "type": 35675 - }, - "position": { - "semantic": "POSITION", - "type": 35665 - }, - "projectionMatrix": { - "semantic": "PROJECTION", - "type": 35676 - }, - "shininess": { - "type": 5126 - }, - "specular": { - "type": 35666 - }, - "texcoord0": { - "semantic": "TEXCOORD_0", - "type": 35664 - } - }, - "program": "program_0", - "states": { - "enable": [ - 2929, - 2884 - ] - }, - "uniforms": { - "u_diffuse": "diffuse", - "u_modelViewMatrix": "modelViewMatrix", - "u_normalMatrix": "normalMatrix", - "u_projectionMatrix": "projectionMatrix", - "u_shininess": "shininess", - "u_specular": "specular" - } - } - }, - "textures": { - "texture_Image0001": { - "format": 6408, - "internalFormat": 6408, - "sampler": "sampler_0", - "source": "Image0001", - "target": 3553, - "type": 5121 + "position": { + "semantic": "POSITION", + "type": 35665 + }, + "projectionMatrix": { + "semantic": "PROJECTION", + "type": 35676 + }, + "shininess": { + "type": 5126 + }, + "specular": { + "type": 35666 + }, + "texcoord0": { + "semantic": "TEXCOORD_0", + "type": 35664 } + }, + "program": "program_0", + "states": { + "enable": [ + 2929, + 2884 + ] + }, + "uniforms": { + "u_diffuse": "diffuse", + "u_modelViewMatrix": "modelViewMatrix", + "u_normalMatrix": "normalMatrix", + "u_projectionMatrix": "projectionMatrix", + "u_shininess": "shininess", + "u_specular": "specular" + } + } + }, + "textures": { + "texture_Image0001": { + "format": 6408, + "internalFormat": 6408, + "sampler": "sampler_0", + "source": "Image0001", + "target": 3553, + "type": 5121 } + }, + "cameras": {}, + "extensionsUsed": [] } diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl deleted file mode 100644 index 782e1f41628c..000000000000 --- a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0FS.glsl +++ /dev/null @@ -1,18 +0,0 @@ -precision highp float; -varying vec3 v_normal; -varying vec2 v_texcoord0; -uniform sampler2D u_diffuse; -uniform vec4 u_specular; -uniform float u_shininess; -void main(void) { -vec3 normal = normalize(v_normal); -vec4 color = vec4(0., 0., 0., 0.); -vec4 diffuse = vec4(0., 0., 0., 1.); -vec4 specular; -diffuse = texture2D(u_diffuse, v_texcoord0); -specular = u_specular; -diffuse.xyz *= max(dot(normal,vec3(0.,0.,1.)), 0.); -color.xyz += diffuse.xyz; -color = vec4(color.rgb * diffuse.a, diffuse.a); -gl_FragColor = color; -} diff --git a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl b/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl deleted file mode 100644 index cacc9ed997a3..000000000000 --- a/Specs/Data/Models/Box-Textured-CRN/CesiumTexturedBoxTest0VS.glsl +++ /dev/null @@ -1,15 +0,0 @@ -precision highp float; -attribute vec3 a_position; -attribute vec3 a_normal; -varying vec3 v_normal; -uniform mat3 u_normalMatrix; -uniform mat4 u_modelViewMatrix; -uniform mat4 u_projectionMatrix; -attribute vec2 a_texcoord0; -varying vec2 v_texcoord0; -void main(void) { -vec4 pos = u_modelViewMatrix * vec4(a_position,1.0); -v_normal = u_normalMatrix * a_normal; -v_texcoord0 = a_texcoord0; -gl_Position = u_projectionMatrix * pos; -} diff --git a/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.crn b/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.crn deleted file mode 100644 index 5a5b9111152cfb1baa77a62c14bb7f9592826f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5101 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 AO8@`> diff --git a/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.png b/Specs/Data/Models/Box-Textured-CRN/Cesium_Logo_Flat.png deleted file mode 100644 index a3a8cc9d60d0b6d48114b31057ba0ad7ec471852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34222 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 YAIvPT{2mlMlK=n!07*qoM6N<$g3Fl*bN~PV diff --git a/Specs/Data/Models/Box-Textured-CRN/Image0001-crunch.crn b/Specs/Data/Models/Box-Textured-CRN/Image0001-crunch.crn new file mode 100644 index 0000000000000000000000000000000000000000..ff524c5fb28c774a4a5dcf799f34a59951a8104c GIT binary patch literal 1429 zcmZ9Mdo;r$^Kut$CRW=A|+)ah%x9oHbxx0-NLC5^hI$} z9<&9Ez~$iqR~V=qlvm3jM_dhKmo?6{74BaAs;YXoa~}W@bkT}`y9h&$bPXN9s|2nPTTsFW2M zVLUXHvBJC}@3hUAlO9fnaBWj3xlG?TfX1YSdkTJVqlY;#Xu1rBP9H;p(^`>gN@Frt z1#fOKzZ$iAzzB#+m4RVcDsHKPKxqn-Od@=L$2X9N&l*T4b}D`}g}520PAmc-;bQ0G zyx#el(X&YT3w~Kj6!b@oop`65)X@tZJJiNCCuK(i2TKjSM9!Hz+T#aK#>K@`Qa;O{ z$nQt(K~H3piV2DVJ3mYQ6a!Ch7*d*RW>(lfPFqU|?u_W#diA#9!D+S+r8pRjOE5V; z=L#W(T{d-PsO@cr^RI|K_9#Qr;-F|LOrXS;^qYA;z{JU68I7U2C?k5<*StOaj?`M~ zoY@e`709Uql+|Ji+m3t^nvkT^WaqR(Zoc2K9nCZ9|)-i?-)8 zJB3CutQvXUBw8WF-S`<%0qn0F;?1}w2myfliF&7|YkoU=wDr*@iYn^skFE~0R`NYG zdrs)!s@!g(Qgp)#cMO0RQ7!7m!?|A^U$xjOP>B1|BKetYE@*A)bGA@6bXgr}lOB~S zY2QvJZgw=^{^@0*n;BW`$Y|a~nDmBw7Dg{FH0CGs>U=1|*pxu#3p2U_cGY zW=lxzwzCneP}wS0=#YOHNi92d?j?(}t!D21ben|uYxI4qlSsDQ^{H#U%~}e>SFyHuwcI{^ z*rD-$|3lVFhj76rb;&NcOe2$M^-qa|H7=oUrf+_EmOhmm%+kDTYK>rK_cP?^3$Ws5 z&aJWJ`1qlFr({m*ItMDJCoy(6J^8X4-Anw_AY?a`J}S%GGJX4B#h47#{oJF{KJnC@ zDJiND3UvkOJPz_{l?)9?6ECe=r8G>c5zFF)Aui+Pmi3Kn#oq zVs^Rrr^fA#qZ#dM2a;pVoIG8aEm_@EuwXeWs~{JiJ>i literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-CRN/Image0001.png b/Specs/Data/Models/Box-Textured-CRN/Image0001.png new file mode 100644 index 0000000000000000000000000000000000000000..073fcf40a183b676abf6e88f4b49e74326de60a1 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcwN$fBwreFf%hTykE3D Q8Ys-*>FVdQ&MBb@0Ea&gQ~&?~ literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb b/Specs/Data/Models/Box-Textured-KTX-Binary/CesiumTexturedBoxTest.glb index c276adb6a7ea74f4564a68add65149944d30413f..ec4774259c3bf3d43cb8ed820bd32a95ff1dcedf 100644 GIT binary patch literal 26832 zcmeHvdwi31n(r@3E4`7Khn?L;oh~{K8??^Bk(onjo1?6^gOoipT%dJC!Wrew-#<s^!*3ZvXUznE=V1yV)}PcF=h7bQMhL?C6klzzkcmA%aCLkpizo`^Javz!ctyRW2vm5w4!k}Pn0_ST62ZD zs-&i}3K_M!vaGD6v?OJ1SUHu^ zTBXxd<_u&%JIyc{ztL)&mKww_Id$fo!5F5D()?hjCeJp^9*kcAAPnoy*{R7v4o#jt zYvy1a(?+S`?39@@v?(DW-{mGFav9TCh!DE zS;|VQ%yf@giT$$S1^Vj@r_~bJMz^5kBy?~7zd_$|X=uG`t4hkbK>5AYHv>IXpf4$^ zsH`e4DT5&;Mb^q{xDsud1~ujlt1Bz3N)395UQ<=Fwj9^O9S=Rj9oQf@87U4Y^$zn8QG>@BjCA*=Os=ggvxh`Zjv ziS<<_*5#-GL)x5KC=HB^@`#*Wy&4x5=viuBQ-Zt6az2!&xwHWblvPr63iN%^;cl$v z2J;g`nvByD(x;}+OhqdjTaYtI2s*fQxN(4V+}6iddNN5Te?DPR?u31S!M)Nq;`f`t zW4@;0wpE+Alq7kL^dNAq`)b_6yWt))Z3}p%BVd(BG(C0%3NMj zQDZ^7(?7B_dtuIshZg1`L;Iq|uNksxl!5)*W#kChJ2M?Jq`kuncxcIrh0B&NG%mYu z$#Njg!T|z_NuSjNMfRamuuzom<3My2=AeRemo0sG;R23l0Vla>0Wht23y*Ykx9SIM zWdX@MlUDj&KTy2@Yzz=HGmWxC1{k=xA8H_@25pJQ%v@2jiXHbp68sddb%i6E1=9y*~I(w{o)%A0@Qml{v^unO7+78R|W)DeKCf zp=jVf+7q}>c~5)jHPo2ql{JNC2F(TUQN{{Y_6Lt?K5z{~fyVOBNbg5lCpLk5`uLI_ z@{cf@_oLKlRJ;P@kqY1Cj6F+Ix>2U~EWcO}-5O;o1g+DU?5F+Q5Au4SPvm(T(<@6^ zmnn_;noN~-7PL;|KAwzzB)yb5AyXQwn3`$uQn3&g%5Guf@Cs#NESyEKNW8*X6pLmt zOp8}Ei)C@_RyH25IQAnpf&C4eh}Q&$N3GQsdU(>U!^PaHTT@n9QZp|);wgMGVX0WF zd&;~zRri#PQv>HyFyDu{SdvjuCnG^hwyqBw16IK>4GRj42dr?>w4_|oNnE9+R99YN zshCRd?$*^|iZqgNQ+KcY#`3gzs-ooGbc}@H)1JyIY@xwa!}KIw|Eq70jM#(iN}k@g zD?r))12TT5WKZogGbzv`bXqwG{sT;wxlG@%@o8P+y)baY)Y8hDsghMmWFaYx|3itp zNpWJv?cqo6xmOp!L0M9akoHxrU8PIx+g6g)|CV^IEh}1toACnKMf?b+H%CVdl@NUw zBq=5O@7y?c-I`cfK=qzhck)2rVd2$_K=j%*Y^6=)xhDA!9;rN4x*bD)|CQm*`9!?^^T2~JQ8 zOc1u8<}P_4I$}};;3E2=2eX%f(ns&Aun_$By*r}RAdwGc-)G!#dbLlCXBv%~x%T|3 z0MqQDg-f!V?l0cDZ?Q37mz>;8d{k-;o#af2x}Rli+-*Q6yr-A)!-ZgwhSzw!7A#wm z^U(c8iY%`bVJ=<|Y6ve)A$Jvg+dGTiJGuHgQj)UC3Ym!}U9S-j2fbi#;@3}~z5OKO zD0017*JEDTDLe+do-Z&L_KIR%`KH>va700EU3t+rCQ}{g<~);$#-`&Km%|^(3!=6} zo9)%|pOm}6udckVcB;S_@ky_j_^aPDnY@kyGpgx5ucN~uia#&taNK^>Mp0%9p9z z_H3(z9_i2nb!BGi@N|k#zeboTMH>4yL+9;Pvq+u#&@)K z54Dfdju9FWD`6l>FXQURRDZAM-p9wvX@v zVvfsnNO@F`*vD~)`+@RQ6P+OE!KnM2ynkDVV>jx`UcCFmx^g27CA+@?|6u)Y*0`?R z>i}#DZ62~KoDm|LOdAB?DezCNll+l)oj#=JancidPrw^5w?h-oacdMfDc5^qGw{Wl zZ_FcpE5V0w2m0LfI^PX>2={SO1nwt9M~kAv^HxL{?00w)(GQ&P$BM%IT#h@#=tK3H zi25Wuq7x<@m-@2bujF-bT_|}%eN3@jI?TnFKYE5{w)W5FpmrC5JujJ+zt|0&I-L_}c z{fqFxguqdJK#?!#3;02oAlk@r1M^Cq2HPDx_EY|1Kjl5sd}AWMtT@l)+ktw-JeM~} zpH<|@_`Hqm!FGPX3Qd@>OTM4^gX52T#G6d8XL(OEMWk;VmPF6VivPQQtis112r z0Qp;ll}*=j(3X9q*B;y6JtOf`*6AM9$o*JXOV1G_;jS!4++91*Y_naM)aD`i@2N?j z<0czx^=v#U_KLpi>_^|QXB8JC?^lu>MgB;%rIp(~f$V%QT1|B-3OG;sx>ct1U_|ma z*eM@G5&0a>{m_s!YCnvm2k}cxOtd|AQqc$Zf^gEu=@Dc-Y!2`-m zYi@o%ubaHQyiv$o3AR~eS9)|f{Ob@Cb!2CY3-b?(;*1@jd7@})1q~-X8u5m3&1x4| zFYf2czp5UqheEgp)aC{8*FVi(2fvOcFzkp>I4;%5qG&*o>IBgfz@ifR+ ztE7Dt7a)T*3;k>!`B5`kJA?O0b*|q^`s_-N=KRC%A-gx717GO#<>KP}6(&WWFBf|q z`NhS>9gb@!P=|Y!doA?|m|qx-Pcp6n&-i^Wu@!Pm$0sC+;^roL{w90WOwc(z8lzC0 zTS#*LZSP)NLg8J7bU*xQsiv?Ees1-sjp67+JTB@m4dsIl`AB-ND9kOE{az%?84-71 zk??jU*JoFHs3=Zum-K0&KEX&IT-%J$$M|pP`=k%lvi+|UcNM0mr%#aZey^=B4`ll# zTVXD&UwnCuRwYfHNp zKb&Z@kzShc&~(Xf>M+6sqzA`$Q=Tzj#q-~etv{BiraI{BVU@kjj=KJV%8dl;Jq80Z9!CPb@vog?g! z7xg^+oJILvxWZ&o;vH;v@OUTuME6r*`?5@xbWN`mk+0p+URv4{fp&(zfY#N4yu0u1KAI^ z?3MG2_j9Bd>fGUJ;CdpzgsBgLs3{0_ErsPW&Ig&46NKN@2?0xyae zHz~M4pA!%+-C-%>Ef@C=n2P+I;h&=BB_h9)8 z3lj=)zRl;*7!wjgqkWFw@#nfg`-_XS*!(wdhfcjd$}7|HboB9-R;jL9sjhSsZ`2j) zT*d23u_svGP~(M#AsiRTZ*9<%@__EAu$%CTa6z2fNbw|GunP0vMG1{U8vw8nuz?JfU=9&S1Es=&^K%eL=n07H{3<-JK zeug+a)^j4EknX`l#X*@@Xb19sS9(GyeLh6>s@NS&e}Q{T#N!ui^PFEU?#eS!A2&X~ z=XyNAAzU5N89hq`(XRYKW*@j&!INrInyf3@ed_utmmnZT!Y@v7yOCi1mPBa9;(=* z)Xhk8Wxd-@pWtziru?RQpXA)+Aio6Lt&GV(daQRi8p^T+#!jEmBh6OOy#{{#{_{C17en{o(b_ZAK3Ps54k-1V_aV>o1TXZWcvIZ=1oU;qjumZ;kJW88mj=+9XHhVuA}#oyq*xBr)TUdKIv_b=EPC0EPL zHX}asnpqg)gXg-x$~bYoPM?9D?=~EU9rvZ^^b^+aJ*AGj%v5V^ojlb*>Cu;cS84&D z%Xh{y;;WwWclysEXI@)QLqNX%AbvUHIHmQb3S2L;SGJ4nRqRykz6rG7AEZZW8_$pL zrH+rBICamTh4VREetT*`{n-KWy$N>md>NK6>2bC>mXTgzM-RUkkQZa>kHg1LE%w3g zb$d@~oUi=wb|cS%{cV_kd{SElg{KN&=-=+F!sB;1H0d*S7-u|q!SbUL14U-2-+_S)+;vR7RhU#&s^Fz%K z@b6OxJ4>dd#th2H0FVRxFK*PYlnnm#)~4)P!@M#_Uh`@%`wv#zE# zGTdAA%y*;sF0jYnazuyZG#svIa)xJTH@twljn2-_X`p&`tY=iWIx;jMPBa|zG4NXb z=vje1@wOul;d(zesjZIs6Hax4K6V z*l$01<7byYR(0eHQ+Xcz)81A8^`e-|di}nMEau3A<~DXA&f>%;Ab=Ys8*^S^!&`N%JUz5DwwpGIB%oZF4_ zl+S-O2uGg#rSSvt{E^QF+R4~ZWB6$S^|e2DpYgC455J)B^Y!{;le=GIqre43Szzz9 zyVj{DsyfJS{Hhx1bK6(!jU$_0&3Qf5z(R+TU$Fh|FfD*5*#48JJ44)Jm?7AH)VXzh z=2ui#YPx?Re{T`&|G-{3wCTV7AG7g8$r))Le*5S}F_t-9&c-jJSRL6xg$!J%0WM62 z9yGiT7k0EdcLwT%kMD15#LhQ=_v~~2^ZmFpl>D+C^FzkPYXsOo;2uEtz9+>V-v90B z)6c$pI&WhAd4_+#`{F@-mPY!0oW~;{Hmqz z;**?P?_g|4tLr^aY}Si(Zz%hah1In<%Ars8m7bnGaj=)`BT${cvft0^T*5bn?;w=p zz>c@eiy`Tw;P}({CB(yh+hH3s6StgI{)*9+VkwIBFf*v>S_>qqxA>Z z>-BfH0~hKD7t{^F1)^~;5RUgOii`V%j|tbw?grR>!F%3{I)4^*u9tB~!MQ=@KKjhv zkx{s(eER7Jt3(Y`1;<|*yId|^RD0NKB4))v>dx!B8m$z!$Jt>!6ak0Pr-OFF-SE<MBG=Bs9HQIRaeUERSlQh2m|6GT6ik(BzPRE&B4Zs8B z{Z@wOg#h^@>GwmgbG!3?dRJ^F;{L&>&Cecjve2RI9BKY^$El=bu_c!91N#3c_H#cT z`NQEQ$?ya6EAF%GA0!_J)IaI5@XtKn=Fglr#qL4PIeea<7E$WLsaJ8k`w zIom2;%2>s4j|}j~fVc(B4~v(NK9d-;9`*dh_QYuu*Y7<{a#Z74+;`RQd)Pk!XB>Qs`zGMEv&HtIDE_fjkpNk#&826Feva=aes5Jk=5$sD?S)|LB&P|E? z^glnjUyM`HeNEx7&@qYI_u!XcJr(^&qQU2G%6Pc%5U6nf9_~8?I^0Wd#|wX>VCnUL zqabP7y%sFuGdIyC7Cr5%b9p>%9-^Z2ol8XP@kL>x_zJMd*D=A@@ueA}PM0X{|5j|H z@kPe$MBzcmh;8|Fr9}_bW+GX1$j9O^?*D=KXape0AN}vcIEs^0;xT7L2KoTlN_do=>jTP^#ac153BzX)^tu)3tpEPd#6Y(*m9sZV&L)*E2U%N%v(|n-E zFJ2{z{hY>V+xdKkR^8wMW3Ch+nveB1}1XKn3nIur@itRe*=K;zv`3X z;^KbHh|ko*zN<0gA~obkzxRUVZ@+(w_rs^*M-8_V=Ha~eQ z!I6?4(!9M}^0!~q@_E=3PwV~+e+Kz;OJ>FliXV&J>2AS%ms{cseXy_2MS2mn+Z%PX zuCsR)(|P;7pK*TsMQ;&}Q=(G2ozvr|L%%}@QdkHdPmY|y$INc;YThr3$GY9{Kc3`7 zAJ-edn85i!FFy8PRmOJ6Z$6NrmCpD2MRpKle1}~mJ{eJBJ74dMr($0_=U0g@hDiI> z(1Wr|bkn%2tC8!Ib*!t0_;lk}BP4zJ9_S@%HBF=+evniC%*^;uj3d-)mH6s=pYzmvoW$SLCdpCs^ozYB$ES9&U8;AFg(yYUZawC?j+?;x6?)!ssM`Ynk#cj$njSjHzAztB}9d45L{-Vm-G zevkI2;g60HovY2{=jrc_wH!Fu>hl5D_SaqQlH=$XojeXl+qLoJXTi?0r1-wU^RGg5 z{VUBs{7;K^Axpd&+ITK!YQ)`KpR6w60sPkE@8$a$;T6VR-Q7N=&YOWvzymGSv*LG9 zZ7BS6|IP(3Qx&iH`R;w|&jANiDqi=9bF9V|+H~I6?MrB?b9IA;HfA$<3BO{HAEbZlzR1WrSBobiGV>iJFI&*_eWDNbf^~3`=C5+vs?kP< z+FCr*wV9cuzrRh)Bz_r@k+Pl06x$2$vn;~BkS6r$+|Z`G_V3)elWCelo7~<18+L~@ z9Tjik>yslRHKYgK4-)WOwYu0}|C-j3jt2Ss&V;7W{kc1LV*gz@|KGhd?-$#zO6!v% zfW!NzYqf|+NR!X+1Ao|!d?1Q^al{HVvmU0i>u z4wZEr>*f5hPI>^JIX|>>S>Ge!q;HH?8pHp5-oOmpZ^#E0f^|F6i}rzyn~#ATG`8b= zFhoh7L?wS4@Mp&Ox?5EE$m?Pz&4XPe)ni5*o!cb)hvvscN`AY{^}USypHv5;_|B*N z{>$g>04U;Ph|PlhyC^R?f6?#b`m#vH|Cc?I|5sprH!ABjZhs8wi0ZYqUb;uP-8-rN z_ajcKL;G8?PxLRMx(3eiIzgQ2elb11zKv*%Hawhg(GWs?_7HHI*<1GGZv%84<9MLM zJ%!H;LKn#i#Dia;cOE+?*c0GQDK9L*^LB_N{P1;$q8?dj6t9z%_^aG50UJYY|9lbs zgpcW-NzVx6clz%sQ$QU(D0qeQ#qhK3nA-qKb&7w`<5Y^jo8zj2ugLchHP`>v5W260Hud-j zAL?AdH|Q_bLqe0KmF0FJKN6bYE}n-W;q&-8clS|l=h4jec#@OBBpk`mPT_K)W>#nu z@XnrP5490rQGDWks<$>dKaRO6zudl_-cZ{n*Jal`$bL}lQ}T)U9u*mv)1SZgcAEbh z`-sxLUD~IS$L<09Gek+Rfb+$)KSOKh`(i|GJdLg68MiAwKAz_%9&h+M;D(QZmweyf zM%>2z#h3}}l5`-nxt*oG)@zTL6L3QRwA$k zW`>xVF?M3d>=c6``5p?Lla} z)@@pM?iU~4v0Jye@c7oxv^5^S5g!}THC#RH5);)kCOSMizEi)Rc;@kT?K`w--6bX= z8t?A#M4Q&}>gm>Ryzu-h&%cgui;9SD{mlDqKg3^QeeqZO4j&F`Q*~~k?K|A>blNuI zbZ`!?(`o;h`J-(geY}n9;EAYHdW26@{SQyO&it*HUg*%e#wkADm{WZ0sfMf>-t(Q4 zY}W?=Ri9qFHjnV%{Z8!3#++FDr=DuSX4bWOPq>{{+cwZNMmdJxwtIwC48J|ZTX zw8qDAih2gL?j9Z;9vc=P6ALoy5)&C2)-|ks_sIBe&tYSG#)d~FM8-$-jEo5H`g~;1 z9$~GYiH}VP=PNPYA|gRupxd4i_~_f=o&Wd>KGHipHV(gnXWBj5_EG$Ht*7`zHEAot zuYMTXwtBfp^%2owvHe23gLhn1_DXnk_xK*5>BrlDhYRAvV!M+eIz0CD6YXpK3V5c9 zq3-*&PuBWY^)v3@+kxL}oK^K%H~6I6KV9>rpJ@MBUEkNxvwf^Xt?z5s?(sTLuzdqB zzx@;K+dl@5bQdq}9)G$$>BqQSW53+C1?%dfw6NINuztq7YHe2gCptVuxswn}Lg^Y7 zANEWeMU$Y&?&0byU*=zJ+qPAg9vv11!fIXpT&<6`X&v4-K0KOarat_aKfNC6PAXM< zZ3@rY8`d5t7!?r}-pLSz>NNiS)A+tPDPAi0Bs?}EEK+^>OOV1{;veaRpG=5V^zJ%6 z^BJ&Oc$Xg05xo+4(p7&`F7^(KOfasmYecth330|7)E9-iUtL^}i0FuDXoA+yw0|56 z71uMoOG0EAIP!h45SE3v_D?_6wtWX|5X5A|o@@7^aXH~}J&d#XV|YwdczkTXN22f) zzL8|%x|+Y@8Juy?*odfz_=w(o|NCI=cxaW*3Gv3qU+wt%U!Q*k7ip@k(DskxGp}`g z5zu`#UZ7?(*B&p_T6w${Lk0KP zAY4|P*3o#NHmLSRy{g_dpmmoX5s_VE!>QUnRNosLLFLx24dkQxug<^tR@ZvH-@5i! zx5lgP>xI+k9vhR;^Ocw`6rgQ8w5{XETgUf}k2T-X{t5Mt#+^`2f(!j4f0Ap+B?#@n zO?11~@0_&y!Mabh?$c;Xt;Qv)ULgF9_qxvG-Ox8*3+)se79H0uCN_#EQpXk6JgK^W zsQUZe{;K|+7sBHr5~4z1iRm5_`iID{_)vpqLPJActQV?;2sBam*sv%?3$DKnHR4XZ z@3#&MjmFuAMS{k{LVL!NnIw*VF3PYP>*( zHyG!AlYA66#i`3x@2~fQ@mWLEcX<4X4p5Xe#Cfx2a$5@DHuWqw7O}>!!=APF*W0;7 zf83`Lrh!x?$Yx-Rpd!}_gW$dT9RIcrHJ>=`(T~3~L%@yYR+!n8O_2251Dl?>d9Tk&e?Pv_S z7^Aj5gZ1PkhQSnn;<2{yXd!TzFSQ*>?dS#fI_pYP^B0LR%51X4rS3@RXzIs|;uz8PUB*y!r&L zuvM#8aL@O;j^E*)2OqoNo6pyGZ@%Ar-F(b@^Dtj?zvpXwY~H*7Z9d0)^KbKY^SRph z=IgvS|8{>*UC;4#^Lg{$e9rZF-*b2mZi}B&cOm)}=d@D$I;5JIhF-_#*%n zVq)x{BY1ky558X?K~$L@21!)gviR6{UNbHPuhd6I zCapjucEHlO>lA#-?N!oBExq*JH`LZIwNI&iD>rMq=2_Jy;<^d$u~slD)F#$C7c8+N zuj=K%mbF!cN-;L%EbLJpFf(1_wqA1_}Q$&a>>T`rx%~Et~AkEK~9%yU;ino)gcF=SbN=+T*#qUxTJc|D;E~Z=TyX zlfO+qp)NQ1JQqBb0sceG1l}YM58UjK-WzNZzuqpfU)!bE*EZ>i zdmb@3qSx6aYOP%&-HuP!*yU3^{$!1<#=+;*Yk1v!KR?Uwh{0igZ!df=e=82ZnXthw z{UJk!LUv5t<&^mcDrEH$hwMl%m*gDCru;I=g^Z%jz-ua1{sR04H@T*1%X74)*Vgye z*3^k6zn6e73SduDj~)h}@6IfjuaDZmOHQS)`)(w!*%ZH#zsc88;79T(`SlaG!{lF+ z#}!ZWeXhgg>j&MN@2_!Bx#2q8f0J_LQyi2PloO_Wh{rki!MTsv>XbSAD`XAjLPoh9 zgj~qNwVE=a_IhZV^*x%^dt%L=5Hll=b`02CB`~>C@P1OZ9rn5d_PJe#Y_`dOO*SFV z$8K;a9*+Re^;m5e-kW?!zI+f5d;4`ID_rO3e$G6P*!8eea810n!LS#`z!zD1xI*@3 zJK!^vskI;$$+h7cX?nAU-t;=Q>^i#J_SE+!uz!i8Wdc(>0-S9Z^x>BW;g|1l%BSlb z(q)xhx~#NIIPQC_Htch6^Rd;xN85nc628hNU2$!^#)!2J8MVDq7Q@Eb2HYY!*T5Qc zi)~n=nm8iYP}8wq1An3c)23y7j6N^%a{9shfYU8Yw#(Gr2G&O3oi;svZ1PE!ey5%7 zgF3#cvccUp;5E{Z;5E}%NC1v7bc;hK06!qcxF^dd*}y!wW?Vb2q3J966AkEd4L+Hr z^gZ-Ev93H|cM7+Ij$d}z0h`yU@G|0P^xw%7Rs0@6yxve5;Vu&>5BNE*4RHg;B9sl;P%_n zZ7NPa2r)U@^rUrndVUb?>(^^ynzh%Cwn4v5cA1NuhRx}A#1U-DE@1pb#}l;-^oFb< z@7sY+fDhHteSx*j;UY1i{!^RzW%AsB^4mB>MJ@Wm7Xi&fI8*60BXxam;KbXDGDLb?5sy@0*eH!cJS#LuupS5jGp*#H<-;o*IL+&N_bo}m0*_mlqd+omWS`GxC z9N_+&x%upivogi5>gk!6Zt8rE=lc#HH&v!`4^5mf3bw$2M2DqO5nylsyjE12#nq zqzNqt0#^nYd~ej_Wg?Eh^e}SvkWcE~OGERoZ}YEJ`$IXeumRWxq=99y2UwGB+5%b* z1eP4&ezIq68D#ts*!uI5?5ZDy>Z#$f53Qmt{XPC6LzGY8itF^==m1SrfHv%)k#ccp zTOgqPA=-BAUCTb1tCDRp2=(TH(qBW%o94+I+5yA{2W_bU2IP?aIR-vxqo1g80l$|6 z+{0Y-uU>=RxFb=g6URIrm)zI9(>&e@l=U-x0mcc30Sj7%{K0Ja13Fj0Km7pmJP-EF zW({hw zsE-De3_$*%sxjW~kWCpCVneSH-J{(1_@DL}^Y~`$W!^sfXxq>;U+3@EN89@OhRMAM z`AQg0N;=S=00#<<(&OSKM1AwwZE_N4%qKj$T{KxpWwS_ z2h0SP%-IcPz?Mzg)BZrq$O777%;7(bUR;xR8$BS*SdJC@uD`m|L=u6zNF33!J8RbCJH zpMCi@rIt%P=HnVOaW%%T?TePNFW8TqG#H1O1RK-r=rd^G0lMF)wK9M*mGyh~Lz5EJB_;u6jx(|$msWB}KT2lFh)BG-!a z#r#XkS50er4SbyjNT)nTU@jr&l+y>$GN568fWl5;Gi4&iKYfo=)nRMC*F5j*JYW0# z6wSg9n6Rrt)uoaDbzJcNGQi~hH1Pg>^yp-tW}VxkdA~Mq`O9O<0QM1?!J46b)(z_Z z0rlabl#d0-pGZu%V_uuX)vrs_zQ54AKF_*omHMj}Vgl3lR$?A$g`#oo3)Hj&xE|%m z?@7ujud3x?Zl$*S>!vBqYyPz^1}!_#m&PecxlV-zXcmZR3AV22ho5L6R^v;T~5>sGB+rA zdkB&DiT88v_JRYfqtyQXgXkw%UZ#J2-i;;z#QTE2Pzfqn|*5oRmazLUF3bc ztrS>jnQTn8p_W(2`2vBqn|cixI^L(A}ZR+p%%IA0u@xTID zE0hl`zyV$$Pt?ULf%qKzr`njXA=YPa6a> zK*>4OMP;b!C(XM8go$7xA>4lhHrNo zeLEo!1BtHnwLEw~74L%o2W+lTI({2?y!6ZsIdk=nT)KHzuHG_^E4b(5vv|Jz+)Y`V zeO^ZGJf`|TMdI`RDg$T(5bqwmwNe%ytWLV8^>5_*?R#?XTep~uG&W)eXIdNSEZmCq?%kTF`nj-&mM)jhD70Ny)uLKhR8-2TtUOwY?>VEzHNTba? zXX^bP!1?L(PD?r|=dOLz9M-S;?0NVOa}J+YI)!lrfAj@ZUJ%x0%+3nQL|zc{VghB> zIBglmHwzi-KZ;mC;-2R9HkYRK=l#cippIkgZZLH9A>jHqzqwb%!_E2QHf(@&U;)Fn zSK|B2l`ZX$bU`eDJ%iS#RU$9OCXN8f4K#e2QaJ#>e@9D=_t+#0*kbaMJ9ShyIGV7dV!(YFC#~R&lN`YIjB}&iSludaTBn~~I z`FsAjew35U4W6{;n5;!Sfc-H18w)H&|Fd%WY#aB3y5B$X8GocDUpi-Ee(d3zQF%>n zg7=#U`J3$io%?TLOb`pq2Bz2-zvItwCCaWIs~s{FF|xhc##}*vv;io$80%k(Jf8%} z{_d;%H%{wIyyTDP!dy4bX)QQ)<2$@-AANvQ)HCeD+@9X3?PKqL&HKU0`;;A|=OM^*rGED0jrqZ2cOREX{9bcqR!e@K zyh5JgjN7f5PBll!pJV{fHLti#X6$tsJw0$OExDfhw_A4oss9HgR(M7KkJxcMAaEw7 zFJS|W-(7*)0RO=O$@`ppwi9!E5}^Baet*mIo-fEg_H!ftM|_Sr9q~FVZ~Qvu5$B$` zA$=idC~th>x|@3r!~&QTkeKfDn|Y!}PoFZGwgm|6VVX-c8=&46N)zW3IR_#{z7~S>pMz#)tKN=J}h~ zqwfQQE*ra#)MJcmv*u?Pc=R&rd9A#$Ryf&lMHU}Dqk0MO_ZoYSzWRRJ&%MzTWq&Sk z0L%|DdCb@30PTL}`7&OSm}Wz+k5Sj;tLv)I%X>URJ)mmcw^hp0^mB67qTGK|hOmB^ zeE~-AI_}rCfOXL%ZJC~^ms^(x`~*3HP9Nv$i2Kv;_vhT7y4F+K(D0)t?M9y<^vv>E{)gVr z2j;&uyFA216w`^Vs~H#ZNEpFeT=wk$wzFy_nnYyIDY zXq7eqd*rT5L*MWshtI_Wsry;qw=NaA%aBv7Wey}C>_PjZUvHSKp)MmWlUJ8#oR#C? z-MdW;22k&xMjxQBbIwbw3-b$9n&Y~$XUb==oxVEadvyVON>b zZy2B7Z=DPoU{i6rji}clcGr{}eg5r57ghg2+Wg8+4q$(iax-GBQ$`~ekX~r?3Gx*T zkoupP|Des7bGFK%=6BtX2J~yq=Oce!Lq*Hzd&j=sxhJoy{+_qKd2n6;O$GJ|r0;OF z;+o7tJi+k!1AjduuwG&4kv<^Nj#z;2%nu{)n>{^y!|xCG(;h7T%uoJ!?z9nm!d9HP z_k`>$zNB(@7{h0OPv!?OpNGdC9DK~@Poi(Y(Tb}wAO8Mu^aAJS0}b!1Z!fuC#7~(M zyey?s#o5SvEo}qv99ZWwc85dxD8aHH_3e{>zTvu#O!Nc=p5J>B(2l-|P#@d+K!RIL`U#?K=3Fm?33_$peAz@7K3Ct1iTf`&fS$e@^VhL{3-CAExuo&hhsKl*y~=f9EMWHjiWct=#9V*c{=>Hc^S5B{ z>yvr)c^%2v#_K8zT4I{II8UR}=dYm$k-Qyf=SJ^XUi#4;Cd5PIaX zPY(B%7_XuOe5aNLfhh;7Xa_uR#y%5J>pu`Zj6Xvz#5~M3+mLr&lFBbjs`IMqpTxWf z&QM6Lyej+4kT+#Jsp5cTrQYLz)*$A>?pS&lwLZ{qypCYhRlM%*;QO%Ua!d3F3K3} ze>cp_>Vlk4*0oU<1mhY9@-_DW?Q~sHE?qIVjC!7Rj0f$PB_Dm#%g%y+F5Z@NsB>WM zBlDhbD%v6ae5+=tTmoI4y>LlvcDt06lz1fh+EwjygGS@X~^?l;Ki)~#DoQGqxB^uIUwpZEfMdncv^SI#ea zjy8DIIwLoAD*W|K`0=#Q$glUBSjS$c5O6(7SwLIj;*GniZ|2gpb85a7>Bpd>;Pkuv zQ5KMPcrZ_vJ&^X6URJ$JuHU}fte(hs?%a{nr%#ImHh?#~1kH_Czw*Y8R?>R#FFinxnGQ(6WzW-q<{UZpqS zCo&c^a7%?OO*;#_?v}!TtWX(u@7|RwSFR`-P+nf{Q5itnzW}=b3*dgkw^bOkJ-{2@ zUQ=)W9{HZVE6H=2$F3_LB>qBvY>6A^-Is%YD2I4X1~#CvL2uGTLx0P#8SRMERVqA( z@t-s3eQG7`5CfnMaOo0oK%32@K7i`&k9_}0=<^eem^H7jp=;rf?<4OM;~R>2OvbTm zhRkjWrmyvzv^!2CWz?O- z=>N=uG8wrQy$CR)nD(bX?n^_?nY>S&uP3ng#lYV#BG%$-w+p}pb{1a_njTmU**9N# zkEt7{CY@Biq9^#?ogQ!8xFJp_X9apT29T6pCW8_Yw_I6`gZs*wTXi1XJ0rH|kQqs* zl)u){n2h_Lc=~VE0~2<@I`qb1-bf(JW2^So8{b3S!Gk$GdFXXcpUu-Z#sQ8WKkhOA zpT0k_zjdjISq5;QFGFs_<_Es91oLDVgY!k+H|dFbg|;Qb)3k8{g${T9-h+&XQO^0&`ZxDns4r=^v2KTX*Pg~}YVMphk7%#3 zr~ddo$Bo&`uw|ONF8cEgTSM}Hf8=U!FT5yr#Am&!`%UV(efzf9?RJmofBOH#{yEpz z@G%36|G9s}&^Vu#bvgccqpw04kcu3k5$KPt>``q4cw7dOc4Ckh`bFv)aa~XZkspQ+(-*ZRN>*zb z;4yktSU=Wx5_0*;`}D(F>P8IE6EOhtKYM*`0`}i)J@L)J;D7Qyu`=dnPIm2|C-V5+ z>4CW#p1$!XSaZB4`<$vP<$h^A&{~@1dYZjDSieWC-_yKL+PNS7FcD8(=$L@D{7)WWUk2v(vX-YgHQ)8^@4at<>EF00 zr!Q6*v~w~~Y&e{!i{#kZQaN||gxtJ+4Oo@ouQCR3`SNAUF+lQvVM#e^ekuZ{&p-E% zyuTpjjKcdbqYsDGH_GaBmru&h^kp((RX6D~|1Xj-?@!Wu-pkS#e-HoiU0Jzrk~km_ zC?~AGG4`B=+EVH#_L)#Uig3+=;=8rfb)QJpx2{TZ{$`oE zAy)b=cvTYS{t3s+pr1d>;Kgsq(p{fPVZ~A5`*!O3^Ja-oLCd^-E9}!-&NxN38VX%G&bw?cY!jGPn!|365^_F#b zF?IQ^JJ*$6m{qn<7Hl3MpH6#5{x({NX1F(btS@S;uv48Hlzx$Hhzn-v(S&QkscuVmP!v^;6+q_L%ad zjQZ*$Nh#P;Wz*Hq*$sPzVvV>4`w+6HSnPUdz~DFD=6~uv+EBFni%wgc*H4?V50TaPS}lCmQ3K5K!kkO8G? z#!xzXefRd`8J{)q+U>B-v42+LeRsaOC8gl~QOiES-aV}Lj&i%MeXHxa_aP%F*Lfc| z=Osxi-U&PKM#GrA0q8)Fen#%X)=g9wz{qM;v1LonMv47KNVNM+PkF_#j1xs#MZ(M@C zzF8J+9VFc+J?`4Snl`@s9yR1|%8w6W&k;9dY{1GJ`wQxNvj zyWKbpaTNAwx5{oL?=vpEH*2Nzg6*#Czed=MwP}gILf45MWJmHU@GN4@HueN;UQaOc zKkI&XWRU;;Gxo3WTJ&N0BK54AxnWg)FR|L=XVDLB$4C{Q`GCHBlXZW!%%I)(E@V0V zz`a?k5dU?ej`X%AVt_UPdli$G84qO56KT95ybz4dqgWsbicXZlp~>IeaCy(-V6If8&@ z&n4tKY(Sk5;{nEO5&zm#Z^n)^2#c0c#d%3ciIzXInG6?@^j zzeDV<8Ma$pdrO*lYs8NwddBZ$Q}R5y0)1h{jlR!`%Xef|);aX3IcCgofu8dgU-`@L z&~D^>jt#jN6kdE2zLOQVyTFX>$m1LRRj88j?_iIK;nhV0jd_lA7>2mhS34$1USXCv zZI#W||D5%eUtBJ$Qygm6jX(K|=KdYP{4}ffj{8sEH}>yi6?fsfH)fw2`d-5iF!BXr zWp{G4Wu}qe_sv~oWLSV1eG8wF zxnT>p4wkTSk0_hb3f?D85jWy@E=(LEIR)ubVLztg04A2#*n8Ul=B&T3lAS7N#$WiK z`$zhid-#-`gs!s+?<4P>y?k8O9h_m{wb0QG<>#ip&#(=DArn@2SNS1U@W1&TlmYvY z1IZczVga7yDS!FyD!UPJ;^H$mEzJ$R{mo5DE7>X0Gk<6BzJ)d;`JcIFb2s*v?1D6@ za2&UU|8t=KzXbmiGxi7m=Q)0|8abN4{I;PVgOzyS4b)o{R-`Ikq<;34?su0JrX3J9 z<5|fp+iRH(Kp8+Rn>`LkfYx=t07GYxepnN_82ulu#QV73SFWFzRr@BZd@o|W?)%)_ zzsdi^5@xUOD_QxemhpdXQMr6^$Upd>vYT;!&L<$|XJs#+>%jZ6Z3kre-tp37@)HWP zY3`mi^z)Q6!~Xm5H(gsKb9>|<_({Az?U2XMw8oI-#`lpmY_cLB% z)s6XFx%NXUzl*VYtMMZG5u}mn>*6FU@2FHdPFSP=!T(DR`F`!6vfIG>^xK%9ZRP&a z=g)H-mSJDMgPeUMzt8IZdyp(p@g3xde0^}H@*&N-&*su6Nu2q?^D)bmdM{XI0I!?% z5$v17{wX&t>fg!yzAM)+z;@fG@c#E*xw{YA@5a7v@c%Dm@|q~g%uA7D&Xdi`0W$sn zZ1Df0gW!Moh`x*wnR~Z6|AOLuEBB9e`y*9u?=QtFytc9X%Y0($jcDWr>`40(Jp@XG z{-hN*>bdgsx718A>eOKC7eL-;ER^}Z?3=>=DOPBH;(ezsRLI(->BtTLNcrcU@)^nh ztS1}4GD6aGlP%%@3gG|b|M^KyBTfX`u-fLb;`_LNy%O>KlZ54Nd9LX*=Nf-OIpq$@IPkPl-rw}15Eu-{?7vc&pUvb zf5iWMkpGq45B?v?I6rdRtc>&DzH?KK7HyZP8NXFIdEU19>yiVzm)t&q>Y{2i2Yy*E0IncVP$tfC+0_cK3qz~`@n z?|&}ujBIU5oWCxb;ByB5KP01;erzfKEB%kT9}55XMg9kkQZ{{odj5-;iD%{Q^0jla zV($bcS803KxAxwAp8L#vL;mK_FW!=}XLbyM~JU9oKDf`Qkb zSF!f${cC=HW^?zq_U8>5@KcGJ{#*Dc+t5eU8Z40XtMUS%565Aah#_MG%MLK&e0J3j zg?&+IH(HV3$F;kM*zBnb4w<{Dk4N#oy68dSe=B-OdX6>tpPB!+EV;s`^8d*D#A|7z za{jH_KQ4YVZw6iq40!)E8M*WWukK&%{cOl%B?F*a27dlGDXvVnG&hKTa5nmf4%&*` zAlO(ueA$n0=(&;iS^LZ$aO{U-W&ck4{O8cqc{6%Cc4Ixb7xF_*Iw38P|0k~eL^5)% zi~r>z|L?05-{F7mAA8uap8qS0@mkjNZ%J7sF|EY&qm$eUln3%U>9bS76eN>BOz{1zOg4Z^e@7+I7 zJ;VNiEB8&5Jmi>}J)xUv4yn2cC;B5VI&xYDY_9NoUw}0Z#IafXn0w;7rG32EyK~9* zVd&5OC$IVZ?lhqCf5#z5)WZBf@_#;hf3Nlt{#UWSwZLnU+sk=NR^D#izAj1G>(ILs zc&$Y>neO}J$-kAIIp!D0QToux54?0t^@F!!eXhU;psbyTS}NvP_^S<|Xb1ey-Y4mm z*W@y;%QD@M{w!JL`=$TFjw;T_UOtWK|7ZnmkpEf#Gkbj>$wvOa75Tp=|F1dfZ1MVE zh1Vi4g?Q~z=QYdmTE@}XZ-aJ}H}G03_PqK#*kAmost07B`LD=f%#ETmnX`zW{K(8q_pPflab<6Zdb&5xJ>??a9s`?Jj25U2XRt6nf(!27HB z-sl}=@IUH*HxE_yzfKG4f7$=15VOA$(}0zt|3^#7es{d~YxHAa4;w4?j{1>!t+9Uz z%75}yerE0cvidRQmYHMH4|=GmG7b98y17D}B|w{*Gq3zDH<0wh9Fcj+r&N9@piPTz zkd4Ug-*9*?dhvHKdiY@`qys{cn3`hVEb|D(L={lC~Rzy|(j|Ib~SwifIE z$GtQ0+BvX6k6T#Jukc#TQDc7{&QkCuUfYm8ZOVH{2Oo}pSSGISq2>%)l^;xoxqADa z>?pn@@u;nCDP7Q5dqU|BU`C_S>xg*`R@wYqj~lnIs<|!f&tmj%ZyDYvop9gjyRO?i z+tvT8qFMca6#qj8aE?F{XMeX)|4-t5;Va8!_>M}+hW@b<@4JPVIdgnCUrpusw2 z3ZLKaGo%I1722Nqg9iiTqynUbpIY z6L?>7WrnOtng+Y+QRO?=UQ>U4Oj_Vfm{}VWFf%q+~CT_e-pmCHHN>@yW64qzkWLHH%fQ3G_BBfW&i)JhnAuLZ;>VZZ}VZY>- z!fTtm-w*mc@j%)EoiT%S^zty(w~T#Ethg~hIRDfQ8IO1XbFq9aH;}rYc;6WGHeH={ z-qIeBm(jy(9eS`tPJh-#JHAmDM*o#LhsjxcRNtTSvgXhKG5MeKf5-0d-uz$M{RUop z+EToh5g+a!d*~SRmN;`Sko0~{eZp&_d}CaA{K{@>PV~Kd*3?K|2NuZuVD?-{K>e(* z;DO|Q($Bcv$0ZB>jj8vo!u;58B^9$7*@K1r#>3lj{`%xT&n0r&v#R$Wd;eQC1DG>_ z3XlUdJE_7e^1YV2WSoi%4WZpOFgxAPi)XwY;k2!M}uAH(YH;Aq@dxmg^ zI|AS-lxw-T1xT&UTXthJ8orH?48js-QOR*1>=j(YJLz9$6oFVoZdVk~< zW`qAZ`_DT5F9!dwPOU)xr{`om?KWab%+V%Z>#!KFJ#pSHyE2x`r@+JvyRD|J+?e(D z$M-Tm&AIZ4$@7JMsjR$Rxc-eSaP<$R3~y|V-m3SL|5+1y*lt}tIM<2u7m1+`Ui_x2 z4Kektuh0ScpE%^CRi8>hQI4hj&-fp6fVN~hfya4{|G9T2Ud#S7SKzlzV`8yf*Wtu{1&KpLWUoO@om8li#eqf3@uf@;{$DkYiIh zKAB`^>!?3(RH>>iJpMXVv~)LT{Y4*t^K-zws%&wy}F`#rr7(m>W25MHkcw z9#(e1y?fTkS^C<{v0)Eg(ulY00Ml+Ht+8K;4Sh>2!~4*~i!<1_qK9V`ur=0L_zK?V zP7k#0%-p|{(xPVd{jbgcd|VC;AfvEM`flW$CkC^ib(>ZcW_ZT@KI(C_o+H?4(Ln18!B$mnZRB=DmNuZK#TU z8~L!oh4lSF9XwV6h&R_T7<-M^Ni9m)XK3wJ}^x2 z54C8P5Z9mnL^!3X)Z;a;7KpNg`$xQX(GlzLTIToBZ##+p ztE=}<2434v`E3tc$6$Tkw2MYB|5)s&@>MSctN4gG&H>EP<2*ep{YA4^9Fs?SfFHSM@A$nl=KHWsnJT+6XP(+1%E!CV{a0Bq8=8T?P) zr~kk_jS0{XR^qkXyYdrxl9;j(`}Z54#cO>@-VhHA8}}%DrD4Jzc2@NcB_4PIeYMx3 zzc%YQtcVGiv_sv&{;!3nZ>V17R`EXT`q($6|3cJ*`+?oabL=$iU*(gj&&ZlRGgRH5 z)!3iO|MUT}3(IBP4hL-irqu!&df$d#Vw}-SzYTb;MY5Z{Zn$@25Zh9@{eG~2z9I*h z57lGxlc;B1j{1mmRSe&d_qu4LzUK@a(I%fGwvdc@Jy!OBBkyOH z?Nv3sJzQ?=iX*+;&Yejsyv z*h`YJ8msy-n6cUci(XSb*Udh7?li9duAl$8HpG$G!*27Dg{n@_%6UTMRn8HZ0T~cy z%78}b4wH69q6gF=U<%CdvntNdz9^?JI%O5`qM_*j$~=01;eQpA#Q6?g{62bqW{Az! z^m)G~pVxO!{x3!z@SfaCS$r6A0COMjW6zoPK4bh*=-bU1y{Q#fRc^0Uyid&U0(AfK zJ>yjl6zg34!FKaCdBim%-rZ}~?`8I;1l8N>F6?3}Zp`PR3}DZI`N^lNWWfD=0n(01 zKkNZD6n(q*Bfs!0dO(r)i7!}jyLIQfn$wvu@6RpPySpj0!2ROfm)`SUmU$ZnN`7Gu z^uP77e|LFM4*oAIw@X&ZFIewb=@2}_YM{Cr3%nRs-+2RYg4w5sMD#2&g`DonQKg=SyNYM`ap%h|fQr`uCRdnM|b|d$SHQjSI z_LW^nR(lltbC&_7=q==MIzb!gpLgblEYCQH-kir&-4*Akn+IjXJjnVzrI#cZzP{?Y zZsq1-2U){n?jP4f^M2EL-;@hnL;96HCO@HaV3-SI<&7l3TpiBa-h|#xjNvg?kTadw zM}+jlo?VyS3bX(2j;rw{!ejEqx%eqj?Z0?%W5vN;U({!6xuM9yyp zX8mBciHEU2cmAgga5x-t>y~vrBpOOr?AyN|^cX+)Pkx2hTDAAy{2toHACG-RMt$`W zdfrY)oUFo9Jg}jAZq@q?yzi)dw(KKS1FbM4*wNlxQ!9Rp=iL?czFQBY*MDiD*i^r- z=J)zGdHg~5@?`Noc1m5q5`)36Wc_P#-Nuy6)z^;hmQS~%v_%!g++N@!~NX(o_~AG2cX<$ekOZ)%-+~r z*YmfK%p={AXW0Lmbr!V6{NYC4zlG!i5VS!vL7q&$@KZ ztr)WSEv0`9`K|5#hSH0b?=$lP66XC$GD`Qz4U2PwtmJ#@efBgtdBH9l4$W4%vdj;) zay`8LU0i?qWBoDbBM);vY{U?rokuYLbhh+FO#}6&zhlL`24a^B6NgAq z33C3t6!W{EEMYF-jT<*C^#Q2&E6)_Gp8f1kMZV{?`?KHX30`ce?=<{?U!s5LAA!jv z0GmkzCV10I_1)y}qTV=v`K0W|te5@^JE}aHcLRX;sr#9$&>ejm_NOL7?=#-#y_jEp zGJrn7*|TRY$pvEXnH%UuTY4;0rhOfy=JN)E+-@m8_2lo;4xn5P9rr8D#pxs&z-X@A zfG>zWY^j@}H%e43sDTyzO!17r>wWS*Ym+|4T8~;9s%HFoy4J5gey{yJ;{Z<716{v< zy~#EJWj5`|vJ*M7Cv&9?S@M>W+y0lA9bCAC@<&~9ftZ=k%SK@AoVCP0Y*zLVxt~0t zykY-x&gUz19#wMG>m%Iav|JQ0pjmG)>N0yL2xnGf(voddUfAnC?0ro~2;CWksyw4iY%|{lg z{zaUFrFcJp^1^5Xzd7QE==1Xz)cfr93BTW62G9pMbLNa(yLPQnu>jg@tT9h5-XUX` zcUCmianL_0TcAh9NGft2!1~m-lW%*&4|7) zIkp3`CTW_CMIA5c;H?q==C`>$b7arl0JAg;RjXpmXW`k_w}NNY{oiZ;!Z zHBpjyaETNZ7y6w3C;ziA0C52312I>Zy*X~&zKS@^1^8xX!0*Szak@|r@^=I3jy+GvD)Yexjlu z+V<1d#Yi9I?{!B{qRtckUBw*C_(LGagn5n3x16(~A7*={N`>RNPwIYC{xBaY2Q$b% zTlTTi?UY-T|KW(?GjD;mJ>wWErWas#nx}Xu5Wd&sRqp*eBU-DzBJ4FBIsMlXGxIss zb2M)DOOi16kIEP9HR}b`8$K^lGk%L1d{3!9chnP#cIY1}TQRWg{JQp;`HG#w zYAGozZqZsllgICOPyWx$Jt}?Yca*;k`4{;cW)m=O@z#hRVefwI+PA>fcXjQdey-+z z(_UxY_M5=z-Wd9S?H8M-KTXwL=|%8ak$FxQX0y<0xl|9-mPe2sZYnR!QL@aJ!;d|ksBh;^F2#M;jnJFI9#weosPy^Aoqx_P>?^-rya7{|yr>jhg;DIhelPrT2X^=2xGb zAPztqV8zaj!-R_9maVaj=?G z;x9ARH6QsuANk`RnlX_s$Zs0;&7Hk?K`%*W!biaT3{k7!*bCsR;N@WKu*)mGaT+s1A%}buE-Sope%1!@_fWq`l&sOQets9*XN zeJ^$&Stq4sn6GPd`c1sQA##DaOC_a6vU1lH71w-cRBIgzXrVs-o}*(e)0(ojwEI88 zoYl#zqa_c%vK_p_9GZskmA|})egKc8v_y$S?{cI5CotkIJ|e;j(V;Y$+(t^Yd7L!}F0C4{#v9 zaWp4MCamnC>>nKu(EJ}fvH<-&!T)jSle#ly4fH;D;g`aCClkE~a|aG=Hd>*M*_&(jXzbGuU3p}#3}g9ER3b70c2mQzjL zSK7IpXSs6MRLt-6%|70>`P7q-%gbzP9gI3*%=u)m5Uf#C*H?c|^QJG-0Bu|9w=nd; zov|)XatkwEcwb=U`7}jV&<%bpKhrnR13L;nKjZvm6k#{b&b}~zO`o5{XBY1eOkt^_(U@EkEmKWciPu~Gk3tK z4=5_h2OhXq1}ylSS~sqprfJ`zX}uo}+YjdUQ}=&5^*8d>&WVzoy%RNXnBNs(wLMnJ zFRlw?A?zE-m_W?T->cj}-8;Bp^rrdJx7LYxALo^=+C5$JiZVgl4$b=y>{~`V05e2T zEBy7o1@Z}MqA5eQ9pGEEt!2&q_QR~{YcGqpj8r{5>ED|1ZmaZV;C_!G1B#0CWzFsx zYJMPR2M7RqhM|Yw%&&W^zE`%gz^mu?yzF620JB63(q%SgpK?a{ z>qGyS?jf$@0zQieF>i&vyE%_|(Be*#jCdB~TH4=lcx{loT%oGeSJaJ>vPaHhdT{0UiJRypQ+y63lfJa94kb1JwPY$nER5prg#)I1s%&4lCUsEH!mjXW4L1>0*o zK>GncqXVe-Ije8<($12Ux>@zPG_XFM<71UvFzW@gfd|alIKWjij5*Q3TIg@JwEWk< zAAB~5f%W|ixoT}>%vYV|X!d@U*JrbFPPgWLt9al19?DeO0jwFGvN}rTQ~wQf1vxWb z^I!1sUrX+}iS^On@4xUhIgqwh@xGz=n}&Cpbgu8~UqA9cj}7}5NWXc1MLpFcivM+f zfaZVi$pa(C_aS_+$Z5Zk`I`ozj=vavyB(^YUGs1K{M-DsVQzpOGsUtI7g#295F3n` zf*yi8E}(57FJU6=-@*C3Ll?g-pKl%kT#8tqw)vaS+YOf+Dy|BDAg3@LebZ;D9BVBD zv<=`%8$jjr18?d&se{Z~-&fVEQty)%wZGqR-nB|j7?_}4ii!(l!@fllJ^guC&5-UX z?nyof#_v{GA8gDB^sD}2+ZgDb4Ak+#7u8r_3;R5-dI8i9Z$G?B`XWz=cr5W5T|cbt zf#%98lkchf*`sdlo;k=z$yGk6&g=8O&acmQpe?}pf;%7shNH(yH`r+JV73b7Kyzt8 ze?B?B<$w3819&!`))A#Rf=N3!O6iQ#`qh;>-D|I$QOh^fF8_;Gj?JAY9#uLKBM{yk^gnRP~h7F zCJy}3*oWZwB$A}Y_qc>wF_I{mwxoxcUf$#V6xJQjx zp^gy*per0+>mzbBO)OC*a&I?%B^&uSnYa z6ES=5DDrnJ9LFH**{4J6d@a{%$~D>o#0D4x+67E#>Gtt5aN!$>4YyPLPkmza8q~Q% z?t0dj{w9XYgIG@N>^~xhZ;&J&{6aF3$HzPn!{@8H@0t(vdQ{VZQBTaroJX9QcSKh2 znJxVnye3`7w^cfjxPZn6e8*QHzZ)~+$oG#(ubD5%7h6Y5YIc$oVulp?UiNCo^GGvuQ`9W7;a|Kj(KDY@`C`<2>;+}yjcc30dv*ZV+Q9R<_F>TV-6lN& z+~zOx`IZrKBzvFA`&RZGZ8{u{*?axo2lGcTt&u4UCxlMygTAA z)75M(=IoUb%ZLBPJblVwO@mtJ`w|UM7x5rgNV|YNh>l<`+&c7=82eRM`DDtk5l3tX z8vl2r?#M;=raTB_8-coA9lT~&43+ww_&sB*YM%ch<}qek$=x?d2_@MrTdh}C1KvnGJZvO z#80Qn{-cSKj@encg_+7$qAz8vk)Ee>Ki#5V^ItoN{fQZ;a@s59nDe9@t2l|C@>#MY zWfkg>$H+AFneLCgf@tKdvo`_z7qf3+DEd?o2j@%!g@?OzYPF5vP1*2W-Oh7jAC-4- zd@zPS{3F2Y+er`1W{jTx9C~ZL3SYhlYAXiH*T6>7^A1X-^BC6Pl)~@rwhGm|S<|-v z(zf2ahV7k-9Vq_*J}s~;t{ZLMLf~7(3(|9vWmocA;9fIi(dJn}_@JHUBnjcjLR+D+zTq z_#A7b>96n{*e9Fu4*D?>Q=XQ7^E<+>4_El-GWa<=Q`Q)I9=1Jkdm|^e1hx>aA3hRg zqQ>$XMmw6v0&|_*@dAZ&m9j5E5oR0aD-0~J0R94M5e}qpg}<;!)h4lD!OV3DGUlr; z$VL2{@~684L!-?=UhF!dJ@~R64&L)Oq~)A?Qe zP98ll|1KVNH6xMpG<{t!^h_9{^6%E|nutdbX%77m*wm^G%{1}_f?o3bUV+RIG*Npt7t-hkCrcn zOfdP3_r%PIDL8N_{ETt}adPq`Wdvs+u)iJsi+moC7rEeHV(rXZ;z2x;&+}lMy-?}y zd?jm?{&wN<{Qj!nap`kq!;{xFPOoI3rco`YT7m{j;WJRz8omU4YnNQ0Y%t}612~%# zxy$TzQuDxbd>#ki!-JpUcc>gY<)iC5x|Y~i{hL~zG>ryaK7>mqD1XBIyUISVw$p38 z?s}iL-8JnsjrR1q>2=dIplLwUfTjUW1DXaj4QLwBG@xlf(}1P{O#_++G!1AP&@`ZF XK+}Mx0Zjv%1~d(58qhT0Z5sH$F1*3@ diff --git a/Specs/Data/Models/Box-Textured-KTX-Binary/Readme.txt b/Specs/Data/Models/Box-Textured-KTX-Binary/Readme.txt deleted file mode 100644 index 89410d78c033..000000000000 --- a/Specs/Data/Models/Box-Textured-KTX-Binary/Readme.txt +++ /dev/null @@ -1 +0,0 @@ -This is the same as Box-Textured-KTX, except it is "Binary glTF" using the KHR_binary_glTF (CesiumTexturedBoxTest.glb) extensions. diff --git a/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf index 530166206797..1b59277eb682 100644 --- a/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf +++ b/Specs/Data/Models/Box-Textured-KTX-Embedded/CesiumTexturedBoxTest.gltf @@ -6,13 +6,7 @@ "byteStride": 0, "componentType": 5123, "count": 36, - "type": "SCALAR", - "min": [ - 0 - ], - "max": [ - 23 - ] + "type": "SCALAR" }, "accessor_23": { "bufferView": "bufferView_0", @@ -34,9 +28,9 @@ }, "accessor_25": { "bufferView": "bufferView_0", - "byteOffset": 480, + "byteOffset": 288, "byteStride": 0, - "componentType": 5120, + "componentType": 5126, "count": 24, "max": [ 1, @@ -52,7 +46,7 @@ }, "accessor_27": { "bufferView": "bufferView_0", - "byteOffset": 288, + "byteOffset": 576, "byteStride": 0, "componentType": 5126, "count": 24, @@ -80,28 +74,41 @@ "bufferViews": { "bufferView_0": { "buffer": "CesiumTexturedBoxTest", - "byteLength": 552, + "byteLength": 768, "byteOffset": 0, "target": 34962 }, "bufferView_1": { "buffer": "CesiumTexturedBoxTest", "byteLength": 72, - "byteOffset": 552, + "byteOffset": 768, "target": 34963 } }, "buffers": { "CesiumTexturedBoxTest": { - "byteLength": 624, "type": "arraybuffer", - "uri": "data:application/octet-stream;base64,AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAPwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAC/AADAQAAAAAAAAKBAAAAAAAAAwED+/38/AACgQP7/fz8AAIBAAAAAAAAAoEAAAAAAAACAQAAAgD8AAKBAAACAPwAAAEAAAAAAAACAPwAAAAAAAABAAACAPwAAgD8AAIA/AABAQAAAAAAAAIBAAAAAAAAAQEAAAIA/AACAQAAAgD8AAEBAAAAAAAAAAEAAAAAAAABAQAAAgD8AAABAAACAPwAAAAAAAAAAAAAAAP7/fz8AAIA/AAAAAAAAgD/+/38/AAABAAABAAABAAABAQAAAQAAAQAAAQAAAAEAAAEAAAEAAAEAAP8AAP8AAP8AAP8A/wAA/wAA/wAA/wAAAAD/AAD/AAD/AAD/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA" + "byteLength": 840, + "uri": "data:application/octet-stream;base64,AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAADAQAAAAAAAAKBAAAAAAAAAwED+/38/AACgQP7/fz8AAIBAAAAAAAAAoEAAAAAAAACAQAAAgD8AAKBAAACAPwAAAEAAAAAAAACAPwAAAAAAAABAAACAPwAAgD8AAIA/AABAQAAAAAAAAIBAAAAAAAAAQEAAAIA/AACAQAAAgD8AAEBAAAAAAAAAAEAAAAAAAABAQAAAgD8AAABAAACAPwAAAAAAAAAAAAAAAP7/fz8AAIA/AAAAAAAAgD/+/38/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA" } }, "images": { "Image0001": { "name": "Image0001", - "uri": "data:image/ktx;base64,q0tUWCAxMbsNChoKAQIDBAEUAAABAAAACBkAAFiAAAAIGQAAAAEAAAABAAAAAAAAAAAAAAEAAAABAAAAIAAAABsAAABLVFhPcmllbnRhdGlvbgBTPXIsVD1kLFI9aQAAAAAEANzc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/3dzc/93c3P/d3Nz/3dzc/93c3P/d3Nz/3t3c/97d3P/e3dz/3t3c/97d3P/e3dz/3t3c/97d3P/e3dz/3t3c/97d3P/e3dz/3t3c/97d3P/d3Nz/3dzc/93c3P/d3Nz/3dzc/93c3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3dv/393b/+De2//h3tv/4d7b/+He2//i3tv/497b/+Tf2//k39v/5N/b/+Tf2//k39v/5eDb/+Xg2//l4Nv/5eDb/+Xg2//k39v/5N/b/+Tf2//k39v/497b/+Pe2//i3tv/4d7b/+He2//g3tv/393b/97d2//d3Nv/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/3d3c/97d3P/f3dz/393c/9/d3P/e3dz/29zc/9ja2//V2tz/1Nnd/9TZ3f/S2N3/0Njd/87W3f/N1d3/zNXd/8vV3f/K1d3/ytXd/8jU3P/I1Nz/yNTc/8jU3P/K1d3/ytXd/8rU3f/M1t3/zdbd/87W3f/Q193/0djd/9PZ3f/V2d3/1trd/9ja3P/a29v/3t3c/9/d3P/f3dz/393c/97d3P/e3dz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/d3Nz/3t3c/93c3P/d3Nz/29vb/9nb3P/X2t3/1dnc/9TY3P/S2Nz/zdbc/8LR3f+2zN3/rcnf/6nI4f+mx+H/ocXh/5rC4f+Rv+L/jbvh/4q64P+GueH/hLjg/4O44P9+td//fbTf/3203/99tN//grfg/4S44P+FuOD/ibvh/4294f+Rv+H/lsDi/53D4f+kxuH/qMjh/67L4P+2zN7/v8/c/8vV3f/R19z/1Njc/9XZ3P/X2t3/2dvc/9rb2//c3Nz/3dzc/97d3P/d3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/93c3P/e3dz/3dzc/9vc3P/Z29z/19rd/9PZ3P/O1tz/yNPc/7zP3P+uy9//nsXh/4694f+DuOD/fLXg/3ax3v90sN//cq/f/3Gv3v9wr9//cK/f/2+v3/9urt//ba3f/2yt3/9srd//bK3f/2us3/9rrd//aqze/2qs3v9qrN7/aqze/2ut3/9rrN//a6zf/2yt3/9srd//ba3f/26u3/9vrt//cK/f/3Cv3/9xr9//cq/f/3Ow3/91sd//erTf/4C34P+NvOH/m8Pi/6vJ4P+6zd3/x9Lc/83V3P/T2Nz/1trd/9nb3P/b3Nv/3Nzb/93d3P/d3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/97d3P/e3dz/3dzc/9rb3P/W2tz/0dfc/8bT3P+9z93/r8re/5vD4f+GueH/eLLf/3Ow3v9zsN//ca/e/2+v3/9trt//bK3f/2us3/9qrN//aqzf/2qs3/9rrN//a6zf/2us3/9rrd//a63f/2ut3/9rrd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//a63f/2ut3/9rrd//a63f/2us3/9rrN//a6zf/2qs3/9qrN//aqzf/2qs3v9rrN7/ba3f/2+u3/9xr9//cq/f/3Sw3v93st//g7fh/5jB4v+syeD/us7d/8TS3P/Q19z/1trd/9nb3P/d3Nz/3t3c/97d3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3b/+He2//k4Nv/49/b/9vb3P/C0d//psfg/4q63/9/td7/e7Pe/3iy3/9yseD/bK3f/2ms3/9oq9//aazf/2qs3/9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9rrN//aqzf/2ms3/9oq9//aazf/2yt3/9ysOD/drLf/3uz3v9+tN//iLrg/6TG4v+/0eD/19rc/+Pf2//l4Nv/4d7b/97d2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/93c3P/e3dz/3t3c/9rc2//T2d3/z9fd/8nU3f+8zt3/o8Tg/4a64f9rruD/Y6rf/2Op3/9lqt//aKve/2qs3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN7/aKve/2Wq3v9kqd//Y6rf/2mt4P+FueP/oMPh/7jM3f/H093/ztbd/9PZ3v/a3Nz/3t3c/97d3P/d3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/3t3c/93c2//b3Nv/2Nrc/9PY3P/A0d3/pcff/5G94P+EuOD/drHe/3Gv3v9urt//a6ze/2qs3/9qrN//a6zf/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9rrN//aqzf/2qs3/9rrN//bq7f/3Gv3/91sN//gLbg/4y84f+kxuH/vtDe/9HW3P/Y2tz/29zb/93c2//e3dz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/d3dz/2dvc/9TZ3P/I09z/vM7d/6XG4P+IuuH/dbHf/3Cv3/9trt//a63f/2qs3/9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9rrN//aqzf/2us3/9srd//cK/f/3Sw3v+Ct+D/ocXg/7nO3v/G093/09jc/9nb3P/c3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/e3dz/3dzb/9vc3P/X2t3/zNXc/67J3v+Mu+D/eLLf/3Kv3v9wrt//bK3f/2qs3/9rrN//a63f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9qrN//a6zf/2+u3/9xr97/d7Lf/4m74f+qyeD/yNTc/9ba3f/b3Nz/3dzc/97d3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/3dzc/93d3P/b29z/1Nnc/8fT3P+4zd7/ncPh/3214P9xr97/bK3f/2us3/9qrN//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//aqzf/2us3/9srd//cK/f/3mz3/+ZwuH/tc3f/8TS3v/T2Nz/2tvc/93d3P/d3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/397b/+Lf2//h39v/yNTe/5/E4P+Ct9//eLLf/3Kw4P9rrd//aqzf/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3/9qrN//crDg/3iy3/+Btt//mcHg/8TT3//g3tz/4t/b/+De2//d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3dz/3t3c/9nb3P/U2dz/yNTc/6nH3/+AtuH/Z6zf/2Kp3v9nq97/a6ze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6ze/2ir3v9kqd7/Z6vf/3q04f+kxuD/xtPd/9PZ3f/Y293/3d3c/97d3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/d3dz/2tvc/9DX3P+5z97/pcff/4m64P90sN//ba7f/2ut3/9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqzf/2qs3/9srd//crDf/4W44f+hxeH/tc3g/83W3f/Z293/3d3c/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/93d3P/a29z/0djc/6/K3v+Hud//dbHf/2+v3v9srd//aqzf/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3/9srN//b67f/3Ow3/+Ct+D/rMnh/87W3f/Z293/3d3c/97d3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3dz/29zb/9jb3P/O193/s8ve/4m64P9yr9//bKzf/2qs3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9qrN//a6zf/3Gv3/+DuOD/sMvh/83W3v/Y2tz/29zc/93d3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/c3Nz/1dnc/7vO3f+YweH/hLnh/3Ox3/9srd//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//a6zf/3Ow3/+Dt+H/l8Dh/7vQ3//V2tz/3Nzb/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93d3P/g3tv/1trc/6nH3/9/td//cK/g/2yu4P9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//bK7g/3Cv4P9/teD/qsri/9jb3v/g3tv/3d3c/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9/d3P/d3Nz/1Nnd/7rO3f+KuuD/aKvf/2er3v9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3v9nq97/aKvf/4u94/+7z9//1Nnd/93c3P/f3dz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9vc2//Y2tz/y9Xd/6nI3/98teD/bq7f/2qs3/9rrd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//a63f/2qs3/9truD/e7Tg/6jH4f/J1N7/1djc/9vb3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/3d3c/9fa3P++0N3/mMDh/4K34f9xsN//aqzf/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2qs3v9xr9//fLXh/5C+4P+7z97/19rc/93d3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/d3dv/29zb/8/X3P+kxt//eLPf/22u3/9srd//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/2qs3/9srd//eLPf/6XH4f/P193/29vc/93c3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/f3dv/3N3c/8nV3f+awt//drLf/2ms3/9qrd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aq3f/2qs3/92suD/msLi/8nV3//c3d3/4N3c/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3dz/1dnd/8LR3f+qx97/fbbg/2ir3v9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//aKvf/3224v+pyOD/wdLf/9TZ3f/e3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/09jd/6zJ3/+Et9//c6/f/2yt3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9srd//cK/g/4G34f+qyeH/0dfd/9zc2//d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/93c3P/b29v/ytTd/5bA4f9zsN//aqze/2qs3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3v9qrN7/crDf/5K/4f/G097/29zc/93c3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3c/93c3P/W2tz/vtDd/4i64f9vrt//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9urt//hbjg/73Q3//X2t3/3dzc/97c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3c/9XZ3P++0N7/pMXe/3y03/9srd//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2ut3/97td//pcjh/7/S4f/W2d3/3d3c/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3tzc/93c3P+xy9//hbjf/3Kw3v9rrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//a6ze/3Kw3/+FueD/s87i/97e3P/e3dv/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/L1d3/lL/g/2yu3/9jqd7/aaze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2mr3v9iqN7/bK7g/5XB4//K1t7/3dzb/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9zc3P/N1t3/mMHf/3Kw3/9rrN//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/2qt3/9ysN//lcDh/8nU3f/c29v/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3b/9vc2//G1Nz/j73f/2+u3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/26u3/+KuuH/xdPe/9vc3f/e3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/29zb/9HX3f+5zd7/h7nf/22u3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//bK7f/4a54P+4zuD/0dje/9vc3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/29vb/8HQ3f+PveH/d7Ph/2yt3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9srd//drLh/4694f/A0t//29zc/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3dz/3t3b/83W3f+NvOD/b6/g/2ms4P9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3/9vr+D/i7vg/83X3//e3dz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3dz/3d3c/9jb3P+zy93/dLHg/2ms3/9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN7/aazf/3Ow4P+yzN//2Nrd/97d3P/e3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/393b/9nb3P+9z93/gLbf/2us3/9rrd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9rrN//frbg/7rP3//X293/3t3c/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vc/83W2/+zy93/gbfg/2ut3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qt3/98teD/rMrg/8jV3//a29z/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vc/8HQ3f+Ou9//dbHg/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqze/2+v4P+GueD/vdDf/9vb3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/9DX3P+OvOD/b6/g/2ms3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9orN//ba7g/4q64P/O197/3d3c/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9vc3P+5zt7/drPh/2ms3/9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6ze/2mr3/9zsOD/tc3f/9rb3f/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/93c3P/J1N3/ibrh/2yt3/9qrd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//a63f/4O44f/E0t7/3Nzc/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/93d3P/P1t3/k77h/26u3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9sruD/jLzi/8vV3f/d3Nz/3t3c/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/93d3P/M1t3/m8Lf/3Gv3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/26u3/+UwOH/ydXe/93c3f/d3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9ba3f+0zd//l8Dg/3Ow3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//ca/g/5K/4/+wy+L/1trd/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/93d2//C0t3/h7nf/22u3/9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9rreD/hbjh/8LT4f/d3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/Y2tz/qcje/3Ow3v9jqd7/aazf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//Yqne/3Kw3/+oyeL/2Nrd/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/wtDc/3+13/9rrN//aaze/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3v9rrN//fbXg/8LS4P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/d3dz/zNbd/4y73/9trd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2yu3/+KvOH/zdfe/93d2//d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/e3dz/1Nnd/5zD3/9vr9//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9rrN//a6zf/2us3/9rrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//b6/g/5vD4//U2d3/3tzc/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/f3tv/1trc/7LL3v90sd//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9rrN//aqve/2yt3/9vr9//cbDg/3Gw4P9xsOD/b6/f/2yt3/9qq97/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/90sN//rMrg/9Xa3f/g3tv/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nv/393c/8fT3f+Iut//a63e/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3v9nqt7/ZKje/2Oo3f90suD/jsDm/5zH6v+fyer/nMfp/4/B5/93s+H/Yqjc/2Wp3v9qq97/a6ze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqzf/4G34P/C097/3d7d/93c2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/3Nvc/87W3f+vyt//dbLf/2qs3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9pq97/ca/g/3iz4v+DuuT/mcfp/7TW7//D3fL/xt/y/8Ld8f+11u//ncjp/4S65P91suH/a6ze/2ir3v9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2mr3v9xr+D/qsrh/8vX4P/c3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9LX3P+gxeD/grnh/22u3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9srN//e7Xi/5zH6f+41u//2+r2/+rz+v/w9/z/8/j8//P4/P/y+Pz/8Pf8/+vz+v/d7Pf/rdHt/4W75P90seD/bKzf/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//ba3f/3634/+dxOP/0dje/93c2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9nb3P+syd//ebPf/2es3/9qrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9trt//jsDm/9fp9v/u9fv/9fn9//3+/////////////////////////////////////////f7///L4/P/o8/r/zuT0/5LB5/9urt//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qt3/9nq9//ebPh/6zL4//Z293/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/93c3P/F0t3/frXg/2us3/9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9urt//lcTo/93s+P/7/f7///////////////////////////////////////////////////////////////////////r8/v/f7fj/mMXo/26u3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqze/2qs3/98tOD/xdTf/93c3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9/d3P/a29z/ocTg/2+v3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3v9qrN7/erXi/9Dl9f/6/P7/////////////////////////////////////////////////////////////////////////////////+vz+/9Lm9f98tuP/aqze/2us3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//b67f/57E4v/Z29z/393c/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93d3P/e3dz/0Nfc/4q74f9srd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9oqt7/ba3f/5LC5//s9Pv////////////////////////////////////////////////////////////////////////////////////////////t9fv/mMbp/2+v3/9nqt7/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2yt3/+Iu+L/z9fe/97d3P/e3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/g3tv/19rc/7LK3v90sN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//Zane/3624//F3/L/9/v9////////////////////////////////////////////////////////////////////////////////////////////+fz+/83k9P+BueP/Zand/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrd//c7Dg/7DM4//W2t7/4N3b/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/3Nzb/8PS3f+Et+D/a6zf/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//ba3f/3224/+hy+v/6PL6//7////////////////////////////////////////////////////////////////////////////////////////////////////r9Pr/qs/s/4W75P9trt//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/99tuH/u9Dg/9fb3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/2Nrc/7XN3/+WwOD/cK7f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/3Kw4P+p0Oz/0eb1//X6/f//////////////////////////////////////////////////////////////////////////////////////////////////////+Pv9/9vq9/+z1O7/c7Hg/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//b6/g/46+5P+ty+P/1trd/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzb/8TS3f+GuN//bK3g/2us3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3v92s+H/zuP0//f6/f/9/v////////////////////////////////////////////////////////////////////////////////////////////////////////7+///6/P7/0eX1/3iz4f9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9oq+D/gLXg/7/R3//b3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9nb3P+kxeD/dbDg/2eq3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9pq97/d7Ph/9bo9v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9nq9/9/t+L/aqze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//Z6re/3Gw4P+aw+L/2Nvc/97d3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/S2Nz/jbzh/26u3/9orN7/a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aave/3q04f/X6fb////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////b6/f/hLrk/2us3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3v9trt//hbrh/8/Y3v/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b3Nv/vNDd/3ax3/9prN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3v9/t+P/2er3////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3ez3/4m95f9srN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aazf/3Sx4P+3z+H/29vc/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/1Nnc/5S/4P9trd//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9pq97/e7Ti/9fp9v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9vr9/+DuuX/a6ze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9srt//i73i/9HY3f/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/29vc/7vO3v91sd//aq3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aaze/3az4f/R5fX/+vz+//7+/////////////////////////////////////////////////////////////////////////////////////////////////////////v////v9/v/T5vb/eLTi/2mr3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/3Ow4P+0zeH/2tvc/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/9TZ3P+SvuD/ba7f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9zseD/tdXv/93s+P/4+/3///////////////////////////////////////////////////////////////////////////////////////////////////////r8/v/m8Pn/vdrw/3Sx4f9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9srd//ibrh/9HX3f/e3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3b/9zc3P/F0t3/ebPf/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//b6/g/5XE6P+82vD/8ff8///////////////////////////////////////////////////////////////////////////////////////////////////////z+Pz/x+Dy/6DK6v9xr+D/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aq3f/3ay4P/B0+H/29zd/97d2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/+De2//Y29z/tMze/3Cu3v9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/22t3/9+uOP/pM3s/+v0+///////////////////////////////////////////////////////////////////////////////////////////////////////7vX7/63R7f+HvOX/bq7f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9wr9//rszi/9fb3v/h3tv/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/i3tv/z9fd/5a/4P9trd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9prN//Zqre/4S75P/V5/b/+/3+/////////////////////////////////////////////////////////////////////////////////////////////P3+/9vr9/+JveX/aave/2qs3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//bK7f/4694f/L1t3/4d7b/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d29z/1dnc/7fN3f93st//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2eq3v9vr+D/lsXo/+Tw+f/9/v///////////////////////////////////////////////////////////////////////////////////f7//+bx+f+cyOn/cbDg/2eq3v9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/90sd//rszh/83Y4P/b29z/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/19rc/67L4P+OveH/b67f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqzf/3Gw4P+nzuv/5fH5//z+/v///////////////////////////////////////////////////////////////////////P3+/+nz+v+v0u3/crHh/2qs3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//bq7f/4a75P+myeP/1trd/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3tzc/9DX3P+LvOD/ba/g/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qrN7/eLTi/7LU7v/z+Pz//////////////////////////////////////////////////////////////////////+71+/+52O//e7Xi/2qs3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9preH/h7rh/83X3//d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/F0t3/fbXf/2Kq4P9prN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/2mr3/+Pwef/0+f1//D3/P/4+/7//v7////////////////////////////////////////+/v//9fn9/+Tw+f/K4vT/lsTo/2mr3v9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9pq9//Yaje/3u03//B0+D/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/Z29z/rMnf/3ay3/9lqt7/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//cK/g/42/5v+72fD/0+b2/+bw+f/y+Pz/+Pv9//v9/v/7/f7/+v3+//j7/f/y+Pz/5/L6/8ri8/+byOn/grrk/3Cv4P9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2aq3v90seD/pcjj/9jb3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/0tjc/4m64P9urt//aqze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9srd7/ca/g/3iz4f+JvOX/rNDt/8Xf8v/T5vX/1ef1/9Ll9f/H3vP/r9Ht/4u+5v91suH/ba7f/2ut3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN7/a63f/4C34P/P193/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29zb/73P3f90sd//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3v9qrN7/a6ze/3Cv4P90seD/dbLh/3ay4f92suH/dLHg/3Gw4P9srd7/aqze/2ut3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9zsN//uM/i/9vc3f/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9fa3P+cw+D/b67f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//aqzf/2qs3/9qrN//aqzf/2qs3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//bq7f/5fB4v/W2t3/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3P/S2Nz/grjg/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/99teD/ztbd/97c2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/ytTd/3ez4P9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9pq97/c7Df/8XU3v/d3Nz/3dzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/2tvc/7XM3v9ysN//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/3Gv3/+wzeL/2tvd/93c3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/9ba3P+ZweD/bq7f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9rrN//aqzf/2qs3/9qrN//aqzf/2qs3/9qrN//aqzf/2qs3/9rrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9rrN//aqzf/2qs3/9qrN//aqzf/2ms3/9rrN//kL7i/9TZ3f/e3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/97c3P/M1dz/fLTg/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qrN//aave/2us3/9trt//b6/f/3Kw4P90seD/dLHh/3Wy4f91seH/dbHh/3Ox4P9yseD/b6/g/2yt3/9qrN7/aave/2qs3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9prN7/aqze/2ut3v9trt//cbDg/3Ox4P90seH/dbLh/3Wy4f91suH/c7Hg/3624f/L1t//3dzc/93c2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9/d2//Y2tz/ts3e/3Kw3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqze/2qr3v9srN//crDg/3ez4f+IveX/msfp/6bN6/+31u//xt7z/83j9P/S5vX/0uX0/8/j9P/I4PP/vNrw/6fN7P+Pwef/fbfj/3az4f9zseD/bq7f/2qs3v9rrN//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qrN7/aqze/2us3v9wr+D/dbLg/3y34v+GvOX/msbp/7HU7f/C3fH/y+Hz/9Hl9f/T5vX/0eb1/8vj8//B3PD/097n/9vc3f/c29v/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/h3tv/09nd/6TG4f9vr9//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//Z6ve/2Gn3f9lqd7/e7Xi/6bN6//O4/T/3Oz4/+Pw+f/n8vr/7vb7//P5/f/2+v3/+Pv+//j7/f/2+v3/9Pn9/+/3/P/o8vr/3+34/9jp9//O4/T/stTv/4i85f9mqd7/Y6je/2eq3v9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9oq97/ZKjd/2Sp3f9xsOD/nMjp/8Tf8f/V6Pb/3Ov4/+Pv+f/s9fv/8vj8//X5/f/3+/7/+Pv+//j7/v/1+v3/8Pb7/+vu8P/e39//2tra/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3dz/49/b/9DY3v+XweL/bq7f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aave/3Gv3/97teL/hrvl/6DK6v/O4/T/9fr9////////////////////////////////////////////////////////////////////////////9vr9/9rr9/+u0u3/iLzl/3m04v9ysOD/aqzf/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9prN7/bq7f/3ez4f+AuOP/lMTo/8Pd8v/s9fr//P3+//////////////////////////////////////////////////7+/v/19fT/4eDg/9nZ2f/b29v/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/+Pe2//I1N3/grjh/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9qrN//bK3f/3i04f+cyOn/x+Dy/9vr9//p8/r/9fn9//3+//////////////////////////////////////////////////////////////////////////////3+///4+/3/7vX7/97s9/+62PD/n8nq/3+34/9urt//aaze/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9rrN7/dLHg/5DA5v+41/D/z+X1/+Xw+f/z+Pz/+/3+//7/////////////////////////////////////////////////////////+Pj4/+Li4v/a2tr/29vb/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/U2dz/tMzd/3Sx3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3v9truD/dbLh/5HB5//P5fT/7PX7//j7/f/9/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////9/v//9fr9/+/2/P/d7Pj/pMzs/3iz4f9rrN7/a6zf/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqze/2qs3v9vrt//hLvk/7/b8f/m8fn/9fn8//r8/v/+/v////////////////////////////////////////////////////////////////////////r6+v/p6en/4ODg/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/Z29z/u9Df/5zD4P9xr97/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2us3/98tuP/qM7s/8bf8v/l8Pn/+vz+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f7//+71/P/N4vT/ib3l/2+v3/9qrN7/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqve/22u3/98tuL/pMzr/97s+P/2+v3//v7////////////////////////////////////////////////////////////////////////////////////////8/Pz/8vLy/+np6f/d3d3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/1tnc/6LG4f+CuOL/ba3f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/22t3/+JveX/z+T1/+71/P/4+/7//f7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+fz+/93s+P+ozuz/ib3l/3Kw4P9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqzf/3624/+u0u3/zeP0/+r0+//9/v///////////////////////////////////////////////////////////////////////////////////////////////////v7+//r6+v/w8PD/3t7e/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/9TY3P+OvOD/bq/g/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2mr3v+At+L/zuT0//b6/f/+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6/P7/6fL6/87j9P+Yxen/aaze/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aave/3Kx4P/B3PL/6fP6//X6/f/9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7/9fX1/97e3v/b29v/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97c3P/P1tz/hLff/2ar4P9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2qs3/9wsOD/oMnq/+/2+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////u9vz/u9nx/3u14v9qrN7/a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2yt3/+Rwuf/5fD5//3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////b29v/h4eH/29vb/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/wtHc/3203v9kqd//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2mr3v9xr+D/lMLo/97s+P/8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////P3+/+ny+v+u0e3/dbLg/2qs3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2us3/+GvOX/1Of2//n8/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4+Pj/5eXl/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/2dvc/67L3/93st//Zare/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2yt3v+AuOL/ocrq/97s9//8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/v//6fP6/63R7f9ysOD/aazf/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aKve/2qs3v+EuuP/1+j2//r8/v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+vr6/+zs7P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9fa3P+bw+H/crDf/2ir3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2us3/+IvOT/zeP0/+/2+//8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3+///m8fn/nsnq/3Ox4f9oq97/a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqve/2us3v+Gu+T/y+Lz//j7/f////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f/z8/P/3d3d/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3P/V2dz/jrzh/2+u3/9prN7/a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2mr3v9xsOD/w97y//P4/P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/3+/9Xo9v+Nv+b/bq7f/2qs3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/2yt3/+Xxej/vtrx/+71+//+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f3/97e3v/b29v/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3dz/1Njc/4W34P9trd//a6ze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qrN7/iL3l/+Pv+f/9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v9vv/stTu/4u+5f9trt//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/96tOL/udfv/9/s+P/4+/3///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////n5+f/f39//29vb/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/8/W3P95s9//aazf/2us3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//dbLg/7za8P/0+f3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////P3+/+/2+//L4vT/g7rk/2qr3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9vruD/osvq/+Du+P/4+/7//v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5+fn/4eHh/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9zc3P/B0Nz/dK/f/2ms3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qrN//b67g/6LL6v/q8/r//v7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8/j8/8be8v94s+H/aazf/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9rrd//jsDm/+Du+P/7/f7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+vr6/+Xl5f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/a29z/s8vf/3Gw3v9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9oq97/ba7f/4/A5v/g7vj//f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+///u9vv/rNHs/3Gw4P9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2ms3v9qrN7/gLjj/9fo9v/7/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7//v7+//////////////////////////////////z8/P/r6+v/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3dz/2Nrc/6TG4f9vrt//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN7/ba3f/4u/5v/V6Pb/+/3+////////////////////////////////////////////////////////////////////////////////////////////////////////////+/z6//H17P/n7t//4urZ/97m0//h6Nb/4+rZ/+Xs3P/t8uf/+fr2//7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////f7//+Tw+f+VxOj/b6/f/2ir3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9nqt7/frbj/7/b8f/1+v3////////////////////////////////////////////////////////////////////////////////////////////////////////////9/v3/8/bv/+nv4v/i6tn/3ufU/97n1P/h6dj/5Ovb/+zx5v/3+fT//f79///////9/f3/8fHx/97e3v/b29v/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/9fa3f+cw+L/b67f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//ba3f/5zI6v/D3vL/8ff8/////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/+zx5/+7zaX/jKpm/3ebS/91mkj/dppJ/3ibS/+Co1n/qcCO/+Do1v/7/Pr////////////////////////////////////////////////////////////////////////////////////////////////////////////6/P7/0OX1/4C44/9kqN3/aqve/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9srd//gbnk/6TN7P/k8Pn//f7/////////////////////////////////////////////////////////////////////////////////////////////////////////////9vjz/8fVtf+VsXL/eZxO/3WZSP91mUn/dppK/36gU/+kvIb/1+LK//b48////////v7+//Pz8//d3d3/29vb/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3P/W2t3/lsHi/26u3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqze/3y24/++2/H/4+/5//n8/v/////////////////////////////////////////////////////////////////////////////////////////////////8/fv/6u/j/9fhyv+/0Kv/j61r/2KLL/9PfRX/TnwU/058FP9PfRX/WIUi/36hVP+0yJz/3ebR//f59P///////////////////////////////////////////////////////////////////////////////////////////////////////////+v0+/+gyer/ebTi/2qs3v9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//c7Dg/6DK6//G4PP/8/j9//////////////////////////////////////////////////////////////////////////////////////////////////3+/f/4+vX/7fLn/9DcwP+ctXv/a5I6/1F+Gf9OfRX/Tn0V/018FP9UgR3/epxO/6vCkf/O27//4unY//b48//19fX/3t7e/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/f3dz/1Nnc/4y84f9srd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/3Cv3/+kzOv/4e/4//n8/v/+/v/////////////////////////////////////////////////////////////////////////////////////////////8/Pr/4+na/6q/jv93mkr/ZIwx/2CKLP9bhib/WYQj/1mFI/9ZhSP/WYUj/1qGJP9eiSr/Z5A2/5CtbP/N2r3/6u/j//j69v/+//7////////////////////////////////////////////////////////////////////////////////////////////4+/3/3ez4/7fW7/95tOL/aazf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//bKzf/5DB5//U5/b/8/j9//3+//////////////////////////////////////////////////////////////////////////////////////////////39/P/r8OX/0d3C/7DElv94m0v/Yosu/1yHJv9ZhSP/WYUj/1mFI/9ZhSP/WYUj/12IKf9ljjT/dZlJ/5OvcP/N2r7/7fDp/9/e3v/c29z/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/393c/9PY3P9/tuD/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2us3/+Pweb/4e75//v9/v/////////////////////////////////////////////////////////////////////////////////////////////////7/Pr/2uTP/42qZ/9jiy//WoUj/1mFIv9ahiX/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qFJP9diCn/aJA3/4WmXv/I1rb/9vjz/////////////////////////////////////////////////////////////////////////////////////////////v////v9/v/n8vr/rtLt/3Kw4f9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqze/4G55P/Y6fb/+fz+//////////////////////////////////////////////////////////////////////////////////////////////////z9+//j69v/n7iA/2+UQP9eiCr/WoUk/1qGJP9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WYUk/1qFJf9chyj/cJZC/7fJof/a3Nj/3Nze/9vb3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzb/97c2//N1dz/drHf/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aaze/2qs3v+AueP/1+n2//v9/v/////////////////////////////////////////////////////////////////////////////////////////////////6+/j/2+TP/4WlXP9eiCn/WoUk/1yHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/1mFI/9bhiX/c5hF/8zZu//4+vb//////////////////////////////////////////////////////////////////////////////////////////////////P3+/+Tw+f+XxOj/ba3f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/3az4f/B3PH/9vr9//////////////////////////////////////////////////////////////////////////////////////////////////z9+//l7N3/mbR6/2OMMP9ZhCP/WYUj/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WoYl/1mEI/9ukz//ydC//93d3v/d3N7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3P/c3Nz/w9Hc/3Sw3v9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/2ir3v9/t+L/wdzx//b6/f////////////////////////////////////////////////////////////////////////////////////////////39/P/09u//1d/H/46raf9fiSr/W4Yl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyb/W4Yl/1qFJP93m0r/0t7E//j69f/////////////////////////////////////////////////////////////////////////////////////////////////8/f7/3Ov4/4a75f9rrN//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqzf/3Cv4P+nzuz/7PT7//7+/////////////////////////////////////////////////////////////////////////////////////////v7+//r7+P/j69v/pr2J/2SNMv9ahST/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahST/ZIwy/8HMsv/c3Nv/3t3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3dz/2tvc/77P3P9zsN7/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2yt3/+DuuT/p87s/+bx+f/9/v/////////////////////////////////////////////////////////////////////////////////////////////z9vD/yNa1/563ff9njjX/WoUk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/XYco/4+ta//g6Nb///////////////////////////////////////////////////////////////////////////////////////////////////////b6/f+92vD/b67f/2iq3v9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aaze/2qs3v+BuOP/2On3//v9/v////////////////////////////////////////////////////////////////////////////////////////////r7+P/n7t//v9Cp/3GWQv9ZhSP/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYk/2SNM/+6x6r/2tvZ/97e4P/c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/9nb3P+6ztz/c7Df/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9zseD/osvr/8jg8//0+f3////////////////////////////////////////////////////////////////////////////////////////////9/v3/5evc/6K6hP95nE7/XIYm/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4cm/1mFJP9vlED/v9Cq/+nv4f/6/Pn////////////////////////////////////////////////////////////////////////////////////////////8/f7/2+v3/4G44/9qq97/aave/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2aq3v9xsOH/n8nq/+/2+//////////////////////////////////////////////////////////////////////////////////////////////////z9u//xdWz/5i0d/9diCj/WYUj/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJP9kjDL/tsWj/9na1//f3uH/3dzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9/d2//Y2tz/tsze/3Kv3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9srd//ksLn/9bn9v/0+P3//f7/////////////////////////////////////////////////////////////////////////////////////////////9vjz/73PqP9yl0T/V4Mg/1qFJP9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/X4kr/4GiWP+pv47/5+3f//3+/f///////////////////////////////////////////////////////////////////////////////////////v////D3/P+x1O7/ebTi/2eq3v9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3v9vr+D/j8Hm/9rq9v/8/f7////////////////////////////////////////////////////////////////////////////////////////////7/Pr/1eHI/4OkW/9fiSz/WoYk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/Y4ww/7DBmv/X2dT/4N7h/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/g3dv/1tnc/7DL3/9xr97/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qrN7/grrk/9rq9v/6/P7/////////////////////////////////////////////////////////////////////////////////////////////////+/z6/9bhyf91mUn/WoYl/1iFI/9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJP9WgyH/bpQ//7PHmv/y9u/////////////////////////////////////////////////////////////////////////////////////////////9/v//5vH6/6rQ7P+GvOT/bq7f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/93s+H/sdPu/9fp9v/3+v3////////////////////////////////////////////////////////////////////////////////////////////8/fz/3+fU/4emX/9fiSv/WIMh/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/2GLL/+muoz/1NfQ/+He4//d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/4d7b/9XZ3f+ryOD/ca/f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//d7Ph/8Pd8f/3+v3/////////////////////////////////////////////////////////////////////////////////////////////////+/z6/9/n1P+HpmD/XIco/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/WYUj/1mFI/9vlUD/ztu+//r7+P////////////////////////////////////////////////////////////////////////////////////////////z9/v/x9/z/z+T1/4e85f9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9wr+D/qc/s/+Tw+f/7/P7//v7////////////////////////////////////////////////////////////////////////////////////////+/v3/6u/j/523fv9hii3/WoUk/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9hii3/nbR//9LWzf/i3+T/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/+He2//T2d3/psfh/3Cv3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//bK3f/5nG6P/n8fr//f7//////////////////////////////////////////////////////////////////////////////////////////////////+vx5f+uxJT/ZI0y/1qGJP9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/W4cn/4yrZ//r8OX///////////////////////////////////////////////////////////////////////////////////////////////////////H3/P/A2/H/b6/f/2mr3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qrN7/grnj/9nq9//5/P7/////////////////////////////////////////////////////////////////////////////////////////////////+fv3/8zau/9ulT//WoUk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/YIos/5myev/R1sz/4uDl/93d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/h3tv/0tnd/6PH4f9vrt//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//aqvf/3Ox4P+41+//9Pn9/////////////////////////////////////////////////////////////////////////////////////////////f79//b59P/X4sv/jKtn/1uHJv9ahiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4cm/1mFI/9tlD3/z9y///r7+P/////////////////////////////////////////////////////////////////////////////////////////////////7/f7/3uz3/4O54/9qq97/a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//ba7f/6DK6v/v9vv///////////////////////////////////////////////////////////////////////////////////////////////////////L17f+qwI//XYgp/1mFJP9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/1+JLP+XsHj/0NXL/+Lg5f/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/4d7b/9PY3f+ixeH/b67f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aKve/26v4P+Swuf/4+/5//3+//////////////////////////////////////////////////////////////////////////////////////////////X48//R3sP/p7+L/2iPNv9ahiT/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/X4kr/5Swcf/l7N7//P38/////////////////////////////////////////////////////////////////////////////////////////////v////H3/P+01O7/c7Dg/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//aqve/4O65P/a6vf//P3+//////////////////////////////////////////////////////////////////////////////////////////////////j69v/T38X/c5hF/1qFJP9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9fiSv/k65z/9DUyv/j4Ob/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/+He2//S2N3/ocXi/2+u3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqve/3Cv4P+Qwef/2ur3//z9/v////////////////////////////////////////////////////////////////////////////////////////////v8+v/U4Mb/gaNY/16JKf9ahST/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJP9kjTL/r8SV/+rv4//9/v3////////////////////////////////////////////////////////////////////////////////////////////9/v//5/L6/5vI6f9trt//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//aazf/3iz4f/G3vL/9/v9/////////////////////////////////////////////////////////////////////////////////////////////P37//L17v/P3MD/g6Rb/1uHJ/9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/X4kq/4+sbf/P1Mj/5OHn/97d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/h3tv/0djd/57E4v9vr9//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aazf/3iz4f+11e7/2ur3//f7/f////////////////////////////////////////////////////////////////////////////////////////////z9+//e5tP/hKVc/16IKv9YgyH/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyb/WoUk/26UQP+6zKP/4+ra//n79/////////////////////////////////////////////////////////////////////////////////////////////z9/v/d7fj/ib3l/2yt3/9oq97/a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//Z6re/3az4f+s0ez/7vb7//7//////////////////////////////////////////////////////////////////////////////////////////v79/+ju4v+twpP/haVe/2CKLP9ahiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/16JKv+LqWn/zdPH/+Th5//e3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/4t7b/9HY3f+bwuH/bq7f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/3Gw4P+r0Oz/5vH6//v9/v/+//////////////////////////////////////////////////////////////////////////////////////////7+/f/p7+L/mrV6/2CJLf9ahST/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9bhSb/aI82/42qZ//a5M7//P37////////////////////////////////////////////////////////////////////////////////////////////+fz+/8/k9P+Gu+X/aqvf/2qr3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//ba7f/4K55P+lzez/5PD5//3+//////////////////////////////////////////////////////////////////////////////////////////////T38f+2yZ//cJVB/1eDIf9ahiT/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9diCn/hqVi/8zSxf/k4ej/3t3f/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/+Le2//Q2N3/msPg/26u3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3/+EuuT/2uv3//r8/v/////////////////////////////////////////////////////////////////////////////////////////////////5+vf/yti5/22UPv9ZhST/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoUl/1aCH/9njzX/oruD//D06/////////////////////////////////////////////////////////////////////////////////////////////7////u9vv/utjw/5PD5/9trd//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqve/3ay4f+/2/H/5vL6//r8/v////////////////////////////////////////////////////////////////////////////////////////////7+/v/l69z/e59S/1qGJv9YhCL/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/XYgo/4WkYP/M0sX/5OHo/97d3//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/i3tv/0djd/5vD4f9vrt//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9urt//oszr/+/2/P//////////////////////////////////////////////////////////////////////////////////////////////////////8fTs/6i/jP9diCn/WoUk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9XgyD/XIcn/4CiVv/c5dH//P37////////////////////////////////////////////////////////////////////////////////////////////9/v9/9rq9/+11e//eLPi/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2qs3v+QwOb/3+34///////////////////////////////////////////////////////////////////////////////////////////////////////4+vb/xNSx/2ONMP9XhCH/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/12IKP+FpGD/zNLF/+Th6P/e3d//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/4d7b/9HY3v+exeL/b6/f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9rrN7/hbrk/9vr9//8/f7/////////////////////////////////////////////////////////////////////////////////////////////////+Pr2/9LdxP9yl0T/WoUk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qFI/9kjTL/rsOT//H07P////7///////////////////////////////////////////////////////////////////////////////////////3+///4+/7/3ez4/53H6v9urt//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2ms3/95tOL/yODz//T5/f/////////////////////////////////////////////////////////////////////////////////////////////////8/fv/3eXS/4KjWv9chyf/W4Yl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9diCn/hqVi/8zSxf/k4ej/3t3f/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/+He2//S2N3/ocXi/2+u3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9prN//ebTi/8jg8v/4+/3////////////////////////////////////////////////////////////////////////////////////////////8/fv/8vXt/8/cv/+Co1r/XIcn/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WoUk/22TPv/K2Lj/+fr3//////////////////////////////////////////////////////////////////////////////////////////////////v9/v/e7fj/ir7l/2us3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2qr3/9ysOH/rtLt/+/2/P/+/v/////////////////////////////////////////////////////////////////////////////////////////////9/fz/6O7g/5mzd/9giiz/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/Xokq/4uoaP/N0sf/5OHn/97d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/h3tv/09nd/6XH4v9wr9//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9nqt7/eLPi/67R7f/v9vz//v/////////////////////////////////////////////////////////////////////////////////////////+/v3/6O7h/6zBkv+EpFz/YIos/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ahiX/fJ9R/9njzf/6+/j/////////////////////////////////////////////////////////////////////////////////////////////////+vz+/9Hl9f99t+P/aqze/2qs3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2iq3v9wr9//l8To/+Tw+f/9/v/////////////////////////////////////////////////////////////////////////////////////////////+/v7/7PLn/7XInP9mjjX/WoYk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/16JKv+NqWr/ztPI/+Th5//e3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/4d7b/9TZ3f+myOL/cK/f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9trd//g7rk/6bN7P/k8Pn//f7/////////////////////////////////////////////////////////////////////////////////////////////8/bw/7bInv9vlUH/V4Mh/1qGJP9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/16IKf+PrWv/2OLL//b48//9/v3////////////////////////////////////////////////////////////////////////////////////////////z+Pz/udfv/3y24v9nq97/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2us3/9zsOD/k8Po/9zr+P/8/f7////////////////////////////////////////////////////////////////////////////////////////////6+/j/5u3e/77Pqf9wlkL/WYUk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9fiSv/kq1w/8/Uyf/j4Ob/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/+De2//U2d3/qsni/3Cv3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN7/d7Ph/8Dc8f/n8vr/+vz+/////////////////////////////////////////////////////////////////////////////////////////////v79/+Lp2f97nVD/WoYm/1iEIv9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/aJA3/6nAjf/U38X/9vjz/////////////////////////////////////////////////////////////////////////////////////////////f7//+Hv+f+eyen/e7Xi/2us3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2mr3v9vrt//qtDs/9Pm9f/2+v3/////////////////////////////////////////////////////////////////////////////////////////////////6/Dl/6G5gf92mkj/XIcn/1uGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/X4or/5Suc//Q1Mr/4+Dm/93d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/g3tv/1drd/6vJ4v9wr9//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aq3e/5DC5//g7vj///////////////////////////////////////////////////////////////////////////////////////////////////////j59f/C0a7/Y4sw/1eDIf9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYk/1yIJ/+EpV3/r8SV/+rw5P/+/v7////////////////////////////////////////////////////////////////////////////////////////////y+Pz/wNzx/5rG6P9xsOD/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9qq97/gbjj/83j9P/x+Pz//P3+////////////////////////////////////////////////////////////////////////////////////////////+vz5/9Ddwf96nU//WIQi/1mFI/9chyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/2CKLP+XsHf/0dXL/+Pg5v/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/4N7b/9Xa3f+syuH/ca/f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aavf/3m04v/K4fT/9Pn9//////////////////////////////////////////////////////////////////////////////////////////////////z9+//c5dH/gaJY/1uGJv9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ZhCT/WYQj/3ebTP/G1bX/+Pr2/////////////////////////////////////////////////////////////////////////////////////////////P3+//L4/P/S5vX/jb/m/2yt3/9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//c7Dh/7HU7v/p8/r//P7+//7//////////////////////////////////////////////////////////////////////////////////////////f79/+ft3/+WsXP/ZIwx/1eDIP9ahiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9gii3/nbWA/9LWzf/h3+T/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9/d2//X2tz/tMzf/3Kv3v9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//aqvf/3Kw4f+v0+7/8Pf8//7///////////////////////////////////////////////////////////////////////////////////////////////39/P/n7d//lrF1/1+JK/9ahiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1iEIv9bhib/eZ1P/9jjzP/8/fr/////////////////////////////////////////////////////////////////////////////////////////////////+Pv9/9Pm9f9+tuP/aqve/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//bq7f/5rH6P/m8fr//P7////////////////////////////////////////////////////////////////////////////////////////////////+//L17v+xxpn/ZY4z/1mFI/9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/YYsv/6a6jP/U2ND/4d/j/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3dv/2tvc/7zP3v9zsN//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//aKre/3Cv3/+Yxuj/5fH6//3+//////////////////////////////////////////////////////////////////////////////////////////////7+/v/s8eb/s8ea/2WONP9ahiT/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/12HKf+Nq2j/4+rZ//z9+//////////////////////////////////////////////////////////////////////////////////////////////////z+f3/utnw/3Sx4P9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//aqze/4e85P/d7Pj//P3+//////////////////////////////////////////////////////////////////////////////////////////////////b58//N2r3/b5VA/1mFI/9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/2OLMP+uv5f/19nU/+De4v/d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3tzc/9vb3P/C0Nz/dLDf/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqze/2Wp3f+CuuP/0eb1//r8/v////////////////////////////////////////////////////////////////////////////////////////////7+/f/4+vf/0t3E/3mcTv9ahST/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/Z5A2/7nLov/v8+r//////////////////////////////////////////////////////////////////////////////////////////////////f7//+Lv+f+Swuf/a6zf/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//Z6re/2+v3//A3PH/9/r9///////////////////////////////////////////////////////////////////////////////////////////////////////f59T/i6pl/1yHJ/9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJf9jizH/s8Kg/9jZ1v/f3uH/3dzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97c3P/d3Nz/x9Pc/3Sx3v9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2ys3v99t+L/o8zr/+z0+//////////////////////////////////////////////////////////////////////////////////////////////////3+fX/2ePO/6zCkv9hiy7/WYQj/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/1yHKP+WsnX/3ufT//r7+P/+/v3////////////////////////////////////////////////////////////////////////////////////////////z+Pz/sNPt/3Kw4f9qrN//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aave/2qr3v+DueP/3u33//3+/v////////////////////////////////////////////////////////////////////////////////////////////r7+P/n7uD/vc+o/2uSPP9ahST/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/ZIwy/7fFpf/Z2tj/397h/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/87V3P93sd7/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qr3v97teL/vNnw/+Hu+P/5+/7////////////////////////////////////////////////////////////////////////////////////////////8/fv/2+XP/46tav9pkTn/W4Ym/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ZhCP/apI7/7HGmf/b5dD/+Pr1/////////////////////////////////////////////////////////////////////////////////////////////P7+/9/u+P+NwOb/ba7f/2ir3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/2eq3v96tOL/tNXv//H3/P////////////////////////////////////////////////////////////////////////////////////////////3+/f/l7N3/pb2I/36gU/9fiSr/W4Yl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYk/2SNM/+9ya7/2tva/97d3//c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9/d3P/S2Nz/frXg/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9ysOD/stTu/+nz+v/8/v7//v/////////////////////////////////////////////////////////////////////////////////////////9/v3/5eze/5Swcf9jjDD/V4Mg/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qGJf9ijDH/h6dh/9fiy//7/Pr////////////////////////////////////////////////////////////////////////////////////////////7/f7/1ej2/4u/5v9trd//aqze/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/26u3/+IvOX/q9Dt/+fx+v/9/v/////////////////////////////////////////////////////////////////////////////////////////////x9e3/rsSV/2yTPf9XgyD/WoYk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qFJP9mjjX/x9C+/93d3v/d3N7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/f3dz/1Nnc/4m64f9srd//a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9urt//msfp/+bx+v/8/v/////////////////////////////////////////////////////////////////////////////////////////////+//7/8fXt/6/Elf9kjTL/WoUj/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/V4Mg/2CKLP+LqWb/4unY//39/P////////////////////////////////////////////////////////////////////////////////////////////X5/f/R5fX/q9Ds/3Wy4f9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2us3/+KveX/0OT1//H3/P/8/f7////////////////////////////////////////////////////////////////////////////////////////////5+/f/y9m7/26UQP9ahST/WoUk/1yHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahST/bJI9/9DVy//g3uH/3Nvc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3c/9ba3f+XwuL/bq7f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9rrN7/iLzk/93s+P/8/f7/////////////////////////////////////////////////////////////////////////////////////////////////9vjz/8vZu/9ulED/WoUk/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ZhST/Yosv/6a9if/u8uj//v7+///////////////////////////////////////////////////////////////////////////////////////+/v//+fz+/+Hv+P+jzOv/cK/f/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qr3v98tuP/z+T1//b6/f/////////////////////////////////////////////////////////////////////////////////////////////////8/fv/2uTO/32fU/9bhSb/W4Yl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/XIcn/3ucUP/T1s//397h/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3P/Y293/o8ji/3Cv3/9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9nqt7/cK/f/8Lc8f/3+v3//////////////////////////////////////////////////////////////////////////////////////////////////////97n1P+KqWT/W4Yn/1uGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qFI/9ylkT/1eDI//v8+v/////////////////////////////////////////////////////////////////////////////////////////////////5/P7/1uj2/3634v9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/9trd//qM7s/+72+//+////////////////////////////////////////////////////////////////////////////////////////////////////8PTr/6C5gv9gii3/WoUl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/12IKP+GpGD/1NfR/9/e4P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3dz/2dvd/6vL4v9xsN//aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9oq97/aave/4O54//g7ff//f7+////////////////////////////////////////////////////////////////////////////////////////////+vv4/+bt3/+8zqf/a5I7/1qFJP9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ZhSP/Xogq/7THm//09/H//////////////////////////////////////////////////////////////////////////////////////////////////////+71+/+cyOn/ba7f/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//eLPi/8bf8v/4+/3/////////////////////////////////////////////////////////////////////////////////////////////////+vz5/9vl0P9+oFX/WoYm/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9fiSr/jqpr/9bY0v/f3uD/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9rb3P+2z+H/crDf/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//Z6re/3q04v+11e//8vf8/////////////////////////////////////////////////////////////////////////////////////////////f79/+Tr2/+jvIX/e55R/16IKv9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qFJP93m0z/1+LL//n7+P/////////////////////////////////////////////////////////////////////////////////////////////////7/f7/1+j2/4G44/9qrN7/a63f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//bq7f/53H6v/o8vr//f7///////////////////////////////////////////////////////////////////////////////////////////7//f78/+nv4f+sw5L/ZI0y/1qGJP9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/YIot/5uzff/X2dX/3t3f/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/c3Nz/w9Le/3Sw3/9prN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//bq7f/4m95f+s0e3/5/L6//3+///////////////////////////////////////////////////////////////////////////////////////////+//D07P+tw5L/bJM8/1eDIP9ahiT/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/XYcp/4qoY//U38b/9Pfx//39/P////////////////////////////////////////////////////////////////////////////////////////////b6/f/A3PH/drPh/2ms3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9oq97/bK3f/4q+5f/e7fj//P3+////////////////////////////////////////////////////////////////////////////////////////////+fr2/+Do1v+3yZ//bZI9/1mEJP9chyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WYUj/2OLMP+uv5f/2tvY/93d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3c/87X3P94st//aavf/2us3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//a6zf/4q+5f/R5fX/8vj8//z9/v////////////////////////////////////////////////////////////////////////////////////////////n69//K2Lj/bZM9/1mEI/9ahST/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qFJf9iiy7/jqxq/7fKoP/s8eb//v7+///////////////////////////////////////////////////////////////////////////////////////+/v//7PT6/6bN6/91suD/Z6ve/2qt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN7/a63f/4i95f/R5fX/+vz+/////////////////////////////////////////////////////////////////////////////////////////////P37/9njzf+LqWT/Zo4z/1qGJP9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1mFIv9ljTP/v8mw/9zc3P/d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3P/U2d3/h7vi/22u4P9qrN7/bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqve/3y24//Q5fX/9vr9//////////////////////////////////////////////////////////////////////////////////////////////////z9+//Z483/fJ9R/1uGJf9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyb/WYUj/1iEIf90mEb/wNCr//f59P////////////////////////////////////////////////////////////////////////////////////////////3+///i7vn/ocrq/3634/9srN//a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9qrN//dLLg/6fN6//M4vT/8/j8/////////////////////////////////////////////////////////////////////////////////////////////f78/+Pr2v+PrGv/YYsu/1eDIP9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uHJv9YhSL/aY84/8zSxf/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3Nz/1trc/5fC4/9xsOD/aKve/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/22t3/+ozuz/7vb7//7////////////////////////////////////////////////////////////////////////////////////////////////////v8+r/n7iA/2CKLP9ahiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9XgyD/XIcn/4GjWf/p7uH/////////////////////////////////////////////////////////////////////////////////////////////////+fz+/+Tv+f+82fH/c7Hh/2mr3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrN//a6zf/4/A5v/V6Pb/9Pn9//3+//////////////////////////////////////////////////////////////////////////////////////////////X48/+7zaX/aJA3/1mFJP9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/W4cl/3SXR//R1cz/3t3f/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9fa3P+hx+T/dLLg/2er3v9rrd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2qs3/95tOL/x9/z//j7/f/////////////////////////////////////////////////////////////////////////////////////////////////6/Pn/2+XP/32fU/9bhiX/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1iEIv9mjjT/yde4//n79//////////////////////////////////////////////////////////////////////////////////////////////////+/v7/3ez3/4u/5v9qrN7/a6zf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aqzf/3Gw4P+t0e3/6vP6//////////////////////////////////////////////////////////////////////////////////////////////////7+/v/q7+P/mbR4/12HKP9ZhSP/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/WYUj/16IKv9/n1f/09bQ/97d3//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/Z293/sc3i/3iz4P9lqd7/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3/9urt//nsnq/+jy+v/9/v////////////////////////////////////////////////////////////////////////////////////////7//v/8/fv/5+7g/6vBj/9kjTH/WoYk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/XIcn/4enYP/f6NX//f38//////////////////////////////////////////////////////////////////////////////////////////////////L4/P/D3vL/eLPh/2qs3v9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2yt3/+Nv+f/3+34//v9/v/////////////////////////////////////////////////////////////////////////////////////////////////4+vb/xtS0/2ySPf9ZhCT/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1eDIP9jjDH/ka1y/9bY0//d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/8TT3v9+td7/ZKne/2qs3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2ir3v9trd//jL/m/97t+P/8/f7////////////////////////////////////////////////////////////////////////////////////////////4+vb/3ebU/7TInf9skjz/WYQk/1yHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qFJf9hii7/n7iB/+vw5f/9/v3////////////////////////////////////////////////////////////////////////////////////////////+/v//7vb8/63S7f9ysOD/aazf/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aKve/2qs3/+DuuT/1+n2//v9/v/////////////////////////////////////////////////////////////////////////////////////////////////6+/j/2OPM/3qdTv9ahiX/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJf9UgRz/apE6/6y+lP/Z2tj/3dzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/R193/irrg/2ut4P9qrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a63f/2qs3v9xr+D/kMHm/9Xo9f/6/f7////////////////////////////////////////////////////////////////////////////////////////////8/fr/2OPM/4ioY/9kjTL/WoYl/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoUk/2iPN/+9z6f/8fXs//////////////////////////////////////////////////////////////////////////////////////////////////3+///m8fn/ncjq/3Sx4f9pq97/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqve/22t3/+IveX/zOP0//j8/v////////////////////////////////////////////////////////////////////////////////////////////39/P/1+PL/1uHI/42raP9diCn/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahST/UoAZ/3CUQv/By7P/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3Nz/1dnd/53D4v9+tuP/ba7f/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2mr3v9urt//q9Ds/9Tn9f/1+f3/////////////////////////////////////////////////////////////////////////////////////////////////7/Pp/523fP9kjTL/VYIf/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ahiT/gKJX/9rkzv/+/v7/////////////////////////////////////////////////////////////////////////////////////////////////+v3+/9bo9v+Tw+f/dLHg/2mr3v9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//aave/2yt3v+fyur/x+Dz//D3/P/+///////////////////////////////////////////////////////////////////////////////////////////////1+PL/z9y//6W9iP9okDb/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WYUk/1OCHP92mUz/zdPG/97d3//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzc/9fa3f+qyuP/ir3k/22u3/9rrN//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2us3/9qrN7/ib3l/9Lm9f/z+Pz//f7+/////////////////////////////////////////////////////////////////////////////////////////////P37/9njzf97nlD/W4cm/1iEIv9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WYUj/2WOM/+1yZ3/4unY//n69//////////////////////////////////////////////////////////////////////////////////////////////////w9/z/udfv/5TD5/9zseD/aave/2ut3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9srd//a6zf/2qs3v+EuuP/xd7y/+jy+v/6/P7////////////////////////////////////////////////////////////////////////////////////////////+/v3/6e/h/6rBj/+Aolj/XYgo/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9ciCj/gKBb/9LWzv/e3t//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3P/Z29z/vtPj/6DG5P90seD/aave/2us3/9srd//bK3f/2yt3/9srd//bK3f/2yt3/9rrd//aqze/2qr3v9trd7/hLrk/8vi8//y9/z//f7+/////////////////////////////////////////////////////////////////////////////////////////////v/+/+7z6f+nvov/Y4sw/1qFI/9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9dhyj/cZZC/5ezdf/f59T//P38/////////////////////////////////////////////////////////////////////////////////////////////P3+//D3/P/V6Pb/m8fp/3Ox4P9pq97/aqzf/2yt3/9srd//bK3f/2yt3/9srd//bK3f/2ut3/9rrd//aqze/2ys3v+AuOP/wdzx/+v0+//6/P7//v7/////////////////////////////////////////////////////////////////////////////////////////////+Pr1/8TUsf91mkr/WIQi/1mFI/9chyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9eiCn/dppJ/5qxfP/V19L/3t3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dvc/9zd3//Q2uT/qs7q/3u24v9urt//aqze/2mr3v9pq97/aqze/2qs3v9prN7/ba7f/3Cw4P94tOL/l8Xo/9zr9//4+/3//v////////////////////////////////////////////////////////////////////////////////////////////////////j69f/E1LH/apI7/1mEI/9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/1eDIP9mjzX/nbd9/+rw4//+/v3/////////////////////////////////////////////////////////////////////////////////////////////////+vz+/+fx+v+31u//frfi/3Cv3/9rrN7/aave/2mr3v9qrN7/aqze/2mr3v9srN//bq7f/3Sx4f+Rwef/1+j2//b6/f/9/v//////////////////////////////////////////////////////////////////////////////////////////////////+/z6/9fiy/94nE3/W4Ym/1iEIv9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/Yosv/5iyeP+8yav/2drY/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b29r/4OHh/+rw9f/Z6vb/p87s/4K65P94s+L/drLh/3ay4f92suH/e7bi/5rH6f++2/D/0+f1/+nz+v/8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////n7+P/X4sv/eJxN/1qGJf9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WYUk/2iPNv+7zaX/9fjz///////////////////////////////////////////////////////////////////////////////////////////////////////9/v//9Pn9/9/t+P+z1O7/jb/n/3634/93s+H/dbLh/3ay4f96tOL/jb/m/6PM6//I4PL/6PL6//v9/v///////////////////////////////////////////////////////////////////////////////////////////////////////P36/+Lp2P+LqWX/XYgo/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYk/2aONv+1w6P/2dvV/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/2tra/9/f3//v7+//+vv8//H3/P/o8vr/4/D5/+Du+P/a6vf/3ez3/+Xx+f/u9fv/9vr9//v9/v/+/////////////////////////////////////////////////////////////////////////////////////////////////////f38//X48f/V4Mf/i6ll/12IKP9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ahST/c5hG/9Tgxv/4+vb////////////////////////////////////////////////////////////////////////////////////////////////////////////9/v//8/j8/+v0+//n8vr/4+/5/9rq9//c6/f/5fD5/+r0+//v9/z/+Pv+//7////////////////////////////////////////////////////////////////////////////////////////////////////+/v7/+/z6/+Tr3P+kvYj/YYsw/1qFJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcm/1uHJv93m03/x8++/+Ti6P/e3d//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb2//d3d3/6enp//v7+/////////////7+///9/v//+/z+//z9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////T38f/M2rz/oruE/2aPNf9ahiT/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/12IKf+SsG//4enY//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7////7/f7/+/3+//7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/z6/+zx5v/D07H/cZZE/1mFJP9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9fiSr/katt/8/Uyf/k4ef/3t3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b29v/3Nzc/+Xl5f/6+vr///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f/n7uD/p7+L/32gVP9chyj/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uHJv9ZhST/cZdD/8LSrv/q8OP/+/z5//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////T38f/K2Lr/nbd+/16IKv9ZhSP/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/YYot/6G2hP/T1s7/4d/k/93d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb2//g4OD/+Pj4///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3+fX/wdKu/3SZSP9YhCL/WYUj/1yHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoUl/2CJLf+Fpl7/rsST/+nv4v/+/v3///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v8+v/X4sr/hqVe/2KLLv9ahiX/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/2SNM/+3xqX/2dvX/97e4P/c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b29v/3t7e//Hx8f/9/f3////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7/Pr/1+LK/3ebS/9bhiX/WIUj/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/VoMh/3CVQv+4yqH/9Pfw//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/P/g6NX/iahj/2CKLP9YgyD/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJf9xlkX/ztPI/97e4P/c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/n5+f/+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7/Pn/3ubT/4inYf9dhyj/W4Yl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4cm/1mFI/9ahiT/cZhE/8/cwP/6+/j///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f/p7+L/nrh//2GLLv9ahST/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9fiSv/lbB1/9fY1P/e3d//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b29v/4ODg//j4+P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/P/1+PL/2ePN/5eydv9giiz/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/1uGJv99n1P/2OPM//v8+v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f/x9Oz/tMea/2aPNf9ahST/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/ZI0y/7nHp//b29r/3dzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97e3v/z8/P//v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////19/H/zdq9/6S8h/9qkTn/WoUk/1yHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/X4kr/5ezd//u8uj////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5+vf/1uDI/3aaSv9ZhST/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYk/2uSPf/M08X/3t3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d3/7u7u//39/f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////8/fv/3+jV/6a9if9/oFb/W4Ym/1qFJP9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qFJP91mkj/ztu+//b48/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f/5+/f/5+7f/7HFl/9eiCn/WYQj/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1uHJv96nFD/1NbP/97d3//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/+bm5v/7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////9/fz/5+3g/6i+jP9ulD//WoUl/1qFJP9chyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/Xokq/4qpZP/O277/7vLo//v8+v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v/z9u//1+HJ/7HGl/9wlkL/WoYk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJP9giiz/nbR//9ja1f/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/f39//9vb2//7+/v/////////////////////////////////////////////////////////////////////////////////////////////////8/fv/4+rZ/6O8hf9mjjT/WoUk/1qGJP9chyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJf9fiSr/dJhH/5eydf/Z48z/+vv3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/P/t8ef/vc6n/3qdT/9fiSr/WYYk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ZhSP/Z483/8HLtP/c3N3/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3d/+vr6//6+vr///////////////////////////////////////////////////////////////////////////////////////3+/f/2+fT/2+TP/5Kvbf9jjDD/WoYk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/1qFJP9fiiv/fqBU/87avf/y9u7//f79//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z9+//j6tr/p76L/2qROf9ahSX/WYUj/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9YhCL/YIor/4WkX//T1s//3t3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb2//h4eH/9fX1//7+/v///////////////////////////////////////////////////////////////////////f38/+7y6P/c5tL/vs+p/3+hVv9fiSr/WoUl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/W4Yl/1uGJv9vlUH/ssea/+Tr2//4+vb//v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/v3/9/n0//D06//X4cr/jqxq/2OMMP9ZhST/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/VIIc/2uSO/+uwJn/2tvZ/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t7e//Dw8P/6+vr//v7+//////////////////////////////////////////////////////////////////P27/+zx5v/gKFY/2qRO/9dhyn/WoUk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/WoUk/2yTPf+atXr/3ebS//n79v/+/v3/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/n0/9fiy/+1yZ7/gKJX/2CKLf9ZhST/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYk/1WDHf92mUv/x8+//93d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93d3f/q6ur/9PT0//39/f///////////////////////////////////////////////////////P37/+rw4//L2br/iadi/1qFJP9PfRb/WIQi/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1mFJP9Ugh7/cphF/7DFlv/P3L//4urZ//j69v////7////////////////////////////////////////////////////////////////////////////////////////////////////////////9/fz/7vPp/9Lew/+swpL/iall/1yHJ/9Wgx//W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4cm/1uHJv9ljzP/iadl/9LWzv/e3d//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/4ODg/+jo6P/6+vr//////////////////////////////////v7+//j69v/x9O3/6/Dl/9zl0f+qwI7/dJhH/1+KLP9ahST/WYUj/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoUl/12HKP9kjDH/cpdE/5izd//R3cL/6e/i//L27//4+vb//f79///////////////////////////////////////////////////////////////////////+//7/+vz5//T38P/u8+j/3+jW/7bJn/9+oFX/Zo41/16JKv9ahST/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJf9gii3/kKxt/7TEof/Y2df/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9ra2v/h4eH/8/Pz//v8+f/5+/j/9vnz//P27v/w9Or/6/Dk/+Dp1//F1LL/pb2I/42raf9vlkH/YYst/1qGJf9ahiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WYUj/1qFJP9eiCr/aZA4/4upZf+uw5T/xNSx/93m0v/p7uH/7/Pq//X48v/4+vb/+vv4//v8+v/9/vz//P37//r7+P/5+vb/9/nz//L27v/t8ef/4+vb/8/cwP+yxpj/mbR3/3abSv9jjDD/W4Ym/1qFJP9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahSX/bZM+/7rHq//c3dr/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/b29v/3t7e/+Lj4f/W4Mn/yti5/77Pqf+twpL/n7iA/4qpZf9wlkL/ZI0z/2CKLv9eiCr/WoUl/1qGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/1qGI/9diCj/Yosv/2SNM/9rkjz/gqNa/564fv+3yqD/xdSy/8vZuv/S3cP/2ePM/9bhyP/N2r3/xtW0/77Pqf+swpL/kq5v/3eaSv9njzb/Yowv/1+KK/9bhiX/WoUk/1yHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/X4kr/5ixef/R1cv/4uDl/93d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3//S1cz/hqVg/2+WQf9tkz7/aZA4/2WONP9giiz/WYUj/1iEIv9ahiT/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/1qFJP9YhCL/WIMi/12IKf9ljjP/bJM7/2+VQP9xlkL/c5dF/3WZR/90mEf/cZZD/3CVQf9tlD7/aJA4/2KLL/9ahiX/WIQi/1qFI/9bhiX/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WYQj/2KLMP+7yKv/2tzZ/97e4P/c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3d//z9PK/3ibT/9Rfxn/UYAZ/1SCHP9Wgx7/WIQh/1uGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9YhSP/VYMf/1OAG/9Sfxn/UX8Y/1B+F/9PfRb/T30X/1B+F/9SgBn/U4Ab/1SBHf9XgyD/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qFJP9vlEH/y9HC/97e3//d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/9na1/+qvZX/YYsu/1iEIf9ahiX/WoYl/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4cm/1uGJf9ahiX/WoUk/1qFJP9ahST/WYUj/1mFJP9ahST/WoUk/1qFJP9ahiX/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9fiSr/lK9z/9bY0v/e3d//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3d7/z9TK/36fVf9chyb/W4Yl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahST/a5I7/8POtv/c3d3/3dzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzd/9rb2f+vwZv/ZI0z/1mGI/9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/X4kr/5eweP/W2NP/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3d7/0dTL/4KgWv9fiCr/WIQi/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/WoUk/22TP//Ezbn/3dzd/9zc3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/9rb2f+ou5H/Zo42/1KAGf9ahST/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/VoMf/2KLL/+RrG//1djS/93d3//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/c3Nz/v8qy/3WYSf9YhSH/W4Yk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yk/1WDHf9rkjv/rL6V/9rb2f/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3e/9PWzv+asn7/d5tN/12IKf9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4cm/1uGJf9jjC//haNe/8vSw//d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/c3N3/1dfQ/7TBof9tkj//WoUl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJP9kjDL/nLN//8DLsf/a29n/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3d/+Hf4//T1s7/obaF/2KLLv9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9diCj/haNe/8nPv//i3+L/3t3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d7/3t7e/83Txv97nVL/W4cm/1uGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ahST/a5E7/73Jrv/b3Nr/397h/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3//a29j/qbyQ/1+JK/9YhSL/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiT/Xogp/4+rbv/U19D/393f/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d3/3d3d/8LMtP9skj3/WoYk/1uGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/WoYk/2WNM/+svpX/29za/97d3//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3v/U19D/kKxv/2ONMP9YhCD/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WIQi/12IKP98nlT/zdLF/97d3v/d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3N3/3dzd/8bOvP+Eo13/ZY4x/1uGJf9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WYYk/1iFIv9zl0b/tsWl/9vc2//d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/b29r/yNC8/6W5jP9ojzj/WoYk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/2GLLv+KqGX/rr+X/9bZ1P/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/+Df4v/K0sL/jKlo/12IKP9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcm/1uGJf9zmEX/u8is/9vc2f/e3d7/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93d3v/j4Ob/19nU/6m8kP9ljTP/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9eiCn/jalq/9DVy//m4+r/3t3f/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3e/97d3v/M0sX/gKBZ/1yHJ/9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ahSX/b5RA/7/JsP/b29r/397h/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d7/3Nzc/7zIrv9tkz//WoUk/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/Zo40/6m8kf/Y2tf/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3v/Y2tf/qLuR/2aONP9ahiP/W4Yl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ahST/YYos/5Suc//T18//3d3e/9zc3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/9TX0P+ZsHr/Z482/1iFIf9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9YhCH/Xokq/4GiWv/M0sT/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/e3d7/yM++/4alYf9mjzT/W4Yl/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ZhST/U4Ic/22UQP+2xaX/3N3c/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3f/9na2P+ou5D/g6Nc/2CKLf9ahiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/W4Ym/2iROf+LqGr/z9XJ/97e3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/d3d3/2NrV/7zIrf97nFH/W4Ym/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/WYUk/2uRPP+mu43/x9G7/9rb2v/d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzd/9/e4f/a29n/vMiu/2+VQv9ahiT/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoUk/2ePNv+qvZP/1NjP/9/e4P/d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3N3/3d3e/9nb2P+vwJz/apE7/1mFJP9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyb/WoYk/2WNMv+gtoT/1djS/97d3//d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/d3d7/2NnV/6y9lP9pkDj/WYYj/1mGI/9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WoYk/2GML/+Vr3b/09bO/97c3//d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzd/97d3//S1s3/l7F5/2GLLf9SgBj/WoUk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/VoMf/1yHJv99oFT/x8++/97d3v/d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d7/3d3e/7fGpv95m07/X4kq/1qFJP9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/1uHJf9rkjv/nLSA/9rb2f/e3d//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3//W2NH/s8Ke/5Ksb/9mjjT/WoUk/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Yl/1+KLP95nE//mbJ8/83Sxv/e3d7/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3f/97d3//O08f/nLN+/2SNMv9ahST/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/1+JK/+HpGL/wsu1/9rb2P/d3d7/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3d7/3t3e/9HWzf+Ysnv/ZY0z/1qGJP9ahiT/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WoYl/2CKLP+IpmL/ytHB/93d3f/e3t//3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93d3v/e3d//zNLF/5Crbf9eiSr/UYAZ/1mFI/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/VoMf/1uHJf96nVD/w8y3/93d3f/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3f/97d3/+xwZz/eZpN/2GKLf9ZhSP/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyb/WoYk/12HJ/9skjz/m7N9/9vb2f/f3eD/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/d3d//1dfR/7fGpf+YsXn/aZA4/1qFJP9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoUl/2KLL/+AoFf/n7WD/87Txv/e3d//3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3v/d3d7/0tfN/6y+lv9rkTz/WoUk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/WYYk/2SOM/+WsHj/yM++/9vb2f/e3d7/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3t3e/97d3//Y2db/scCe/26TQf9bhib/W4Yl/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/WoUk/2mPOP+iuIj/0tfO/97e3//e3t//3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3N3/3d3e/9na2P+5xqr/eJtO/2CKLP9bhiX/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ahST/W4cm/22TP/+tvpj/1tjT/93d3//d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/e3d7/2tvY/7rGqv+Colr/Zo4z/1iEIv9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9YhCH/VYQe/2yUPf+qvpP/1dnS/97d3v/c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzd/9/e4f/W2tP/p7qO/4akX/9njzb/WoYk/1uHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ahiT/YIot/3CXRf+QrHD/y9PB/9/e4P/d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3N3/3dze/9na1//Hz73/mLB5/2aONf9ahST/W4cm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ahiT/Yosu/4WkYP+6x6v/0tbN/9vc2v/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/e3t//3t3f/9TX0P+ou5H/bJI9/1uGJv9ahiX/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1uGJf9ahiX/Z482/5mye//O1Mj/3Nzd/97d3//d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/d3d7/2NrW/7nGqf99nVT/ZIwx/12HKP9ahiX/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/WoYl/1uHJv9eiSv/cpdF/62/mP/V19H/3t3e/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93d3v/b3Nv/y9DC/6e5jf+Kp2T/Z482/1qGJf9bhiX/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/WYUk/2OMMP94mk3/lK1z/8PMtv/a29j/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/97d3v/W2NT/ydDA/6O5if9jjTD/V4Qh/1uGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/V4Qh/1qGJP+RrG//v8qy/9LWzv/c3Nz/3t3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d//4+Dn/+Df4v/Gz7r/g6Jc/2KLL/9ahST/WYUi/1uHJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ahiP/WoYj/16JKv93mUv/tMOh/93d3f/m4uv/393g/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/97d3v/e3d7/29va/8bOvP+NqWz/apE6/1+JKv9bhyX/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJv9ahiX/Xokp/2ePNf+Do13/vcmt/9ja1f/e3d7/3t7f/9zc3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/d3N3/09bP/73Jrv+juIn/d5pN/2CKLv9ahST/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcm/1qGJP9eiCn/b5RB/5ixef+0xKD/0NXL/9zc3P/d3d7/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93d3v/c3Nv/2drX/8vRw/+dtIH/bJI8/12HKf9ahiT/WoYk/1yHJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhiX/WoUk/1yHJv9mjzb/jalq/8LMtv/W2dP/29zb/97d3v/c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/97d3//e3d7/0tbM/7LCnv92mUr/V4Qh/1KAGv9ZhSL/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahST/VIId/1aDHv9rkjn/p7yP/8zTxf/c3Nz/3t3f/97d3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/+Hf5P/T2M7/mrF7/3SYR/9mjjP/XYgo/1qGI/9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJv9ZhSP/W4cl/2SNMv9vlEH/jahq/8rTwf/i4OT/3t3g/9zc3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d7/3dzd/9LWzv+8ya3/pLmL/3ydU/9jjDH/W4cm/1qFJP9chyb/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1qGJf9ahiX/YIou/3KXR/+Zsn3/tMSi/8/UyP/b3Nv/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/d3d7/3Nzc/9na2P/P1Mn/q76X/3qcUP9jizD/XIcn/1qGJP9ahiT/XIcm/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9ahiX/WYUk/1uGJf9gii3/cZVD/6K3h//L0cL/19nV/9vc2//e3d7/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/d3d7/3d3f/9rb2f/P08j/rL2U/4KiW/9ulUD/Y4ww/1yHJ/9ahSX/W4Ym/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyb/XIcm/1qGJP9bhib/YYou/2aONv92mUv/n7aD/8nRwP/Y2tb/3d3e/93d3v/d3d7/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3N3/3d3e/9rb2f/V19L/ydDB/6m8kv97nFL/ZY0z/1+JK/9dhyf/WYUk/1uGJf9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9ahST/W4Ym/12HKP9jjDD/dZlK/6O5if/Dzrj/0NbL/9ja1v/d3d7/3d3e/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d7/39/h/97e3v/W2NP/xs69/6e7j/+Fo13/bpM9/1aCHv9Vgx7/WoYl/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1uGJf9XgyD/VIIc/16JKP9xl0P/nLN//8PMuP/U19H/3d3d/9/e4f/e3d//3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d7/4N7j/+Lg5f/L08H/qbuQ/5Grb/91mEn/ZY40/1qHJv9ZhSP/W4Yl/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhib/W4Yl/1mFI/9ahiT/ZI0w/3CVQv+AoFn/lq92/8DMsf/h4OP/4d/k/93d3//c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/d3d7/29za/9fZ1f/T1s7/xM24/5y0gP9xl0X/Y4ww/1+KK/9diCj/WoUk/1qGJf9bhib/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4cm/1qGJf9ahST/XIcm/16IKf9ijC//bpRA/5Sucv+7yKv/ztTI/9XY0v/a29n/3t3e/93d3v/c3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/e3d//3t3f/9zd3f/X2dX/zNHE/7DAmv+Vr3X/gqJc/2uRPf9ijDD/XYgp/1qFJP9ahiX/WoYl/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qGJf9ahiX/WoUk/1yHJ/9hiy7/aI83/3maT/+Lp2f/q76T/8rRwf/W2dP/3Nzb/97e3v/e3t//3dzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3e/93d3v/a29n/19nV/9TX0P/J0cH/rr+Y/4mmZP9qkDv/Y4sx/2GLL/9fiSr/W4Yl/1qFJP9ahiX/W4Ym/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9bhyb/W4cm/1uGJf9ahiT/WoYk/16IKf9hii7/Y4sw/2iPN/+BoFn/prqM/8XOuf/R1cz/1tjT/9rb2P/d3d7/3t3e/9zc3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3dzd/97d3//e3d//3d3e/9rb2P/U19H/yM++/7PEof+kuoz/jqps/3GWRP9ljTT/Yosv/1+JK/9dhyj/WoUl/1qFJP9ahiX/W4Yl/1uGJf9bhyb/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcm/1uGJv9bhib/WoYl/1qFJP9ahST/XIcn/16JKf9gii3/ZI0y/22SP/+Kp2T/oreF/7HBm//Dzbj/09bP/9na1//d3d3/3t3f/97d3//d3N3/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3d7/397g/97d3f/Y2tb/1NjQ/8/TyP/Ezbn/scKd/5awd/9/oFX/bpQ9/1eFIf9SgBn/VIEc/1aDHv9XhCD/WYUj/1uGJv9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/W4Ym/1qGJP9YhCH/V4Mf/1WCHf9SgBn/VYMd/2eQNf91mkn/i6hn/6m8kf/ByrT/zdPG/9PXz//X2dX/3Nzd/9/e4P/e3d7/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/d3N7/397h/+Hf4//k4ef/5OLn/9XZ0P+6yKr/o7iI/5KscP96nFL/bpRB/2qROv9mjjX/ZIwx/1+JKv9ZhSP/WIQi/1mFI/9ahST/WoUk/1qGJf9bhiX/W4Ym/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcn/1yHJ/9chyf/XIcm/1uGJv9ahiX/WoUk/1qFJP9ZhSP/WYUi/1iFIv9ciCf/YYst/2SNMf9okDj/bpNA/3iaTv+Lp2j/mrF8/6/Amv/N1MT/4+Hk/+Th6P/h3+T/397i/93c3v/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/d3N3/3t3e/97e3v/c3Nz/2drX/9fZ0//U19D/zdLH/7zHrf+rvpT/nrWB/5Oucv+BoVr/bJI+/2WNNP9jjDH/Yosv/2GKLf9giiv/Xogp/1yHJ/9ahST/WoUj/1qFI/9ahST/WoYk/1qGJf9ahiX/WoYl/1qGJf9ahiX/WoYl/1qGJf9bhiX/W4Yl/1uGJf9ahiX/WoYl/1qGJf9ahiX/WoYl/1qGJf9ahiT/WoUk/1qFJP9ahST/WYUj/1uGJf9dhyn/X4kr/2GKLf9iiy7/Y4ww/2WNNP9pkDn/eZtP/4qnZf+Vr3X/pbqM/7vIrP/N08b/09bP/9XY0v/X2dX/29za/97d3v/e3d//3dze/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/93c3f/e3d//3t3f/97d3v/c29v/2drY/9jZ1f/W2NP/1NbQ/8/Uyf/Dzbf/scKe/6S5i/+dtIH/la51/4imY/97nFH/bZI//2ePN/9mjjX/ZY00/2SMMv9jjDH/Y4wy/2OMMv9jjDD/Yosv/2KLLv9hii7/YYst/2GLLf9hii3/YYsv/2KLLv9iiy//Y4sw/2OLMP9jjDH/ZI0y/2WNNP9mjjX/Zo41/2iPOP90l0f/hKNd/5Oucf+dtH//o7mJ/67AmP+/y7H/zdLG/9PVz//V19L/1tnU/9ja1v/c3Nv/3t7e/97d3//e3d//3d3e/9zc3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzd/93c3f/d3d7/3d3e/97d3//e3t//3N3d/9rb2f/Z2tf/2NnW/9fY1P/V19H/0tbP/9HVzf/O1Mf/ydHB/8LLtf+6xqj/tMOh/7PDof+ywp//rsCY/6q+k/+muo3/o7iI/6C3hf+ftoT/oLaF/6S5i/+muo3/qLuQ/6y+lf+uwJn/s8Of/7vHqv/BzLT/xs+8/8nRwf/N08f/0tXN/9TX0P/W2NP/2NnV/9na1v/a29j/3Nzc/97d3//e3d//3d3e/93d3v/d3d3/3Nzd/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3f/d3d7/3t3f/97d3//e3d//397g/9/e4f/g3uH/397g/97e3//c3Nv/2tvY/9jZ1v/Y2tb/2NrV/9fZ0//V2dP/1dfR/9PX0P/T1s//09bO/9PWzv/U2ND/1dfR/9XX0f/W2dP/19nU/9ja1f/a29n/3Nzb/97d3f/e3d//397g/+De4f/f3uD/3t3f/97d3//e3d//3d3e/93c3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9zc3f/d3N3/3t3e/97e4P/f3uH/397h/9/e4f/g3uH/4N7i/+He4//h3+T/4d/k/+Hf5P/h3+T/4d/j/+He4//h3uP/4N7i/+De4v/f3uH/3t7g/97d3v/d3N7/3dze/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3N3/3dzd/93c3f/d3N3/3dzd/93c3f/d3N3/3d3e/93d3v/d3d7/3d3e/93d3f/d3N3/3dzd/93c3f/d3N3/3dzd/9zc3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P8=" + "uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=", + "extras": { + "compressedImage3DTiles": { + "s3tc": { + "uri": "data:image/ktx;base64,q0tUWCAxMbsNChoKAQIDBAAAAAABAAAAAAAAAPCDAAAHGQAAgAAAAIAAAAAAAAAAAAAAAAEAAAABAAAANAAAABMAAABDUk5MSUJfRk9VUkNDAERYVDEAABcAAABLVFhvcmllbnRhdGlvbgBTPXIsVD1kAAAAIAAAHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqr73rvWqqqqqvvmu8aqqqqq++bb1v///6r75rvGqqqqqtvm28aqqqqq++bb1v////8c53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqvveutaqqqqq+ubb1v///7/b3vuVAAAAeNvWe20AAOhV2957bQCoVVXb1lttAP9VVbvOe20AVVVVu857dQBVVVXb1nttAP9VVdvee20AKlVV29Z7bQAAK1Xb3vuVAAAALfveutaqqqqgHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqtve+9aqqiryeuYb1//////b3nttAADgXvvee22AXlVVu4VbZVz9//97bXx1qAAAAFt1e21f9VVVe3V7bX1XVVVbdXttVdVVVXttW20Aqqqqe21bbaoqqqqdbVpt7////3tte3UogAAAu4VbZTV////b3nttArVVVfveW2UAAAu1+97b3v//l1vb3hvXqqiqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqq29771qqqior73nttAACAcHttu9aVCQAAe2V7dZCmqqpadXttVVdVVbxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqO2Wbdaqqqqp7bVtl8AAIANvWe20DJVVV2957dQAAAg3a3vzWqqoKq/zm2tb/////HOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqq+9661qqqqqr75rvGqqqqqvvee20AgHBcm757bVxVVVV7bVptAAgAALxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqp7bVttKIqiinu+e201VVVV29ZbZQACCTXb3vvWoKOKiNre/NaqqqoqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqvrevNaqqqqq29ZbZQDAcFy7hVtl9P3f/3ttW22qqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqruFW2Uff///29ZbZQADDTXa3vzWsIKLqBzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqq++a6xqqqqqrb3ltlAMBgWLuFW2X0/f/3WnV7bVVXVVV8bXttV1VVVbxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqnt1e21VVVXVe3V7bVVVVVW8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqr73nttVVVVVbuFW2Uff///2957bQADDSXa3vzWqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqra3vzWqqqqitvem3UAAMBgm8Z7bVRXVVVadXtt9VVVVbxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2Wyqqqqqe2373gAAAIC/93ttVVUJAP//e21VVXiAe218ZQAAAiB7dXttVVVXVbxt2WyqqqqqvG3ZbKqqqqpadXtt1VVVVbzGe20V1VVV+96bdQAAAwnb3vvWqqiqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqq+9661qqqqiq71nttcFhUV1p1e21d1VVVe21bZQAAAAC8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqqbdXttVVXV1f//W2U1JQ0N///e96wKCAD//973KoAAAN/3e21WXFhQe21abQAAAAC8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqp7bVttKqqqqrvWe20NJRXV+ubb1v///v775rrGqqqqqhzneMaqqqqqHOd4xqqqqqra3vzWqqqqqtvee22AwGBwe208TQACAAC8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2Wyqqqqqm3V7bZXVVVVbZd/3WFhQYP//3vcAAAIq///f9wAAgDh7bb73BQUJAXttfGUAAAAAvG3ZbKqqqqq8bdlsqqqqqrxt2Wyqqqqqe3V7bVXVVVV7bVtlgsAAANvee20CAwkN29771qqqqqoc53jGqqqqqhzneMaqqqqq+9661qqqqirb1nttUFhcVnttW22oiqKqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqnxte21VVVXV3/d7bVVVVVV7bVptAAAAAHttXG0AAACgWnV7bVVVVVX73nttVVVVVbxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2Wyqqqqq/sZ7bRVVVVX//3ttAAP1Vd/3e20AYFdV/I17bVRVVVV8bXttVVdVVbxt2WyqqqqqvG3ZbKqqqqpadXttVVVVVXttW22qqqqK29Z7bVVVVVXb1nttBSUVlfrm29b////+HOd4xqqqqqoc53jGqqqqqtveG6YAgMBA+517bVRXVVW8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqpbZXttVVVVhf//e21VVfUL//97bVVVqgD//1ttVVV+gF2u+kz////8e21bbaKqqKK8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2Wyqqqqqe217daAAAAB7bXt1AgAAAHxte21XVVVVvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqXa76TP////+bdTtlqqrqGr/3W21VVbUC//97bdVVqgC+93nO//3//BzneMaqqqqqHOd4xqqqqqrb1ltlwEBgYHttPF0CAAAAvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqr2+e21VVVUV//9bbbUNAgD//97/gAAAAP//3/eCAAAA///f9woAAAD//3tteMAAAHtt//8AAAIJe21bbaKILKK8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqp7bVttKioqql7Xe21VVVUV//97bTUJAgD//9/3gAAAAP//3/eqAIAA///b3lRcXFgc53jGqqqqqvvmusaqqqqq+957bXBQWFh7dXttVVdXV7xt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2Wyqqqqqe21bXQAAAED//3ttNQ0JAv//3v8qIAAA//+97wAAAEj//y+NAAAAV///Vb4AAAAJ///f96AAAAD//1tlcMCAAP3Oe21VVVVUvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqW2V7dapqGmr//1tlJQ0DAv//vfcCAAAA//8a1wAAAMD//y6NAAAAV///2tZQcHBhvvd5zv/////b3vvWqqqqqvvee21YXFxce3V7bVVVV1e8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqqcdXttVVXV1d/3e23VNQUJ///f9wAICoL//973gIAgSP//A1TgWFRXR2QATFUAqqr//wJULZVVVf//LY0AAAIB///e94CAAgD//3ttXHBAgHttO10AAAADvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqp7bVttqqoigt/3e22VNQ0B///e9wgrAAD//3znAAAASP//4ktgWFZVR2QATFUAqqriS/veWGBgYNve+taiqqio++a7xqqqqqq71nttXFxcXPvee21VVVVVvG3ZbKqqqqp8bXttVVVVVXttW22qqqoqvvd7bVXVFSX//32uAQAAAP//3vcCAIAg3vcDVIBgUFxHZABMoaioqiVcJFyqqqqqiWQDXL////++9wJUCSUV1f//vfcCAggD///f9yAAgADf93ttVlxQYHt1e21VVVdfe21bbaqqqqq8bdlsqqqqqrxt2WyqqqqqvG3ZbKqqqqq8bdlsqqqqqpxte21VVVVdvvd7bVWVNQX//x7PAQAAAP//vfcAAIAA3vcDVMBgWFRHZABUoaiqqiVcJFyoqKqqudYkXDU1NRX73rrWqqqoqr73ec7/////29Z7bVxcXFx8bXttVVdXV7xt2WyqqqqqWnV7bdXVVVUdz3ttVVVVFd/3O10JAwAA///e/wIAAALe9yNcAIBAcLGdoEP0/f//ZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZ2TgS0oqqqre9wNUAwkFNf//3vcCAAIIe23//5VVVVXf93ttVVdUWHxte21XVVVffG17bVVVVVW8bdlsqqqqqrxt2Wyqqqqq+957bVVVVVWe73ttVVXVFf//W2UJAgAA///e/woKgqDe9wNUAMBgUO2E4Uv0/f//ZWTES6qqqqplZMRLqqqqqpnOJFwVNTU1+9661qqoqqob53vGqqqqqtvee21cXFhYe21bbaKioqq8bdlsqqqqqnttW2WAAIBA3/dbbSUNAQL//97/AAAAAP//DIUAAIBA//8CVFxWVVUlXCRcqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqkJ2gQx9////e9wJUAAIBDf//3/cAAAAA//87XWDAAAA913ttVVVVVFp1e21VX1VdvG3ZbKqqqqpadXttVdVVVZt9O1Wqquo6//87ZSUJAwD//9/3AgACAv//RGQAAIBgXOfjU1xWVVUlXCRcqqqqqmVkxEuqqqqqZWTES6qqqqoCVPveYGBgYPveutaqqqqr+9661qqqqqrb3nttWFBwcHttW22oqqqonG17bVVVVdXf93ttlTUFCf//3veIAAAA//+99wCAKEi+9+JTYFhUV0hsI1T+////ZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqoZsBFT///////8DVDWVVVX//+t8AAACAf//3veoAAAA//97bVhwQIB7bVtlAAACA7xt2Wyqqqqqm31bZf//v3/f93ttlSUNAf//3vcIAAAA//863wAAAEDf/wJUcFxWVUVcJFz4////ZWTES6qqqqplZMRLqqqqqkVcJVz//7+//N4DVCUlBQ383rjWqqqqqvveutaqqqqq2957bWBgQAA8phtV///9/P//W2VV1TUL//+9vgEAAAD//773AACAIP//AlTAYFhcR2QBVKGoqqqGbARU/////2VkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqpFXARcqqqqqkhsI1S/////3vcCVA0lFdX//3vnAAAAA///3/8ooAIC//97bVZccIA8pnttVVVVVv//e21VlSUL//9e3wEAAAD//773AACAIP//AlTAcFhWSGwjVPn+//9lZMRLqqqqqmVkxEuqqqqqZWTES6qqqqpHZAFUqiqqatrWAVQJCQED29761qioqqoc53jGqqqqqn33ms4///////893/gAAgP//9/3IyiAAP//vvcAAACA//9FZACAYFBwlaBD9P3//0VcBFyqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqqGbARU/////2dk4EtKKqqq3/8CVAMJJTXe9///VVVWWf//3/cggAAA//9+594AAAD//973IAoAAP//vvcAAACA//8CVADAYFiqdAJU9P3//yVkRUyqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqT43AQ3//vx9wlfveVFZVVRzneMaqqqqqHOd4xqqqqqr73rrWqqqqqv//+94BCQ0l///e9wAAoMD//wJUAABgXlznA1RcV1VVBWxEVP////9lZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqpIbCNU/////+6E4Esff///3vcDVAADJdX//xnXAAAAAf//AlQAAAAA//++9wAACED//+JLAIBgXvjWJVxUVVVVRVwEXKqqqqplZMRLqqqqqmVkxEuqqqqqRVwEXKqqqqpFXARcqqqqqtveA1SVNSUF/Oba1v7///8c53jGqqqqqhzneMaqqqqqHOd4xqqqqqqf/y+NCmrqqjvf4kvgV1VXR2QAVIWiqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqkdkAExKKqqq/N4DVC1VVVWd7wNUAP1VVfnW4kvgV1VVR2QAVIWoqqpIbCNU/////2VkxEuqqqqqZWTES6qqqqplZMRLqqqqqoRU5WOqqqqqR2QAVKqqSioiVNrWWFRWVdve+taqqKiqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqq/Oba1r/////83gJUVlxYcEhsI1T////+ZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqolXCRc+qqqqoVb5FyqqqqqRVwlXO////+EVOVjqqqqqoZsBFT/////ZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqpIbCNU////v9rWA1SVNSUN+9661qioqqoa33zeqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqtve+tYiqqqq296IbECAAADa1iJUVVVWXEdkAFSqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqoVb5Fyqqqqqmc4DVFVV1TX73mZkCQIAALjm/Nb/////HOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqvzm2tb/////295EXFBggABwlcBL///99CVcJFyqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqRVwEXKqqqqovjeBL//9/H9veIlwlCQIAut4816qqqqr85trW/////xzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqrb3vrWqqqqqrjm/Nb/////A1T73gkllVVwlcBD///99EdkAEyqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqpEXCVc////ew6F4Uv//38f294DVDUNAwDb3hrXgoIoqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqr85trW//////revNaqoqqq294jXFhgAACZzgNUVVVXWEZcJFz////+RVwlXP////9lZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqRlwkXP////+EVOVjqqqqqkhsI1T///+/V8YDVFVV1SX73iNcJQkCANve+taiqKqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqvveutaqqqqq296IbGAAAAD83gNUVVd4gIlsAlT///u0SGwjVP////9lZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqmVkxEuqqqqqZWTES6qqqqplZMRLqqqqqoZsBFT///+/R2QBVKqqihrb3gNUVdUtAtveRmQJAAAA+t681qqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqrveOteqqqqqPOe61r/////b3sBDeIAAANrWA1RVV3gAcZ3AQ////XhHZAFUqqqqDUhsI1T////6RVwEXKqqqqplZMRLqqqqqmVkxEuqqqqqSGwjVP////9FXCVc////q0dkAFSqqqpicJWgQ///fy+61gNUVdUtAANU295gVlVV/Oba1v7////b3vrWKqqqqrjm/Nb/////HOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqtve+taqKqqqfOYa1//////85trWv/////ve0qVgAAAA294CVF+gAADb3iNUVV+AANveI1xVVeoA+94DVFVV/wDb3gNUVVX/AAJUHecAAKpV294jXFX1AgDb3uFL9QoAALKl+95YVVVV+9661qiqqqp85hrX//////zm2tb/////HOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqtve+taqqqqquOb81v/////73rrWuqqqqtve+taogqqqfOYa1//////85trW//////veutaqqqqq/Oba1v////8c53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqoc53jGqqqqqhzneMaqqqqqHOd4xqqqqqo=" + }, + "etc1": { + "uri": "data:image/ktx;base64,q0tUWCAxMbsNChoKAQIDBAAAAAABAAAAAAAAAGSNAAAHGQAAgAAAAIAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAgAADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AAN3f2Au7s4AA2NvdCfu7AETG2t0hIiIiRKbK3YEiIgAAnMXYp+7uAACcxdin7u4AAKbK3YEiIgAAxtrdISIiRCLY290Ju79EAN3f2As7uwAI2NjYA///AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgD//8AANrc3Qn7s4jEpsrdQTIgIhV3qNgCEe4AAWaq3QAAAAAAZqrdAQAAAABmqt0BAAAAAGaq3QEAAAAAZqrdAQAAAABmqt0BAAAAAGaq3QEAAAAAZqrdAQAAAABpqNgC7iEQAKbK3UECI1Ei2dzdCTu/TIjY2NgC//8AANjY2AP//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANze2A/7M4AApsrdQTIgIhVmqt0BAAAAAWaq3QEAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAABAApsrdQQIjUSLc3tgPM78ACNjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAAzNbYK+yA6Ex+t9hDf+YAAWaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAfrfYQ+a7EADM1tgrCM7EjtjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADE1dhL/IDoTGio2APfnAABZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdIQAAEADE1dhLCO/EjtjY2AP//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AAMzW2CrsgNuAaKjYA/HeAAFmqt0BAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdIQAAEACrwthKCM4AvdjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AP//wAA3d7YD/szoAB+t9hDd3gAAWaq3QEAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABpqNgHTsyAAH2u3hEVd6qEbK3eLUQATIpmqt0AAAAACGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QEAAAAAaqnYCs8QEADW3tgPM78ACtjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgD//8AAKbK3UQA6AHDZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAfr7fbAM/4QD4+PgDE/MAAPj4+AMQEQAAxtrtYAAxCD5mqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAaqzdKI4APBDY2NgD//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AP//wAA2tzdCOj/wwBmqt0BAAAAAWaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAH6+3ywMz3m/+Pj4AojMAAD4+PgDiAgAANbq7WAA4AHHZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0BAAAAAGaq3QAAABAArc3dYP+OAAzY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgD//8AAKbK3UAA4AHDZqrdAQAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QEAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QEAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAAB2ut1hIzMQAOfr/U2I7hET1+r9haoIIVVmqt0hAAAAAWaq3QEAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAQAAAABmqt0AAAAAAGqs3QgOADwQ2NjYAv//AADY2NgC//8AANjY2AL//wAA19/YC/MzoAB3qNgiAPwAAWaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAIAAaqzeDQRMiMRurt8JRESIjGyt3g1EREyIaajYB953AAhmqt0gAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGio2AJZ5oAAa63eEURMiER+rt8tR3eQiNjY2CL/8wAI2NjYAv//AADY2NgC//8AANnb3Qjw/8MAZqrdAQAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAaanYC37MgACuz+9tARfyF/j4+AMAAAAA+Pj4AwAAAAD4+PgCAAAAAM/f72VxABMjlMXnovdzAAhmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZ6vdDH8AgAC/3+9pARcyF/j4+AIAAAAA+Pj4AxEQAADt7e0g/3AAHtjY2AL//wAA2NjYAv//AADH2t0goOABgGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAACAAJ7P79ABNwGA+Pj4AoERAAD4+P8SgMwAAPz8+hGIiMzE6vHqgkyIAAj4+PgDEQAAANPj8Y9xADDvdrrdYAD3AAhmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABoqNgCcACAALvT6nYBN/zX+Pj4AyERAAD/+P8WgOQAAPv8+hGIiEzE7f3tYPGIDA/Y2NgD//8AANjY2AL//wAAtsrdIADwAO9mqt0BAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QEAAAAAfL3ebBN/64D4+PgjxMkAAPj4+AL4gIAAt8mklO7IAdtYgCgDAAAAAJaoYuWO/1AA/f78FwAOzEj4+PgCMAwAAOn8/vRzEAwAZqrdAAAAAAhmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QEAAAAAjb7edBM/yYD4+PgDAzMAAP/4/wqAhIAApsmUkf/oMhdYgCgCAAAAAGuMOkwO7w4Q2NjYA///AADY2NgC//8AAKbK3YAA8AAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAAB5rN45B/6gAOrx+GIXAQCB+Pj4AvcVAADM3LSS/IDtv1iAKAIAAAAAWIAoAgAAAABYgCgDAAAAAIObW16M7zH/+Pj/BwAZgAj4+PgD+YAAAMfb7Yz3MQicZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAAB7s9lXF//oAPHx+KMABQAA+Pj4A9AIAAC81KSS/MDtt1iAIQMAAAAAWIAoAwAAAABZiygYD4AAANjY2AP//wAA2NjYAv//AACmyt2AAPAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGqp2A8t3oAAz9/vgN8TAOn4+PgCAAsAAOv86vHoAMjMZ483YgD+AAFYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAQAKO7k5IIz/ve+Pj4A4KPAAD+//8MEHyQAHur2Tf/cQAOZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdAAAAAABmqt0AAAAAAGuq2RMe3IAA2+rxpwAXIwn4+PgDfvoAAPr7+dDogNsAZ48oIzMyAAFYgCgCAAAAAFiAKAIAAAAAWYsoGA8AAADY2NgD//8AANjY2AL//wAAtsrdIADwAH9mqt0AAAAAAGaq3QAAAAAAZqrdAQAAgACz0+J6ATf8l/j4+AIAAAAA/f78F+MwgMyEpVTD/+jMzViAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABnjzdDIzMQAOz03PcAjsSM+Pj4AgAAAAD8/f4QMfSeAHa63WAA9wAIZqrdAAAAAABmqt0AAAAAAGaq3QAAAAAAZqrdBQAAgACvz+9oARcB2/j4+AMADwAA/f78GekApMx8nUyjMzAABViAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFuLKQgPAPcA2NjYA///AADY2NgC//8AANfa3QTw/wgwZqrdAAAAAABmqt0AAAAAAHy93nATP+mA+Pj4AhARAAD4+P8GgMCRAJy8fPb+yAATWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAACEpVTHjv8QAN/v36DiDAB7+Pj4AwEAAADp/P50cxAMHmaq3QEAAAAIZqrdAAAAAABmqt0AAAAAAI2+35ATP+mA+Pj4AhARAAD///4ZoAEAAKa4g4T+6AHbWIAoAwAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABsjTwEBx8DgNjY2AL//wAA2NjYAv//AADa3N0Icf/4AHeo2CLAdwAIg7PaVxd/6ADv///hSI0AAPj4+APIQAAAxNyskvyA7bdYgCgDAAAAAFiAKAMAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAAB7m1u6jO8xAPj4/w8ACAAA+Pj4AxIcAACNvu+19xBAjmmo2AdsxgAIe73ebRd/6ETx+PiiEQEAAPj4+APIgAAAvNScsv7A7bdYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAMAAAAAja1tYP8PAMfY2NgD//8AANjY2AL//wAA2NjYA4//EADw8fEOERwA6vj4+CJCAQAA+Pj4AtljAADr7Op16ADpX2ePN0MzMgABWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAwAAAACjs4uSCM973vj4+AKIjwAA+Pj4AhGMAAD/+PhGERHJAPj4+AIDMwAA+Pj4A4iAAADq++hw6IDbg2ePKCIA/gABWIAoAwAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABZgSkLDMyAAMrKw2L/AwAB2NjYAv//AADY2NgC//8AANjY2AL//wAA7+/vIAzPCJ74+PgDyAiAAPr7+FHogOhMdZ1MozMiAAFYgCgDAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAZ48oIyMzEADE3KyTiM573v///hkAKgAA+Pj4AwAAAAD4+PgCiACAAOn75/HogMhEZZhCgTMyAAFYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWospDAcA44DY2NgD//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANzc2wxg/3EAhaZcru7uARFYgCgDAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAwAAAABiiisy7u8REKW4kuEiYgEAfZ5Uru7uARFYgCgDAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgDAACAAK29jYD/FwCD2NjYA///AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AAJy0fHL3MAC+WIAoAwAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAwAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAMAAAAAaos5LBN/y4DY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADd3twSMP8QAHWdTIIA8wAIWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAwAAAABXiSQQPwCAAMPKu4PM3wAF2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADa29gsMf+9EFmBKQvMxAAIWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFmBKQp/AIAAnb2NZPc3AdvY2NgD//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYA///AADE1LRucxC9EFmBKQvMxAAIWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWYEpCn8AgACcrHxtATcyF9jY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYA///AADM1MROMRC9EFeJJBHNRAAIWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAMAAAAAWIAoAgAAAABXiSQRReyAAJ29jWXN3zIX2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADd3twSEf8QEGuLOU33MUSOWI8oAgD3AAhYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAwAAAABYgSgDTMyAAGqLOS0Tf+hEvc29gczdAAHY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AALO7q4sxEBEAa4s6LXdxTIpujz5iAHcACFiAKAIAAAAAWIAoAwAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABYgCgCAAAAAFiAKAIAAAAAWIAoAgAAAABZgSoOdwCAAGuLKi0Xd6jEs7uriwETABHY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgD//8AANjY2AL//wAA3t/eChH/EBCdrX1h3d0TMm2NPEV90UACW4wqCUREzMhaiykZREQAAFqLKRlERAAAW4wqCUREjMxtjTwlXV8gRJ2tfWHd3SMRytHJQv8RAQHY2NgD//8AANjY2AP//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AP//wAA2NjYA///AADY2NgD//8AANjY2AP//wAA2NjYA///AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AANjY2AL//wAA2NjYAv//AADY2NgC//8AAA==" + }, + "pvrtc1": { + "uri": "data:image/ktx;base64,q0tUWCAxMbsNChoKAQIDBAAAAAABAAAAAAAAAAGMAAAHGQAAgAAAAIAAAAAAAAAAAAAAAAEAAAABAAAAIAAAABsAAABLVFhPcmllbnRhdGlvbgBTPXIsVD1kLFI9aQAAABAAAP/v/19673vv9/e/93rve+//36/teu9773///99673vv/f///3rve+/3f///eu977////39673vv3+//93rve+//+f+/eu977+v/9/9673vv/v//73vve+/+//z/e+977/7v//9773vvzv//+3vve+/+/+v/e+t87/7//z+7tnvv/+39v3rve+/v//f/eu977/////9673vv7f3//3rve++/9///eu977/7///9773vv7v/W/3vvfO/+//8/u7Z67+776f9773vv/j9/D7u2e+8uCwMAu7J77wAAQFS9stu+HgcHAb2ye+8CAAAAvbJb30CQ8PC7tru28PDw9Lu2u7b/9/v/eu977/7///9773vv/////3rve+/+//8/3b577/7/vx+7tnvzCgEAAL2yeu8eAQAAvbZ77wAAUJS9sru2/v///3vve+/+bwsAvbJ77/77//9773vv/gAAAL2ye+8AAOD0u7a8tvD0wv+7tru2AADv/7u2vLb+///8u7a7tgAAoOS9sru2MDTE+bu2u7YABc/wu7a7tvLw/w+7tru2+P7/87u2u7b+///zu7a7tg4Pzw+7tru2Pg///7u2u7by8B8Pu7a7tj4P3wC7tru2zv/8wLu2u7bw8D8Au7a7tjAA/wC7tru2AAAPD7u2u7YAAM8Au7a7tgAAAAC7tru2zv/z/Hvve+/+/+//e+977z4fPw+9tnvzDgcLA7uye+/+++r/e+987/7+/n77xnrvAgADAL2ye+8AAAAAu7b7ygBA4PC7try28PDA8Lu2u7bw/T/7u7a7tvr///+7tru28PDA8Lu2u7bA9PD0u7a7tv7/D/+7tru2/v//H7u2u7b+Pv4+vbZ7734/Pi+7tnvvABCQ8L22u7bg8ODwu7a8tj4fPx+7tnvvPh8/D7u2e+/AwKAgvba7tiDA4GC7tru2wD3N/7u2u7ay//tfu7a7tjIMMw+7tru2Lh8uALu2vLYyAAQPu7a7th4LLwC7try2AMDA4Luy///Q9PD8u7b///7//PC7tru2/P///7u2u7b+///wu7a7tv7z//+7tru2/v/AH7u2u7Y+Dy8Au7a8tv3+/wC6tru2AACg/7uy//8+DP/Pu7a7tj7///y7tru2AAAP/7u2u7b+/8//u7a7tm///wC6tru2AAACD7u2///////wura7tuDgoAC7try2QNDg+Luy///0/fz/u7b///7//////////v//DwOu///+//////v///4/Px8Frv//CgICACWu//8AABAABa4lrn5///+9tv///v///xHX//8AAAICvbL//wYHDw+9tv//+Pjw8AWu///AwAAABa7//z4///+7tv///v///937///+////e+977/8AAAC6tnvv///7/3rve+/+/ZAAvbJ77wAAoPO9tru2zMD/P7u2u7YAAC8Pu7a8tj4j/Py7tru2/v///3vve+/+///+27p77/7///9773vvf/+//3rve+/QgAAAvbZ77wAAPx+9sru2/v/8+L22e+/QwAAAu7Z77/7/Mw+7tru2Dg/w8Lu2u7b+///wu7a7tvDw/z+7tru28PA/QLu2u7ZwEAAAu7a7tgz/DAC7tru2AAAAQL22HM8+b8z/u7a7tv78P/+7tru2AAA7D7uyu7Y+H3xgu7a7tvz/MAC7tru2AAB8/7u2//9+v89Qu7a7thBUQAC7ttu+//f/8nrve+/+P///e+977//ff/9673vv9/t+/3rve+9/jw//eu977/7//v27unvv/v///3vve+/+////e+977//r//9673vv/////3rve+////f6eu977//3//d673vv/v8//3vve+/+///+e+977//v//9673vv/f///3rve+/w8MDAu7Z77wAAAQG9tty+/u9f/3vve+/+//z8u7Z77xQEPwy7tru2Ph45BLu2u7bw8MDAu7Z784AAAAC6tlzf/v8//3vve+/+////e+977/d/999673vv97///3rve+/+////e+977/7//f+9snvv/s//z3vve+/+////e+977wAAMA+7tru2Pg88D7u2u7aAwMDAurb//8DAwMC7tv//Pg8zH7u2u7Y6H/70u7a7tgAAAAC7tn7fAADP/7u2u7b+//////////7/////////AgADA7u2//8CAwMAu7b///4/FAC7tv//AAD/v7q2u7YAAAAAvbIdxwBQD/+7tru28PDA8Lu2u7bw8PDwu7a7tv78/w+7tru2PA//D7u2u7bgoKAAu7bctgAAAwO7sv//Dg/KBLu2u7YAAAAAu7a7uv7/PwC7tru2MAD/8Lu2u7b+z7zwu7a7tvDw/x+7tru28PD/w7u2u7b8/HAcu7a7tj4PDwa7tru2LgYqALu2vLYwYMDwu7a7tsDwwPC7tru2AAAHC7u2vLY+Cz8Pu7a8tvDwxLW7tru2NA4AD7u2u7Y6Dz8Gu7a7thQAFQC9trq+/Pzw9Luye/Pg8MDAu7Z77/7/3/9773vvzs8PH3vve++AwABAu7Z77wAApP+7tv//bv/vmnvve+9KlkaVe+//+z4PHw+7try2KAopALu2vLZA4OD4u7b///j+/f+7tv//AMDA4Lu2///g9PT8vbb///7///+78////j8/DwWu///+//////////7//w8Fsv//QpBDknvv//9Wl5urd+f//wYBAQAFrv//AAAwEAOqBa7o/PT8Ja577/T89PwFrnzvPh8/H7u2e+8+Hz8vvbJ773AQIAC7try2MAAgBLu2vLY+Pz8/vbJ7774/v7+9tnvvIAQgAL22u7YAQEDQu7b//wAAAIC7tp7ngMDA8Lu2///8////u7b///7//z9pvv//8Pz8/7u2///+////fd///34vLw8lrv//DgMDAAWu//++qwsLe++99woLP69773vv/v///733///8//z+e+///77//v9773vv/v/z/3vve+++Aw8LBaq99y4PPz8Frnzv/r//PyWu//8+CwsABa7//wAAAAADqozCAEDw8AWuBK4AAFBQBa4kspCQkAADrgWu8PTB/AWuBK7O/wbwBa4Erh4LCwMFrv//AgAAACWq//8gELCwBa4ErvDw8DAFrgSuAABQkCWuBbJQkJDwBa4krvD09v0FrgSu/v/P8wWuBK4AABoKBa4lsi4PDw8FrgSu/P78/AWu///w8MDABa7//z4PDw8FrgSuDh8/DwWuBK5AgAAABa7//wAAPA8FrgSucDAABAWuBK4ADc/zBa4ErsLwwAAFrgSuMAA//wWuBK7+//zzBa4Erv7//P8FrgSu/v/P/wWuBK7O/w8PBa4Erj4PADAFrgSu8PDf/wWuBK48AwADBa4ErgIPfx8FrgSu/v///wWuBK7+/wDwBa4Ern5/D/8FrgSu/v/wPwWuBK7+///8e+977/7//+9773vvf////yaye+/+/+//e+97777///9773vv9/3//3rve+/+////e+977/7/z/9773vvAAABAAWueesCAw8PBa5778DwAAAFrgSuAAAAAAWuBK4+P///Ba577/7/2fN773vvAAAAAAWuz84CAx8fBa577//9/f9673vv/f//v3rve+/+v///e+977/+/f/9673vv9//n/3rve+//////eu9779///99673vv/////3rve+/+////e+977/7/8/9773vvf////ySye+/+/9//e+977/7///9773vv///f/Xrve+/+////e+977//3//9673vv/v8AAAWuBK4AAMwJBa4Erg4PAAAFrgSuMAA/AAWuBK4wADDwBa4ErvDw8AAErgSuwAAAAwWuBK7////wBK4ErsDwwPAFrgSuwPMAAAWuBK7+////Ba4Erv7/APAFrgSuMAAA8AWuBK7A8P/wBa4ErvDw8P8FrgSu/v//PwWuBK4AAAMLJa577z6///8FrnzvAAAAAAWuBK4AAAcLBa577/7/7v9773vv7v//83vve+/+////r8p87/7///9773vvwPDwxAWuBK4wEEAABa4krv7/z/8FrgSu//78AASuBK4AC///Ba577/7/7vd773vvAABW/wWum+///57/eu977w4PPz+7tv//vn///722///w8JAAu7a8sgAAAAG8sr7v/////ka2///8/PD0Ba7//wIDDw+9sv//Lh9/v72y//8ODwkJu7a7tjAEMAC7try2AAAAwL2y3/eA4NDwu7b//yAAEAC7try2AICA4Lu2///w/Pz/u7b///7///+f6///0NCAwCWu//8AAAAABa5puv7/z////////v/89AWq//8ABQwPBa4ErjIf8/8FrgSugAAAAAWqmOsAAP//Ba4Ervr///+/9////v/////////+f78vBa7//y4LBwAjrv//bgAAAAWu3vsAAP//BK4ErgAAkKQFrgWu0PT//AWuBK78////u7b///7//z8Fsv//HgcLAgWu//8CAAAAJa7d+34fLwsjrv//DgMDAAWu//8AAJBgBa4kqtDwMGAFrgSuMAAwAAWuBK4wAAAABa4ErvD89PwFrnvv9Pz0/AWue+8ABAIPBa4ErhIEEAAFrgWu+Pz8/AWue+/8//z/Ba577wAAAAAlrmm+AFDg8AWuJa4AEAAJBa4ErgQJOw8FrgSu8PTO/wWuBK7OP88fBa4Erj4APw8FrgSuPg8jAAWuBK4AAABABa6MwgDAQMAFqnvv/P///2vCe+/+/7//e+9778Dw0PAlrnvv8Pz4/QWqfO/u76/ve+987+7///9773vv/v///wWuBK7O/wD/Ba4Erv7///8FrgSu/v/AzwWuBK7y////Ba4Erv7/D/8FrgSuzv8D/wWuBK7+//D/Ba4Erv7///8FrgSuPv8/DwWuBK7+////Ba4Erv7/wGAFrgSuPg/A/wWuBK4O/w8fBa4ErnATAA8FrgSuHx8fAASuBK7+//P/Ba4Erv/v/wAErgSuPg8PHwWuBK4YChkABa4FrgAAVf8Frnzv/v+q/3vve+8B9P7/Ba577/7/6v9773vvJAsaACWuBa4AAID0Ba577wBAgPAFrnvv9P///wWufO/8////rcp87/7/Ps9773vv/v+fr3vve+8O/8//e+977w4PDw8FrgSuPg8vAQWuBa4AAADAJa5X54Dg0PQFrnzvAAAAQAWujMKA4OD8Ba577/T9/f8Frnvv/v+vr3vvfO/8////Ba587/7/n+9773zv/v/P/3vve+/+//3Pe+977+7/P/9773vv/v/+/3vve+/+/z/ze+977//3//9673vv/P///wWyfO/+/+//e+97767///9773vv/v/7P3vve+////z+eu977/4///9773vv///933rve+////n7eu977///v79673vv//+z/3rve+//99//eu9779+//vd673vv/////3rve+/f+t//eu977/////9673vv/////3rve+8=" + } + } + } } }, "materials": { @@ -138,82 +145,11 @@ } }, "nodes": { - "Geometry-mesh002Node": { + "rootNode": { "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], "meshes": [ "Geometry-mesh002" ], - "name": "Mesh" - }, - "groupLocator030Node": { - "children": [ - "txtrLocator026Node" - ], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Texture_Group" - }, - "node_3": { - "children": [ - "Geometry-mesh002Node", - "groupLocator030Node" - ], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 0, - -1, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Y_UP_Transform" - }, - "txtrLocator026Node": { - "children": [], "matrix": [ 1, 0, @@ -231,8 +167,7 @@ 0, 0, 1 - ], - "name": "Cesium_Logo_Flat__Image___Texture_" + ] } }, "programs": { @@ -258,7 +193,7 @@ "scenes": { "defaultScene": { "nodes": [ - "node_3" + "rootNode" ] } }, @@ -320,8 +255,7 @@ "enable": [ 2929, 2884 - ], - "disable": [] + ] }, "uniforms": { "u_diffuse": "diffuse", @@ -343,11 +277,6 @@ "type": 5121 } }, - "extensionsUsed": [], "cameras": {}, - "extensions": { - "KHR_materials_common": { - "lights": {} - } - } + "extensionsUsed": [] } diff --git a/Specs/Data/Models/Box-Textured-KTX-Embedded/Readme.txt b/Specs/Data/Models/Box-Textured-KTX-Embedded/Readme.txt deleted file mode 100644 index 431544f9ba3f..000000000000 --- a/Specs/Data/Models/Box-Textured-KTX-Embedded/Readme.txt +++ /dev/null @@ -1 +0,0 @@ -This is the same as Box-Textured-KTX, except the KTX texture is embedded in the glTF. diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.bin b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.bin deleted file mode 100644 index 79f5db410b75a82000ca02da98dd8e7dc1900e78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmb7A2@Zll5GyJwDk`4OfuG4!_=&tsox+rC2!c-1blT2rb{B{+!`u*Iff!4y3^CS7 zu))@lV22cY91JOr$Z*2hkl}(WZnzt+uzEUjV}d$l`QKRc%B9JIvXGfki^E=+q-I-vu_mWrU)E^{JT%P~{ diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae deleted file mode 100644 index b07a87d4aa98..000000000000 --- a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.dae +++ /dev/null @@ -1,126 +0,0 @@ - - - - - modo 801 [Build 77509], Microsoft Windows 7 Service Pack 1 (6.1.7601 Service Pack 1) - Plug-in: [Build 77509]; Use Absolute Path: No; Merge Reference Items: No; Save Hidden Items: No; Save Cameras: No; Save Lights: No; Save Locators: Yes; Save Triangles as Triangles: Yes; Order Vertex Maps Alphabetically: Yes; Bake Matrices: No; Save Vertex Normals: Yes; Save UV Texture Coordinates: Yes; Save Vertex Colors: No; Save Vertex Weights: No; Save Animation: Yes; Sample Animation: No; Sample Animation Start: 0; Sample Animation End: 120; Save modo Profile: No; Save Maya Profile: No; Save 3ds Max Profile: No; Formatted Arrays: No; - file:///C:/Users/Branden/Creative%20Cloud%20Files/03-2015%20Cesium%20Test%20Models/CesiumTexturedBoxTest.lxo - - 2015-03-04T16:58:00Z - 2015-03-04T16:58:00Z - Z_UP - - - - Cesium_Logo_Flat.png - - - - - - - - - - - - - Image0001 - A8R8G8B8 - - - - - Image0001-surface - LINEAR_MIPMAP_LINEAR - LINEAR - - - - - - - - - 0.2 0.2 0.2 1 - - - 256 - - - - - - - - - - - -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 0.5 -0.5 0.5 0.5 0.5 0.5 - - - - - - - - - - 0 0 1 1 0 0 0 1 0 0 -1 0 -1 0 0 0 0 -1 - - - - - - - - - - 6 1 5 1 6 1.09011e-007 5 1.09011e-007 4 1 5 1 4 1.02033e-008 5 1.02033e-008 2 1 1 1 2 1.02033e-008 1 1.02033e-008 3 1 3 1.02033e-008 0 1 0 1.09011e-007 1 1 1 1.09011e-007 - - - - - - - - - - - - - - -

4 0 0 6 0 1 5 0 2 7 0 3 5 0 2 6 0 1 7 1 4 6 1 5 2 1 6 3 1 7 2 1 6 6 1 5 5 2 8 7 2 9 1 2 10 2 2 11 1 2 10 7 2 9 6 3 12 4 3 4 3 3 13 0 3 6 3 3 13 4 3 4 4 4 12 5 4 8 0 4 13 1 4 10 0 4 13 5 4 8 0 5 14 1 5 15 3 5 16 2 5 17 3 5 16 1 5 15

-
-
-
-
- - - - - - - - - - - - - - - - 0 0 0 - 0 1 0 0 - 1 0 0 0 - 0 0 1 0 - 1 1 1 - - - - - - - -
diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf index ec3f2d6d0326..bc2dae588970 100644 --- a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf +++ b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest.gltf @@ -1,339 +1,282 @@ { - "accessors": { - "accessor_21": { - "bufferView": "bufferView_29", - "byteOffset": 0, - "byteStride": 0, - "componentType": 5123, - "count": 36, - "type": "SCALAR" - }, - "accessor_23": { - "bufferView": "bufferView_30", - "byteOffset": 0, - "byteStride": 12, - "componentType": 5126, - "count": 24, - "max": [ - 0.5, - 0.5, - 0.5 - ], - "min": [ - -0.5, - -0.5, - -0.5 - ], - "type": "VEC3" - }, - "accessor_25": { - "bufferView": "bufferView_30", - "byteOffset": 288, - "byteStride": 12, - "componentType": 5126, - "count": 24, - "max": [ - 1, - 1, - 1 - ], - "min": [ - -1, - -1, - -1 - ], - "type": "VEC3" - }, - "accessor_27": { - "bufferView": "bufferView_30", - "byteOffset": 576, - "byteStride": 8, - "componentType": 5126, - "count": 24, - "max": [ - 6, - 1 - ], - "min": [ - 0, - 0 - ], - "type": "VEC2" - } + "accessors": { + "accessor_21": { + "bufferView": "bufferView_1", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5123, + "count": 36, + "type": "SCALAR" }, - "animations": {}, - "asset": { - "generator": "collada2gltf@", - "premultipliedAlpha": true, - "profile": { - "api": "WebGL", - "version": "1.0.2" - }, - "version": "1.0" + "accessor_23": { + "bufferView": "bufferView_0", + "byteOffset": 0, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" }, - "bufferViews": { - "bufferView_29": { - "buffer": "CesiumTexturedBoxTest", - "byteLength": 72, - "byteOffset": 0, - "target": 34963 - }, - "bufferView_30": { - "buffer": "CesiumTexturedBoxTest", - "byteLength": 768, - "byteOffset": 72, - "target": 34962 - } + "accessor_25": { + "bufferView": "bufferView_0", + "byteOffset": 288, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" }, - "buffers": { - "CesiumTexturedBoxTest": { - "byteLength": 840, - "type": "arraybuffer", - "uri": "CesiumTexturedBoxTest.bin" - } + "accessor_27": { + "bufferView": "bufferView_0", + "byteOffset": 576, + "byteStride": 0, + "componentType": 5126, + "count": 24, + "max": [ + 6, + 1 + ], + "min": [ + 0, + 0 + ], + "type": "VEC2" + } + }, + "animations": {}, + "asset": { + "generator": "collada2gltf@", + "premultipliedAlpha": true, + "profile": { + "api": "WebGL", + "version": "1.0.2" }, - "images": { - "Image0001": { - "name": "Image0001", - "uri": "Cesium_Logo_Flat.ktx" - } + "version": "1.0" + }, + "bufferViews": { + "bufferView_0": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 768, + "byteOffset": 0, + "target": 34962 }, - "materials": { - "Effect-Texture": { - "name": "Texture", - "technique": "technique0", - "values": { - "diffuse": "texture_Image0001", - "shininess": 256, - "specular": [ - 0.20000000298023224, - 0.20000000298023224, - 0.20000000298023224, - 1 - ] - } + "bufferView_1": { + "buffer": "CesiumTexturedBoxTest", + "byteLength": 72, + "byteOffset": 768, + "target": 34963 + } + }, + "buffers": { + "CesiumTexturedBoxTest": { + "type": "arraybuffer", + "byteLength": 840, + "uri": "data:application/octet-stream;base64,AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAL8AAAC/AAAAPwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAADAQAAAAAAAAKBAAAAAAAAAwED+/38/AACgQP7/fz8AAIBAAAAAAAAAoEAAAAAAAACAQAAAgD8AAKBAAACAPwAAAEAAAAAAAACAPwAAAAAAAABAAACAPwAAgD8AAIA/AABAQAAAAAAAAIBAAAAAAAAAQEAAAIA/AACAQAAAgD8AAEBAAAAAAAAAAEAAAAAAAABAQAAAgD8AAABAAACAPwAAAAAAAAAAAAAAAP7/fz8AAIA/AAAAAAAAgD/+/38/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA" + } + }, + "images": { + "Image0001": { + "name": "Image0001", + "uri": "Image0001.png", + "extras": { + "compressedImage3DTiles": { + "s3tc": { + "uri": "Image0001-s3tc.ktx" + }, + "etc1": { + "uri": "Image0001-etc1.ktx" + }, + "pvrtc1": { + "uri": "Image0001-pvrtc1.ktx" + } } - }, - "meshes": { - "Geometry-mesh002": { - "name": "Mesh", - "primitives": [ - { - "attributes": { - "NORMAL": "accessor_25", - "POSITION": "accessor_23", - "TEXCOORD_0": "accessor_27" - }, - "indices": "accessor_21", - "material": "Effect-Texture", - "mode": 4 - } - ] + } + } + }, + "materials": { + "Effect-Texture": { + "name": "Texture", + "technique": "technique0", + "values": { + "diffuse": "texture_Image0001", + "shininess": 256, + "specular": [ + 0.20000000298023224, + 0.20000000298023224, + 0.20000000298023224, + 1 + ] + } + } + }, + "meshes": { + "Geometry-mesh002": { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": "accessor_25", + "POSITION": "accessor_23", + "TEXCOORD_0": "accessor_27" + }, + "indices": "accessor_21", + "material": "Effect-Texture", + "mode": 4 } + ] + } + }, + "nodes": { + "rootNode": { + "children": [], + "meshes": [ + "Geometry-mesh002" + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ] + } + }, + "programs": { + "program_0": { + "attributes": [ + "a_normal", + "a_position", + "a_texcoord0" + ], + "fragmentShader": "CesiumTexturedBoxTest0FS", + "vertexShader": "CesiumTexturedBoxTest0VS" + } + }, + "samplers": { + "sampler_0": { + "magFilter": 9729, + "minFilter": 9729, + "wrapS": 10497, + "wrapT": 10497 + } + }, + "scene": "defaultScene", + "scenes": { + "defaultScene": { + "nodes": [ + "rootNode" + ] + } + }, + "shaders": { + "CesiumTexturedBoxTest0FS": { + "type": 35632, + "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Ow0KdmFyeWluZyB2ZWMzIHZfbm9ybWFsOw0KdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOw0KdW5pZm9ybSBzYW1wbGVyMkQgdV9kaWZmdXNlOw0KdW5pZm9ybSB2ZWM0IHVfc3BlY3VsYXI7DQp1bmlmb3JtIGZsb2F0IHVfc2hpbmluZXNzOw0Kdm9pZCBtYWluKHZvaWQpIHsNCnZlYzMgbm9ybWFsID0gbm9ybWFsaXplKHZfbm9ybWFsKTsNCnZlYzQgY29sb3IgPSB2ZWM0KDAuLCAwLiwgMC4sIDAuKTsNCnZlYzQgZGlmZnVzZSA9IHZlYzQoMC4sIDAuLCAwLiwgMS4pOw0KdmVjNCBzcGVjdWxhcjsNCmRpZmZ1c2UgPSB0ZXh0dXJlMkQodV9kaWZmdXNlLCB2X3RleGNvb3JkMCk7DQpzcGVjdWxhciA9IHVfc3BlY3VsYXI7DQpkaWZmdXNlLnh5eiAqPSBtYXgoZG90KG5vcm1hbCx2ZWMzKDAuLDAuLDEuKSksIDAuKTsNCmNvbG9yLnh5eiArPSBkaWZmdXNlLnh5ejsNCmNvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBkaWZmdXNlLmEsIGRpZmZ1c2UuYSk7DQpnbF9GcmFnQ29sb3IgPSBjb2xvcjsNCn0NCg==" }, - "nodes": { - "Geometry-mesh002Node": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "meshes": [ - "Geometry-mesh002" - ], - "name": "Mesh" + "CesiumTexturedBoxTest0VS": { + "type": 35633, + "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Ow0KYXR0cmlidXRlIHZlYzMgYV9wb3NpdGlvbjsNCmF0dHJpYnV0ZSB2ZWMzIGFfbm9ybWFsOw0KdmFyeWluZyB2ZWMzIHZfbm9ybWFsOw0KdW5pZm9ybSBtYXQzIHVfbm9ybWFsTWF0cml4Ow0KdW5pZm9ybSBtYXQ0IHVfbW9kZWxWaWV3TWF0cml4Ow0KdW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsNCmF0dHJpYnV0ZSB2ZWMyIGFfdGV4Y29vcmQwOw0KdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOw0Kdm9pZCBtYWluKHZvaWQpIHsNCnZlYzQgcG9zID0gdV9tb2RlbFZpZXdNYXRyaXggKiB2ZWM0KGFfcG9zaXRpb24sMS4wKTsNCnZfbm9ybWFsID0gdV9ub3JtYWxNYXRyaXggKiBhX25vcm1hbDsNCnZfdGV4Y29vcmQwID0gYV90ZXhjb29yZDA7DQpnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlvbk1hdHJpeCAqIHBvczsNCn0NCg==" + } + }, + "skins": {}, + "techniques": { + "technique0": { + "attributes": { + "a_normal": "normal", + "a_position": "position", + "a_texcoord0": "texcoord0" + }, + "parameters": { + "diffuse": { + "type": 35678 }, - "groupLocator030Node": { - "children": [ - "txtrLocator026Node" - ], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Texture_Group" + "modelViewMatrix": { + "semantic": "MODELVIEW", + "type": 35676 }, - "node_3": { - "children": [ - "Geometry-mesh002Node", - "groupLocator030Node" - ], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 0, - -1, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Y_UP_Transform" + "normal": { + "semantic": "NORMAL", + "type": 35665 }, - "txtrLocator026Node": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Cesium_Logo_Flat__Image___Texture_" - } - }, - "programs": { - "program_0": { - "attributes": [ - "a_normal", - "a_position", - "a_texcoord0" - ], - "fragmentShader": "CesiumTexturedBoxTest0FS", - "vertexShader": "CesiumTexturedBoxTest0VS" - } - }, - "samplers": { - "sampler_0": { - "magFilter": 9729, - "minFilter": 9729, - "wrapS": 10497, - "wrapT": 10497 - } - }, - "scene": "defaultScene", - "scenes": { - "defaultScene": { - "nodes": [ - "node_3" - ] - } - }, - "shaders": { - "CesiumTexturedBoxTest0FS": { - "type": 35632, - "uri": "CesiumTexturedBoxTest0FS.glsl" + "normalMatrix": { + "semantic": "MODELVIEWINVERSETRANSPOSE", + "type": 35675 }, - "CesiumTexturedBoxTest0VS": { - "type": 35633, - "uri": "CesiumTexturedBoxTest0VS.glsl" - } - }, - "skins": {}, - "techniques": { - "technique0": { - "attributes": { - "a_normal": "normal", - "a_position": "position", - "a_texcoord0": "texcoord0" - }, - "parameters": { - "diffuse": { - "type": 35678 - }, - "modelViewMatrix": { - "semantic": "MODELVIEW", - "type": 35676 - }, - "normal": { - "semantic": "NORMAL", - "type": 35665 - }, - "normalMatrix": { - "semantic": "MODELVIEWINVERSETRANSPOSE", - "type": 35675 - }, - "position": { - "semantic": "POSITION", - "type": 35665 - }, - "projectionMatrix": { - "semantic": "PROJECTION", - "type": 35676 - }, - "shininess": { - "type": 5126 - }, - "specular": { - "type": 35666 - }, - "texcoord0": { - "semantic": "TEXCOORD_0", - "type": 35664 - } - }, - "program": "program_0", - "states": { - "enable": [ - 2929, - 2884 - ] - }, - "uniforms": { - "u_diffuse": "diffuse", - "u_modelViewMatrix": "modelViewMatrix", - "u_normalMatrix": "normalMatrix", - "u_projectionMatrix": "projectionMatrix", - "u_shininess": "shininess", - "u_specular": "specular" - } - } - }, - "textures": { - "texture_Image0001": { - "format": 6408, - "internalFormat": 6408, - "sampler": "sampler_0", - "source": "Image0001", - "target": 3553, - "type": 5121 + "position": { + "semantic": "POSITION", + "type": 35665 + }, + "projectionMatrix": { + "semantic": "PROJECTION", + "type": 35676 + }, + "shininess": { + "type": 5126 + }, + "specular": { + "type": 35666 + }, + "texcoord0": { + "semantic": "TEXCOORD_0", + "type": 35664 } + }, + "program": "program_0", + "states": { + "enable": [ + 2929, + 2884 + ] + }, + "uniforms": { + "u_diffuse": "diffuse", + "u_modelViewMatrix": "modelViewMatrix", + "u_normalMatrix": "normalMatrix", + "u_projectionMatrix": "projectionMatrix", + "u_shininess": "shininess", + "u_specular": "specular" + } + } + }, + "textures": { + "texture_Image0001": { + "format": 6408, + "internalFormat": 6408, + "sampler": "sampler_0", + "source": "Image0001", + "target": 3553, + "type": 5121 } + }, + "cameras": {}, + "extensionsUsed": [] } diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl deleted file mode 100644 index 782e1f41628c..000000000000 --- a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0FS.glsl +++ /dev/null @@ -1,18 +0,0 @@ -precision highp float; -varying vec3 v_normal; -varying vec2 v_texcoord0; -uniform sampler2D u_diffuse; -uniform vec4 u_specular; -uniform float u_shininess; -void main(void) { -vec3 normal = normalize(v_normal); -vec4 color = vec4(0., 0., 0., 0.); -vec4 diffuse = vec4(0., 0., 0., 1.); -vec4 specular; -diffuse = texture2D(u_diffuse, v_texcoord0); -specular = u_specular; -diffuse.xyz *= max(dot(normal,vec3(0.,0.,1.)), 0.); -color.xyz += diffuse.xyz; -color = vec4(color.rgb * diffuse.a, diffuse.a); -gl_FragColor = color; -} diff --git a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl b/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl deleted file mode 100644 index cacc9ed997a3..000000000000 --- a/Specs/Data/Models/Box-Textured-KTX/CesiumTexturedBoxTest0VS.glsl +++ /dev/null @@ -1,15 +0,0 @@ -precision highp float; -attribute vec3 a_position; -attribute vec3 a_normal; -varying vec3 v_normal; -uniform mat3 u_normalMatrix; -uniform mat4 u_modelViewMatrix; -uniform mat4 u_projectionMatrix; -attribute vec2 a_texcoord0; -varying vec2 v_texcoord0; -void main(void) { -vec4 pos = u_modelViewMatrix * vec4(a_position,1.0); -v_normal = u_normalMatrix * a_normal; -v_texcoord0 = a_texcoord0; -gl_Position = u_projectionMatrix * pos; -} diff --git a/Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.ktx b/Specs/Data/Models/Box-Textured-KTX/Cesium_Logo_Flat.ktx deleted file mode 100644 index c05afa20b6b2e8d74104c64ba1720f7d8c2f4700..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262244 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 YAIvPT{2mlMlK=n!07*qoM6N<$g3Fl*bN~PV diff --git a/Specs/Data/Models/Box-Textured-KTX/Image0001-etc1.ktx b/Specs/Data/Models/Box-Textured-KTX/Image0001-etc1.ktx new file mode 100644 index 0000000000000000000000000000000000000000..b5672fe60686c5d2b687a20aac3d4b65f7854570 GIT binary patch literal 8260 zcmeHLZERE58Gf$~iwP#V7mInBDwa5#6jCC^$&ZK@6-M2yTHR`un1HdZX;wxd2_mCy z)+Ho2gi0Ryq7-$L8cnKlnoq{*m$7DC64djbDS$| z$6tx^!H-3PlXE}L`##V6yw5o|%`a@-o~l;sS0#Qok&#H30sb)LKm2*E4j>@~fXCm- zKk5r z;YejS+i?%B<4j|LtSd=>Sv7=lp6=4>0_wFSyo^{)$&m*jC<&jQIycG*xLpo@9s!|+ej z3tq(i`dO3I*0}Vz!|;*@zyirr=At~zOJ5+bnPa?}C%D~KihB|C9lP#f@QXU3JT(8^ z^b^@-=$L~ZC~p?p-%UXDRr4QP){~MsizTBTHnNC6RzJ}DxR1%~LO1ap!eik6wIDbn;XwTB<%4f`A%2O@=*O><0bF+= z{;!yxNbdz)59m`CS_droLOsZ%=s>LdW?Y}tJ>dO0^<$*>BV7;T_pQ$?ucqg+aOdvS zi#jK#xZ#+3=bS9s+f^EkR!92TS_-6ZQwh+3I+5wT&(W_XJ8tt(*lOi4yr!bfmi6P( zqvYJA67J7DFASM2vU`toA9p@`J~6GVK%Z(GbQLqo|0qen5h(V4bULHK;dUI->Oe;0Bi^gG+zlm=?LvL$ z!^HgYK#8pfx_^W8dma;P8vtsixH4_t^V zsBgmXLGPD$Sc?>ucM0xvLm#cT#KZG&q3`r@XD?&k&Sy{^ynnXf-}S;zVan%KLXz=$ z!c(>!VASh-aDbJI^^dln#nK7Qr>@ibhGJ76$ww;9rMMIM!+1XLJN~X<&rxDNR0oB% zPid1}Ni+5X-0yhAFXj_*e7nWEA;H%K4!5U3$v_psGqDE1ICB1&mmlvE;{=S9hw2Y@ z{;Jlc7Em7vkit_ve8U6un8#};)Uw7fJjcRK@0Ya?ZBq(%aJxOHV7b5VuHZiL`L)x> zycfqWZ0FNxe6b!oYBIi)jB!Kj9}7R8Cz7+QJn3WJrhrj`8&(3`^*Y>k=r!(c$SVLJ zFafwJ-@$VhPU+t}CL5fzk~$q~0PqQdoGm{JWz9o*LJ1_r%R}M0A;sDe9?TB+$DmAK zLDs8y2=H+7n=5wS47(dL(sOfW=0ou#bD{XB^v^Yqtop%8h{G4K$~^pe(Dgc_WXuFN zB-4CSM&Y!v{Dk&YZZ<5B6n|&UI$1IrPbmHy!P zN!%0Q!1YyI{Ba~hzs5cvbG&JX(N~Cm!}V2|c=7T<^E%aDgT7Ekd_kf^Umzn_OMKk( zBaZ8%bK>g+w+?YTChhyN&#SS|RnxvB`drw!JF3>Ll;b(2zrVXckOC80e{t?|xl-kW zvXdlEuZ%}O@w{xu@BTMQU#X~{M2$079*AENUqF4mr@LHcCAx-8KVIwuieHC)KRS8G zZRdM6yZ*GLYBqKFdCfX`0^B0HkNO=nGGdnJqY=Mz<`->FC&MA01;HDICmOHd$dfrv z7sr0|>9L!t0tODA+&b5Ma6KMcJL-5r3DvRii#ljLU;f*PZ0KA9{9*MQz*oHWpwI2C z*|1(w`HvZXC*q7WTC5|hv(XPw_lE$#7XsqP%5SOfQ{3DB@O^d@*1fx5Uv0F(@<=#i zT^}}^)~kgMmiUL!@c8q9c_xzYpA#K*uTA7JX2ch@-(%qy-#1)4zwZG1`0^m)Zfq$p zX7X~Bao`Ht|KoU`@@Twfcu9>spuV^P&64OLsQ*bG&yCS~?;5Zz2=1^v5r5zWmMyH= z@ZyA8Q@_0d&mZ_byMR97$6b{n)#5&mzLurH^H9e?N0reMc|VV%u3_=b_Pus}bB!7g z$b~geWtEm_kL+uBrU3998Nf$S-2$#h^~)VqnMtMC&xJLaS<2G01`>x+05{wG7UB6I zpRwAki9{bKS`WTzu_$ti>oz`j@XO7Towb?xcQIoxo<~wN8US(hU#~Udb3gdyE2$d) ld+A*Nmwj6Vjv?nYaeZ-|m%1$iFQIvg`NtYV-&>IR{{XEw&7=ST literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-KTX/Image0001-pvrtc1.ktx b/Specs/Data/Models/Box-Textured-KTX/Image0001-pvrtc1.ktx new file mode 100644 index 0000000000000000000000000000000000000000..f67b26e493120211e8909bace032ee6c383790be GIT binary patch literal 4196 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 literal 0 HcmV?d00001 diff --git a/Specs/Data/Models/Box-Textured-KTX/Image0001-s3tc.ktx b/Specs/Data/Models/Box-Textured-KTX/Image0001-s3tc.ktx new file mode 100644 index 0000000000000000000000000000000000000000..ae4d0f4eebc68691e537b594d878382a8bb2682a GIT binary patch literal 8312 zcmcgxVQ5>|6~2BiW|lkc&oHCTx|k$_pwE~*>G4|z^(Hjf-2bH24NEEgWW&Uf0MdY@mmX9d1B z2Un(Gms5!FXd$1BGxiU?U}H_|dLiEzXI$6kZep*Cb%a)NAFhl0g6^I@jlDRh-93N0 z-hMysdGHH(ga7%-^6mxXkqf`s(m)wF%>m$==!+Q}oG0UBBWVPpZzLHXT-Eg?)^lN9 zr@fxTK8|>R7qnVI%eowYF@6{4CF9AF114j1PUyUIzH&|1%XVLku_vyT?SjquFZv4h z?gcBo^Zb=@a&S*h5>8ZOA{n2{r+kbhW66;>uUOWLgbVmSjQ?er_+GEIBQ`Zc=OIq9 zk69BVzNi7gml4Jk|DwH)d^BHOUtXlTs$2a?UT@Vc;WiV-)O<2-fVWBH3+}Lb;jHx> z;>&@_naL#l2*D53Rg5XV5ann3H<>jS2uXW6C zt+*@QM}F<0I-xkI{t)5+-T2SbkBhs!JS+6LK=qc5MjYI{B>6oSPsTy>y7SzNkMsg& za_(Bu9@Qi66S^bfKs;6b0hb3g_c!AZfN zL%IWhcD&A~U=QieaSq)N`2C#QrQbF;0l!@eq8}6yk6t6vBXs9e{Gs{`qCN?SKhTnM z`ts(cw6)ZD*F4|F7s@`Dw8L0`ZN zU4qtWp&Pg^>(qiQ&)95mqo++`X$sOt_ypQ=(Ey}tIv~!2e*s)sxi=# za_6&6Z~ieyTw!LmvwYd9cdtLy_I)v7XTqt|)hC?Q0&n|Z|8=wfy|q(l%j@LVjFq0L zcAk8n=Ada2$K(j;$g1hCYllybbi^#{PHUz__OB`APfoYkeCfwG`37I#h97+++Zm05 z_x)r?+OM`=pBK1W2ykIbB z4J=51Fc>CXA-@mtwRy0O za9_WR>nAxscnNEmbA2AGkNlX%AEaxEtjRVo|AUrVH9NJw5B`lM<8;6u4MZ^Em00X|@5k zsx6^!d~1lE(lOX`u4wHks^fOpR~nrAC@)ZkL?`-L2gOmX6{q(;r_T3|lRv4DU!33c zG~pgw!MX6~c6T(=t4n`wcbDx*G#V|~YkAaRTF$l9Cjj5@>XWN$&@(ab1?OQ$&$R?N zKldJe_a;0FGu!Nvs+rLqgY3MMPFn$Ezd`fi8$+s*L7eAHisnNf5_wUYRN_M$_(*>D z8a+`r?t`wKs=E8OqqqISpH!%k^RIm5_;a251S5YiwrTK3dk1}={DE86AM^W-P$<;m z=zZGS;(?3b(bWg}7xP3;*Pr^xsjFhCqu-|r+#LK;?9x7inVpH>U!Lx|hwpo_p+9vK zZtwcTp{4F;gO){pslLXL6E~%a^Z@h_`mTqyh^uddGVb1d%l!Q6F8Pxq-HD;hDG$84 zd3>7A$Jo~MuM4-jALY+mH}@MY2!Ozkc zBki#F`3c0illX1)>blIg7q@r+CgMc%DOjVS95CNdU#Igr`lDIKjxIR5Ao|##-Y@Zs zJ@PPhu0w~eAIAN$01`o;SC|67jt#+|sIl_b)1T&#qLppXKkD}TtL|zQsQw`ggdbr^ zyZjRU9P~n++og-bPw>k;aB{wM`!whkJ~_Nk+XTP8I4kXcHoQy2?RcqL2#M$XpJP%N z=s5xDLPY2S&6~=WE=-;4i*cSgFX|kLAb;?+6Zao3V(Ba*4+#K24xZn~>0bNCjevpA zXVz_13j`Yd>-GoYd)>qMqtQ-w6bUZ0e?6@TD*_A6R-B+0SqY@{4zN|J_LI8 zBvMYDOB|K#Rl6?ZCUt@Gr}_dRyM&IZ_r5^(+f2&u>nrp{h$7X7LE?cws2?Q4I;&_@ z=YgT)ryiv{(vRmZWxLMv%$`K5Y-^}jiCeCc2b`Df2A?1LPILEkmh#P5bii0qH3Rcz zUMMi`lSZIhbI>R8$2ib5_eN4^)uvQ;C?<}&>UPT5AwQP z3*db!6lkR9LsYL4w|D(D=9cC&cdU-$?e3+pPJLXPnAxu9pA~nd&r|=TK0$Tb4t$sI zA|4yM{z+c=Lw#JE0B>d7DxGsd`}_Ba4|Km}JsaGsE#@OgJn(NC-#PU89}Lla@WJx>|MXl` zK1VIs$1t6lERo7~qc7a6wa-`bZ>O%yIzM=634Wg6Q?U0M0RW%1k1SB$Bp#XPYOAOd zd``wq#oXWvq;$lgi{e0aO6Tqro?6d6Ci*&0eqrL4iyL!=U&Zr|)`ju$0~L8*4ZnO} z#!Wm2h7K0&eMTh8n8UAdNFsg6DxU{GxnQ-ew-^>k>!3 zR@o;>9}oscI<1FC%{PV>^s(~$)pXg5tJb}%dl@muSd*>P&-7foQm{`9;omPzKBuo2 z&T8k(*@s149a)(b{i0xJyGBjYOA!zDqsyXBMjd}GzZ;h|S*KpyGH%YC%CEY5`#qYs zP|pWv>D*j9Q?-H}#r#6Nq&`mh4n9<;)%>pa`$8w+z}RxD_&*@|m4RPn`_JzZKMLrh zgVVI`)AT`;R{Y!O4l7gsbdJ5VD%w++e=YQ9yuV63zSX^odG8PJ;`=)00MWmI^IZci7-kcwN$fBwreFf%hTykE3D Q8Ys-*>FVdQ&MBb@0Ea&gQ~&?~ literal 0 HcmV?d00001 From 3bd700422cc2b3973244b77cf4ca5a9536f84963 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Mon, 30 Jan 2017 16:16:52 -0500 Subject: [PATCH 21/26] Update texture specs after merge. --- Specs/Renderer/TextureSpec.js | 91 +++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 37 deletions(-) diff --git a/Specs/Renderer/TextureSpec.js b/Specs/Renderer/TextureSpec.js index b95c704fdf54..1096a7305d75 100644 --- a/Specs/Renderer/TextureSpec.js +++ b/Specs/Renderer/TextureSpec.js @@ -210,57 +210,74 @@ defineSuite([ }); it('draws the expected DXT compressed texture color', function() { - if (context.s3tc) { - texture = new Texture({ - context : context, - pixelFormat : greenDXTImage.internalFormat, - source : { - width : greenDXTImage.width, - height : greenDXTImage.height, - arrayBufferView : greenDXTImage.bufferView - } - }); - - var pixels = renderFragment(context); - expect(pixels).toEqual([0, 255, 0, 255]); + if (!context.s3tc) { + return; } + + texture = new Texture({ + context : context, + pixelFormat : greenDXTImage.internalFormat, + source : { + width : greenDXTImage.width, + height : greenDXTImage.height, + arrayBufferView : greenDXTImage.bufferView + } + }); + + expect({ + context : context, + fragmentShader : fs, + uniformMap : uniformMap + }).contextToRender([0, 255, 0, 255]); }); it('draws the expected PVR compressed texture color', function() { - if (context.pvrtc) { - texture = new Texture({ - context : context, - pixelFormat : greenPVRImage.internalFormat, - source : { - width : greenPVRImage.width, - height : greenPVRImage.height, - arrayBufferView : greenPVRImage.bufferView - } - }); - - var pixels = renderFragment(context); - expect(pixels).toEqual([0, 255, 0, 255]); + if (!context.pvrtc) { + return; } + + texture = new Texture({ + context : context, + pixelFormat : greenPVRImage.internalFormat, + source : { + width : greenPVRImage.width, + height : greenPVRImage.height, + arrayBufferView : greenPVRImage.bufferView + } + }); + + expect({ + context : context, + fragmentShader : fs, + uniformMap : uniformMap + }).contextToRender([0, 255, 0, 255]); }); it('draws the expected ETC1 compressed texture color', function() { if (context.etc1) { - texture = new Texture({ - context : context, - pixelFormat : greenETC1Image.internalFormat, - source : { - width : greenETC1Image.width, - height : greenETC1Image.height, - arrayBufferView : greenETC1Image.bufferView - } - }); + return; + } + + texture = new Texture({ + context : context, + pixelFormat : greenETC1Image.internalFormat, + source : { + width : greenETC1Image.width, + height : greenETC1Image.height, + arrayBufferView : greenETC1Image.bufferView + } + }); - var pixels = renderFragment(context); + expect({ + context : context, + fragmentShader : fs, + uniformMap : uniformMap + }).toRenderAndCall(function (pixels) { expect(pixels[0]).toEqual(0); expect(pixels[1]).toBeGreaterThan(250); expect(pixels[2]).toEqual(0); expect(pixels[3]).toEqual(255); - } + }); }); it('renders with premultiplied alpha', function() { From 324200c221c3af1c18278d7e0eb586dcf6c65ede Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Mon, 30 Jan 2017 16:30:50 -0500 Subject: [PATCH 22/26] Fix loading multiple textures. --- Source/Scene/Model.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index 11f8f099634f..7f1443d9e048 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -1419,8 +1419,8 @@ define([ var gltfImage = images[textures[id].source]; var extras = gltfImage.extras; - var binary; - var uri; + var binary = undefined; + var uri = undefined; // First check for a compressed texture if (defined(extras) && defined(extras.compressedImage3DTiles)) { From f6ee9978801e72d61c271a91455fe0c2dcb6ec92 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Mon, 30 Jan 2017 16:45:51 -0500 Subject: [PATCH 23/26] Update ETC1 test. --- Specs/Renderer/TextureSpec.js | 9 ++------- Specs/Scene/ModelSpec.js | 6 +++--- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/Specs/Renderer/TextureSpec.js b/Specs/Renderer/TextureSpec.js index 1096a7305d75..d3b6ab57a280 100644 --- a/Specs/Renderer/TextureSpec.js +++ b/Specs/Renderer/TextureSpec.js @@ -254,7 +254,7 @@ defineSuite([ }); it('draws the expected ETC1 compressed texture color', function() { - if (context.etc1) { + if (!context.etc1) { return; } @@ -272,12 +272,7 @@ defineSuite([ context : context, fragmentShader : fs, uniformMap : uniformMap - }).toRenderAndCall(function (pixels) { - expect(pixels[0]).toEqual(0); - expect(pixels[1]).toBeGreaterThan(250); - expect(pixels[2]).toEqual(0); - expect(pixels[3]).toEqual(255); - }); + }).contextToRender([0, 253, 0, 255]); }); it('renders with premultiplied alpha', function() { diff --git a/Specs/Scene/ModelSpec.js b/Specs/Scene/ModelSpec.js index 68b40ff2d5ce..c324aedcaf57 100644 --- a/Specs/Scene/ModelSpec.js +++ b/Specs/Scene/ModelSpec.js @@ -814,7 +814,7 @@ defineSuite([ }); it('renders textured box with external CRN texture', function() { - if (!(scene.context.s3tc)) { + if (!scene.context.s3tc) { return; } return loadModel(texturedBoxCRNUrl).then(function(m) { @@ -824,7 +824,7 @@ defineSuite([ }); it('renders textured box with embedded binary CRN texture', function() { - if (!(scene.context.s3tc)) { + if (!scene.context.s3tc) { return; } return loadModel(texturedBoxCRNBinaryUrl).then(function(m) { @@ -834,7 +834,7 @@ defineSuite([ }); it('renders textured box with embedded base64 encoded CRN texture', function() { - if (!(scene.context.s3tc)) { + if (!scene.context.s3tc) { return; } return loadModel(texturedBoxCRNEmbeddedUrl).then(function(m) { From 9574914cfc6d92480bdb1656828394027d2e8abd Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Mon, 30 Jan 2017 16:56:25 -0500 Subject: [PATCH 24/26] Fix failing CI tests. --- .../Images/{Green4x4DXT1.KTX => Green4x4DXT1.ktx} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename Specs/Data/Images/{Green4x4DXT1.KTX => Green4x4DXT1.ktx} (100%) diff --git a/Specs/Data/Images/Green4x4DXT1.KTX b/Specs/Data/Images/Green4x4DXT1.ktx similarity index 100% rename from Specs/Data/Images/Green4x4DXT1.KTX rename to Specs/Data/Images/Green4x4DXT1.ktx From 697877c9684c48272209fda1f06c00a31e40c5e9 Mon Sep 17 00:00:00 2001 From: Dan Bagnell Date: Wed, 1 Feb 2017 16:59:22 -0500 Subject: [PATCH 25/26] Update CHANGES.md. --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index cf899d5168d7..4830da1774f0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,7 +1,7 @@ Change Log ========== -### TODO +### 1.31 - 2017-03-01 * Added compressed texture support. * glTF models and imagery layers can now reference [KTX](https://www.khronos.org/opengles/sdk/tools/KTX/) textures and textures compressed with [crunch](https://github.com/BinomialLLC/crunch). From ffa255459fe2faadc7357cec77fc844c093b07d6 Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Thu, 2 Feb 2017 07:23:55 -0500 Subject: [PATCH 26/26] Tweak CHANGES.md --- CHANGES.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a284b09c7452..5f6648d972ac 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,11 +4,10 @@ Change Log ### 1.31 - 2017-03-01 * Enable rendering `GroundPrimitives` on hardware without the `EXT_frag_depth` extension; however, this could cause artifacts for certain viewing angles. -* Added compressed texture support. +* Added compressed texture support. [#4758](https://github.com/AnalyticalGraphicsInc/cesium/pull/4758) * glTF models and imagery layers can now reference [KTX](https://www.khronos.org/opengles/sdk/tools/KTX/) textures and textures compressed with [crunch](https://github.com/BinomialLLC/crunch). - * Added `loadKTX` to load KTX textures. - * Added `loadCRN` to load crunch compressed textures. - * Added new `PixelFormat` and `WebGLConstants` enums from WebGL extensions `WEBGL_compressed_s3tc`, `WEBGL_compressed_texture_pvrtc`, and `WEBGL_compressed_texture_etc1`. [#4758](https://github.com/AnalyticalGraphicsInc/cesium/pull/4758) + * Added `loadKTX`, to load KTX textures, and `loadCRN` to load crunch compressed textures. + * Added new `PixelFormat` and `WebGLConstants` enums from WebGL extensions `WEBGL_compressed_s3tc`, `WEBGL_compressed_texture_pvrtc`, and `WEBGL_compressed_texture_etc1`. * Added `CompressedTextureBuffer`. ### 1.30 - 2017-02-01